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

« 2019-01-21


2019-01-23 »

Nick Message Date
mr_lou [mr_lou!] has joined ##java [12:03]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [12:28]
immibis [immibis!] has joined ##java [12:31]
bugzy_on_busy1 [bugzy_on_busy1!~Thunderbi@] has joined ##java [12:34]
upgrdman_ [upgrdman_!~upgrdman@blender/artist/upgrdman] has joined ##java [12:47]
t2mkn [t2mkn!~t2mkn@] has joined ##java [12:55]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [12:58]
stoffus [stoffus!] has joined ##java [01:03]
Xiti [Xiti!~Xiti-@unaffiliated/xiti] has joined ##java [01:19]
null1337 [null1337!~WhoAmI@] has joined ##java [01:47]
null1337 [null1337!] has joined ##java [01:56]
cda_ [cda_!~cda@] has joined ##java [02:04]
cda_ parted the channel: "Leaving" [02:04]
cda_ [cda_!] has joined ##java [02:07]
cda_ hi [02:07]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::f4f] has joined ##java [02:08]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [02:09]
OnceMe [OnceMe!~OnceMe@unaffiliated/onceme] has joined ##java [02:14]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [02:26]
Tichodroma [Tichodroma!~lutz@fsf/member/Tichodroma] has joined ##java [02:35]
thebope [thebope!~thebope@pdpc/supporter/student/thebope] has joined ##java [02:38]
leibniz [leibniz!] has joined ##java [02:41]
rtjure [rtjure!~rtjure@] has joined ##java [02:44]
Anthaas [Anthaas!~Anthaas@unaffiliated/anthaas] has joined ##java [02:52]
computeiro [computeiro!~computeir@] has joined ##java [02:59]
upgrdman__ [upgrdman__!~upgrdman@blender/artist/upgrdman] has joined ##java [03:05]
mitch0 [mitch0!] has joined ##java [03:06]
SchleimKeim [SchleimKeim!~mma@unaffiliated/schleimkeim] has joined ##java [03:09]
Matthijs [Matthijs!~quassel@unaffiliated/matthijs] has joined ##java [03:09]
zulutango [zulutango!] has joined ##java [03:14]
sb35 [sb35!~sb35@] has joined ##java [03:15]
gabizou [gabizou!] has joined ##java [03:19]
mohsen_1 [mohsen_1!uid289573@gateway/web/] has joined ##java [03:26]
SuperTyp [SuperTyp!] has joined ##java [03:28]
elsheepo [elsheepo!~beatzz@240f:83:d77a:1:30da:7a:7876:1dca] has joined ##java [03:31]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:36]
zmoo [zmoo!~zmoo@2605:ad80:40:280:b14a:da55:c86c:2a61] has joined ##java [03:42]
vandaeld_ [vandaeld_!~ravenousm@] has joined ##java [03:45]
bnyio [bnyio!] has joined ##java [03:49]
ravenousmoose [ravenousmoose!~ravenousm@] has joined ##java [03:50]
vdamewood [vdamewood!~vdamewood@unaffiliated/vdamewood] has joined ##java [03:54]
paddyez [paddyez!~paddyez@wikipedia/paddyez] has joined ##java [03:56]
Matthijs [Matthijs!~quassel@unaffiliated/matthijs] has joined ##java [03:58]
palayoub [palayoub!~ayoub@] has joined ##java [04:01]
paddyez [paddyez!~paddyez@wikipedia/paddyez] has joined ##java [04:05]
nokdoot [nokdoot!~nokdoot@] has joined ##java [04:06]
w17t [w17t!~w17t@unaffiliated/w17t] has joined ##java [04:06]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [04:06]
toytoy [toytoy!~toytoy@unaffiliated/t0yt0y] has joined ##java [04:22]
rajrajraj [rajrajraj!uid72176@gateway/web/] has joined ##java [04:29]
cs02rm0 [cs02rm0!] has joined ##java [04:29]
devish [devish!345f4b00@gateway/web/freenode/ip.] has joined ##java [04:34]
ravenousmoose_ [ravenousmoose_!~ravenousm@] has joined ##java [04:35]
mona_x [mona_x!~mona_x@] has joined ##java [04:38]
adadelta [adadelta!~gulli@unaffiliated/gulli] has joined ##java [04:44]
Mimicize [Mimicize!~mime@unaffiliated/mimicize] has joined ##java [04:44]
deavmiLaptop [deavmiLaptop!~deavmi@] has joined ##java [04:46]
CAPITANOOO [CAPITANOOO!~CAPITANOO@] has joined ##java [04:58]
dendazen [dendazen!] has joined ##java [04:58]
blackntan [blackntan!~blackntan@unaffiliated/blackntan] has joined ##java [05:00]
Jan_Flanders [Jan_Flanders!] has joined ##java [05:00]
karoshii My refactoring plugin is telling me 'Tip: Write "Bicycle".equals(vehicleName) instead of vehicleName.equals("Bicycle")' <-- what difference does that make? [05:03]
odinsbane karoshii: what if vehicleName is null? [05:05]
karoshii odinsbane: ah - thx! [05:06]
yawkat imo it's bad advice [05:07]
Gazooo [Gazooo!~Gazooo@] has joined ##java [05:07]
yawkat rather fail early [05:07]
ravenousmoose_ [ravenousmoose_!~ravenousm@] has joined ##java [05:10]
SerialSmile [SerialSmile!~SerialSmi@] has joined ##java [05:14]
zulutango [zulutango!] has joined ##java [05:15]
Bombe Agreed. It?s a horrible solution to a problem that should not exist. [05:17]
deavmiLaptop [deavmiLaptop!~deavmi@] has joined ##java [05:18]
[twisti] Objects.equals("expected", string); [05:25]
noodlepie [noodlepie!] has joined ##java [05:26]
[twisti] for when null is a legal value and you dont want the retarded backwards syntax [05:27]
noodlepie [noodlepie!] has joined ##java [05:28]
tuskkk____ [tuskkk____!uid18470@gateway/web/] has joined ##java [05:30]
Jantz [Jantz!~IceChat9@2407:7000:8d04:100:eccc:67aa:ef8a:c557] has joined ##java [05:36]
Squarism anyone know how mssql is supported in java land=>Å=)=>== [05:38]
Squarism ? [05:38]
Squarism sorry for garbage ( new keyboard) [05:38]
yawkat theres a jdbc driver [05:39]
yawkat what more do you need? [05:39]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [05:41]
Squarism hibernate and liquibase [05:41]
rwheadon [rwheadon!~rwheadon@2600:1700:17a0:58ef:4560:5076:6fc2:7910] has joined ##java [05:42]
SuperTyp [SuperTyp!] has joined ##java [05:42]
Diablo-D3 Squarism: both of those rely on jdbc [05:45]
CAPITANOOO [CAPITANOOO!~CAPITANOO@] has joined ##java [05:46]
Diablo-D3 and ms themselves wrote their jdbc driver [05:46]
maxhawaii [maxhawaii!5e12da7c@gateway/web/freenode/ip.] has joined ##java [05:52]
yawkat Diablo-D3: both depend on dialect support, though. [05:53]
yawkat but this is easily googleable anyway [05:53]
Diablo-D3 yup, easily googleable [05:54]
maxhawaii Hi! Any tips on how to debug a JVM crash due to a third party library (GLFW through LWJGL) raising a EXC_BAD_ACCESS? [05:55]
maxhawaii I'm running Java(TM) SE Runtime Environment 18.9 (build 11.0.1+13-LTS) on macOS mojave [05:56]
yawkat a debugger? [05:57]
maxhawaii a java debugger? [05:58]
Diablo-D3 when you asked the lwjgl guys, what did they say? [05:58]
yawkat no, a normal debugger [05:58]
yawkat gdb or something [05:59]
maxhawaii Diablo-D3: nothing, i'm afraid [05:59]
Diablo-D3 well, small hint, Ive used lwjgl before, the only time it does that is if the C you actually called underneath segfaulted. [05:59]
Diablo-D3 and making opengl segfault is alarmingly easy [05:59]
maxhawaii Diablo-D3: yeah, exactly [06:00]
yawkat lwjgl segfaults when it segfaults! [06:00]
maxhawaii the thing is [06:00]
sonOfRa Did you write any native code (obj-c specifically), or did you exclusively write java code? [06:00]
maxhawaii my applications runs about 7 minutes [06:00]
maxhawaii and then it crashes [06:00]
Diablo-D3 sonOfRa: thats what ljwgl does, its just a wrapper for C apis. [06:00]
maxhawaii i'm guessing that the GC clears something that the GLFW needs [06:01]
maxhawaii but i can't figure out what [06:01]
Diablo-D3 its ridiculously easy to shoot yourself in the foot with it [06:01]
yawkat maxhawaii: thats not how jni works [06:01]
yawkat if gc and jni break each other you have MUCH bigger problems [06:01]
yawkat jni does not usually operate on gc-managed memory [06:01]
maxhawaii hmm [06:01]
maxhawaii i found a forum post where they talked about something like that, though... it was related to callbacks [06:02]
yawkat either way, a debugger can tell you more. [06:02]
maxhawaii how would i go about debugging the 3rd party lib? [06:04]
maxhawaii i mean, how would i attach an instance of gdb to it? [06:04]
enoq [enoq!] has joined ##java [06:04]
sonOfRa [sonOfRa!sonOfRa@unaffiliated/sonofra] has joined ##java [06:07]
maxhawaii hmm okay i've actually found the .dylib inside one of my lib jars... [06:07]
maxhawaii i'll see if i can attach a debugger to it [06:07]
maxhawaii however i doubt it was compiled with any sensible debugging symbols [06:07]
Diablo-D3 most of the symbols arent even part of that lib [06:08]
Diablo-D3 they're part of opengl/opencl/whatever api you're calling [06:09]
Diablo-D3 and debugging opengl on a mac is an absolute trainwreck, apple has a very lengthy history of just ignoring what everyone else does and ignoring the advice of their vendors [06:09]
noodlepie [noodlepie!] has joined ##java [06:09]
Diablo-D3 Ive had to deal with that personally, and I just gave up on osx as a platform for such things as a result, it just isnt worth it [06:10]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [06:11]
Diablo-D3 literally, code that'd work on windows intel, amd, and nvidia; multiple mesa drivers, fglrx, and nvidia binary, but segfaulted in weird ways on osx, and it wasnt a fault in lwjgl being weird about osx. [06:11]
Diablo-D3 and then after much googling, I'd find out something stupid like, apple says they support some common extension, but trying to call the functions for it causes segfaults [06:12]
Diablo-D3 and the bug has been open on apple's internal bug tracker for years, but its no one's job to fix it, apparently [06:12]
Diablo-D3 I mean, I hate to tell you that, but its useful to know just in case [06:13]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [06:17]
Xe4roX [Xe4roX!~Xe4roX@unaffiliated/xe4rox] has joined ##java [06:22]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [06:23]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [06:25]
noodlepie [noodlepie!] has joined ##java [06:25]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [06:29]
maxhawaii [maxhawaii!5e12da7c@gateway/web/freenode/ip.] has joined ##java [06:34]
maxhawaii Thanks for the input, Diablo-D3 [06:34]
maxhawaii I'm unable to change hardware now, so I gotta make it work with what I've got though [06:35]
SuperTyp [SuperTyp!] has joined ##java [06:40]
rook0 [rook0!~lol@unaffiliated/rook0] has joined ##java [06:40]
conan [conan!~conan@] has joined ##java [06:51]
t2mkn [t2mkn!~t2mkn@] has joined ##java [06:57]
Pip_ [Pip_!~Pip@unaffiliated/pip] has joined ##java [07:00]
iLoop [iLoop!~iLoop@unaffiliated/iloop] has joined ##java [07:06]
SuperTyp [SuperTyp!] has joined ##java [07:22]
SuperTyp [SuperTyp!] has joined ##java [07:23]
bunny3 [bunny3!~bunny3@unaffiliated/bunny3] has joined ##java [07:29]
bunny3 okay to init a var with a function in a class instead of in the constructor? class c { String s = randomhash(); } ? [07:30]
Addax did you try it? [07:30]
bunny3 yes, but is there a reason not to do so? [07:32]
Addax not really, except stylistically (and it's a local convention for that) [07:32]
Addax why do you ask? [07:34]
Addax If it's something you're worried about, why not use the constructor? [07:34]
toffe [toffe!~toffe@] has joined ##java [07:37]
hussam [hussam!uid193284@gateway/web/] has joined ##java [07:41]
toffe parted the channel: [07:42]
Xatenev [Xatenev!~I@] has joined ##java [07:42]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [07:47]
Xatenev parted the channel: "Leaving" [07:50]
adder` [adder`!~adder@gateway/tor-sasl/adder] has joined ##java [07:53]
headcr4sh [headcr4sh!] has joined ##java [08:06]
TooLmaN parted the channel: "Leaving" [08:11]
tuskkk____ [tuskkk____!uid18470@gateway/web/] has joined ##java [08:11]
Suchorski [Suchorski!~regex@unaffiliated/suchorski] has joined ##java [08:15]
stryek [stryek!uid332574@gateway/web/] has joined ##java [08:29]
Vurtatoo [Vurtatoo!~Vurtatoo@] has joined ##java [08:34]
Zee- [Zee-!~Zee-@] has joined ##java [08:38]
gbobby [gbobby!~raltnoede@LINBIT/gbobby] has joined ##java [08:42]
rtjure [rtjure!~rtjure@] has joined ##java [08:45]
surial bunny3: if the function (in java land, we call those 'methods') is static, it's definitely no problem. If not static, eeeeh, some stylistic issues with that, i'd steer clear. [08:51]
jamezp [jamezp!~jamezp@redhat/jboss/jamezp] has joined ##java [08:57]
nikivi parted the channel: [09:02]
MatheusOl [MatheusOl!~MatheusOl@unaffiliated/matheusol] has joined ##java [09:05]
odinsbane How would I declare a Runnable from nashorn? Eg. I have a method foo.submit(Runnable r); [09:10]
cheeser nashorn is dead [09:11]
cheeser pours out a Forty [09:11]
odinsbane It's so nice to be able to expose a complete application so easily. [09:11]
freeone3000 It just needs a maintainer. [09:15]
cheeser i thought they were deprecating it in favor of graal/truffle [09:18]
t2mkn [t2mkn!~t2mkn@] has joined ##java [09:20]
odinsbane mm, java and truffle sounds delicious. [09:21]
kasper^ [kasper^!~safaf@] has joined ##java [09:22]
sbalmos You can almost read "graal" as "gruel" [09:23]
sbalmos mmm... truffle gruel. The decadent porridge for the plebians [09:23]
thinkpad [thinkpad!~thinkpad@] has joined ##java [09:32]
Anthaas [Anthaas!~Anthaas@unaffiliated/anthaas] has joined ##java [09:33]
odinsbane Cool, I can just throw out function(){...} and it "works". [09:33]
odinsbane #saverhinocerosnamedscriptengines [09:35]
Dojka [Dojka!] has joined ##java [09:42]
Dojka anyone here know anything about java servlets? [09:43]
Addax yes. [09:45]
sbalmos they're little servers [09:46]
cheeser anyone [09:49]
cheeser Dojka, Chances are someone has, so why not just ask your question and save some time? If someone knows the answer and wants/has time to help, perhaps they will. [09:49]
conan [conan!~conan@] has joined ##java [09:50]
freeone3000 maxhawaii: you'd attach gdb to java itself. [09:51]
deavmiLaptop [deavmiLaptop!~deavmi@] has joined ##java [09:51]
freeone3000 maxhawaii: In actual practice, you'd rig up a separate test harness to the C++ code, and the Java code as an integration, and extensively review the JNI bits. [09:52]
Jigsy` [Jigsy`!~Jigsy@unaffiliated/jigsy] has joined ##java [09:53]
freeone3000 Now, if you still have symbols exported, you can probably pry off the JNI bits of the lib and invoke it directly if you know your disassembly... but that may be a bit beyond what I can address in-channel. [09:53]
thinkpad [thinkpad!] has joined ##java [09:56]
Rovanion [Rovanion!] has joined ##java [09:58]
rippa [rippa!] has joined ##java [09:59]
cheeser Rovanion: hej hej! [09:59]
Rovanion cheeser: Hi there. [09:59]
Rovanion cheeser: Eller va? [09:59]
conan [conan!~conan@] has joined ##java [10:00]
cheeser Jag pratar lite svenska och inte så bra som jag skulle vilja [10:00]
cheeser men jag försöker :D [10:01]
Rovanion Hi! I'm trying to hammer my filesystem as hard as I can. Using java.nio I'm mmaping files into memory and then throwing them away, and I'm using futures to do this concurrently. The problem I'm hitting right now is a OutOfMemory exception when java tries to create new native threads. This is when I reach above 8k threads. It's probably not the heap that's blown since I've given the java process -Xmx 500g. It [10:02]
Rovanion shouldn't be the limit on the number of processes a Linux user is allowed to have since that is set to 2M. The thread limit is likewise set sky high. [10:03]
Rovanion Based on some random information I read on the internet I also tried setting -Xss1G but that didn't help the situation. I thought that would increase the native stack size that the JVM uses to allocate threads. [10:04]
_genuser_ hello folks. Should custom exceptions extend Throwable or Exception? [10:04]
gbobby probably shouldn't make that many threads [10:04]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [10:04]
_genuser_ I have a custom exception that was auto-generated by IDE and it extends Throwable [10:04]
gbobby most exceptions should probably extend Exception or RuntimeException [10:04]
mohsen_1 _genuser_: They're usually eextended from Exception, at least any case I've ever seen [10:04]
_genuser_ mohsen_1: thanks. [10:05]
_genuser_ gbobby: thanks. I'll change it. [10:05]
mitch0 Rovanion: -Xss1G is the opposite of what you need if you want a lot of threads [10:05]
mohsen_1 exceptions [10:05]
mohsen_1 _genuser_, exceptions are a mechanism to return from a method indicating something extra-ordinary has occurred. They are used to handle errors of all sorts. Read all about it: and at the tutorial [10:05]
Rovanion gbobby: In normal circumstances I'd definitely agree. But given that this is a benchmark, made to break necks. [10:05]
thinkpad [thinkpad!] has joined ##java [10:05]
mitch0 Rovanion: try -Xss320K or somesuch [10:06]
Rovanion mitch0: It increases the max size of stacks of the Java threads stacks? [10:06]
gbobby I thought you were going to test the filesystem, but I guess you are rather testing the scheduler right now [10:06]
mitch0 it's the per-thread stack size [10:06]
Maldivia cheeser: jeg kan da skrive til dig på dansk, og du svarer på svensk, hvis du har lyst ? :D [10:07]
_genuser_ thanks will read the links further. is it best practice to catch specific exception on if you wish to respond to that scenario and just have a general catch for Exception that acts as a blanket catch? [10:07]
qrestlove [qrestlove!~qrestlove@2605:6000:eb4a:ef00:a957:b4a3:e749:f719] has joined ##java [10:07]
Rovanion gbobby: Valid point, though I'm saturating the network the fs is mounted over alright though. How would you suggest I go about it? [10:07]
Rovanion _genuser_: Depends on what you want to do ;) [10:08]
gbobby generally, making many more threads than the system has CPUs will probably make everything slower rather than faster [10:08]
esro [esro!~esro@] has joined ##java [10:08]
Zer0Pl4sm4 [Zer0Pl4sm4!~Zer0Pl4sm@gateway/tor-sasl/zer0pl4sm4] has joined ##java [10:08]
gbobby you'd rather have a worker pool of threads that carry out actions - all non-blocking - on a lot more objects than there are threads [10:09]
Rovanion gbobby: Depends on whether those threads are blocked on IO or not. [10:09]
Rapture [Rapture!] has joined ##java [10:09]
_genuser_ Rovanion: thanks, sounds like I should keep my catch as is, since I don't wish to respond to a specific type. just want it logged so the dev knows what happened when reading logs. [10:09]
conan [conan!~conan@] has joined ##java [10:09]
freeone3000 -Xss is min memory. Generally, to maximize IO throughput, you'd use a *single-threaded* model with asynchronous IO at the OS level [10:09]
gbobby with a worker pool of threads, they can never block on IO, because then a few blocking operations could starve processing of other operations that are ready for IO [10:10]
freeone3000 java exposes this through netty, so, done. [10:10]
gbobby that's basically the idea behind java.nio, you can use it to work in a non-blocking way on thousands of IO channels with just a handful threads [10:10]
Maldivia freeone3000: Xms is min mem, Xss is stack-size [10:11]
Rovanion So I'm using java.nio's mmap, but I'm obviously misusing it by putting every mmap call in a future and waiting for it to finish, given that a future allocates a thread. [10:12]
freeone3000 Maldivia: Yes, but just like -Xms has -Xmx, -Xss has -Xsx, which is probably intended. [10:12]
gbobby yeah, sounds like an architectural problem [10:12]
freeone3000 Rovanion: Who said a future allocates a thread? [10:12]
conan_ [conan_!~conan@] has joined ##java [10:13]
freeone3000 You may be doing that, but uh, don't do that. This is also why you generally would use something like netty instead of using nio directly. [10:13]
gbobby also, afair file i/o is always blocking in Java, NIO was designed for network i/o [10:13]
Rovanion freeone3000: Yup, at least that's what htop tells me is happening. One thread per future. [10:13]
freeone3000 gbobby: nio is "new io", and works on files just fine. [10:13]
freeone3000 Rovanion: That's not right. What's your code? [10:13]
Maldivia freeone3000: there is no -Xsx [10:13]
gbobby freeone3000: I haven not figured out how I can put a FileChannel (or whatever it's called) into non-blocking mode and have it fire a Selector [10:14]
Maldivia freeone3000: -Xss is a fixed sized allocation (at least on Hotspot) [10:14]
gbobby particularly, when using named pipes or pipes (since non-blocking file I/O is not even supported by most OSs) [10:14]
Rovanion freeone3000: You're in for a surprise though. I'm writing Clojure on the JVM. I could paste it but do you still want to see it? [10:15]
Maldivia gbobby: use AsynchronousFileChannel ? [10:15]
freeone3000 gbobby: AsynchronousFileChannel, but you're right, on linux it only works on pipes and sockets. [10:15]
freeone3000 Rovanion: Sure, it's just lisp. [10:16]
gbobby thanks Maldivia & freeone3000, I'll give that a try, that might be what I was looking for [10:16]
noodlepie [noodlepie!] has joined ##java [10:16]
wtflux [wtflux!] has joined ##java [10:17]
cs02rm0 [cs02rm0!] has joined ##java [10:17]
plarsen [plarsen!~plarsen@redhat/jboss/pdpc.professional.plarsen] has joined ##java [10:18]
cfoch [cfoch!uid153227@gateway/web/] has joined ##java [10:19]
Rovanion freeone3000: The upper third is parts of my source, the lower two thirds is the library that hooks up with java.nio in case you want to see that part too. [10:20]
Rovanion But the future-creation is in read-file-copies-mmap. [10:21]
Rovanion The function doall realizes lazy sequences such as those returned by for and map. [10:21]
markoong [markoong!~marco@] has joined ##java [10:22]
oogaw [oogaw!] has joined ##java [10:24]
gbobby looks as if there is another problem... all that I get from java.lang.Process are some InputStream objects [10:26]
Rovanion Hmm, I might have figured out the difference between your understanding of Future and mine. Seems like Clojure future's aren't Java Future's, they implement the java.util.concurrent.Future interface but are implemented differently: [10:27]
Rovanion Rovanion's title: "clojure/core.clj at master clojure/clojure GitHub" [10:27]
noodlepie [noodlepie!] has joined ##java [10:31]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [10:35]
tang^ [tang^!~tang^@] has joined ##java [10:35]
DTZUZO_ [DTZUZO_!] has joined ##java [10:37]
Pip_ [Pip_!~Pip@unaffiliated/pip] has joined ##java [10:38]
yawkat future-call != future [10:40]
Markow [Markow!~ejm@] has joined ##java [10:40]
ExtraCrispy [ExtraCrispy!~ExtraCris@gateway/tor-sasl/extracrispy] has joined ##java [10:41]
yawkat java future that is [10:41]
yawkat java futures in general dont care about what thread what runs on [10:41]
rsaanon [rsaanon!~rsaanon@] has joined ##java [10:43]
rsaanon [rsaanon!~rsaanon@] has joined ##java [10:45]
Sina [Sina!uid230776@gateway/web/] has joined ##java [10:52]
Revan- [Revan-!~Revan@] has joined ##java [10:52]
wodencafe [wodencafe!~wodencafe@2605:6000:1517:462e:724d:7bff:fe63:71b6] has joined ##java [10:53]
sainathvd [sainathvd!~sainathvd@] has joined ##java [10:54]
Rovanion That's managed by whatever executor they're run on. And future-call puts it on a clojure.lang.Agent/soloExecutor. If I were to replace that I would get a different behaviour in terms of how they're executed. [10:56]
goldstar [goldstar!~adm@unaffiliated/goldstar] has joined ##java [10:56]
yawkat mmap shouldnt be that heavy of an operation anyway right? [10:57]
Rovanion Nope, heavily IO bound. [10:57]
freeone3000 note that mmap, like malloc, *can* block [10:58]
yawkat you sure about that? the page access maybe, but mmap itself shouldnt be heavy [10:58]
freeone3000 it also has to run an fopen which can take non-zero amounts of time. [11:00]
freeone3000 not too sure about threading that in the general case, but if you're trying to get x-treem(tm) performance, this could matter. [11:01]
yawkat not if you have a file channel already [11:01]
shicks2525 [shicks2525!] has joined ##java [11:06]
mluser-home [mluser-home!] has joined ##java [11:07]
SuperTyp [SuperTyp!] has joined ##java [11:08]
_genuser_ parted the channel: [11:13]
Regon [Regon!~Regon@unaffiliated/regon] has joined ##java [11:18]
shicks2525 [shicks2525!] has joined ##java [11:18]
Mimicize [Mimicize!~mime@unaffiliated/mimicize] has joined ##java [11:22]
funeral [funeral!] has joined ##java [11:23]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [11:31]
mitch0 [mitch0!] has joined ##java [11:34]
RedSoxFan07 [RedSoxFan07!~Thunderbi@] has joined ##java [11:42]
mona_x [mona_x!] has joined ##java [11:54]
mona_x [mona_x!] has joined ##java [11:54]
orbyt_ [orbyt_!~orbyt@] has joined ##java [11:57]
Dojka [Dojka!~Dojka@] has joined ##java [12:12]
Omarr [Omarr!] has joined ##java [12:12]
tomorrow__ [tomorrow__!~tomorrow_@] has joined ##java [12:20]
tomorrow__ Unless I'm mistaken, given a HashMap, even if you write to it from only one thread, it's not thread safe in the sense that other threads might never see the modification [12:24]
tomorrow__ Can anyone confirm that? [12:24]
t2mkn [t2mkn!~t2mkn@] has joined ##java [12:27]
deavmiHome [deavmiHome!~deavmi@] has joined ##java [12:28]
canton7 the worry is more that another thread might try and read from it while your thread is in the *middle* of writing to it [12:28]
gbobby more or less, anything that is being accessed by multiple threads is not safe unless it is guarded by locks, is an atomic operation or is declared volatile [12:29]
mitch0 [mitch0!] has joined ##java [12:34]
yawkat volatile doesnt fix thread safety [12:35]
yawkat it may help with visibility in certain cases but it is no thread safety fix [12:35]
rook0 [rook0!~lol@unaffiliated/rook0] has joined ##java [12:36]
rook1 [rook1!~lol@unaffiliated/rook0] has joined ##java [12:36]
freeone3000 tomorrow__: Correct. You want ConcurrentHashMap. [12:42]
freeone3000 tomorrow__: In the case of single-writer-multiple-readers, a Collections.synchronizedMap(yourMap) would also work acceptably well. [12:43]
horribleprogram [horribleprogram!~horriblep@unaffiliated/nightcoder] has joined ##java [12:43]
funeral [funeral!] has joined ##java [12:44]
horribleprogram Good article/guide on .JARs? [12:44]
horribleprogram Their internal package, creating, extracting, etc... [12:44]
freeone3000 horribleprogram: They're zips. [12:44]
tang^ but there should be something on the structure of those zip files, yes [12:44]
horribleprogram I don't know the structure of zips tho [12:45]
freeone3000 same structure as your compiled code. [12:45]
horribleprogram so literally the .jar filename extension can be changed to a .zip and unzipped the same exact way? [12:45]
tang^ yup [12:45]
horribleprogram wow [12:45]
tomorrow__ freeone3000: would volatile suffice? [12:45]
tang^ actually, don't even need to rename [12:46]
tang^ jar -t jarfile.jar will show you the contents [12:46]
tomorrow__ freeone3000: only one thread modifies the map [12:46]
freeone3000 tomorrow__: volatile affects a variable, not the underlying data. reassignment of the variable would be visible across all threads. [12:46]
freeone3000 That's insufficient for this. [12:46]
gelignite [gelignite!] has joined ##java [12:48]
freeone3000 What you need to do is erect a read-after memory barrier around all writes and reads, which is what ConcurrentHashMap does. You could also use Collections.synchronizedMap() which synchronizes every method, which is a read-after memory barrier. You could also enact your own synchronized block around all writes and all reads, which would do the same. [12:48]
tomorrow__ so if I recreate the map, it would be visible [12:48]
tomorrow__ with a new assignment [12:48]
freeone3000 tomorrow__: You have to *reassign the variable*, and the new object replacing the old object would be visible, yes. [12:48]
freeone3000 This is not the reccomended approach, as you're recreating the map every time you make a change, and it doesn't affect anybody who received the map as, for instance, a function parameter, or assigned it to a local, or is currently iterating over it, and so on. [12:49]
freeone3000 volatile literally just affects that variable. it's a red herring. [12:49]
tomorrow__ for my use case, I literally change the whole map every time it's updated [12:50]
tomorrow__ so I wonder which is cheaper [12:50]
horribleprogram freeone3000: what's a red herring [12:50]
tomorrow__ ConcurrentHashMap or volatile [12:50]
freeone3000 horribleprogram: In general, a clue that leads one down the wrong path. [12:50]
horribleprogram freeone3000: oh I thought it was a term for the "event/upbringing that shaped your personality" [12:50]
freeone3000 No. [12:51]
horribleprogram I should have gone to Gr.12 English [12:51]
horribleprogram and Gr.11 English [12:51]
freeone3000 tomorrow__: One of them is suitable for purpose, and one of them will leave difficult-to-diagnose invisible bugs throughout your code base. [12:51]
horribleprogram and half of the Gr.10 Egnlish classes I skipped [12:51]
freeone3000 tomorrow__: Don't do the invisible bugs one. Don't do volatile. [12:51]
tomorrow__ freeone3000: what's the magic behind concurrenthashmap? how can it stay performant when multiple threads read/write to it? [12:52]
freeone3000 tomorrow__: It doesn't stay performant, it stays *correct*. [12:52]
horribleprogram tomorrow__: *sighs* [12:52]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [12:52]
horribleprogram JCIP [12:52]
horribleprogram JCIP [12:52]
horribleprogram horribleprogram, jcip is Java Concurrency In Practice, a book focused on implementing threaded and concurrent applications in Java. You can read more at and buy a copy at [12:52]
horribleprogram seriously, read it [12:52]
tomorrow__ Yes, I haven't read it :P [12:53]
horribleprogram U will never have a multithreaded question again, or a multithreaded problem you couldn't solve. [12:53]
tomorrow__ freeone3000: then what's the advantage of using it vs creating a wrapper that locks/unlocks your map [12:54]
freeone3000 tomorrow__: It *is* a wrapper that locks/unlocks your map. The advantage is you don't have to write it. [12:54]
horribleprogram tomorrow__: nothing it's built in, you could write it yourself [12:54]
horribleprogram ^ [12:54]
cheeser aolbonics [12:54]
cheeser horribleprogram, aolbonics is using unnecessary abbreviations such as 'u', 'r', 'ur', 'thx', etc. Using this kind of abbreviation is annoying and pointless. You have a full keyboard. Please use it. If you want intelligent answers, the least you can do is speak intelligently. [12:54]
freeone3000 (It's also got some minor improvements over naive synchronization that improve performance in some scenarios, which are outlined in the javadoc header.) [12:55]
horribleprogram cheeser: sorry when I wrote "U" i swear to god I thought someone was going to aolbonics me [12:55]
cheeser and yet you charged ahead with it. :) [12:55]
tomorrow__ freeone3000: thanks I'll take a look [12:55]
horribleprogram No after I pressed Enter :P [12:55]
freeone3000 In a more general sense, internally-synchronized collections and classes are preferred to externally-synchronized when the access pattern is fairly general, so that you can have fewer synchronized blocks and less Lock usage. [12:58]
freeone3000 ie, so you don't forget synchronized somewhere and spend a day with chronon and yourkit trace tracking the dang thing down. [12:58]
SolarFlare [SolarFlare!~SamanthaB@unaffiliated/samanthabdawn] has joined ##java [01:00]
tomorrow__ How do you deal with huge shared maps with millions of items that are constantly read/written. The performance must be dreadful. [01:01]
tomorrow__ With all the locking and GC going on [01:01]
Addax the sync mechanisms in java are pretty good [01:01]
Addax GC doesn't factor in [01:02]
tomorrow__ If you have a big map, surely GC must collect the dead items of the map? [01:03]
Addax they're not of the map if they're "dead" [01:03]
Addax but even so [01:03]
tomorrow__ If you remove an element from a map, it's not really deleted until the GC sweeps it? [01:04]
tomorrow__ I might very well be mistaken [01:04]
Addax right, but that doesn't affect the performance of the map [01:04]
mitch0 [mitch0!] has joined ##java [01:04]
tomorrow__ but overall performance yes [01:05]
tomorrow__ if there's a long gc pause [01:05]
freeone3000 tomorrow__: Generally, *by not doing that* [01:06]
horribleprogram It boils down to when multiple threads try to read and write values to the same memory location. There's CPU cache between threads and main memory that will store a changed value that might not be updated when another thread reads it [01:06]
freeone3000 As in, object creation and deletion takes some amount of time. GC makes it happen less predictably and happens for lots of objects at once, in lieu of it happening per object deletion, but the way to use less time in object creation and deletion is to create and delete fewer objects. [01:07]
tomorrow__ Okay thanks [01:08]
tomorrow__ Learnt a few things today [01:08]
tomorrow__ ) [01:08]
horribleprogram freeone3000: okay answer this smarty pants, why do you need AtomicInteger when you can just declare an int as volatile [01:08]
tomorrow__ horribleprogram: I think atomic uses special instructions [01:09]
led_dark_1 [led_dark_1!] has joined ##java [01:09]
Addax heh [01:09]
Addax jcip [01:09]
Addax Addax, jcip is Java Concurrency In Practice, a book focused on implementing threaded and concurrent applications in Java. You can read more at and buy a copy at [01:09]
horribleprogram so you're not qualified [01:09]
freeone3000 horribleprogram: .incrementAndSet(), basically. [01:09]
horribleprogram oh wait tomorrow__ I thought you were freeone3000 [01:09]
Addax hahaha [01:10]
Addax you're... not trying to tell freeone3000 he's not qualified, I'm sure [01:10]
Addax because that would be stupid of you [01:10]
horribleprogram there is no incrementAndSet [01:10]
freeone3000 javadoc AtomicInteger [01:10]
freeone3000 freeone3000: [JDK: java.util.concurrent.atomic.AtomicInteger] [01:10]
horribleprogram afaik [01:10]
freeone3000 incrementAndGet(), sorry. [01:10]
horribleprogram mhm [01:11]
freeone3000 Essentially, i++ is three operations in Java, so volatile doesn't actually help you make this atomic. AtomicInteger does. [01:11]
horribleprogram exactly [01:11]
tomorrow__ Addax: why? who is freeone3000 ? :P [01:11]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [01:12]
Addax one of the ops here, plus one of the more helpful and knowledgeable channel people, period [01:12]
horribleprogram The best thing this channel ever did was introduce me to JCIP [01:12]
horribleprogram Addax: oh wait he's an OP? [01:12]
horribleprogram freeone3000: so sorry *backs off* [01:12]
horribleprogram I'm a good little boy [01:12]
Addax horribleprogram, on the other hand, is a doofus who's coming off of one of multiple longterm bans for idiocy [01:12]
tomorrow__ I don't even know what an op is [01:12]
Addax as you can see [01:13]
Addax tomorrow__: people with the ability to moderate the channel [01:13]
horribleprogram Addax: HEY, I did my time [01:13]
horribleprogram Addax: don't hold that over my head, I hate when people do that to convicts especially [01:14]
Addax horribleprogram: sure, but why? Why did you do ANY time, when people who know how to get along don't have to get banned? [01:14]
t2mkn [t2mkn!~t2mkn@] has joined ##java [01:14]
tang^ anyway... [01:14]
Addax the point is, you're a fool who doesn't know how to get along, you really don't show enough judgement to say whether someone's worthwhile or not [01:14]
tang^ srsly? [01:15]
horribleprogram Addax: cheeser: can you talk to this guy? [01:15]
kicked horribleprogram (how's this?) [01:15]
Addax darn it [01:15]
Addax I was about to ask him how he knew *I* wasn't an op [01:15]
tomorrow__ Addax: yeah, he helped me once before with some code I didn't understand and was stuck on for days. Sometimes, I do really question if I should be a programmer..... [01:17]
tomorrow__ somehow, I manage to get paid to do my job :P [01:17]
conan [conan!~conan@] has joined ##java [01:18]
Essadon [Essadon!] has joined ##java [01:19]
Rapture [Rapture!] has joined ##java [01:20]
dendazen [dendazen!] has joined ##java [01:22]
code_zombie [code_zombie!~code_zomb@2605:a601:aa1:da00:a981:72d7:e00:530e] has joined ##java [01:23]
horribleprogram [horribleprogram!~horriblep@unaffiliated/nightcoder] has joined ##java [01:25]
horribleprogram Addax: sorry okay [01:26]
Addax why apologize to me? [01:27]
horribleprogram Addax: well idk [01:27]
Addax me either. If you want to continue this, do it in PM [01:27]
Corxo [Corxo!Corxo@gateway/vpn/privateinternetaccess/corxo] has joined ##java [01:27]
horribleprogram cheese doesn't like it when you pm him [01:27]
horribleprogram so just stay away from it [01:28]
horribleprogram we're cool [01:28]
Addax uh... cheeser's opinion of private messages has no bearing on conversations that don't involve him [01:28]
Addax but whatever [01:28]
horribleprogram Listen, it's my fault. I got kicked out of TJUG so it's my personality that's disliked, not the people I'm conversing with. [01:30]
Hail_hydra [Hail_hydra!0e8bf2c3@gateway/web/freenode/ip.] has joined ##java [01:31]
dee_two [dee_two!~d2@] has joined ##java [01:31]
dee_two parted the channel: "Leaving" [01:34]
adadelta [adadelta!~gulli@unaffiliated/gulli] has joined ##java [01:34]
horribleprogram This is what it's like: go to 5:30 Addax [01:38]
horribleprogram horribleprogram's title: "RACISM IN AUSTRALIA - YouTube" [01:38]
Diablo-D3 oh no, you want racism in australia? [01:45]
Diablo-D3 [01:46]
Diablo-D3 Diablo-D3's title: "Australia, Yeah C**t - Australia's new National Anthem - YouTube" [01:46]
yawkat be cheeser [01:46]
yawkat how is this java? [01:46]
ron wtf [01:46]
paddyez [paddyez!~paddyez@wikipedia/paddyez] has joined ##java [01:46]
Diablo-D3 I have no clue why we're discussing racism in australia in this channel. [01:46]
horribleprogram Diablo-D3: no it was the whole street ganging up on the one guy [01:46]
ron ok, enough [01:47]
Diablo-D3 horribleprogram: is this some euphanism for js programmers referring to themselves as programmers infront of actual programmers/ [01:47]
ron what part of 'enough' wasn't clear? [01:48]
Janhouse [Janhouse!~Janhouse@] has joined ##java [01:51]
horribleprogram w/e I got more important things anyways, I'm trying to modify the META-INF/MANIFEST.MF file with Gradle [01:51]
horribleprogram ik jar { manifest { but can't change the version [01:51]
freeone3000 horribleprogram: version isn't special, it's an attribute like any other. follow the regular gradle dsl for manifest attributes. [01:54]
Kol [Kol!] has joined ##java [01:55]
horribleprogram freeone3000: yeah :) [01:59]
Sasazuka [Sasazuka!~Sasazuka@unaffiliated/sasazuka] has joined ##java [02:01]
horribleprogram freeone3000: yeah you use the attributes() thingy [02:03]
mitch0 [mitch0!] has joined ##java [02:04]
Zee- [Zee-!] has joined ##java [02:05]
horribleprogram freeone3000: what should the MANIFEST.MF have? [02:05]
horribleprogram freeone3000: version, Build-Jdk, maybe Build-OS ? [02:05]
vy [vy!5659d92d@gateway/web/freenode/ip.] has joined ##java [02:06]
horribleprogram 'Build-Timestamp': new java.text.SimpleDataFormat("yyyy-MM-dd'T'HH:mm:ss.SSSZ").format(new Date()) [02:06]
horribleprogram Gradle is awesome :D [02:06]
freeone3000 It needs what you need it to have. Usually. Main-Class. Ocassionally, Class-Path. [02:07]
horribleprogram yeah and do it dynamically [02:08]
vy Hello! In the following snippet, is A.f() effectively free given -Denabled is provided while running: enum A {; static final boolean ENABLED = System.getProperty("enabled)" != null; void f() { if (ENABLED) { System.out.println("f"); } } } [02:09]
horribleprogram 'Class-Path': configurations.compile.collect { 'lib/' + it.getName() }.join(' ') [02:09]
[twisti] vy: 'effectively free' ? [02:10]
RedSoxFan07 [RedSoxFan07!~Thunderbi@] has joined ##java [02:11]
ravenousmoose [ravenousmoose!] has joined ##java [02:12]
vy [twisti]: That is indeed pretty ambiguous. I stole the term from docs. For brevity, let me say that "effectively free means it will be marked as dead code and discarded by JIT compiler". [02:12]
vy vy's title: "GitHub - google/flogger: A Fluent Logging API for Java" [02:12]
yawkat vy: eventually, sure [02:12]
[twisti] that is probably will [02:12]
horribleprogram vy: I don't understand your code segment though [02:13]
mona_x [mona_x!] has joined ##java [02:13]
mona_x [mona_x!] has joined ##java [02:14]
mona_x [mona_x!] has joined ##java [02:17]
mona_x [mona_x!] has joined ##java [02:17]
mona_x [mona_x!] has joined ##java [02:18]
mona_x [mona_x!] has joined ##java [02:19]
palasso [palasso!~palasso@unaffiliated/palasso] has joined ##java [02:27]
mitch0 [mitch0!] has joined ##java [02:32]
bunny3 I can only set final variables once in a constructor... forces you to spaghetti the thing just to have conditionally set final fields. [02:32]
Dojka [Dojka!~Dojka@] has joined ##java [02:32]
bunny3 other solutions except writing a getter? [02:32]
Addax why not just set them once [02:34]
[twisti] bunny3: factory/builder patterns [02:35]
[twisti] can do the conditional logic and then call a simple setting constructor [02:35]
mitch0 [mitch0!] has joined ##java [02:38]
ravenous_ [ravenous_!] has joined ##java [02:45]
Unlimiter [Unlimiter!uid281704@gateway/web/] has joined ##java [02:54]
mitch0 [mitch0!] has joined ##java [02:58]
Rapture [Rapture!] has joined ##java [02:58]
Dojka [Dojka!~Dojka@] has joined ##java [02:59]
rook0 [rook0!~lol@unaffiliated/rook0] has joined ##java [03:00]
rook1 [rook1!~lol@unaffiliated/rook0] has joined ##java [03:00]
bobek [bobek!~bobek@unaffiliated/bobek] has joined ##java [03:02]
fstd_ [fstd_!~fstd@unaffiliated/fisted] has joined ##java [03:07]
Dojka [Dojka!~Dojka@] has joined ##java [03:09]
fstd_ [fstd_!~fstd@unaffiliated/fisted] has joined ##java [03:09]
fstd_ [fstd_!~fstd@unaffiliated/fisted] has joined ##java [03:10]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:12]
Kanibal [Kanibal!~Kanibal@unaffiliated/kanibal] has joined ##java [03:14]
Rapture [Rapture!] has joined ##java [03:19]
ogradyd [ogradyd!~Thunderbi@2a02:8070:88bf:9df0::16e] has joined ##java [03:19]
Zee- [Zee-!] has joined ##java [03:23]
immibis [immibis!] has joined ##java [03:28]
RedSoxFan07 [RedSoxFan07!~Thunderbi@] has joined ##java [03:28]
bunny3 is there a short cut for ArrayList<String> var = new ....; where .... implicitly is the type of var instead of typing it out? [03:32]
canton7 java 10 has 'var'. Before that you can do 'new ArrayList<>()' to avoid some typing [03:34]
bunny3 canton7: didn't mean the keyword var per se, but does it reduce even further typing? [03:36]
canton7 yes, read up on the 'var' keyword in java 10 [03:36]
stealth[] [stealth[]!~stealth]] has joined ##java [03:37]
bunny3 javac -version shows "1.8". Does that mean that I have version 8? [03:38]
tang^ yes [03:40]
blackntan [blackntan!~blackntan@unaffiliated/blackntan] has joined ##java [03:40]
[twisti] there is also the lombok library, that installs a 'var' for 9 and below [03:41]
[twisti] lombok [03:41]
[twisti] [twisti], lombok is a tooling (compiler and IDE) plugin that removes boilerplate. For example, it adds getters, setters, equals, hashCode, builders, etc for you. Works in eclipse, intellij, netbeans, javac, maven, ant, etc. [03:41]
ron 'installs' [03:42]
conan [conan!] has joined ##java [03:42]
[twisti] my brain was on installing JDKs [03:42]
kegster [kegster!~kegster@unaffiliated/kegster] has joined ##java [03:43]
surial is now wondering if he should update the installer to show: "Installing productivity..." [03:43]
surial "Upgrading expressiveness" "Improving code quality" "Enhancing APIs" "Corralling bugs"... [03:44]
sbalmos "We cannot complete the upgrade of Life while Life is running. Please restart your Life to complete the upgrade." [03:45]
bunny3 is it a big deal to upgrade java? Seems like it's best to upgrade every 2 years to keep getting support [03:50]
sonOfRa upgrading from <9 to >9 takes some work, but after that, it'll mostly be a breeze [03:51]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [03:51]
elsheepo [elsheepo!~beatzz@240f:83:d77a:1:ddce:822e:cfa6:b657] has joined ##java [03:52]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [03:52]
bunny3 and by work we mean upgrading old code? [03:52]
sonOfRa yes; java 9 and up work with a module system. It's not mandatory *yet*, but it will be eventually, and you'll have to adjust mostly your build process [03:54]
bunny3 I will always be a few versions behind, I rarely use java [03:56]
computeiro [computeiro!~computeir@] has joined ##java [04:01]
bunny3 can't do new T(); for a generic type T. Solution? [04:07]
ernimril bunny3, pass a Factory<T> [04:07]
bunny3 oh god. [04:07]
gareppa [gareppa!~gareppa@unaffiliated/gareppa] has joined ##java [04:08]
lucidian how does the Factory<T> construct a T? [04:08]
ernimril lucidian, something like: interface Factory<T> { T create(); } [04:08]
ernimril add arguments to create if needed [04:09]
ernimril and use lambda when calling it something like: Foo::new [04:10]
Praise- [Praise-!~Fat@unaffiliated/praise] has joined ##java [04:11]
DTZUZU [DTZUZU!] has joined ##java [04:12]
bunny3 it's a tiny wrapper for a map in this case, not worth all that boiler stuff [04:13]
ernimril "all"? you have everything above, so 1 line for the interface and then you call it with the method ref for the new as I showed you, that overhead is one line [04:16]
kgrimes2 [kgrimes2!] has joined ##java [04:19]
drolax [drolax!] has joined ##java [04:20]
kgrimes2 [kgrimes2!] has joined ##java [04:38]
discmuc [discmuc!] has joined ##java [04:43]
sauvin [sauvin!~sauvin@about/linux/staff/sauvin] has joined ##java [04:47]
discmuc parted the channel: "WeeChat 2.3" [04:48]
metascion [metascion!~metascion@] has joined ##java [04:50]
metascion [metascion!~metascion@] has joined ##java [05:04]
bunny3 bah, I always seem to hit this memory hole of mine. Default parameter values isn't java? [05:08]
bunny3 do you know why it's designed that way? Many languages allow default arguments. [05:09]
cheeser because it wasn't. [05:10]
waz the designers didn't publish an exhaustive list of why they didn't adopt some featurs. [05:13]
sonOfRa bunny3: a good alternative is public void foo() { foo(3); } public void foo(int param) { System.out.println(3); } [05:14]
sonOfRa Emulates default parameters reasonably well [05:14]
bunny3 yes [05:15]
Desetude [Desetude!~Desetude@unaffiliated/desetude] has joined ##java [05:15]
sonOfRa Doesn't work too well for methods with multiple parameters, but eh. It's not *that* common that you'd need it [05:16]
cheeser use a ParameterObject and be done with it. [05:17]
cheeser invoices everyone here. [05:17]
sonOfRa public void doThings(Object... stuff) [05:17]
sonOfRa Obviously the superior solution [05:18]
cheeser sonOfRa++ [05:18]
cheeser sonofra has a karma level of 156, cheeser [05:18]
Desetude Quick sanity check, why does long tileData = 0x888888888 << 32; long data = 0x88888888; System.out.print(Long.toHexString(tileData | data)); give "ffffffff80000008"? [05:19]
sonOfRa Or, if you want named arguments! [05:19]
sonOfRa public void doThings(Map<String, Object> stuff) [05:19]
sonOfRa Desetude: that shouldn't even compile [05:22]
Desetude oh, figured it out, I need an L after the literals [05:22]
sonOfRa Those are int literals, not long literals [05:22]
sonOfRa Yeah [05:22]
mluser-home [mluser-home!] has joined ##java [05:55]
Me4502 [Me4502!~Me4502@unaffiliated/me4502] has joined ##java [06:01]
iam730 [iam730!] has joined ##java [06:03]
conan [conan!] has joined ##java [06:09]
HarlinS [HarlinS!~hseritt@2603:300b:69a:c000:312a:7d57:8136:11ab] has joined ##java [06:14]
djhworld [djhworld!~djhworld@] has joined ##java [06:25]
tristianc [tristianc!] has joined ##java [06:33]
k4iuw3 [k4iuw3!] has joined ##java [06:34]
zeden [zeden!~user@unaffiliated/zeden] has joined ##java [06:38]
k4iuw3 Hi @all I got a problem with binding in JavaFX: I am trying to "append" a StringProperty to an existing label.textProperty() (which is already bound to another StringProperty). It tried several attemps but they alsways end in infinite recursion and hence Stack Overflow. Any idea how to do this? [06:39]
Tobbi [Tobbi!~Tobbi@supertux/tobbi] has joined ##java [06:43]
sakhd [sakhd!~sakhd@] has joined ##java [06:57]
orbyt_ [orbyt_!~orbyt@] has joined ##java [06:57]
SJr Anyone know a clever way to change the allocationSize that is used in @TableGenerator annotation in JPA without changing the entities. [07:25]
rkazak [rkazak!] has joined ##java [07:31]
CygniX [CygniX!~CygniX@opensuse/member/CygniX] has joined ##java [07:35]
CygniX parted the channel: [07:35]
CygniX [CygniX!~CygniX@opensuse/member/CygniX] has joined ##java [07:37]
Suchorski [Suchorski!~regex@unaffiliated/suchorski] has joined ##java [07:47]
Renari [Renari!] has joined ##java [07:50]
upgrdman [upgrdman!~upgrdman@blender/artist/upgrdman] has joined ##java [07:51]
computeiro [computeiro!~computeir@] has joined ##java [07:52]
HarlinS [HarlinS!~hseritt@2603:300b:69a:c000:4d70:e034:b06c:36a9] has joined ##java [07:53]
katiex7 [katiex7!] has joined ##java [07:54]
bunny3 parted the channel: [07:56]
keepLearning512 [keepLearning512!~keepLearn@] has joined ##java [08:27]
thinkpad [thinkpad!] has joined ##java [08:30]
p[a]ddy [p[a]ddy!~paddyez@wikipedia/paddyez] has joined ##java [08:33]
Sheilong [Sheilong!uid293653@gateway/web/] has joined ##java [09:12]
xlegoman I don't recall but does using the XML mapping of entity-mappings override the annotation? And is using XML considered changing the entity? [09:19]
Kanibal [Kanibal!~Kanibal@unaffiliated/kanibal] has joined ##java [09:38]
bugzy_on_busy1 [bugzy_on_busy1!~Thunderbi@] has joined ##java [10:00]
RedSoxFan07 [RedSoxFan07!~Thunderbi@] has joined ##java [10:18]
t2mkn [t2mkn!~t2mkn@] has joined ##java [10:20]
sbalmos [sbalmos!] has joined ##java [10:22]
tassee [tassee!] has joined ##java [10:23]
AcTiVaTe [AcTiVaTe!] has joined ##java [10:32]
waz [waz!~waz@pdpc/supporter/active/waz] has joined ##java [10:57]
cliluw [cliluw!~cliluw@unaffiliated/cliluw] has joined ##java [11:01]
SJr xlegoman, if I can 'overlay' it, it should be fine. Thanks, I'll give that a try tomorrow. [11:01]
Goplat [Goplat!~Goplat@reactos/developer/Goplat] has joined ##java [11:07]
conan [conan!] has joined ##java [11:17]
cliluw [cliluw!~cliluw@unaffiliated/cliluw] has joined ##java [11:21]
DTZUZO_ [DTZUZO_!] has joined ##java [11:21]