• cheeser
  • ernimril
  • joed
  • kinabalu
  • lunk
  • ojacobson
  • r0bby
  • ThaDon
  • ricky_clarkson
  • topriddy

« 2018-08-15


2018-08-17 »

Nick Message Date
nullcone_ [nullcone_!uid11626@gateway/web/] has joined ##java [12:12]
jiwang [jiwang!~jiwang@2001:d08:1829:d5fd:6a5d:43ff:fe2f:17c3] has joined ##java [12:20]
djhworld [djhworld!~djhworld@] has joined ##java [12:34]
Technodrome [Technodrome!~textual@unaffiliated/technodrome] has joined ##java [12:50]
bytespirit [bytespirit!~bytespiri@2001:7e8:c9b3:ba00:e9d2:2915:7f:d4e9] has joined ##java [12:52]
guwop [guwop!] has joined ##java [12:52]
ratanparai [ratanparai!~Thunderbi@unaffiliated/ratanparai] has joined ##java [12:52]
Jantz [Jantz!] has joined ##java [12:56]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [12:57]
duckpupp- [duckpupp-!] has joined ##java [01:05]
graphene [graphene!~graphene@] has joined ##java [01:05]
ChaiTRex [ChaiTRex!~ChaiTRex@gateway/tor-sasl/chaitrex] has joined ##java [01:12]
sauvin [sauvin!sauvin@about/linux/staff/sauvin] has joined ##java [01:17]
led_ir22 [led_ir22!] has joined ##java [01:17]
AMcBain [AMcBain!] has joined ##java [01:19]
BShaftoe12349 [BShaftoe12349!~blahlblah@2605:e000:1520:429b:6d30:6e6f:7d23:a593] has joined ##java [01:22]
ogradyd [ogradyd!] has joined ##java [01:22]
mitch0 [mitch0!] has joined ##java [01:22]
Rashad [Rashad!~Rashad@] has joined ##java [01:34]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [01:42]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [01:45]
Kol [Kol!] has joined ##java [01:46]
upgrdman [upgrdman!~upgrdman@blender/artist/upgrdman] has joined ##java [01:48]
tterrag [tterrag!] has joined ##java [01:51]
bomb [bomb!bomb@gateway/vpn/privateinternetaccess/bomb] has joined ##java [01:52]
tuskkk___ [tuskkk___!uid18470@gateway/web/] has joined ##java [01:54]
dangertools [dangertools!] has joined ##java [01:55]
acidjnk [acidjnk!] has joined ##java [01:55]
tterrag parted the channel: [01:55]
Technodrome [Technodrome!~textual@unaffiliated/technodrome] has joined ##java [02:03]
rmanak [rmanak!~rmanak@] has joined ##java [02:05]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [02:10]
AnSh [AnSh!~LovelyGuy@] has joined ##java [02:12]
highclasshole [highclasshole!~highclass@fsf/member/highclasshole] has joined ##java [02:13]
paddyez [paddyez!~paddyez__@wikipedia/paddyez] has joined ##java [02:13]
AnSh [AnSh!~LovelyGuy@] has joined ##java [02:14]
immibis [immibis!] has joined ##java [02:21]
fearless_man [fearless_man!~ghost@] has joined ##java [02:21]
fearless_man parted the channel: [02:22]
AnujSharma [AnujSharma!~LovelyGuy@] has joined ##java [02:25]
ArcherL [ArcherL!~ArcherL@unaffiliated/archerl] has joined ##java [02:28]
G3nka1 [G3nka1!~hubatrix@unaffiliated/hubatrix] has joined ##java [02:31]
coalado [coalado!~Thomas@unaffiliated/coalado] has joined ##java [02:37]
bsaboia [bsaboia!] has joined ##java [02:38]
andai [andai!andai@gateway/vpn/privateinternetaccess/andai] has joined ##java [02:47]
ZetFury [ZetFury!~ZetFury@unaffiliated/zetfury] has joined ##java [02:49]
andai parted the channel: [02:50]
rajrajraj [rajrajraj!uid72176@gateway/web/] has joined ##java [02:54]
rajrajraj This piece of code is able to remove padding from the plaintext, can anyone point me to what algorithm is being used for doing so? I need to achieve the same thing in libssl [02:56]
wiking [wiking!~wiking@huwico/staff/wiking] has joined ##java [02:57]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [03:06]
sebastianlutter [sebastianlutter!] has joined ##java [03:07]
nebulae [nebulae!~nebulae@2a02:587:a0e:9e00:8d16:7cf2:ce44:6a65] has joined ##java [03:09]
yawkat pkcs5 [03:09]
dmk [dmk!] has joined ##java [03:10]
rajrajraj yawkat: the algo [03:10]
rajrajraj Not some word [03:11]
yawkat yes [03:11]
rajrajraj The exact algo which is used to remove padding [03:11]
yawkat the algorithm is called pkcs#5 padding [03:11]
rajrajraj ( [03:11]
rajrajraj Ok [03:11]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [03:12]
bolovanos [bolovanos!~bolovanos@] has joined ##java [03:12]
Dementati [Dementati!] has joined ##java [03:13]
forgottenone [forgottenone!~forgotten@] has joined ##java [03:18]
rvgate [rvgate!uid308852@gateway/web/] has joined ##java [03:25]
Dementati [Dementati!] has joined ##java [03:28]
Dementati [Dementati!] has joined ##java [03:30]
Dementati parted the channel: [03:30]
Dementati [Dementati!] has joined ##java [03:31]
Dementati parted the channel: [03:31]
Dementati [Dementati!] has joined ##java [03:31]
Dementati parted the channel: [03:31]
Dementati [Dementati!] has joined ##java [03:39]
BeerLover [BeerLover!~BeerBuddy@] has joined ##java [03:40]
Eduard_Munteanu [Eduard_Munteanu!~Eduard_Mu@] has joined ##java [03:46]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:47]
shirafuno [shirafuno!~shirafuno@] has joined ##java [03:59]
[twisti] poor rajrajraj, even when he finds someone with the mercy to help him with his inept bumbling, hes too dumb to realize hes being given help [03:59]
led_ir22 [led_ir22!] has joined ##java [04:02]
waterCreature [waterCreature!~waterCrea@] has joined ##java [04:05]
eivindr [eivindr!] has joined ##java [04:08]
grumble [grumble!~grumble@freenode/staff/grumble] has joined ##java [04:10]
Borw3 [Borw3!69150022@gateway/web/freenode/ip.] has joined ##java [04:15]
Squarism [Squarism!~someone@] has joined ##java [04:18]
Alina-malina [Alina-malina!~Alina-mal@unaffiliated/alina-malina] has joined ##java [04:19]
dmk [dmk!] has joined ##java [04:21]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [04:25]
gurmble [gurmble!~grumble@freenode/staff/grumble] has joined ##java [04:31]
rajrajraj yawkat: got it thanks :) [04:35]
rajrajraj i didnt know it was that simple [04:35]
befuddled [befuddled!~befuddled@] has joined ##java [04:37]
BeerLover [BeerLover!~BeerBuddy@] has joined ##java [04:39]
G3nka1 Won't Files.list() close the opened file descriptors? [04:46]
Maldivia G3nka1: not in a timely fashion [04:46]
G3nka1 why was it designed that way? [04:47]
ExtraCrispy [ExtraCrispy!~ExtraCris@] has joined ##java [04:47]
Maldivia G3nka1: try (Stream<Path> stream = Files.list(dir)) { stream.doSomething(); } [04:47]
Maldivia G3nka1: use try-with-resources [04:47]
Maldivia G3nka1: because how else can it be designed? [04:47]
Maldivia G3nka1: you're opening a resource (a dir), meaning you should close it as well when you're done with it [04:48]
Maldivia G3nka1: and the javadoc for Files.list(Path) even tells you so [04:49]
Hanii [Hanii!~Hanii@2a00:23c4:484:d100:2462:2689:89f2:47] has joined ##java [04:58]
schu-r [schu-r!] has joined ##java [05:01]
G3nka1 Yes Maldivia I did not read the java doc and asumed it will close, and on scale I ran out of file descriptors to work with [05:11]
Maldivia G3nka1: been there, done that -- best way to learn to try-with-resources on the Stream :D [05:12]
G3nka1 yea :/ good that we found this internally before shipping to customers [05:13]
ernimril it is a bit bad that File.list(*) is a safe operation and Files.list is not. Makes it easy for people to make mistakes [05:13]
G3nka1 yu[ ernimril [05:13]
G3nka1 *yup [05:13]
Maldivia ernimril: they are completely different though [05:16]
ernimril yes, but if you are migrating from File to Path it is one of the things you may happen to stumble upon [05:16]
Maldivia ernimril: File.list returns an array, meaning it has to iterate over all entries in the dir before returning; Files.list is lazy, it returns a Stream [05:16]
Maldivia sure, if they implemented the underlying code to be eager, and load everything into a List, and simply had list() return, then you can close right away [05:18]
ernimril I am not arguing for them to change, I understand why Files.list work the way it does. [05:18]
zulutango [zulutango!] has joined ##java [05:18]
yawkat the thing i dont get is why terminal stream ops dont close the stream [05:20]
ernimril many iterate directories to find one file that matches and never finish the stream [05:21]
yawkat there is always a terminal operation though [05:21]
bytespirit [bytespirit!~bytespiri@2001:7e8:c9b3:ba00:8454:e147:4db4:82fb] has joined ##java [05:25]
amelliaa [amelliaa!~amelliaa@] has joined ##java [05:38]
pcallycat [pcallycat!] has joined ##java [05:52]
whaley [whaley!uid13429@gateway/web/] has joined ##java [05:53]
Xatenev [Xatenev!] has joined ##java [05:58]
Xatenev hello, just starting to use the debugger in intellij.. I want to iterate the jsonarray inside [05:58]
Xatenev Xatenev's title: "Screenshot - 8b1176bcca0bd63c0391cee8cb5d0c11 - Gyazo" [05:58]
Xatenev im a bit confused at the actual structure when looking at this... [05:58]
Xatenev is that a jsonobject that contains a hashmap that contains a jsonarray? [05:59]
fedorafan [fedorafan!~fedorafan@unaffiliated/fedorafan] has joined ##java [05:59]
bytespirit [bytespirit!~bytespiri@2001:7e8:c9b3:ba00:8454:e147:4db4:82fb] has joined ##java [06:00]
whaley Xatenev: looks like it [06:00]
Xatenev whaley, okay [06:00]
Xatenev whaley, so would I need something like obj.get("map").get("data")? [06:01]
Xatenev and then for loop with .getJSONObject(i) [06:01]
matsurago [matsurago!] has joined ##java [06:01]
liste Xatenev: no [06:01]
liste Xatenev: see the .toString()s there [06:02]
liste just obj.get("data") [06:02]
Xatenev but why [06:02]
Xatenev I dont understande the debugger output [06:02]
liste "map" is just an internal implementation detail of JSONObject [06:02]
Xatenev oh [06:02]
liste class JSONObject { private HashMap map; ... } [06:02]
Xatenev okay [06:03]
Xatenev liste, so with .get("data") i should get a JSONArray back, or not? [06:03]
Xatenev it seems I don't since my IDE marks that [06:03]
Xatenev incompatible types: required jsonarray found: java.lang.Object [06:03]
liste you need to cast [06:03]
whaley Xatenev: debuggers show you 1) the stack of the current thread 2) *ALL* of the fields of all objects and all primitives on the stack. Basically, you are seeing the internal state (and implementation of that JSONObject. In order to actually use that JSONObject, you should be calling methods on it [06:03]
liste org.json [06:04]
liste JSON parsing can be done with Jackson ( ). Do not use org.json; it sucks. You can ask me about exotic options that aren't recommended via ~exotic json parsing. [06:04]
G3nka1 true yawkat I thought a terminal will close it at the end atleast [06:04]
liste Xatenev: org.json is not type safe, so you need to cast the Object to the actual type of the object [06:04]
liste JSONArray arr = (JSONArray)obj.get("data"); [06:04]
Xatenev liste, this is annoying [06:04]
whaley and yes, use something else besides org.json if you can help it. It is, as you've just discovered, a very simple API over the top of Maps and Lists [06:04]
Xatenev lol [06:04]
whaley anything after 2010 that requires that amount of casting needs to be abandoned [06:05]
wreed [wreed!~wreed@] has joined ##java [06:09]
Regon [Regon!~Regon@unaffiliated/regon] has joined ##java [06:12]
Jaca778 [Jaca778!a428f2d4@gateway/web/freenode/ip.] has joined ##java [06:13]
Jaca778 Hi [06:13]
Jaca778 Is there a way to print current insn bytecode using jdb? [06:14]
yawkat jdb [06:16]
yawkat JDB is a console-based debugger for Java that's only slightly worse than gdb. Don't use it. Using it is like voluntarily rolling around naked on a floor covered with thumbtacks and about 2cm of grain alcohol, but slightly less pleasant. [06:16]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [06:17]
Jaca778 I'm debugging runtime-generated code [06:17]
Jaca778 And it's pretty messy, just wanted to find the answer :x [06:17]
Jaca778 IntelliJ debugger won't do [06:18]
matsurago often there is an easier way then debugging. For example, creating a sequence of small tests to reintroduce the problem in well-understood context [06:19]
wreed [wreed!~wreed@] has joined ##java [06:25]
Maldivia Jaca778: java debugging works on line level, not bytecode level [06:25]
Maldivia Jaca778: so generate line numbers in your generated class, makes it a lot easier:) [06:26]
paddyez is funny ;-) [06:35]
paddyez no, you are! [06:35]
BeerLover [BeerLover!~BeerBuddy@] has joined ##java [06:38]
nolfie [nolfie!] has joined ##java [06:38]
ansyeb [ansyeb!~ansyeb@] has joined ##java [06:40]
ansyeb hello. what is usually meant by "native query" in java? [06:41]
coolcustomer [coolcustomer!~coolcusty@unaffiliated/coolcusty] has joined ##java [06:41]
liste ansyeb: a SQL instead of JPA query [06:42]
[twisti] ansyeb: if its in reference to a database, it usually means raw SQL instead of JPA or another abstraction [06:42]
ansyeb so like "SQL-notation wrapped by hibernate" == 'native-query'? [06:42]
botho [botho!~botho@] has joined ##java [06:43]
dmk [dmk!] has joined ##java [06:44]
liste ansyeb: a native query is one created with .createNativeQuery() [06:46]
ansyeb kk) [06:46]
whaley native is not the best choice of wording there. naming things is hard! [06:49]
wreed [wreed!~wreed@] has joined ##java [06:50]
jiwang [jiwang!~jiwang@] has joined ##java [06:51]
[twisti] whaley: why not ? its native SQL [06:54]
whaley [twisti]: "native" is an overloaded term in java. I think binding to native code already squatted that term. I would have used "raw" or "literal", personally speaking. [06:57]
dreamreal morning [06:58]
botho [botho!~botho@] has joined ##java [06:58]
surial dreamreal: morning [06:59]
surial whaley: .createQueryWrittenInOriginalSqlSentStraightToTheDatabaseItsNotHqlOrJpaOrWhatever(); [06:59]
surial you have 255 characters, you know. [07:00]
botho [botho!~botho@] has joined ##java [07:00]
dreamreal surial: looks like spring data! [07:00]
[twisti] whaley: i feel like 'native' can be a blanket term for this kind of step down from the abstract layer, which works both for native code and native queries [07:00]
codecutter [codecutter!5e774015@gateway/web/freenode/ip.] has joined ##java [07:01]
codecutter anyone know how to switch java versions in mac? [07:02]
whaley surial: that is actually some shit I would write [07:02]
codecutter i need to downgrade to java 8 [07:02]
surial codecutter: you're fucked. [07:02]
surial codecutter: it's not possible. [07:02]
codecutter i have 2 versions installed [07:02]
shafox [shafox!uid28637@gateway/web/] has joined ##java [07:02]
codecutter 10 and just installed 8 [07:02]
surial codecutter: I know. I'm being serious. [07:03]
surial I've spent like an hour trying. THere's no easy way. [07:03]
surial export JAVA_HOME=`/usr/libexec/java_home -v1.` is step one. [07:03]
surial er, -v1.8. [07:03]
dreamreal codecutter: err... what have you tried? [07:03]
whaley I've been using for this sort of thing lately [07:03]
whaley whaley's title: "GitHub - asdf-vm/asdf: Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more" [07:03]
codecutter nothing yet [07:03]
whaley there's a couple of java specific ones too, we have a factoid for it, but I can't remember the name [07:04]
surial codecutter: you can't mess with /usr/bin at all, not even as root, and they point to the system VM which you can't mess with either. I have no idea how the oracle VM is even capable of updating these; possibly something signed by apple. [07:04]
codecutter i recall i had to install both versions myself [07:04]
surial codecutter: My solution is a bash script that softlinks all the relevant executables into /usr/local/bin which has precedence in my shell path, and, set JAVA_HOME which tends to result in ant, maven, gradle etc to use the JAVA_HOME one and not /usr/bin/java [07:04]
surial codecutter: I can pastebin these scripts if you prefer. [07:04]
srm [srm!~srm@unaffiliated/srm] has joined ##java [07:05]
dreamreal os x java version [07:05]
dreamreal To adjust the version of java you're using on OS X, add this to your .profile: export JAVA_HOME=`/usr/libexec/java_home -v 1.7` Adjust for your desired version and then add JAVA_HOME/bin to your PATH [07:05]
codecutter go [07:05]
surial note that /usr/libexec/java_home is a tool that can tell you which java versions are installed and where they live, but you can't use it to change what /usr/bin/java points to. [07:05]
kaiserA [kaiserA!] has joined ##java [07:05]
dreamreal no, os x java version is <reply>To adjust the version of java you're using on OS X, add this to your .profile: export JAVA_HOME=`/usr/libexec/java_home -v 10` Adjust for your desired version and then add JAVA_HOME/bin to your PATH [07:05]
dreamreal OK, dreamreal. [07:05]
dreamreal osx java version is <see>os x java version [07:06]
dreamreal OK, dreamreal. [07:06]
surial codecutter: [07:06]
codecutter dreamreal i'll try that [07:06]
surial codecutter: then in my fish config, 'j8' runs that. [07:06]
surial I guess adding JAVA_HOME/bin to your PATH is another option, but, note, you'd have to add it _BEFORE_ all other things. [07:06]
surial /usr/bin/java is NOT what you want. [07:06]
surial no, os x java version is <reply>To adjust java version on mac, add to your .profile: export JAVA_HOME=`/usr/libexec/java_home -v 10` adjusting your desired version. Then, add JAVA_HOME/bin to the _beginning_ of your shell PATH. [07:07]
surial OK, surial. [07:07]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [07:07]
codecutter surial: just upgrade my mbp. I had to install both versions myself. mbp didn't come any java so it can't be what you suggest. [07:07]
codecutter upgraded* [07:07]
surial feels a little stupid for not just adding $JH/bin to the shell path, opting instead to ln -s all the executables into /usr/local/bin [07:08]
surial codecutter: why can't it be what I suggest? [07:08]
surial codecutter: you have to manually install the javas, but they still use the non-writable system directory structures as laid out by apple. I'm looking right at em. [07:08]
codecutter because i apple didn't preinstall java during shipment, which means we get to pickj the version to install? [07:09]
codecutter i se [07:09]
codecutter see* [07:09]
codecutter 'non-writable system directory structures as laid out by apple' how does that relate to the versions? [07:10]
surial codecutter: it relates in that the oracle java installers for mac can write to these structures and you cannot [07:11]
surial codecutter: but, now that you mention it, I left out ac rucial bit (well, I forgot). [07:11]
surial Part of the reason I've set things up the way I have is that I want to run openjdk alpha builds. i.e. java builds that do NOT arrive on my mac by way of an official oracle installer. [07:12]
TomyWork [TomyWork!~tomy@] has joined ##java [07:12]
surial but, looking at the options now, nothing changes: The java control panel widget thingie does not let you swap versions either. As far as I can tell, it is impossible to update what /usr/bin/java points at, other than by running oracle installers. [07:14]
dreamreal hands surial sudo [07:14]
surial dreamreal: it's a mac, doofus. [07:14]
dreamreal and it still has sudo [07:15]
surial it absolutely does. [07:15]
dreamreal and root still wins [07:15]
surial It also has directories which you CANNOT WRITE TO. Not even with sudo. [07:15]
surial root does NOT win. [07:15]
shafox in spark, how do I convert from this example: rdd1 = (1, {a,b}), (2, {c,d}); rdd2 = (1, {x}), (2, {y}); resultrdd= (1, {a,b,x}), (2, {c,d,y}) ? [07:15]
dreamreal hrm [07:15]
dreamreal shrugs [07:15]
surial you can take the safety wheels off by rebooting into safe mode and doing some magic voodoo. But I prefer the safety wheels. [07:15]
TomyWork i'm trying to extract a thread dump from a heap dump, (ostensibly) taken with jmap. i tried obadiah, it errors out with an NPE while trying to find stack traces for a thread. if i patch it to ignore null entries, it becomes clear that all threads are affected by this, so I don't think I can use that tool for that purpose. jstack cannot only work with processes and coredumps, not heap dumps. any idea what else I can try? [07:16]
surial only apple signed executables can do it and they presumably try to manage those carefully. [07:16]
TomyWork the process is long gone, btw [07:16]
surial TomyWork: do heap dumps even include thread dumps? [07:16]
TomyWork surial well obadiah claims to be able to extract them :) [07:16]
TomyWork so i guess they at least used to? [07:16]
dangertools [dangertools!] has joined ##java [07:17]
TomyWork it can at least get a valid thread list from the heap dump [07:17]
TomyWork MAT's manual claims it can walk call stacks, but it also gets an NPE while parsing [07:20]
TomyWork [07:23]
surial TomyWork: My vague recollection was that they are different things, but that'd mean the docs of obadiah are rather bizarre then. Okay, carry on ??? I have no idea then. [07:27]
TomyWork visual vm loads it, but all i can find is a way to list threads, akin to what my patched obadiah can do, no stack traces [07:29]
qwedfg [qwedfg!~adam@] has joined ##java [07:34]
Nicmavr [Nicmavr!~Nicmavr@unaffiliated/nicmavr] has joined ##java [07:34]
TomyWork dreamreal even on linux, you can have a process with euid root that still can't do shit. that's basically what docker. [07:35]
TomyWork +does [07:35]
dreamreal TomyWork: *nod* fair enough [07:38]
DTZUZO [DTZUZO!] has joined ##java [07:38]
dreamreal TomyWork: I'm old, and I've wrecked linux by doing stupid sudo things before; I remember having absolute power. If they constrained that, good - but unless I ran across it myself somehow, I wouldn't necessarily know, but I'd remember stripping glibc at runtime and stuff like THAT, things that would be harder to do today, I'd hope [07:39]
surial dreamreal: It's one of many layers of security, to prevent both viruses and dumb-as-fuck tools written by morons that publically state you have to run 'sudo bash < curl', and then in the installer run rm -r $VARNAME, and then with one bug you wipe your disk. *cough* npm *cough*. [07:40]
surial It's a little annoying in how hard it is to turn that off, but then, if it hadn't been, presumably the npm boys and such would just advise that instead. [07:40]
surial I do prefer the notion that you CAN turn it off if you must. [07:40]
TomyWork dreamreal well, the default is still that root wins, yeah [07:41]
TomyWork but i've had fairly standard situations, even without docker, but usually involving remote mounts, where root did not win [07:43]
TomyWork in fact, one former customer had a funky mount that could access as a certain user, but not as root. that was weird as hell [07:43]
TomyWork s/could/you &/ [07:45]
TomyWork and no, you can still nuke your libc if you want :) [07:46]
TomyWork that rm process then has the distinction of being the last process to be launched on that particular system [07:46]
TomyWork unless you happen to have a backup and know enough bash fu to restore it without involving external tools [07:47]
ArcherL [ArcherL!uid315858@gateway/web/] has joined ##java [07:47]
mitch0 [mitch0!] has joined ##java [07:47]
Archer_L [Archer_L!~ArcherL@unaffiliated/archerl] has joined ##java [07:51]
dmk [dmk!] has joined ##java [07:58]
BeerLover [BeerLover!~BeerBuddy@] has joined ##java [08:01]
p[a]ddy [p[a]ddy!~paddyez_@wikipedia/paddyez] has joined ##java [08:03]
hxclurk [hxclurk!~user@] has joined ##java [08:06]