* Begin ##java
T 1434473342 -18ChanServ- [##java] Please read the topic for basic channel guidelines. Thanks.
T 1434473368 20<LinkTheProgramer>30 I have a problem with some Generic Types
T 1434473370 24* Error404NotFound has quit (Max SendQ exceeded)
T 1434473411 20<LinkTheProgramer>30 I have a class ListenerAdapter<L extends Listener, E extends Event>
T 1434473411 19<freeone3000> LinkTheProgramer: We all do, that's why we're here. Come into the circle.
T 1434473436 20<LinkTheProgramer>30 with a method throwEvent(String action, E event)
T 1434473459 20<LinkTheProgramer>30 in class EventHandler
T 1434473469 20<LinkTheProgramer>30 I have method throwEvent(Event e)
T 1434473481 20<LinkTheProgramer>30 for (ListenerAdapter<? extends Listener, ? extends Event> listener : listeners.get(e.getClass())) {
T 1434473482 20<LinkTheProgramer>30 listener.throwEvent(e.getEventType(), e);
T 1434473482 20<LinkTheProgramer>30 }
T 1434473493 19<dreamreal> LinkTheProgramer: use a pastebin for code
T 1434473494 19<freeone3000> ~~ LinkTheProgramer pastebin
T 1434473495 19<javabot> LinkTheProgramer, http://gist.github.com/
T 1434473504 20<LinkTheProgramer>30 it's three lines of code
T 1434473513 19<freeone3000> LinkTheProgramer: Paste limit is 2 lines.
T 1434473517 18<dreamreal18> add that to the enter abuse and it works out to more
T 1434473519 20<LinkTheProgramer>30 wooow
T 1434473528 20<LinkTheProgramer>30 anyways
T 1434473528 23* svetlin_zarev (~svetlin@151.237.95.7123) has joined
T 1434473533 18<dreamreal18> it's fine, just prefer the pastebin for it if you can, it helps
T 1434473565 19<freeone3000> LinkTheProgramer: In addition, what's going to happen is you're going to finish explaining, and I'm going to have to ask you for your complete code - or at least, something complete enough to show both classes and both method headers, because that's what's required for this problem.
T 1434473579 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434473591 20<LinkTheProgramer>30 listener.throwEvent doesn't like that I'm passing an Event for a parameter when the throwEvent method in ListenerAdapter asks for E which extends Event
T 1434473612 24* Error404NotFound has quit (Max SendQ exceeded)
T 1434473634 20<LinkTheProgramer>30 how can I send the Event?
T 1434473646 20<LinkTheProgramer>30 I'll add the classes to gist
T 1434473721 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434473765 24* Error404NotFound has quit (Client Quit)
T 1434473807 20<LinkTheProgramer>30 https://gist.github.com/LinkTheProgrammer/7052927c459fa4b57e84
T 1434473851 20<LinkTheProgramer>30 I haven't worked much with Generics until now
T 1434473879 23* gopar (~gopar@2601:642:c001:f5b9:a6db:30ff:fea2:87323) has joined
T 1434473942 20<LinkTheProgramer>30 om nom teriyaki beef jerky
T 1434473948 19<freeone3000> LinkTheProgramer: Line 46 needs to take an Event instead of an E, or EventHandler needs to be generic.
T 1434473973 19<freeone3000> LinkTheProgramer: What do the generics add to ListenerAdapter?
T 1434473977 23* Quasic (~Quasic@86.34.4.3323) has joined
T 1434474021 24* nordica has quit (Ping timeout: 256 seconds)
T 1434474041 23* Monie (~Monie@71-91-126-75.dhcp.ftwo.tx.charter.com23) has joined
T 1434474066 23* klaas (klaas@simply.kla.as23) has joined
T 1434474068 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474068 20<LinkTheProgramer>30 Well for one, LBlockAdapter implements throwEvent as String, BlockEvent
T 1434474074 24* likecolacola has quit (Remote host closed the connection)
T 1434474095 24* The_Phoenix has quit (Quit: Leaving.)
T 1434474100 20<LinkTheProgramer>30 changing to throwEvent(String, Event) gives an error in LBlockAdapter saying a BlockEvent can't be used
T 1434474109 24* Error404NotFound has quit (Max SendQ exceeded)
T 1434474112 19<freeone3000> LinkTheProgramer: Right. That would also need to be Event - because that's how EventHandler passes it in.
T 1434474115 23* philipballew (~philip@ubuntu/member/philipballew23) has joined
T 1434474123 24* boukiller has quit ()
T 1434474143 20<LinkTheProgramer>30 what if I just used a generic type for throwEvent in EventHandler to pass the event?
T 1434474148 19<freeone3000> LinkTheProgramer: Either EventHandler needs firmer information about the types its passing around, or Events need to be differentiated by means other than type.
T 1434474149 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474173 19<freeone3000> LinkTheProgramer: You could do that. Then you need to make sure the Event is of that type. Then you need to make sure that your LinkHandler is of that type. Then you need to put that in terms the compiler can recognize.
T 1434474213 24* Error404NotFound has quit (Client Quit)
T 1434474225 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474237 18<ojacobson18> ~why pastebin is <reply>Use a pastebin so that your code won't scroll off the screen, won't get destroyed by IRC's length limit, and can be copied/pasted to test it.
T 1434474238 18<javabot18> OK, ojacobson.
T 1434474264 23* kerrick_ (~kerrick@50-196-159-42-static.hfc.comcastbusiness.net23) has joined
T 1434474277 20<LinkTheProgramer>30 well I tried doing <E extends Event> and then it doesn't like
T 1434474280 20<LinkTheProgramer>30 for (ListenerAdapter<? extends Listener, ? extends Event> listener : listeners.get(e.getClass())) {
T 1434474291 19<freeone3000> LinkTheProgramer: Right, because it can't prove that ? equals E>
T 1434474303 20<LinkTheProgramer>30 so how do i?
T 1434474306 19<freeone3000> LinkTheProgramer: ? is not "any type", it's "a single, unknown type"
T 1434474321 24* Error404NotFound has quit (Client Quit)
T 1434474324 19<freeone3000> LinkTheProgramer: I think you've phrased your types wrong. What differentiates a BlockEvent from a ... BallEvent?
T 1434474345 20<LinkTheProgramer>30 they're two separate events and two separate classes
T 1434474403 19<freeone3000> LinkTheProgramer: Okay. What makes them different?
T 1434474414 24* n1x has quit (Ping timeout: 240 seconds)
T 1434474417 18<freeone300018> ie, why are they two separate classes?
T 1434474418 20<LinkTheProgramer>30 what do you mean?
T 1434474429 23* k5__ (~k5@x2f2ee91.dyn.telefonica.de23) has joined
T 1434474429 24* k5_ has quit (Disconnected by services)
T 1434474433 19<freeone3000> LinkTheProgramer: Does a BlockEvent do different things on method invocation than a BallEvent?
T 1434474433 24* 28k5__ is now known as 18k5_
T 1434474436 24* rrr has quit (Ping timeout: 245 seconds)
T 1434474440 20<LinkTheProgramer>30 yes
T 1434474449 18<freeone300018> Okay.
T 1434474497 19<freeone3000> LinkTheProgramer: Sounds like you'll either need to downcast, or use a more focused listener pattern. Using separate methods for each type of event is common. Downcasting is used if you have an unbounded set of event types, but of course, you lose all the type safety you gained from generics.
T 1434474536 20<LinkTheProgramer>30 Using another listener pattern is not an option
T 1434474547 18<freeone300018> Because?
T 1434474552 23* Markoo (~Markoo@95.149.17.14623) has joined
T 1434474558 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474583 20<LinkTheProgramer>30 It's an API
T 1434474586 24* Error404NotFound has quit (Max SendQ exceeded)
T 1434474596 18<freeone300018> Well, it doesn't compile at the moment, so it's not a very good one.
T 1434474599 20<LinkTheProgramer>30 I know, bad excuse
T 1434474608 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474612 24* Error404NotFound has quit (Client Quit)
T 1434474616 18<wyvern18> rxjava's ofType() would let you do this pretty simply
T 1434474624 20<LinkTheProgramer>30 and also it's in late alpha
T 1434474641 19<freeone3000> LinkTheProgramer: So the problem was solved in the previous edition of code, before you started working on it, by downcasting?
T 1434474650 23* btc_panhandler (~w7tek@lists.lds.org23) has joined
T 1434474650 20<LinkTheProgramer>30 I don't want to use external libraries other than Javassist
T 1434474659 18<wyvern18> haha
T 1434474660 23* Error404NotFound (~Error404N@unaffiliated/error404notfound23) has joined
T 1434474668 18<wyvern18> That's stupid.
T 1434474674 20<LinkTheProgramer>30 why?
T 1434474683 18<freeone300018> First, because you don't want to use external libraries, and second, because the external library you chose is a bytecode engineering toolkit.
T 1434474690 18<wyvern18> The JVM uses libc under the hood. Does that bother you?
T 1434474701 20<LinkTheProgramer>30 uh no?
T 1434474704 24* marlinc has quit (Quit: Byebye)
T 1434474704 20<LinkTheProgramer>30 wtf
T 1434474706 18<freeone300018> "I want to mess with runtime class compilation, but proper timezones would be too compliated"
T 1434474710 18<wyvern18> Right. So, why should using any other library?
T 1434474715 20<LinkTheProgramer>30 no, that isn't the point
T 1434474718 18<wyvern18> Yes, it is.
T 1434474719 24* 28robink_ is now known as 18robink
T 1434474723 20<LinkTheProgramer>30 I'm trying to make this API lightweight
T 1434474729 19<freeone3000> LinkTheProgramer: That's not how java works.
T 1434474735 18<wyvern18> By badly reimplementing your own things when libraries have done it better?
T 1434474738 18<wyvern18> You'll get no accolades for that.
T 1434474743 20<LinkTheProgramer>30 using a big library for a tiny task seems somewhat verbose
T 1434474746 18<wyvern18> Why?
T 1434474753 19<freeone3000> LinkTheProgramer: Nevertheless, that's how Java is written.
T 1434474756 23* n1x (~n1x@unaffiliated/n1xnc0d323) has joined
T 1434474769 18<wyvern18> More verbose than writing all that code yourself?
T 1434474770 20<LinkTheProgramer>30 becaus more than half the code in the rest of the library will not be used
T 1434474773 18<wyvern18> So?
T 1434474777 18<wyvern18> You're not using most of libc either.
T 1434474780 18<wyvern18> Or the kernel.
T 1434474781 19<freeone3000> LinkTheProgramer: Wait, you'll be using a library in *half your code*?
T 1434474785 18<freeone300018> And you don't consider it a good option?
T 1434474805 20<LinkTheProgramer>30 no
T 1434474820 18<wyvern18> Might as well write your own tightly focused OS that only runs on your machine (why bother with other hardware?) and only runs the parts of the JVM you're using right now.
T 1434474825 20<LinkTheProgramer>30 half the code in the library you suggest will not be used because only a single method would be used
T 1434474827 18<wyvern18> After all, all the rest of that stuff is so verbose.
T 1434474829 18<freeone300018> wyvern: See, I'm actually working on this project...
T 1434474835 19<freeone3000> LinkTheProgramer: That's normal.
T 1434474837 18<wyvern18> freeone3000: hush, you're interrupting my mocking
T 1434474846 20<LinkTheProgramer>30 then there's all this dead weight
T 1434474851 24* Norrin (~Joe@unaffiliated/norrinradd24) has left ("Dueces")
T 1434474851 23* cpm__ (~cpm@37.160.103.19823) has joined
T 1434474853 20<LinkTheProgramer>30 which is unnecessary
T 1434474854 19<freeone3000> LinkTheProgramer: Uh. What?
T 1434474864 19<freeone3000> LinkTheProgramer: How is it "dead weight"?
T 1434474867 19<wyvern> LinkTheProgramer: you're making a fool of yourself now.
T 1434474877 20<LinkTheProgramer>30 It's unused code -_-
T 1434474884 18<wyvern18> literally the very first book on programming contained the concept of a 'subroutine library'
T 1434474884 18<odinsbane18> Well, you can abstract out the method. Use it for now, and if you find a better way, then remove the library.
T 1434474886 19<freeone3000> LinkTheProgramer: How is this a problem?
T 1434474904 20<LinkTheProgramer>30 ehem goal->lightweight!?
T 1434474911 19<freeone3000> LinkTheProgramer: That's a bad goal for Java.
T 1434474915 19<freeone3000> LinkTheProgramer: Have different goals.
T 1434474920 18<wyvern18> 1. why do you care? 2. Have you measured?
T 1434474928 20<LinkTheProgramer>30 if I wanted to use a part of a library I would take the parts I need, not the whole thing
T 1434474950 19<freeone3000> LinkTheProgramer: That frequently messes up downstream dependency resolution.
T 1434474975 23* GhettoJava (~vinny2020@c-24-98-199-163.hsd1.ga.comcast.net23) has joined
T 1434474975 19<freeone3000> LinkTheProgramer: Soft-depends and transitive-depends can be dealt with easily. Hard depends on library partials are nearly impossible to suss out, even if they are shaded.
T 1434474982 20<LinkTheProgramer>30 Downstream dependency resolution... That's why I don't use the library in the first place
T 1434474994 19<freeone3000> LinkTheProgramer: Because you don't understand the Java ecosystem?
T 1434475010 20<LinkTheProgramer>30 not to mention, this API above all will indeed be unconventional thanks to minecraft
T 1434475017 18<wyvern18> You know, if you just write in plain asm, you won't have any of these nasty libraries to deal with
T 1434475020 18<wyvern18> just you and the CPU
T 1434475032 23* eucalyptus (~mn@c-50-183-184-166.hsd1.co.comcast.net23) has joined
T 1434475035 20<LinkTheProgramer>30 that's unproductive
T 1434475050 18<wyvern18> nah, i'm feeling rather cheerful making fun of you
T 1434475051 20<LinkTheProgramer>30 I would be better off with D and it's inline ASM
T 1434475053 19<freeone3000> LinkTheProgramer: Good! Now extrapolate.
T 1434475067 19<freeone3000> LinkTheProgramer: If using no libraries is the most unproductive thing you can do, using libraries for common tasks is...?
T 1434475101 20<LinkTheProgramer>30 Ok I see what you're going at freeone3000, but the size of the API in bytes still matters to me
T 1434475110 19<freeone3000> LinkTheProgramer: Okay, that's reasonable. Why?
T 1434475122 20<LinkTheProgramer>30 faster download time, better transportation
T 1434475137 23* ZenimNL (~Steven@188.207.67.18923) has joined
T 1434475139 19<freeone3000> LinkTheProgramer: Those are negligable for Java projects on modern desktop or server hardware.
T 1434475168 20<LinkTheProgramer>30 except I have a modern laptop that is subpar with modern standards!
T 1434475175 19<freeone3000> LinkTheProgramer: If that's still a concern, an obfuscator such as proguard will remove unused bytecode, as in the methods that aren't used, and minify existing bytecode.
T 1434475193 23* j4nnis (~Thunderbi@2a02:8108:30c0:52ec:ccb:e6c1:7ea5:48eb23) has joined
T 1434475194 24* j4nnis has quit (Client Quit)
T 1434475197 20<LinkTheProgramer>30 obfuscator... this is a backward compatible API for modding minecraft...
T 1434475219 19<freeone3000> LinkTheProgramer: Then you're still fighting the tide.
T 1434475223 24* dardevelin has quit (Read error: Connection reset by peer)
T 1434475233 20<LinkTheProgramer>30 what is that supposed to mean?
T 1434475257 19<freeone3000> LinkTheProgramer: You're going against established convention in order to get some imagined gains in a well-intentioned but futile effort.
T 1434475270 23* nordica (~nordica@2a02:1811:51b:2e00:6a17:29ff:febf:c73723) has joined
T 1434475273 24* Markoo has quit (Remote host closed the connection)
T 1434475292 20<LinkTheProgramer>30 You somewhat have to go against established convention with Minecraft and modding to maintain compatibility between mods and what not
T 1434475305 18<freeone300018> Which is why minecraft has its own channel.
T 1434475340 20<LinkTheProgramer>30 yeah, and I was asking about a simple generic error that I couldn't figure out, until someone mentioned rxjava and a single method that I said I didn't want to use any other libraries
T 1434475373 19<freeone3000> LinkTheProgramer: Right. Your solution was mentioned. You have to either downcast Event to its proper type, possibly using Class.cast(*), or FULLY generify EventHandler and make sure the types match throughout.
T 1434475385 23* marlinc (~marlinc@ip2.weert.li.nl.cvo-technologies.com23) has joined
T 1434475387 19<Teckla> LinkTheProgramer: You should contribute to Minetest instead, where mods are first class citizens.
T 1434475396 20<LinkTheProgramer>30 -_-
T 1434475397 18<freeone300018> You don't actually have to stick around for the mocking post-solution.
T 1434475425 20<LinkTheProgramer>30 right so how should I exactly generify EventHandler?
T 1434475433 20<LinkTheProgramer>30 just put plenty of generic methods?
T 1434475464 19<freeone3000> LinkTheProgramer: I don't know enough about your program to implement a full solution. However, you should get rid of all wildcards (so no "? extends Event") and replace those with actual types.
T 1434475489 20<LinkTheProgramer>30 ok...
T 1434475498 20<LinkTheProgramer>30 I was going to say because
T 1434475499 20<LinkTheProgramer>30 private static HashMap<Class<? extends Event>, ArrayList<ListenerAdapter<? extends Listener, ? extends Event>>> listeners;
T 1434475499 20<LinkTheProgramer>30 private static HashMap<Scope<?>, ListenerAdapter<? extends Listener, ? extends Event>> scopedEvents;
T 1434475518 24* bb010g has quit (Quit: Connection closed for inactivity)
T 1434475522 19<freeone3000> LinkTheProgramer: No way that's going to work, no. Especially not with the 'static' there, since type parameters are instance-scoped.
T 1434475533 23* yaswanth (~yravella@inet-hqmc01-o.oracle.com23) has joined
T 1434475556 24* Jackneill has quit (Ping timeout: 244 seconds)
T 1434475562 20<LinkTheProgramer>30 currently we can't do private static <E extends Event> HashMap<Class<E>, ArrayList<ListenerAdapter<Listener, E>>> listenres;
T 1434475565 20<LinkTheProgramer>30 sadly
T 1434475572 18<ojacobson18> a global table of event listeners, also known as a memory leak
T 1434475575 18<freeone300018> Well, no, because 'static' and 'E' doesn't mix.
T 1434475586 18<freeone300018> In this case, since it's a field, and there's no possible definition of 'E' in scope.
T 1434475606 20<LinkTheProgramer>30 until they implement what I just sampled
T 1434475622 19<freeone3000> LinkTheProgramer: So you're limited to the other solution, Class.cast()ing the Event down to its appropriate type. You have a Class<E>. Class<E>.cast(Object) returns an E.
T 1434475625 20<LinkTheProgramer>30 inferring the type of a variable
T 1434475627 20<LinkTheProgramer>30 s
T 1434475628 18<ojacobson18> I would suggest using a list multimap from guava, if that was sane, but it's not -- use a separate listener collection for each listener type.
T 1434475630 20<LinkTheProgramer>30 generics
T 1434475633 18<ojacobson18> each relevant listener type
T 1434475633 24* nordica has quit (Ping timeout: 252 seconds)
T 1434475650 18<ojacobson18> or, you know, double down on keeping the existing broken code
T 1434475687 18<ojacobson18> Consider a structure similar to http://alchemy.grimoire.ca/m2/sites/ca.grimoire/event-dispatching/ ?
T 1434475687 18<javabot18> ojacobson's title: Event Dispatching Tools -
T 1434475690 20<LinkTheProgramer>30 ojacobson, the point of this design is so that the EventHandler doesn't have to know anything about the type of listeners, only act on them and put them in a central repository
T 1434475715 24* cpm__ has quit (Ping timeout: 265 seconds)
T 1434475721 20<LinkTheProgramer>30 And it's an API so I can't have fixed lists of just every single Listener possible
T 1434475737 20<LinkTheProgramer>30 any new Event type would be unsupported in that case
T 1434475740 18<ojacobson18> Storing them in a global variable is dumb, stop doing that -- there's no memory-leak-safe way to use that. If you're going to centralize like that centralize into some repository object created in main and shared by all the subsquent listener-bearing objects
T 1434475750 18<ojacobson18> that way at least listeners can _eventually_ be collected.
T 1434475764 23* troker (~troker@75-150-73-57-NewEngland.hfc.comcastbusiness.net23) has joined
T 1434475773 20<LinkTheProgramer>30 but... the "main" is a Java Agent!
T 1434475777 20<LinkTheProgramer>30 I can't do that!
T 1434475785 20<LinkTheProgramer>30 and why is it dumb?
T 1434475789 18<ojacobson18> I'm not tremendously interested in hearing you tell me why you can't fix your program. Either you want help, or you don't; your decision as to what to do; I can only give you information. :)
T 1434475798 19<freeone3000> LinkTheProgramer: Unbounded memory usage that can never be collected doesn't seem like a problem to you?
T 1434475815 20<LinkTheProgramer>30 but I'm restricted to minecraft and it's limits
T 1434475826 19<freeone3000> LinkTheProgramer: Oh. You have to write bad code becuase the other code is also bad.
T 1434475827 18<ojacobson18> Read the topic, then.
T 1434475830 20<LinkTheProgramer>30 and how is there a memory leak possibility caused by a List?
T 1434475833 18<troker18> is there a way to 'redirect' an enum? Like if class A has an enum defined that things depend on and I need to upgrade it with an enum from class B that offers more functionality but keeps the same contract
T 1434475845 18<troker18> But I dont want to change class A's enum type
T 1434475848 19<freeone3000> LinkTheProgramer: It's not a leak - every item is still accessible. But it's unbounded, and it's static, so it'll never be collected.
T 1434475853 18<ojacobson18> troker: it can't keep the same contract, because part of the enum contract is that the set of instances is fixed and known at compile time.
T 1434475858 23* stefkos (~stefkos@pc11-226.chomiczowka.waw.pl23) has joined
T 1434475861 18<ojacobson18> (Which isn't _completely_ true, but it's close enough.)
T 1434475868 18<ojacobson18> troker: no such extension is possible.
T 1434475872 20<LinkTheProgramer>30 freeone3000, why would I want them to be collected by GC?
T 1434475883 23* nordica (~nordica@2a02:1811:51b:2e00:6a17:29ff:febf:c73723) has joined
T 1434475886 19<freeone3000> LinkTheProgramer: Becuase you have a finite amount of memory?
T 1434475904 24* sjmikem has quit (Remote host closed the connection)
T 1434475925 18<ojacobson18> You'd want objects to be collected by the GC when they're no longer relevant. That happens naturally if every object has a reference to the things it needs (without globals); if A needs B, and A gets collected, B may also become eligible for collection.
T 1434475931 20<LinkTheProgramer>30 it's not like the size forever grows or anything right? I thought it only grows when the array is full so it resizes and adds the element.
T 1434475936 24* n1x has quit (Ping timeout: 250 seconds)
T 1434475949 18<ojacobson18> Storing all the Bs in a global means each B persistes even if its dependent A is long gone.
T 1434475996 18<ojacobson18> Keeping objects that are no longer relevant is _at best_ a memory leak, and can lead to logical errors in your code
T 1434475996 20<LinkTheProgramer>30 there's a remove method in EventHandler
T 1434475999 23* svm_invictvs (~patricktw@unaffiliated/svminvictvs/x-93845623) has joined
T 1434476009 20<LinkTheProgramer>30 oh wait
T 1434476013 20<LinkTheProgramer>30 it's not implemented yet :P
T 1434476016 18<ojacobson18> So you believe Minecraft's code is perfect?
T 1434476020 20<LinkTheProgramer>30 hell no
T 1434476030 18<ojacobson18> Then don't rely on voluntary removal to implement memory management.
T 1434476036 20<LinkTheProgramer>30 Notch botched it from the beginning
T 1434476069 20<LinkTheProgramer>30 Hey, the listener stays in memory until a mod explicitly states "I don't need this, remove it"
T 1434476097 18<ojacobson18> You know when the mod no longer needs it, because the mod has been unloaded and its objects collected.
T 1434476103 20<LinkTheProgramer>30 which reminds me I should add a Lock system so other mods can't interfere with other listeners...
T 1434476116 18<ojacobson18> If you were giving mods the right tools to manage listeners, the listeners would get collected mostly-automatically.
T 1434476135 20<LinkTheProgramer>30 ojacobson, you can have a BlockListener that gets removed if the player destroys it
T 1434476143 23* fatguylaughing (~fatguylau@worx01.worxco.net23) has joined
T 1434476182 23* sjmikem (~smuxi@signalshare-250.tisch.gvad.net23) has joined
T 1434476188 20<LinkTheProgramer>30 tbh I like having control (even if minimal) over memory... Me personally? I like manual memory management
T 1434476189 24* Monie has quit (Quit: My MacBook Pro has gone to sleep. ZZZzzz…)
T 1434476195 23* Sasazuka (~Sasazuka@unaffiliated/sasazuka23) has joined
T 1434476206 20<LinkTheProgramer>30 It's frowned upon, but there's a way to do it right
T 1434476216 19<freeone3000> LinkTheProgramer: So you like minimal code, no memory management, and few library dependencies. You're not in the right place.
T 1434476231 23* enitiz (~Saurabh@pool-72-75-205-30.bflony.fios.verizon.net23) has joined
T 1434476233 20<LinkTheProgramer>30 I would fit in with C and C++ wouldn't I?
T 1434476237 18<enitiz18> hi
T 1434476241 18<sbalmos18> assembler
T 1434476250 20<LinkTheProgramer>30 assembler is too low
T 1434476251 18<odinsbane18> c++ is all about the smart pointers right now.
T 1434476257 20<LinkTheProgramer>30 c would be a sweet spot for me
T 1434476264 24* btc_panhandler has quit (Quit: btc_panhandler)
T 1434476271 18<sbalmos18> ##c
T 1434476290 18<enitiz18> what sorting algorihtm is used by Arrays.sort?
T 1434476295 18<svm_invictvs18> C: A thin layer of abstraction around assembly
T 1434476299 18<svm_invictvs18> Also offtopic
T 1434476303 20<LinkTheProgramer>30 meh
T 1434476307 24* SHC has quit (Remote host closed the connection)
T 1434476312 18<svm_invictvs18> ~topic
T 1434476313 18<javabot18> The topic has several references for your perusal. That's why Chanserv msgs you to read the topic. Reading the topic and asking questions is a great way to get help.
T 1434476323 20<LinkTheProgramer>30 well thanks for the help, even though we mostly digressed from the original problem...
T 1434476325 18<dreamreal18> odinsbane: C++ has been about smart pointers for decades
T 1434476334 24* GhettoJava has quit (Quit: This computer has gone to sleep)
T 1434476381 18<odinsbane18> ~~enitiz javadoc Arrays.sort(float)
T 1434476382 18<javabot18> enitiz, I have no documentation for Arrays.sort(float)
T 1434476387 18<odinsbane18> ~~enitiz javadoc Arrays.sort(*)
T 1434476387 18<javabot18> enitiz: http://bit.ly/1jt8iOa [JDK: java.util.Arrays.sort(int[])]; http://bit.ly/1jt8kpf [JDK: java.util.Arrays.sort(int[], int, int)]; http://bit.ly/1jt8iO7 [JDK: java.util.Arrays.sort(long[])]; http://bit.ly/1jt8kpd [JDK: java.util.Arrays.sort(long[], int, int)]; http://bit.ly/1jt8iO5 [JDK: java.util.Arrays.sort(short[])]; http://bit.ly/1jt8iO3 [JDK: java.util.Arrays.sort(short[], int, int)]
T 1434476388 18<javabot18> enitiz, ; http://bit.ly/1jt8iO1 [JDK: java.util.Arrays.sort(char[])]; http://bit.ly/1jt8iNZ [JDK: java.util.Arrays.sort(char[], int, int)]; http://bit.ly/1jt8kp9 [JDK: java.util.Arrays.sort(byte[])]; http://bit.ly/1jt8kp7 [JDK: java.util.Arrays.sort(byte[], int, int)]; http://bit.ly/1jt8kp5 [JDK: java.util.Arrays.sort(float[])]; http://bit.ly/1jt8kp3 [JDK: java.util.Arrays.sort(float[], int, int)]
T 1434476389 18<javabot18> enitiz, ; http://bit.ly/1jt8kp1 [JDK: java.util.Arrays.sort(double[])]; http://bit.ly/1jt8iNT [JDK: java.util.Arrays.sort(double[], int, int)]; http://bit.ly/1jt8ixD [JDK: java.util.Arrays.sort(Object[])]; http://bit.ly/1jt8ixF [JDK: java.util.Arrays.sort(Object[], int, int)]; http://bit.ly/1jt8kFv [JDK: java.util.Arrays.sort(T, Comparator<T>)]
T 1434476390 18<javabot18> enitiz, too many results found. Please see your private messages for results
T 1434476395 18<cheeser18> javabot: nice one
T 1434476395 18<javabot18> cheeser, what does that even *mean*?
T 1434476399 18<odinsbane18> sorry.
T 1434476410 18<enitiz18> -.-
T 1434476414 18<odinsbane18> ~~enitiz javadoc Arrays.sort(float[] a)
T 1434476414 18<javabot18> enitiz, I have no documentation for Arrays.sort(float[] a)
T 1434476417 23* GhettoJava (~vinny2020@c-24-98-199-163.hsd1.ga.comcast.net23) has joined
T 1434476420 18<odinsbane18> ~~enitiz javadoc Arrays.sort(float[])
T 1434476421 18<javabot18> enitiz: http://bit.ly/1jt8kp5 [JDK: java.util.Arrays.sort(float[])]
T 1434476426 24* Kn|t3 has quit (Quit: Kn|t3)
T 1434476431 18<odinsbane18> finally. that says what algorithm it uses.
T 1434476437 20<LinkTheProgramer>30 are you sure it isn't Arrays.sort(Object[])?
T 1434476446 20<LinkTheProgramer>30 oh
T 1434476451 20<LinkTheProgramer>30 nvm
T 1434476454 22* 26cheeser removes ban on 18*!~espe@94.Red-88-21-131.staticIP.rima-tde.net
T 1434476457 19<odinsbane> LinkTheProgramer: I think they all say what algorithm they use...
T 1434476460 18<enitiz18> nvm I'll do to docs myself
T 1434476489 18<odinsbane18> ?
T 1434476552 18<enitiz18> it says dual-pivot quicksort.. hmm
T 1434476567 24* rtb has quit (Quit: Leaving)
T 1434476592 18<dreamreal18> oh, there are only B5 thrusters here, skipping that as I don't want to add mass
T 1434476596 20<LinkTheProgramer>30 hey freeone3000 I have one last question
T 1434476637 20<LinkTheProgramer>30 why can the compiler not prove <? extends MyType> that ? extends MyType?
T 1434476663 20<LinkTheProgramer>30 even though it explicitly says "an unknown type with superclass MyType"
T 1434476672 20<LinkTheProgramer>30 saying that it can't prove doesn't make sense
T 1434476705 19<freeone3000> LinkTheProgramer: It can prove that ? extends MyType.
T 1434476716 20<LinkTheProgramer>30 what did you say earlier?
T 1434476722 19<freeone3000> LinkTheProgramer: List<? extends MyType> foo = someList(); MyType x = foo.get(0); will compile.
T 1434476743 23* strainwrld (~strainwrl@a95-92-84-44.cpe.netcabo.pt23) has joined
T 1434476759 20<LinkTheProgramer>30 I believe the question I should ask is:
T 1434476763 19<freeone3000> LinkTheProgramer: The issue is that it can't prove that ? extends MyType is any other subclass of MyType. It can't prove that, for instance, one "? extends MyType" is the same ? as another "? extends MyType", or that ? is the same type as E in "E extends MyType".
T 1434476773 23* kailoAtWork (~kailoAtWo@38.82.195.11023) has joined
T 1434476775 19<ernimril> LinkTheProgramer, why are you using unknown generic types? can you not use the T-type instead?
T 1434476807 20<LinkTheProgramer>30 how is it not obvious that <E extends MyType> cannot be proven to <? extends MyType>?
T 1434476828 20<LinkTheProgramer>30 ernimril, idk
T 1434476830 19<freeone3000> LinkTheProgramer: It's obvious if you understand generics.
T 1434476841 20<LinkTheProgramer>30 I clearly don't know the intrinsics
T 1434476843 24* KotoRez has quit (Ping timeout: 252 seconds)
T 1434476850 19<ojacobson> LinkTheProgramer: String extends Object and Integer extends Object; is String the same type as Integer?
T 1434476858 20<LinkTheProgramer>30 what I thought I knew about generics I flushed down the drain just now
T 1434476862 18<ojacobson18> The relationship between E and ? is identical.
T 1434476886 20<LinkTheProgramer>30 ojacobson no, String is not Integer
T 1434476934 18<ojacobson18> Then the compiler can't possibly prove that E and ? are related except via MyType.
T 1434476955 20<LinkTheProgramer>30 if ? extends MyType and E extends MyType, if I understand this now, I can send E as ?, but not ? as E
T 1434476987 23* aspire (~aspire@unaffiliated/aspire23) has joined
T 1434477007 19<freeone3000> LinkTheProgramer: Not true. You could send E as ? iff the value of ? was determined based on the value of E - and if so, you could send T as E as well.
T 1434477028 20<LinkTheProgramer>30 so I could send E if it were <? extends E>?
T 1434477050 19<freeone3000> LinkTheProgramer: Yes, because that's a new type, "?", which is a subclass of E. So you can give any type E, or any subtype of E, to that.
T 1434477066 20<LinkTheProgramer>30 ok
T 1434477070 19<freeone3000> LinkTheProgramer: However, you couldn't give a second "? extends E" to that, because the compiler is unable to prove that ?#captureOf-1 is equal to ?#captureOf-2.
T 1434477088 19<freeone3000> LinkTheProgramer: It can prove they're both E, but that's not enough.
T 1434477096 23* ktchup (~ktchup@31.205.115.13623) has joined
T 1434477104 20<LinkTheProgramer>30 the only exception to any of this is hacks :P
T 1434477112 19<freeone3000> LinkTheProgramer: You mean "casting".
T 1434477113 20<LinkTheProgramer>30 and -Xverify:none
T 1434477137 24* nordica has quit (Quit: WeeChat 1.2)
T 1434477150 18<freeone300018> -Xverify deals with bytecode verification and has nothing to do with this.
T 1434477153 23* Rickmasta (~Rick@mobile-166-171-185-205.mycingular.net23) has joined
T 1434477159 19<ernimril> LinkTheProgramer, In most cases you want to go "<T> Whatever foo (X<T> x)..." instead of "Whatever foo (X<?> x)...". Change to "<T extends Bar>" and "<? extends Bar>" as needed
T 1434477163 24* 28Dhs92 is now known as 18Yukkii
T 1434477166 23* hatmaker (~hatmaker@c-be6370d5.011-584-6d6c6d5.cust.bredbandsbolaget.se23) has joined
T 1434477178 20<LinkTheProgramer>30 hence hacks, if you don't verify bytecode at initialization, you can apply hacks
T 1434477190 24* Rickmasta has quit (Max SendQ exceeded)
T 1434477226 20<LinkTheProgramer>30 yeah I figured that from the example given for generic methods and the horrors of Collection<?> and Collection<Object>
T 1434477251 24* momomo has quit (Ping timeout: 256 seconds)
T 1434477254 23* Rickmasta (~Rick@mobile-166-171-185-205.mycingular.net23) has joined
T 1434477279 19<ernimril> LinkTheProgramer, generics for java is meant as a help for the programmer, it is (currently) not meant for runtime, so bytecode has very little to do with generics (but sure, generics is partly written to class files, since it is needed when you compile other classes)
T 1434477312 20<LinkTheProgramer>30 ye
T 1434477319 19<freeone3000> LinkTheProgramer: The proper way to circumvent the java type system is to typecast.
T 1434477336 20<LinkTheProgramer>30 would be great if type erasure wasn't in effect
T 1434477338 23* Markoo (~Markoo@95.149.17.14623) has joined
T 1434477351 19<ernimril> LinkTheProgramer, <? extends A> and <? super A> are sources and sinks, you can not use them for both. With a <T> you can use it for both
T 1434477361 24* ktchup has quit (Ping timeout: 255 seconds)
T 1434477396 19<ernimril> LinkTheProgramer, there are many wishing for non-erasure, maybe it will happen in java 10 or 11
T 1434477398 20<LinkTheProgramer>30 I wonder if you could have a simple work-around for the fact that the generic type naming convention is a single char capital letter...
T 1434477415 19<freeone3000> LinkTheProgramer: You could typecast.
T 1434477416 20<LinkTheProgramer>30 Imagine making classes A-Z and the importing them...
T 1434477435 20<LinkTheProgramer>30 that would be fun
T 1434477441 19<ernimril> LinkTheProgramer, try doing something like: Class A<A> { A(A A) {}}
T 1434477451 20<LinkTheProgramer>30 what would happen?
T 1434477479 20<LinkTheProgramer>30 no wait here we go:
T 1434477487 18<ernimril18> I am not really sure at the moment, the class name, the generic type and the method name live in different name spaces, but I am not sure if the parameter is the generic type or the class type
T 1434477488 24* a3Dman has quit (Ping timeout: 276 seconds)
T 1434477527 20<LinkTheProgramer>30 class A<A extends A> { A(A A){} <A> A A(A A){} }
T 1434477538 24* CustosLimen has quit (Ping timeout: 276 seconds)
T 1434477587 18<ernimril18> hmm, since it compils that method parameter has to be a generic type
T 1434477614 20<LinkTheProgramer>30 according to the compiler, ernimril , your example would be parsed as class A with generic of type A and a constructor for the class with the parameter being an instance of class A
T 1434477671 23* AimerPaddle (~AimerPadd@209.181.82.423) has joined
T 1434477692 24* Markoo has quit (Remote host closed the connection)
T 1434477700 20<LinkTheProgramer>30 A in the parameter thus cannot be a generic, but a class...
T 1434477742 20<LinkTheProgramer>30 Or there should be a type conflict...
T 1434477745 24* torpig has quit (Ping timeout: 265 seconds)
T 1434477762 20<LinkTheProgramer>30 or maybe I should shut up
T 1434477763 23* btc_panhandler (~w7tek@lists.lds.org23) has joined
T 1434477797 23* schu-r (~Thunderbi@82-149-107-2.wco.wellcom.at23) has joined
T 1434477811 24* mebigfatguy has quit (Ping timeout: 252 seconds)
T 1434477827 24* btc_panhandler has quit (Client Quit)
T 1434477850 18<ernimril18> ~pastebin
T 1434477851 18<javabot18> http://gist.github.com/
T 1434477895 23* phoe6 (~phoe6@8.25.197.2423) has joined
T 1434477904 19<ernimril> LinkTheProgramer, https://gist.github.com/anonymous/572fc0a6bc590b712513 The constructor argument is the generic type
T 1434477944 24* Cust0sLim3n has quit (Ping timeout: 246 seconds)
T 1434477966 20<LinkTheProgramer>30 oh that reminds me
T 1434477982 20<LinkTheProgramer>30 here's the src for the API which isn't updated regularly
T 1434477996 19<ernimril> LinkTheProgramer, so trying to use identifiers for anything will cause a lot of problem with existing code. There are too much code that use silly names for things
T 1434478008 20<LinkTheProgramer>30 https://github.com/QuantumTheoryMC/QuantumAPI
T 1434478009 19<javabot> LinkTheProgramer's title: QuantumTheoryMC/QuantumAPI GitHub
T 1434478042 20<LinkTheProgramer>30 ernimril, :P
T 1434478066 23* CustosLimen (~CustosLim@unaffiliated/cust0slim3n23) has joined
T 1434478116 19<ernimril> LinkTheProgramer, since I am trying to write a java compiler I do think about these things
T 1434478141 20<LinkTheProgramer>30 cool :)
T 1434478144 19<ernimril> LinkTheProgramer, at least I have a relatively large code base at work to play with (and I have found lots of silly/strange/odd things in it)
T 1434478162 20<LinkTheProgramer>30 does my class compile?
T 1434478215 19<ernimril> LinkTheProgramer, currently I have a tokenizer, a parser, a few parts of the semantic checks and a few parts of the bytecode generation. So no, not yet
T 1434478244 20<LinkTheProgramer>30 no I mean does it compile with javah
T 1434478259 23* bedah (~bedah@dyndsl-095-033-180-139.ewe-ip-backbone.de23) has joined
T 1434478292 23* btc_panhandler (~w7tek@lists.lds.org23) has joined
T 1434478344 23* Cust0sLim3n (~CustosLim@unaffiliated/cust0slim3n23) has joined
T 1434478347 24* phoe6 has quit (Quit: My Mac has gone to sleep. ZZZzzz…)
T 1434478405 23* dseitz (~textual@ip70-191-238-148.pn.at.cox.net23) has joined
T 1434478413 23* Monie (~Monie@71-91-126-75.dhcp.ftwo.tx.charter.com23) has joined
T 1434478420 20<LinkTheProgramer>30 and what's a python guy doing in the ##java channel?
T 1434478496 23* Carnage\ (~carnage@77-57-117-157.dclient.hispeed.ch23) has joined
T 1434478513 24* philipballew has quit (Ping timeout: 276 seconds)
T 1434478514 18<ojacobson18> Same thing you are
T 1434478535 20<LinkTheProgramer>30 wha
T 1434478537 18<ojacobson18> the idea of someone as a "$LANGUAGE guy" is artificial and limiting
T 1434478546 18<ojacobson18> ernimril is here talking about java dev, same as you
T 1434478561 20<LinkTheProgramer>30 no I mean __main__
T 1434478574 20<LinkTheProgramer>30 XD
T 1434478588 18<cheeser18> ~boring
T 1434478589 18<javabot18> This isn't even slightly interesting; please take it somewhere else.
T 1434478592 24* schu-r has quit (Quit: schu-r)
T 1434478614 18<aspire18> jlabel supports html as the text which means you can embed images using <img src="...">, what if the image isn't from a url but i have an instance of Image or ImageIcon?
T 1434478617 23* schu-r (~Thunderbi@82-149-107-2.wco.wellcom.at23) has joined
T 1434478621 23* anonnumberanon (~anonnumbe@unaffiliated/anonnumberanon23) has joined
T 1434478623 23* a3Dman (~3Dman@unaffiliated/a3dman23) has joined
T 1434478627 18<aspire18> how do i use my instance of Image/ImageIcon as the img src?
T 1434478646 18<Maldivia18> then you can't use it like that
T 1434478657 18<ernimril18> aspire, just add the icon to the label then
T 1434478661 18<Maldivia18> basically, you shouldn't use the html think in jlabel, it's atrocious
T 1434478675 24* schu-r has quit (Client Quit)
T 1434478678 20<LinkTheProgramer>30 you could save your Image or ImageIcon as an image to a directory and the use <img src="dir">
T 1434478690 18<aspire18> that doesn't seem good :\
T 1434478697 18<dreamreal18> and, of course, don't do that (as you can see from what everyone else is saying)
T 1434478703 20<LinkTheProgramer>30 its a solution if you want ot use it that way
T 1434478712 20<LinkTheProgramer>30 but yeah don't do that
T 1434478716 18<aspire18> i'm writing a list cell renderer and i have an image on the left hand side followed by 3 vertically aligned labels
T 1434478729 18<aspire18> icon: text\nicon: text\nicon: text
T 1434478731 18<ojacobson18> aspire: you can put an ImageIcon directly into a JLabel already
T 1434478747 18<aspire18> this jlabel will have 4 imageicons (the thumbnail followed by the 3 info icons)
T 1434478759 18<ojacobson18> sounds like a panel to me
T 1434478768 18<aspire18> but it's in a list cell renderer
T 1434478769 20<LinkTheProgramer>30 You know it would be interesting to see a program that utilizes HTML and CSS for the UI layout of a program...
T 1434478811 18* dreamreal points to the web. There! It's right there! And over there! And over there! And over there, too!
T 1434478831 20<LinkTheProgramer>30 That's the internet, not a program
T 1434478835 18<dreamreal18> surprisingly, there are lots and lots of apps that use html and css for exactly that.
T 1434478844 18<aspire18> mhm..
T 1434478846 24* enitiz has quit (Ping timeout: 255 seconds)
T 1434478848 18<dreamreal18> you're looking at the wrong parts of the internet, then.
T 1434478851 20<LinkTheProgramer>30 such as...
T 1434478860 18<aspire18> i thought you were hinting at javafx
T 1434478870 20<LinkTheProgramer>30 no
T 1434478871 18<wyvern18> write a qt wrapper around webkit and write your app ui in html and css.
T 1434478881 19<ojacobson> LinkTheProgramer: a surprising number of OS X apps are wrappers around WebKit controls with private HTML sources.
T 1434478882 18<freeone300018> wyvern: That's Adobe Air.
T 1434478883 24* strainwrld has quit (Quit: Leaving)
T 1434478885 19<dreamreal> LinkTheProgramer: look at any wordpress site. There you go: an application that uses HTML and css.
T 1434478886 18<freeone300018> wyvern: It's already a thing.
T 1434478890 18<ojacobson18> Slack, most IRC clients, iMessage, Safari
T 1434478899 18<ojacobson18> (the Safari UI, not "the things you can load in Safari", which are web pages)
T 1434478900 24* priidu has quit (Ping timeout: 255 seconds)
T 1434478910 23* phoe6 (~phoe6@128.177.123.2923) has joined
T 1434478911 18<freeone300018> ojacobson: There is no Data, only XUL.
T 1434478917 18<evilmidget3818> Github's atom editor: https://atom.io/
T 1434478919 18<ojacobson18> Firefox, famously, is a generic XUL renderer, so you can open Firefox in a Firefox tab
T 1434478935 20<LinkTheProgramer>30 technically you could build what any programming language like Java does, in HTML,CSS,Javascript, and other web-based scripts with less effort...
T 1434478942 18<aspire18> maybe jlist isn't my best bet
T 1434478966 19<freeone3000> LinkTheProgramer: Let's refine that to "you can build user-facing interfaces quicker and better in HTML,CSS,and Javascript than you can in Java".
T 1434478968 19<dreamreal> LinkTheProgramer: in many ways, yes, although one should note that often java is the language behind the "web-based script"
T 1434478982 18<ernimril18> aspire, jlist is typically not the right choice, table or treetable are typically nicer
T 1434478984 20<LinkTheProgramer>30 javaception
T 1434478994 24* Rorro has quit (Ping timeout: 240 seconds)
T 1434479018 23* strainwrld (~strainwrl@a95-92-84-44.cpe.netcabo.pt23) has joined
T 1434479021 18<Sou|cutter18> javascript is a terrible language
T 1434479025 20<LinkTheProgramer>30 true
T 1434479031 20<LinkTheProgramer>30 It's slow
T 1434479041 20<LinkTheProgramer>30 usejQuery()
T 1434479049 18<aspire18> i'm trying to create a character selection page: there will be a thumbnail of the character and 3 vertically aligned labels to the right: [attack icon] attack\n[strength icon] strength\n[defence icon] defence
T 1434479062 18<dreamreal18> okay, back to being on-topic.
T 1434479073 18<aspire18> the thing is idk how many characters there will be (the user can create them) and i heard jpanel isn't good for showing lots of data
T 1434479082 18<freeone300018> aspire: BoxLayout for the labels. GroupLayout for the overall, with two vertical groups and one horizontal group.
T 1434479093 18<freeone300018> aspire: Who told you that? What was their alternative?
T 1434479095 23* crc32 (~crc32@50.57.49.10623) has joined
T 1434479100 18<aspire18> jlist
T 1434479106 23* Kassad (~kassad@bitnet.me23) has joined
T 1434479122 18<Maldivia18> aspire: or as a last alternative, custom component with a paintComponent method :)
T 1434479135 18<aspire18> freeone3000, i know what layout managers to use for creating a single character entry it's just i'm a bit iffy about it
T 1434479140 18<Maldivia18> or well, not neccesarily last
T 1434479141 23* blob (~bob@dtx.rpiz.com23) has joined
T 1434479162 18<aspire18> maybe i could show a horizontal jlist of thumbnails with the 3 labels underneath it and when you click on an item in the jlist it'll update the 3 labels?
T 1434479173 18<aspire18> maybe even not even a jlist and just a thumbnail with directional arrows to the left/right of it
T 1434479183 24* Fiki has quit (Ping timeout: 244 seconds)
T 1434479185 24* cir0x has quit (Quit: Leaving.)
T 1434479189 20<LinkTheProgramer>30 I'm going to go back to programming with listening to spotify music
T 1434479196 22* 26cheeser sets ban on 18LinkTheProgramer!*@*
T 1434479229 18<aspire18> mhm.. i'm going to try the thing with the directional arrows because then i won't need to load all of the thumbnails at once - only when it becomes visible
T 1434479237 18<aspire18> mhmm ok thanks for helping me brainstorm
T 1434479338 24* belzelutte has quit (Ping timeout: 244 seconds)
T 1434479342 24* crc32 has quit (Client Quit)
T 1434479349 20<LinkTheProgramer>30 I don't get it..
T 1434479349 29* ##java :Cannot send to channel
T 1434479373 >18freeone3000< why was I banned by cheeser
T 1434479414 >18cheeser< what did I do!?
T 1434479449 23* torpig (torpig@2600:3c00::f03c:91ff:fe98:22ed23) has joined
T 1434479455 24* sonOfRa has quit (Remote host closed the connection)
T 1434479470 24* solenoids has quit (Ping timeout: 256 seconds)
T 1434479509 23* Tectu (~Tectu@40.15.106.92.dynamic.wline.res.cust.swisscom.ch23) has joined
T 1434479536 23* 28[18cheeser28] 30(24~cheeser@unaffiliated/cheeser30): 18Unknown
T 1434479536 23* 28[18cheeser28] @##java
T 1434479536 23* 28[18cheeser28] 29asimov.freenode.net :TX, USA
T 1434479536 23* 28[18cheeser28] is logged in as 18cheeser
T 1434479536 23* 28[18cheeser28] End of WHOIS list.
T 1434479622 24* FirewalkR has quit (Quit: My Mac has gone to sleep. ZZZzzz…)
T 1434479640 23* joh_ (5b72d2c3@gateway/web/freenode/ip.91.114.210.19523) has joined
T 1434479654 23* sonOfRa (sonOfRa@btbn.de23) has joined
T 1434479676 Bad arguments for user command.
T 1434479685 20* Cannot join 22#java (20Channel is invite only)
T 1434479695 19* You have left channel 22##java
T 1434479700 22* Cannot join 22##java (20You are banned).
T 1434479750 >18cheeser< why was I banned?
T 1434479750 23* 28[18cheeser28] is away 30(23autoaway after 180 seconds30)
*End of ##java
*Begin query cheeser
T 1434479805 18<cheeser> stop talking
T 1434479818 20<LinkTheProgramer>30 -_-
T 1434479819 20<LinkTheProgramer>30 fine
T 1434479826 20<LinkTheProgramer>30 you didn't have to ban me
T 1434479874 22* Cannot join 22##java (20You are banned).
T 1434479923 22* Cannot join 22##java (20You are banned).
T 1434480099 22* Cannot join 22##java (20You are banned).
T 1434480132 20<LinkTheProgramer>30 wtf did I friking do!? I didn't deserve this!
T 1434480142 18<cheeser> shut up already
T 1434480161 20<LinkTheProgramer>30 what's your problem?
T 1434480231 20<LinkTheProgramer>30 great, I've been banned from one of the most active java channels available on irc by some rude Op
T 1434480234 20<LinkTheProgramer>30 I hope you have a nice day
T 1434480271 18<cheeser> because you won't stop talking even after being asked. leave me alone already.
T 1434480314 20<LinkTheProgramer>30 that makes no friking sense; no one told me directly on ##java to stop talking
T 1434480541 20<LinkTheProgramer>30 wow you are worse than lex manos on espernet #mcp. At least I know I won't get banned without viable reason on #java at espernet!
T 1434480568 18<cheeser> the more you badger me here, the longer the ban is going to last. leave. me. alone.
T 1434480632 20<LinkTheProgramer>30 ban me here as long as you want power abuser. I'm never coming back to ##java because I'll never need help with generics again which was the only basic java language feature I didn't understand. Jerk.
* end query cheeser
*end of log
Comments