Info

Login

Channels

APIs

Credits

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

« 2015-08-20

2015-08-21

2015-08-22 »

Nick Message Date
priidu [unaffiliated/priidu] has joined ##java [12:05]
jstimm [unaffiliated/jstimm] has joined ##java [12:07]
benishor [188.27.43.214] has joined ##java [12:11]
bq_ [123.157.71.158] has joined ##java [12:14]
blue_deref [cpe-74-77-246-241.buffalo.res.rr.com] has joined ##java [12:21]
krek [78-56-59-62.static.zebra.lt] has joined ##java [12:39]
nonconvergent [unaffiliated/nonconvergent] has joined ##java [12:52]
Gryffin [1.39.63.86] has joined ##java [12:57]
robbyoconnor [guifications/user/r0bby] has joined ##java [12:58]
Gryffin [1.39.63.86] has joined ##java [01:01]
yaswanth [inet-hqmc07-o.oracle.com] has joined ##java [01:02]
nunchuck [ool-44c52682.dyn.optonline.net] has joined ##java [01:07]
iron_squid [g90194.upc-g.chello.nl] has joined ##java [01:12]
philipballew [ubuntu/member/philipballew] has joined ##java [01:13]
setgraded [2804:7f7:d082:39b0:3df2:ccab:1fa0:d3ec] has joined ##java [01:14]
Kn|t3 [nat/google/x-qhyedxddlgllgwid] has joined ##java [01:14]
sphenxes01 [91-115-173-38.adsl.highway.telekom.at] has joined ##java [01:15]
sergiotudela [3.233.14.62.static.jazztel.es] has joined ##java [01:17]
yaswanth [inet-hqmc07-o.oracle.com] has joined ##java [01:18]
philipballew [ubuntu/member/philipballew] has joined ##java [01:23]
yaswanth [inet-hqmc07-o.oracle.com] has joined ##java [01:24]
aspire [unaffiliated/aspire] has joined ##java [01:26]
EoF [ip5b41bb22.dynamic.kabel-deutschland.de] has joined ##java [01:30]
RusAlex [access-46-42-24-165.kmtn.ru] has joined ##java [01:36]
last_staff [218-50-15.connect.netcom.no] has joined ##java [01:36]
sergiotudela [3.233.14.62.static.jazztel.es] has joined ##java [01:37]
iron_squid So this is the only code in my class, and I'm getting the error "Syntax error on token(s), misplaced construct(s)" and "Syntax error on token ""My name is Sue."", delete this [01:42]
iron_squid token" on the second line. What's going on? [01:42]
iron_squid StringBuilder sb = new StringBuilder(""); [01:42]
iron_squid sb.append("My name is Sue."); [01:42]
TwitchGG [112.1.112.155] has joined ##java [01:44]
sp1rs [122.176.135.213] has joined ##java [01:46]
tuskkk___ [gateway/web/irccloud.com/x-evtvkebarvempuzt] has joined ##java [01:48]
T-2000 [unaffiliated/t-2000] has joined ##java [01:50]
yianni [unaffiliated/yianni] has joined ##java [01:51]
sp1rs [122.176.135.213] has joined ##java [01:59]
iron_squid nvm figured it out [01:59]
Deacyde [unaffiliated/deacyde] has joined ##java [02:08]
T-2000 [unaffiliated/t-2000] has joined ##java [02:09]
dmukalie [2001:998:2a:dead:bd23:ed76:7243:4edc] has joined ##java [02:15]
Kassad [bitnet.me] has joined ##java [02:21]
AMcBain [66-189-215-97.dhcp.knwc.wa.charter.com] has joined ##java [02:21]
MasterPiece [unaffiliated/masterpiece] has joined ##java [02:23]
IAmGilesCorey [unaffiliated/iamgilescorey] has joined ##java [02:25]
comrad [freecnc/comrad] has joined ##java [02:25]
benishor [86.125.104.204] has joined ##java [02:25]
setgraded [2804:7f7:d082:39b0:3df2:ccab:1fa0:d3ec] has joined ##java [02:29]
blackb1rd [172-2-16-122.lightspeed.sntcca.sbcglobal.net] has joined ##java [02:29]
Bombe Good morning. [02:35]
ron lies. [02:40]
yianni [unaffiliated/yianni] has joined ##java [02:42]
Bombe ron, not at all. The sun is shining, I?m awake, and it?s Free Coding Day today! [02:42]
ron Bombe: fuck you. [02:42]
Bombe ron, you too, ron. You too. <3 [02:42]
ron Bombe: <3 [02:42]
fairuz [unaffiliated/fairuz] has joined ##java [02:43]
Matthias|PC [140.59-200-80.adsl-dyn.isp.belgacom.be] has joined ##java [02:46]
setgraded [2804:7f7:d082:39b0:854f:665e:13fb:b40] has joined ##java [02:47]
KermitTheFragger [62-177-178-202.dsl.bbeyond.nl] has joined ##java [02:50]
r0bby_ [guifications/user/r0bby] has joined ##java [02:53]
weemsledeux [unaffiliated/weems] has joined ##java [02:57]
benishor [86.125.104.204] has joined ##java [02:59]
heliosaurus [ppp-94-68-254-122.home.otenet.gr] has joined ##java [02:59]
Meow-J [gateway/web/irccloud.com/x-dbhdldgbexfoqbhr] has joined ##java [03:01]
bolovanos [91.201.22.5] has joined ##java [03:02]
blackb1rd [172-2-16-122.lightspeed.sntcca.sbcglobal.net] has joined ##java [03:05]
yianni [unaffiliated/yianni] has joined ##java [03:08]
robwaz [ip24-255-6-32.tc.ph.cox.net] has joined ##java [03:12]
Munnu [91-158-136-23.elisa-laajakaista.fi] has joined ##java [03:13]
BigJono What's the usual place to store a log file on a user's computer? [03:13]
Jackneill [unaffiliated/jackneill] has joined ##java [03:14]
solenoids [unaffiliated/phillips1012] has joined ##java [03:18]
dinglebarry [107.15.83.110] has joined ##java [03:19]
bf_ [xdsl-87-79-174-186.netcologne.de] has joined ##java [03:19]
magentar [5.146.254.206] has joined ##java [03:19]
stefkos [82.177.144.226] has joined ##java [03:22]
fairuz [unaffiliated/fairuz] has joined ##java [03:25]
fairuz parted the channel: [03:25]
Leftas [91.228.84.180] has joined ##java [03:26]
Stummi BigJono, /var/log/ [03:31]
yianni [unaffiliated/yianni] has joined ##java [03:32]
BigJono Is that for both Linux and Mac? [03:33]
Iskarlar [D9641F32.static.ziggozakelijk.nl] has joined ##java [03:33]
hohl__ [195.96.7.102] has joined ##java [03:34]
kiview [212.23.140.110] has joined ##java [03:37]
djhworld [gatea.cwwtf.bbc.co.uk] has joined ##java [03:39]
hohl__ [195.96.7.102] has joined ##java [03:43]
genera [unaffiliated/genera] has joined ##java [03:50]
dc5ala [pD9E77C22.dip0.t-ipconnect.de] has joined ##java [03:52]
sl33k [gateway/web/cgi-irc/kiwiirc.com/ip.213.235.17.242] has joined ##java [03:55]
sp1rs1 [122.176.197.246] has joined ##java [03:55]
raztoki [unaffiliated/a0sle] has joined ##java [03:58]
immibis [203-97-111-43.cable.telstraclear.net] has joined ##java [04:00]
lulzmachine [gateway/web/irccloud.com/x-bjudpfkzpjuipwnb] has joined ##java [04:03]
garyserj [82-69-82-248.dsl.in-addr.zen.co.uk] has joined ##java [04:04]
garyserj you can refer to a static variable with 'this' right? [04:05]
ernimril garyserj, technically possible, but you should never do that [04:05]
_ht [145.132.75.159] has joined ##java [04:05]
Iskarlar [D9641F32.static.ziggozakelijk.nl] has joined ##java [04:08]
ernimril garyserj, why would you want to do it? [04:08]
hohl__ [195.96.7.102] has joined ##java [04:08]
bolovanos [91.201.22.5] has joined ##java [04:08]
hugofirth [janus-nat-128-240-225-43.ncl.ac.uk] has joined ##java [04:17]
m8 [unaffiliated/m8] has joined ##java [04:17]
rajrajraj [gateway/web/irccloud.com/x-ehbjcqrzxfardtcb] has joined ##java [04:19]
vitimiti [unaffiliated/vitimiti] has joined ##java [04:20]
m8 [unaffiliated/m8] has joined ##java [04:20]
daNRG [x5ce4ff2c.dyn.telefonica.de] has joined ##java [04:25]
TechCel [unaffiliated/progster] has joined ##java [04:29]
VnM [ip-213-127-248-102.ip.prioritytelecom.net] has joined ##java [04:37]
Neo-- [BSN-142-176-244.dynamic.siol.net] has joined ##java [04:37]
SHOTbyGUN [dbtyyyyyyyyc2-7d28jvy-3.rev.dnainternet.fi] has joined ##java [04:40]
Dragooon [simplemachines/customizer/Dragooon] has joined ##java [04:43]
Apollos [ppp-46-244-213-3.dynamic.mnet-online.de] has joined ##java [04:55]
bf_ [xdsl-78-35-228-210.netcologne.de] has joined ##java [04:55]
iflow885 [unaffiliated/iflow885] has joined ##java [04:58]
iflow885 hi [04:58]
Charmees1 I need to store a list of emails for a object in database, what is the best way to approach this, I dont really want to make a new table just for it [04:59]
Charmees1 I thought maybe I can use String with seperator, but not sure if thats nice practice [04:59]
Krisostoomus [82.131.38.48.cable.starman.ee] has joined ##java [04:59]
sp1rs [122.176.197.246] has joined ##java [04:59]
Krisostoomus parted the channel: [05:00]
iflow885 Charmees1, whats wrong with a new table? [05:00]
Charmees1 well maybe I want to store a list of emails for other entities also [05:01]
Charmees1 then I will have 10 different tables for emails [05:01]
Strat [541B255C.cm-5-4a.dynamic.ziggo.nl] has joined ##java [05:03]
macskay [217.160.19.103] has joined ##java [05:03]
iflow885 i would prefer to store all emails in the same table and then filter the required entries in each entity [05:04]
macskay Hi guys, got a question regarding security in Spring MVC's Validation: http://stackoverflow.com/questions/32136315/validation-in-spring-with-different-roles (TL;DR: Can I tell a Validator to only accept certain alterations from specific roles, such as "Admin" and "Regular User"?) [05:04]
Charmees1 iflow885 how do you flag the row that it belogns to certain entity? [05:06]
_blizzy_ [cpe-96-28-37-129.kya.res.rr.com] has joined ##java [05:06]
_blizzy_ is java still good for web development? [05:06]
iflow885 Charmees1, i.e. with a own column, mail_type [05:07]
iflow885 or with a join table [05:08]
Charmees1 own column, but what do you store there, a magic string? [05:09]
iflow885 yes [05:09]
Charmees1 to be more specific, I am using an ORM tool [05:09]
iflow885 for example, Table: email, Cols: id, email, email_type [05:09]
Charmees1 I would like it to work with ORM tool also [05:10]
Charmees1 I am using ebeans [05:10]
Charmees1 its like hibernate [05:10]
iflow885 i dont know ebeans but i am sure it will work this way [05:11]
iflow885 this would have a lot of advantages [05:12]
iflow885 maybe you like to search for a specific email address, how are you doing this if all your email addresses are in one string? [05:12]
phpcoder [net-188-153-171-52.cust.dsl.teletu.it] has joined ##java [05:13]
phpcoder hello [05:13]
phpcoder someone use simpleframework.org ? [05:13]
iflow885 Charmees1, when its like hibernate maybe there is something like hibernates filters (i.e. @Where) [05:14]
Enkidu_ak [unaffiliated/enkidu-ak/x-8729472] has joined ##java [05:15]
Charmees1 iflow885 I must look into what where does exactly [05:16]
Charmees1 but I need the email row to somehow flag in what table it belongs and the ORM should be able to map it like that automatically [05:16]
dannyg [5354D8F4.cm-6-5d.dynamic.ziggo.nl] has joined ##java [05:18]
lucha [95.60.55.123] has joined ##java [05:18]
dinglebarry [107.15.83.110] has joined ##java [05:20]
iflow885 Charmees1, http://docs.jboss.org/hibernate/stable/annotations/reference/en/html/entity.html#entity-mapping-association-collections , 2.2.5.3.1.3. Unidirectional with join table [05:21]
javabot iflow885's title: Chapter2.Mapping Entities [05:21]
Iskarlar [D9641F32.static.ziggozakelijk.nl] has joined ##java [05:26]
Cust0sLim3n [unaffiliated/cust0slim3n] has joined ##java [05:28]
lucha [95.60.55.123] has joined ##java [05:30]
dj_pi [c-73-191-212-56.hsd1.mi.comcast.net] has joined ##java [05:32]
Charmees1 iflow885 interesting, let me look into it, sec [05:32]
Charmees1 iflow885 damn you ebeans : At time of writing Ebean does not support @OneToMany with @JoinTable. [05:36]
keksblub [xd9bb0760.dyn.telefonica.de] has joined ##java [05:37]
dreamreal hibernate filters, BTW, are fairly limited to hibernate. They're actually really neat. [05:37]
sfix [unaffiliated/sfix] has joined ##java [05:39]
FalseDeal [gprs-inet-183-146.elisa.ee] has joined ##java [05:39]
spuz [80.169.162.50] has joined ##java [05:40]
iflow885 Charmees1, then i would try http://stackoverflow.com/questions/21202490/ebean-query-by-onetomany-relationship [05:40]
gulli [gateway/web/freenode/ip.213.220.104.152] has joined ##java [05:41]
gulli Hi! [05:41]
iflow885 in my option, nearly everything is better then storing multiple values delimited in the same column in database [05:41]
gulli I was wondering, if a method in class B throws an exception, can I access the information for that exception (i.e. printstacktrace) from Class A which is above it in the stack? [05:43]
dreamreal iflow885: although it can work well for some situations [05:43]
dreamreal we stored MLS data in a single BLOB [05:43]
Charmees1 iflow885 well yeah, this is just normal join, but since book will reference User table, but my book can belong to User, Camel, Car, Door, Wizard, Warlock [05:43]
dreamreal gulli: so given A { a() {B.b()} } and B { b() }, can a() see what happened? [05:44]
CustosLimen [unaffiliated/cust0slim3n] has joined ##java [05:44]
gulli yeah it should, right? [05:45]
dreamreal a() { try { B.b(); } catch(Exception e) { /* I NOW HAVE ACCESS TO e.getStackTrace() ha ha ha ha */ } } [05:45]
ernimril gulli, normal try/catch, but it depends on what you mean with "access the information" [05:45]
raoulvdberge [gateway/web/irccloud.com/x-igpkwdwispjjnotf] has joined ##java [05:45]
ernimril gulli, in most cases you have to look at the code to figure out what went wrong [05:46]
aib [unaffiliated/aib42] has joined ##java [05:46]
macskay Hi guys, got a question regarding security in Spring MVC's Validation: http://stackoverflow.com/questions/32136315/validation-in-spring-with-different-roles (TL;DR: Can I tell a Validator to only accept certain alterations from specific roles, such as "Admin" and "Regular User"?) [05:47]
myu [unaffiliated/myu] has joined ##java [05:47]
gulli Oh ok, so the "e" gets thrown up the stack from its source [05:47]
Ragnor [dslb-084-062-037-233.084.062.pools.vodafone-ip.de] has joined ##java [05:47]
ernimril gulli, yes, exceptions propagate upwards the call stack until there is some catch-block that takes care of it [05:48]
limpep [90.216.134.197] has joined ##java [05:48]
gulli yeah but if there is a try-catch in class A (above in stack) and a try-catch in class B (below) throws an exception, will I see the same exception when looking at the try catch in A, as it was in B? [05:50]
lucha [150.Red-212-170-104.staticIP.rima-tde.net] has joined ##java [05:50]
sfix [unaffiliated/sfix] has joined ##java [05:51]
ernimril gulli, if b catches the exception it will not propagate upwards. So no [05:51]
hohl__ [195.96.7.102] has joined ##java [05:52]
gulli hmm, ok [05:52]
halcyone3 [CPE-58-172-98-234.mqzo1.cht.bigpond.net.au] has joined ##java [05:52]
ernimril gulli, if you do not want b to handle the exception you should not have it catch the exception [05:53]
iflow885 Charmees1, you have to filter by type i.a. you only get entries with email.email_type = 'work', not very beautiful but should work [05:54]
ernimril gulli, there are a lot of silly catch-clauses in code out there. Many people add a call to a method, "foo" that may throw FooException then they just do try{foo();}catch (FooException e) {e.printStackTrace();}. This is almost always stupid [05:54]
gulli So is it my design that is not right, or is this a problem that some get and there is a solution? I have a class, Class 0, that has a main method. It creates an object from Class A, and Class A creates an object from Class B. Class A and Class B have some try-catches for some methods. I am trying to get information about the exception thrown in B to the main method in class 0. [05:54]
iflow885 dreamreal, yes, for some situations, but in general it should be avoided [05:54]
hohl__ [195.96.7.102] has joined ##java [05:55]
ernimril gulli, let exceptions propagate up to some place where you know how to handle it. If it is a desktop app, then this means propagate up to some place where you can actually tell the user "shit happened!" [05:55]
sp1rs [122.176.197.246] has joined ##java [05:55]
macskay how would I tell bootstrap to only use "has-error" after I hit submit? [05:55]
kailoAtWork [cpe-104-35-108-87.socal.res.rr.com] has joined ##java [05:56]
gulli okok :) [05:56]
acuzio [unaffiliated/acuzio] has joined ##java [05:58]
gulli so in class 0, I could do something like: try { A.o } catch (Exception e) { e.printStackTrace()}, and if class B throws and exception, which leads to class A throwing an exception, the exception (I guess from A) will pop up in class 0? [05:58]
gulli sorry, bare with me, I'm trying to learn :) [05:59]
dreamreal iflow885: I dunno, it should be avoided mostly if you're planning on switching out persistence providers [05:59]
robwaz gulli, class A would need to throw as well, and then it would go up to class 0. [05:59]
hohl__ [195.96.7.102] has joined ##java [06:00]
dreamreal iflow885: I usually deterministically use Hibernate if I'm using an ORM, so I don't even bother with JPA [06:00]
gulli yeah class A throws also [06:00]
Iskarlar [D9641F32.static.ziggozakelijk.nl] has joined ##java [06:00]
nightly_build [gateway/web/freenode/ip.217.150.38.185] has joined ##java [06:01]
gulli is generally, is that good or bad design? [06:01]
ernimril gulli, correct, it will propagate from B to A to O [06:01]
dreamreal if it's what is supposed to happen, it's good [06:01]
dreamreal in general, exceptions should be handled when they are supposed to be handled; if A can handle B's exception, it should trap it and respond appropriately [06:02]
ernimril gulli, figuring out what is the correct level/layer to handle exceptions on is quite hard. You will get it wrong quite a lot of times at first. [06:02]
dreamreal if not, then propagate it up [06:02]
dreamreal (as a rule of thumb) [06:02]
gulli i.e. class 0 has a main, calls class A with A.o. Class A calls class B with B.r, and B catches something, which leads to A catching something, which leads to class 0 catching something and printing it out [06:02]
ernimril gulli, as I said above, there are a lot of people that add it at the lowest layer and that is typically not the right place [06:02]
gulli ok :) [06:02]
gulli I'm going to implement it like this and ask some more experienced programmers at work how they would do it [06:03]
dreamreal that's a good idea [06:03]
dreamreal hopefully they don't do it stupidly [06:03]
ernimril gulli, but there are no strict rules. You could also have things like "try {foo();} catch (FooException e) {throw new BarException("Failed to do foo", e);}" which throws a more descriptive exception to the upper layers [06:03]
gulli ok :) Thanks for the help everyone [06:04]
bgardner [cpe-108-167-9-227.neb.res.rr.com] has joined ##java [06:08]
hohl__ [195.96.7.102] has joined ##java [06:12]
MasterPiece [unaffiliated/masterpiece] has joined ##java [06:13]
Markoo [95.149.17.133] has joined ##java [06:14]
Zalabinsky [91-158-179-28.elisa-laajakaista.fi] has joined ##java [06:15]
nightly_build Hi guys, could anyone help me? I plays with trivial class parameterized by Integer, but I get compilation time error, here is code: http://pastebin.com/sJHmiduB [06:19]
Rickmasta [pool-74-101-29-191.nycmny.fios.verizon.net] has joined ##java [06:20]
Markoo [95.149.17.133] has joined ##java [06:21]
nightly_build Class Foo instantiated by Integer, and Foo's method uses Integer.compareTo(), but it does not work, javac says type T has no member compareTO [06:21]
Markoo tell javac he's a liar [06:22]
canton7 nightly_build, you haven't told the compiler that any T you use in Foo must implement Comparable. See http://stackoverflow.com/a/2081722/1086121 [06:22]
javabot canton7's title: How to set constraints on generic types in Java? - Stack Overflow [06:22]
myu [unaffiliated/myu] has joined ##java [06:26]
Uatec_ [78.151.146.46] has joined ##java [06:31]
lynx-r [109-61-254-139.dsl.orel.ru] has joined ##java [06:32]
Kn|t3 [nat/google/x-xhzhnaoynndwqqva] has joined ##java [06:34]
Streusel [unaffiliated/streusel] has joined ##java [06:35]
Markoo [95.149.17.133] has joined ##java [06:40]
hohl_ [195.96.7.102] has joined ##java [06:41]
sp1rs [122.176.197.246] has joined ##java [06:42]
dreamreal canton7: yeah, that should take care of it: T extends Comparable<T> [06:43]
kirua [unaffiliated/kirua] has joined ##java [06:47]
Markoo [95.149.17.133] has joined ##java [06:48]
kirua i have a date in String format "yyy:MM:dd" which the iso format for my DB, how to make it into a Date object ? [06:50]
kirua Date object in the same format [06:51]
dreamreal kirua: SimpleDateFormat can parse a string into a date [06:53]
dreamreal but your DB probably has an actual date type [06:53]
aib iso format for your db? [06:54]
dreamreal aib: he may not realize the difference between external representation and the internal type, though [06:56]
kirua with Spring MVC, i wanted to pass directly a Date object from an html form but the web container says the request is syntaxically incorrect [06:56]
dreamreal so it may be the right type and his mysql is just showing it to him like a string [06:56]
kirua i think thats the issue, so i have to pass it as a String and then parse it into a date [06:56]
dreamreal or he might just not know what he's doing [06:57]
kirua dreamreal, thats how you learn, isnt it ? [06:57]
dreamreal sure [06:57]
bolovanos [91.201.22.5] has joined ##java [06:57]
aib <@dreamreal> kirua: SimpleDateFormat can parse a string into a date [06:57]
dreamreal how are you trying to write it to the DB? Which request is not in the correct format? [06:57]
kirua ok i try and tell you guys [06:58]
dreamreal you're... not already doing that? [06:58]
bf_ [xdsl-78-35-228-210.netcologne.de] has joined ##java [06:58]
kirua ok i'll paste and post code [06:58]
kirua yes im already trying [06:58]
Markoo [95.149.17.133] has joined ##java [06:59]
rgr [f054130099.adsl.alicedsl.de] has joined ##java [07:00]
spuz kirua: typically this is how you'd handle storing a date coming from a web front end: Client creates a valid date object (either via a calendar picker or new Date() or something). The client sends this to the server as a string. That might be an ISO formatted string or a number representing number of milliseconds. On the server you convert that string into a Date using either SimpleDateFormat or just allowing [07:02]
spuz your serialisation layer to do it for you. Then you tell your DB, hey I have this Date to store, here it is. [07:02]
kirua thankx spuz for such a clear explanation [07:02]
spuz When you retrieve the date, you ask you DB can you get me that field called "xyz" oh by the way it's a date. The DB driver then returns it to you as Date object. In other words, ideally you're not doing any conversion between string and Date yourself [07:02]
leolrrj [189.112.234.129] has joined ##java [07:03]
kirua i'm trying the first way (converting the String coming from the client by using SimpleDateFormat) [07:04]
dinglebarry [107.15.83.110] has joined ##java [07:04]
Gluesticky [unaffiliated/gluesticky] has joined ##java [07:07]
mitchnull [apn-94-44-13-34.vodafone.hu] has joined ##java [07:07]
Areks [rs.gridnine.com] has joined ##java [07:12]
Uatec_ [host-78-151-146-46.as13285.net] has joined ##java [07:12]
lulzmachine [gateway/web/irccloud.com/x-ulzejvjawyqjfjfk] has joined ##java [07:12]
dreamreal that would be the smartest [07:13]
dreamreal convert it to date as soon as you can, let the ORM or JDBC manage it [07:13]
dinglebarry [107.15.83.110] has joined ##java [07:15]
Devastator [unaffiliated/devastator] has joined ##java [07:15]
kirua [unaffiliated/kirua] has joined ##java [07:15]
ondroed [95.80.76.146] has joined ##java [07:18]
Leftas [91.228.84.180] has joined ##java [07:18]
ondroed what is best way to make rigth path from pathSting and fileName. I mean, to check if pathString contain ending \ or / and mayby other stuff? people [07:21]
ondroed maybe there is some threadsafe anticoreoverflow libs? [07:21]
Markoo [95.149.17.133] has joined ##java [07:22]
sfix [unaffiliated/sfix] has joined ##java [07:24]
dreamreal have you tried? [07:24]
ondroed files.add(outputDirPath + File.pathSeparator + fileName); [07:25]
ondroed before that i checked that outputDirPath exists and is directory [07:25]
bolovanos [91.201.22.5] has joined ##java [07:31]
Kn|t3 [nat/google/x-rphxyjdpfobpczgc] has joined ##java [07:31]
halcyone3 [CPE-58-172-98-234.mqzo1.cht.bigpond.net.au] has joined ##java [07:32]
yaswanth [inet-hqmc05-o.oracle.com] has joined ##java [07:33]
floralshoppe [147-203-196-88.dyn.estpak.ee] has joined ##java [07:33]
scav [nsd092196.klientdrift.uib.no] has joined ##java [07:34]
Juzzika [91.183.62.67] has joined ##java [07:46]
dannyg [5354D8F4.cm-6-5d.dynamic.ziggo.nl] has joined ##java [07:46]
leolrrj [189.112.234.129] has joined ##java [07:48]
hohl_ [195.96.7.102] has joined ##java [07:49]
genera [unaffiliated/genera] has joined ##java [07:52]
hohl_ [195.96.7.102] has joined ##java [07:52]
hohl_ [195.96.7.102] has joined ##java [07:55]
kirua is it better to use @Enumerated(EnumType.STRING) or Ordinal ? [07:55]
floralshoppe [147-203-196-88.dyn.estpak.ee] has joined ##java [07:57]
hohl_ [195.96.7.102] has joined ##java [07:58]
kirua when i choose String, mysql put the collation to latin1_swedish_ci [07:58]
ArmPy [gateway/web/irccloud.com/x-agaqhyuokjnosutg] has joined ##java [07:59]
fstd [unaffiliated/fisted] has joined ##java [07:59]
macskay how would i add up an int inside a spring form? I have a bitmask "int days" and 7 form:checkboxes. Now I want to update my days-property according to the boxes which are selected. mo=1, tu=2, we=4 etc. [08:01]
dreamreal why is it a bitmask? [08:02]
macskay well that's the way it was implemented a long time ago [08:03]
dreamreal yeah, fix that [08:03]
macskay well isn't there a way in the spring form? [08:03]
hohl_ [195.96.7.102] has joined ##java [08:04]
TU parted the channel: [08:04]
bolovanos [91.201.22.5] has joined ##java [08:04]
Maxel [50.241.60.122] has joined ##java [08:04]
dreamreal I dunno, I don't like the idea of spring forms. I'm sure there's a way; it's just a representation of an enum, in the end [08:06]
hohl__ [195.96.7.102] has joined ##java [08:06]
Krisostoomus [82.131.36.28.cable.starman.ee] has joined ##java [08:07]
Krisostoomus parted the channel: [08:07]
phpcoder [net-188-153-171-52.cust.dsl.teletu.it] has joined ##java [08:10]
hohl_ [195.96.7.102] has joined ##java [08:15]
Krisostoomus [82.131.36.28.cable.starman.ee] has joined ##java [08:17]
Krisostoomus hey..any questions? [08:17]
ron you just joined the channel. [08:18]
Krisostoomus ok, lets wait [08:18]
sfix [unaffiliated/sfix] has joined ##java [08:19]
Krisostoomus https://www.youtube.com/watch?v=1G4isv_Fylg [08:20]
javabot Krisostoomus' title: Coldplay - Paradise - YouTube [08:20]
Neo-- [BSN-77-159-184.static.siol.net] has joined ##java [08:20]
Burgundy [188.25.39.252] has joined ##java [08:20]
Cust0sLim3n [unaffiliated/cust0slim3n] has joined ##java [08:23]
mebigfatguy [24.145.95.199] has joined ##java [08:23]
Krisostoomus I was just thinking, what to do. The choises: 1. to learn zend framework 2. being a smartass in #java channel. Quess, what I chose. [08:24]
Kn|t3 [nat/google/x-ntjpfpyibwsvkqvn] has joined ##java [08:28]
Neo-- [BSN-77-159-184.static.siol.net] has joined ##java [08:28]
Krisostoomus parted the channel: [08:28]
Leates [unaffiliated/leates] has joined ##java [08:29]
hohl_ [195.96.7.102] has joined ##java [08:29]
dreamreal to learn zend? [08:31]
plarsen [redhat/jboss/pdpc.professional.plarsen] has joined ##java [08:34]
Krisostoomus [82.131.36.28.cable.starman.ee] has joined ##java [08:35]
Markoo [95.149.17.133] has joined ##java [08:35]
ondroed i heard avatar was made on zend [08:38]
dreamreal shrugs [08:38]
Dragooon [simplemachines/customizer/Dragooon] has joined ##java [08:41]
Rickmasta [pool-74-101-29-191.nycmny.fios.verizon.net] has joined ##java [08:41]
kiview [212.23.140.110] has joined ##java [08:41]
weyer [h2359365.stratoserver.net] has joined ##java [08:41]
hohl_ [195.96.7.102] has joined ##java [08:43]
sfix [unaffiliated/sfix] has joined ##java [08:47]
TooLmaN [mail.thomsonplastics.com] has joined ##java [08:49]
keksblub [xd9bb0760.dyn.telefonica.de] has joined ##java [08:49]
sanketdg [43.251.170.12] has joined ##java [08:51]
EoF [ip5b41bb22.dynamic.kabel-deutschland.de] has joined ##java [08:54]
cl-ar [pc-68-251-214-201.cm.vtr.net] has joined ##java [08:58]
hohl__ [195.96.7.102] has joined ##java [08:59]
genera [unaffiliated/genera] has joined ##java [09:03]
hohl__ [195.96.7.102] has joined ##java [09:09]
j4nnis [p20030058BD0647581DCB46FA904D88F1.dip0.t-ipconnect.de] has joined ##java [09:09]
Krisostoomus any questions? [09:11]
abra [178.47.230.67] has joined ##java [09:12]
airborn [unaffiliated/airborn] has joined ##java [09:12]
macskay how would i add up an int inside a spring form? I have a bitmask "int days" and 7 form:checkboxes. Now I want to update my days-property according to the boxes which are selected. mo=1, tu=2, we=4 etc. [09:12]
Krisostoomus do i hear something SQLish ? [09:13]
Cust0sLim3n [unaffiliated/cust0slim3n] has joined ##java [09:13]
rmgk_ [x4db1b712.dyn.telefonica.de] has joined ##java [09:13]
dinglebarry [107.15.83.110] has joined ##java [09:16]
Dragooon [simplemachines/customizer/Dragooon] has joined ##java [09:17]
RazielZ [cpc16-broo8-2-0-cust158.14-2.cable.virginm.net] has joined ##java [09:19]
MarkyC [75.98.201.106] has joined ##java [09:20]
slackoverflow [37.228.231.28] has joined ##java [09:26]
Dragooon [simplemachines/customizer/Dragooon] has joined ##java [09:27]
sl33k [gateway/web/cgi-irc/kiwiirc.com/ip.213.235.17.242] has joined ##java [09:28]
RETURNS [49.15.144.85] has joined ##java [09:29]
GrayArea [cpc73846-dals21-2-0-cust384.20-2.cable.virginm.net] has joined ##java [09:30]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [09:31]
whaley why is it a bitmask? [09:31]
tyrostone [72.22.163.41] has joined ##java [09:33]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [09:33]
unreal_ [unaffiliated/unreal] has joined ##java [09:34]
ron why not? [09:35]
hohl_ [195.96.7.102] has joined ##java [09:36]
aro i am posting data to a spring rest webservice, it saves to the db fine, but i dont get any response from the controller [09:36]
aro i am using ajax to submit it [09:37]
txomon|home [unaffiliated/txomon] has joined ##java [09:37]
mintograde [71-10-253-209.dhcp.oxfr.ma.charter.com] has joined ##java [09:38]
sp1rs [122.176.197.246] has joined ##java [09:38]
pr3d4t0r [2601:646:4001:7d00:e269:95ff:fed7:b2e2] has joined ##java [09:41]
tyrostone [72.22.163.41] has joined ##java [09:42]
Markoo [95.149.17.216] has joined ##java [09:43]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [09:43]
Draecos [58-7-58-83.dyn.iinet.net.au] has joined ##java [09:45]
Draecos [58-7-58-83.dyn.iinet.net.au] has joined ##java [09:46]
longbeach [AFontenayssB-152-1-56-9.w82-121.abo.wanadoo.fr] has joined ##java [09:46]
tinduck [ipsec-143-215-26-74.vpn.gatech.edu] has joined ##java [09:48]
kermit [pdpc/supporter/bronze/kermit] has joined ##java [09:48]
sp1rs [122.176.197.246] has joined ##java [09:50]
hohl_ [195.96.7.102] has joined ##java [09:50]
aretecode [69.4.235.219] has joined ##java [09:51]
sbalmos [74.83.55.242] has joined ##java [09:51]
hohl__ [195.96.7.102] has joined ##java [09:53]
Markoo [95.149.17.216] has joined ##java [09:57]
txomon|home [unaffiliated/txomon] has joined ##java [09:57]
hohl__ [195.96.7.102] has joined ##java [09:58]
rajrajraj_ [gateway/web/irccloud.com/x-uolfcdoaytgeimms] has joined ##java [10:02]
eucalyptus [4.34.49.230] has joined ##java [10:04]
scellow [ip-249.net-89-2-143.rev.numericable.fr] has joined ##java [10:06]
djhworld [gatea.telhc.bbc.co.uk] has joined ##java [10:08]
fatguylaughing [worx01.worxco.net] has joined ##java [10:08]
sl33k [gateway/web/cgi-irc/kiwiirc.com/ip.213.235.17.242] has joined ##java [10:09]
cofo [gateway/web/irccloud.com/x-ocsfsxhcqhmxkrck] has joined ##java [10:13]
cbeust [unaffiliated/cbeust] has joined ##java [10:14]
feneco_ [179.186.146.247.dynamic.adsl.gvt.net.br] has joined ##java [10:14]
Gluesticky [unaffiliated/gluesticky] has joined ##java [10:18]
blue_deref [cpe-74-77-246-241.buffalo.res.rr.com] has joined ##java [10:19]
bolovanos [91.201.22.5] has joined ##java [10:19]
OneM_Industries [ftth-66-132.bvunet.net] has joined ##java [10:19]
hohl__ [195.96.7.102] has joined ##java [10:20]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [10:22]
eindoofus hi, i'm a bit confused about this paragraph in this Java Concurrency in Practice book: [10:23]
eindoofus http://pastebin.com/DSxMfWVE [10:23]
halcyone3 [CPE-58-172-98-234.mqzo1.cht.bigpond.net.au] has joined ##java [10:23]
eindoofus wouldn't an overriden method only be considered 'alien' if it calls it's superclass [10:23]
waz where'd you get that term [10:26]
canton7 eindoofus, noooo [10:27]
canton7 eindoofus, the point is, if C invokes an overridable method on C, then C doesn't know what code it's actually executing [10:27]
bart_b [unaffiliated/bart-b/x-7974760] has joined ##java [10:28]
waz Aliens! [10:28]
Dudi [user-94-254-209-206.play-internet.pl] has joined ##java [10:29]
eindoofus canton7, ohhh, cause a subclass could be the one overriding it. is that correct? [10:29]
waz that text you posted seems pretty clear [10:29]
canton7 yes [10:29]
eindoofus waz, i grew up with a reading comprehension issues. my fault, i know [10:30]
eindoofus canton7, thanks [10:30]
vitimiti [unaffiliated/vitimiti] has joined ##java [10:32]
schu-r [82-149-107-2.wco.wellcom.at] has joined ##java [10:38]
SHC [117.204.43.68] has joined ##java [10:39]
Draecos [58-7-167-241.dyn.iinet.net.au] has joined ##java [10:41]
aqd [host-170.42-43-115.dynamic.totalbb.net.tw] has joined ##java [10:42]
sir_galahad_ad [cpe-76-178-229-105.maine.res.rr.com] has joined ##java [10:43]
Hubatrix [gateway/web/freenode/ip.106.51.234.89] has joined ##java [10:43]
avernon [2610:130:104:300:492f:90f7:6b23:bc3b] has joined ##java [10:45]
Hubatrix hello have a trivial question here, i want to initialize threads individually on different cores, so i can run all those threads simultaneously, as i am new to java can someone help me how to get along with this, where to start ? please [10:46]
cheeser you would just start your threads and the VM would manage that. [10:47]
jstimm [unaffiliated/jstimm] has joined ##java [10:49]
btc_panhandler [216.49.181.251] has joined ##java [10:51]
Hubatrix so i define the thread by taking the next instructions of a task and how do i make it run completely independent on a core so that there is no switching happening by task scheduler cheeser [10:53]
cheeser what? [10:53]
Hubatrix i guess i better do some read up before going further thanks anyways [10:54]
freeone3000 Hubatrix: You don't want this. You think you want this, but you don't want this. You defined it as "taking next instructions of a task", which to me, says producer-consumer, which means there's blocking at some point. [10:54]
freeone3000 Hubatrix: Which means you absolutely want a scheduler to handle your waits and yields, so you want pre-empting, so you want a regularly scheduled thread. [10:54]
One3yed [gateway/web/cgi-irc/kiwiirc.com/ip.70.117.116.68] has joined ##java [10:56]
Hubatrix no i dont want pre empting i want a single thread running on a core once at a time, so that for a small task set like 4 tasks , i can give 4 threads on 4 cores (mine is quad core) and run it simultaneously, ii thought of running 2 threads on a core but that is just not simultaneous but its just a high frequency switching of task scheduler between those 2 threads [10:57]
Hubatrix freeone3000: [10:57]
Hubatrix hope u understand what i am trying to do [10:57]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [10:57]
conan__ [mdproctor.plus.com] has joined ##java [10:58]
yawkat Hubatrix: the scheduler will do that for you when needed. [10:59]
yawkat why do you worry about that [10:59]
waz Hubatrix: you're trying to do something java doesn't let you do [10:59]
waz if for some odd reason it's a must you may need to try a different language [11:00]
Arshoon [nv-71-53-165-0.dhcp.embarqhsd.net] has joined ##java [11:00]
Hubatrix no i am building my own small simulated scheduler , finished it using round robin but i want to do multi processing simultaneosly and use 4 cores at once idependently computing the task so that no sswitching takes place [11:02]
Optic this is just amaze https://bugs.openjdk.java.net/browse/JDK-8055864 [11:02]
javabot Optic's title: [#JDK-8055864] RPM package name has changed (not backward-compatible) and contains versio - Java Bug System [11:02]
Hubatrix something like handelling a set of threads (4) at once and next set after it completes [11:02]
yawkat Hubatrix: why are you doing this [11:03]
Hubatrix yawkat: waz freeone3000 [11:03]
freeone3000 Hubatrix: You mean "tasks". [11:03]
yawkat use a forkjoin pool. [11:03]
yawkat assuming youre not blocking. [11:03]
freeone3000 Hubatrix: You want to batch process a set of 4 tasks, and then wait until they all complete, then process a next batch? Is there a reason you can't process two tasks, then three tasks, then one task, then...? [11:03]
Hubatrix yawkat: i guess for smaller tasks(processes) this would be faster then round robin [11:03]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:03]
yawkat ~~ Hubatrix xy [11:04]
javabot Hubatrix, This sounds like an "XY Problem" (http://is.gd/CPLljg): The problem is X, but the question is about a guessed solution Y, which is also not understood. What are you actually trying to achieve? Why are you doing it this way? [11:04]
freeone3000 Hubatrix: Yes, using a thread pool and a task queue is slightly better than using a thread-per-task and putting all the stress on the scheduler, but what do you actually have to do? What are your real constraints? [11:04]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:04]
sanketdg [43.251.170.12] has joined ##java [11:05]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:05]
avernon parted the channel: [11:06]
rajrajraj_ parted the channel: [11:07]
Hubatrix i just think , running threads individually on a core without switching between other threads happening will give results faster, for ex round robin first gives thread1 cpu usage for 10 sec and then thread2 for 10 sec and soon, this is a case of a single core, when i have 4 cores why not run all this threads on 4 different cores so that i cut that stalling time(waiting) [11:07]
Hubatrix freeone3000: yawkat javabot [11:07]
freeone3000 Hubatrix: Because you also have to run other stuff. [11:07]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:07]
freeone3000 Hubatrix: You do. You really do. You cannot core-pin all cores of a processor, because then things like "mouse input" [11:08]
yawkat the difference is probably small enough not to matter anyway. [11:08]
Hubatrix nono as i said u its a simulated one not an actual task scheduler which handles everything [11:08]
freeone3000 Hubatrix: and "disk IO" and "networking" won't happen. This Is Bad (TM). So you can, at most, core pin (cores-1) processors. However... [11:08]
Markoo [95.149.17.216] has joined ##java [11:08]
freeone3000 Hubatrix: So you're in an imaginary fantasy land where no input we have applies? [11:08]
limpep [90.216.134.193] has joined ##java [11:09]
freeone3000 Hubatrix: Or are you trying to actually solve a thread scheduling problem as it would occur in reality? [11:09]
canvs2321 [gateway/web/irccloud.com/x-qhfonqeygmoxkuyt] has joined ##java [11:09]
Hubatrix freeone3000: forget everything else that a os handles, and lets say it only concentrates on these 4 tasks , let me take care of other networking, disk io by giving them higher privilege and running them as a demon [11:10]
Hubatrix *deamon [11:10]
freeone3000 Hubatrix: You can't have "higher priviledge" than core pin, by definition. [11:10]
Hubatrix not in reality freeone3000 [11:10]
Hubatrix a simulated environment [11:10]
freeone3000 Hubatrix: Well, yes, in reality, but apparently not in your fantasy land. [11:11]
bluezone [gateway/web/irccloud.com/x-ygwonvemonheoyec] has joined ##java [11:11]
freeone3000 Hubatrix: Okay, so no input I can provide applies. [11:11]
Hubatrix to prove my point that this way o/p is faster than round robin [11:11]
freeone3000 Hubatrix: In your fantasy land, sure, why not. You can imagine anything. [11:11]
Hubatrix cant i implement it anyway ? [11:11]
yawkat not in java. [11:12]
freeone3000 Hubatrix: No. Here's why. You can't core pin all CPUs. Next, you have a work provider, and that provider gives work. So you need a CPU for it. But that means you have (cores-2) cpus do to work, and one to provide work. Now, that means your producer must be (cores-2) times as fast as each consumer, individually. [11:12]
yawkat java abstracts stupid programming choices away so you dont do them. [11:12]
Hubatrix but java is know to do thread managment well [11:12]
Hubatrix oh freeone3000 right [11:13]
freeone3000 Hubatrix: Since cores is a variable, this means your producer must have *variable performance*. Okay, that's bad. What if we take the largest even number smaller than (cores-1), evenly divide it between consumer and producer, and have each consumer consume exactly as fast as a producer produces? [11:13]
yawkat still, why do you care? if you want fast parallel processing, forkjoinpool is probably faster than anything you can code in a reasonable time frame [11:14]
freeone3000 Hubatrix: This maths. But in practice, you can't effectively do that - mostly because your consumer does actual work, and your producer usually has a variable wait (disk, net, ...). [11:14]
cheeser s/in.*// [11:14]
Hubatrix freeone3000: u made me get another doubt why not dedicate 2 cores to do all the normal os stuff, and use the other 2 to pin threads and compute twice the normal time ? [11:14]
yawkat because you get lots of unused cpu time that way. [11:15]
freeone3000 Hubatrix: Also, if your producer and consumer are at exactly the same rate, just make them the same task, produce-consume. [11:15]
rsz [182.68.32.5] has joined ##java [11:15]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:15]
tyrostone [72.22.163.41] has joined ##java [11:16]
freeone3000 Hubatrix: What happens on real systems is that greater than 90% of all threads don't have any work to do. They just sort of sit there. If you have a CPU-intensive task, and it computes in its entire quantum, it gets scheduled preferentially already. If you have some task which is an infinite amount of work, it eats up an entire core just fine already. [11:16]
freeone3000 Hubatrix: If you have two such threads, they're already scheduled as such. Now, normally, if you have an infinite amount of work you'd do it on the GPU instead of the CPU because it'd get done faster, but anyway. [11:16]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:17]
dinglebarry [107.15.83.110] has joined ##java [11:17]
freeone3000 Hubatrix: You usually don't core-pin because programs generally consist of inputs and outputs, and getting input takes nanoseconds, sometimes even microseconds, and that's wasted CPU time. [11:17]
Hubatrix may be yawkat but the goal of this computer is to solve the 4 tasks as quickly as possible and nothing else, then 2 core parallel processing would sound good right [11:17]
freeone3000 Hubatrix: So you don't have input, just output? [11:18]
freeone3000 Hubatrix: And you're in fantasy land again. [11:18]
yawkat there should be a gpu extension for forkjoinpool because why not [11:18]
Hubatrix yes i do have i/p [11:18]
Hubatrix i/p is handled by other 2 cores freeone3000 [11:18]
yawkat Hubatrix: so you have two mostly unused cores sitting there doing nothing? [11:18]
cheeser yawkat: project sumatra [11:18]
freeone3000 yawkat: Because most of the time would be spent on data transfer instead of doing actual work? [11:18]
yawkat cheeser: does it actually work yet? [11:18]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:18]
freeone3000 Ah. Yep, there we go. [11:19]
cheeser partially, yeah. [11:19]
freeone3000 yawkat: You can also do it as a BufferedImageOp currently. [11:19]
cheeser http://openjdk.java.net/projects/sumatra/ [11:19]
Hubatrix cool so i can actually do that use 2 cores to do parallel processing while other 2 handles the rest, now i just need to knw how to pin threads to these cores and change batch once tasks complete [11:20]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:20]
yawkat freeone3000: would transfer be that bad? you only need to transfer bytecode when new task types are sent and if your queue is decently filled would it still matter? [11:20]
yawkat ... [11:20]
freeone3000 Hubatrix: Can't pin cores in Java. [11:20]
freeone3000 Hubatrix: I mean, you want it fast, right? So rewrite it in your standard performant mix of C/ASM and FORTRAN. [11:20]
Hubatrix then how do i tell a core to compute a single thread once at a time ? freeone3000 [11:21]
yawkat you dont. [11:21]
Hubatrix oh [11:21]
freeone3000 Hubatrix: Terminology point: Threads are not computable. Tasks are computable. You can get the result of a task. Getting the result of "a thread" doesn't make sense, any more than getting the result of "a core" does. [11:21]
yawkat as freeone3000 explained extensively, the scheduler is good enough for 99% of applications, and you dont use java for the rest. [11:21]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:21]
Hubatrix yawkat: why cant i ? is it that i cant with java or is it its no possible at all? [11:21]
yawkat you cant with java. [11:21]
freeone3000 Hubatrix: Can't with Java. There's OS API-specific bindings if you need them. [11:22]
cheeser and i really doubt that's what your app needs. [11:22]
cheeser computers are really good resource management and scheduling. [11:22]
Hubatrix hmmm so what is the point of thread management when java cant do parallel processing of tasks? [11:23]
Hubatrix freeone3000: [11:23]
freeone3000 Hubatrix: That's not what you're asking for. It can absolutely do paralllel processing of tasks. [11:23]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:23]
Hubatrix under a single core ? freeone3000 [11:23]
yawkat you dont need pinning for parallel processing [11:23]
yawkat the scheduler does it automatically [11:23]
freeone3000 Hubatrix: NOTHING supports parallel processing of tasks under a single core! It's faked using preemptive scheduling. [11:23]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:24]
freeone3000 Hubatrix: I mean, on modern OSes, there have historically been cooperative multithreading systems, and I'm sure there's still some RT stuff out there. [11:24]
freeone3000 Hubatrix: But it's one thing at a time for each core, always. [11:24]
Hubatrix like run 4 task simultaneously ? i doubt that acording my understanding of schedulers , they only switch and they do it in high freequency switching between threads , its not actully simultaneously this is why i wanted to run threads individually without switching so badlly [11:25]
freeone3000 Hubatrix: You can't do that unless you have more cores. [11:25]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:25]
Hubatrix yawkat: [11:25]
freeone3000 Hubatrix: If you want to run tasks without switching on a single core... well, first, run DOS 5.3, second, don't do anything that would yield your thread quantum, third, make your process single-threaded. [11:25]
dreamreal Hubatrix: did you know that processors have been really pretty decent at multithreading for years and years and years? [11:26]
freeone3000 Hubatrix: If you're willing to accept that sometimes, other stuff will get scheduled anyway, just do the third bit. Because having threads greater than cores on a CPU-bound task will reduce performance, not increase it. [11:26]
howitdo [unaffiliated/howitdo] has joined ##java [11:26]
Hubatrix well freeone3000 i wanted to do this using java, which is not possible right? [11:26]
Hubatrix dreamreal: i knw i am in a simulated environment [11:26]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:26]
freeone3000 dreamreal: "fantasy land" [11:26]
Markoo [95.149.17.216] has joined ##java [11:27]
Hubatrix lol [11:27]
freeone3000 Hubatrix: You can totally use only one thread in Java. [11:27]
yawkat my computer has unlimited cores, does java support this? [11:27]
freeone3000 yawkat: Runtime will return a negative number, but since Java doesn't thread-schedule, yes. [11:27]
erts [unaffiliated/erts] has joined ##java [11:27]
eucalyptus [4.34.49.230] has joined ##java [11:27]
yawkat thanks [11:28]
Sasazuka [unaffiliated/sasazuka] has joined ##java [11:28]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:28]
freeone3000 Hubatrix: First consideration: Are your tasks CPU-bound, disk-bound, or network-bound? [11:29]
Hubatrix f [11:29]
Hubatrix all i am asking is " Can I do parallel processing (which involves no switching) with multi cores, so that my o/p will be faster, i mean implement this in java considering my only i/p's forever will be 4 tasks and normal os stuff" [11:29]
Hubatrix freeone3000: [11:29]
Hubatrix cpu-bound [11:29]
freeone3000 Hubatrix: Why the "involves no switching" bit? Why are you focused on this? [11:29]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:29]
dreamreal and since you're asking about java, no [11:29]
dreamreal you can't [11:29]
freeone3000 Hubatrix: You seem to be under some ridiculous delusion that it's "faster". [11:29]
freeone3000 Hubatrix: What's an "i/p"? [11:30]
Hubatrix coz i want to try something new freeone3000 any one can simply move to higher frequency switching, which will average out the o/p time, but i want to cut short that small nano-sec too [11:30]
Hubatrix input task [11:30]
Hubatrix a process [11:30]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:30]
freeone3000 Hubatrix: So you have EIGHT processes? [11:31]
Hubatrix no sorry 4 tasks and thats all freeone3000 [11:31]
freeone3000 Hubatrix: Or do you only have four tasks, which look like: (get input, write output)? [11:31]
freeone3000 Hubatrix: Okay, and these tasks execute indefinitely? [11:31]
Hubatrix yes freeone3000 [11:31]
freeone3000 Hubatrix: Fixed thread pool of size four. [11:31]
freeone3000 ~next [11:31]
javabot Another satisfied customer. Next! [11:31]
Hubatrix no [11:31]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:32]
Hubatrix they have lets say 30 sec or 40 sec total time required to compute [11:32]
mike802 [65-183-130-51-dhcp.burlingtontelecom.net] has joined ##java [11:32]
Hubatrix f [11:32]
Hubatrix freeone3000: [11:32]
freeone3000 Hubatrix: So you have four tasks, in total? Or you have four *types* of task? [11:32]
sssilver [38.122.48.218] has joined ##java [11:32]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:33]
sssilver Hey guys, please take a look at this snippet: https://dpaste.de/qZQc. How do I make sql() function have no parameter `out`? [11:33]
freeone3000 sssilver: () -> instead of out -> [11:33]
Hubatrix for ex: task1 time it takes to computes:50 , task2 30 , task3 20 task4 40 [11:33]
blackb1rd [38.88.247.146] has joined ##java [11:33]
Hubatrix freeone3000: [11:33]
sssilver ah, thanks freeone3000! [11:34]
freeone3000 Hubatrix: Okay, and then what happens? [11:34]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:34]
Hubatrix right now what i do is use round robin and complete the tasks by scheduling it with a time granularity of 10 sec [11:34]
Hubatrix but [11:34]
freeone3000 Hubatrix: What happens after 50s? [11:35]
NeoThermic|Work [unaffiliated/neothermic] has joined ##java [11:35]
NeoThermic|Work parted the channel: "Leaving" [11:35]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [11:35]
lampe2 [v22014031382717481.yourvserver.net] has joined ##java [11:36]
Hubatrix i want to dedicate 2 cores for running task1 and task2 simultaneously, so that once i send task1 and task2 as a batch and make core3 compute task1 and core4 tas2 once 30 sec finished core4 will switch to task3 and once 50 sec finishes core3 will switch to task 4 [11:36]
dreamreal not with java. [11:36]
Hubatrix so like this there is no waiting time [11:36]
Hubatrix freeone3000: [11:36]
dreamreal there's not likely to be a waiting time anyway. Java's fast as hell. [11:37]
Hubatrix nono dreamreal in round robin every for 10 sec only task will be computing so other will we be waiting [11:37]
Hubatrix freeone3000: [11:37]
dreamreal so you'll have to write a lot of stuff yourself for this. [11:37]
freeone3000 Hubatrix: Why would they be waiting? You have some sort of dependency between tasks? [11:38]
dardevelin [unaffiliated/dardevelin] has joined ##java [11:40]
Hubatrix i have designed my task scheduler such that the 1 task is being handled by cpu at one time and it can only handle it for 10 sec and then put it to wait state and then take up task2 handle it for 10 and move on so all this is in a queue, and this keeps happening until task1 takes 50 sec of cpu time and task2 takes 30 sec and s on [11:40]
Hubatrix freeone3000: [11:40]
dreamreal you designed it in java, did you? [11:41]
Hubatrix so when i do this while task1 being handled task2 ,3,4 will be waiting [11:41]
freeone3000 Hubatrix: So wait, you're *designing* a scheduling algorithm? WHy? [11:41]
Hubatrix i dont want that to happen [11:41]
magentar [5.146.254.206] has joined ##java [11:41]
freeone3000 Hubatrix: And why are you limiting yourself to one core? [11:41]
JesuZ [dsl-hkibrasgw5-58c053-246.dhcp.inet.fi] has joined ##java [11:41]
Hubatrix no freeone3000 what i ever i said is the ROUND ROBIN algorithm [11:41]
freeone3000 Hubatrix: Yeah, I'm still not sure what you mean by that. [11:42]
Hubatrix exactly how do i use more than 1 core? this is what i needed to kwn frm very beginning how do i interact with cores using java [11:42]
Hubatrix freeone3000: https://en.wikipedia.org/wiki/Round-robin_scheduling [11:42]
javabot Hubatrix's title: Round-robin scheduling - Wikipedia, the free encyclopedia [11:43]
Hubatrix i just did that freeone3000 [11:43]
freeone3000 Hubatrix: Yeah, so what about it? [11:43]
freeone3000 Hubatrix: WHY DID YOU IMPLEMENT A SCHEDULING ALGORITHM? [11:43]
dreamreal this is a question with some actual relevance [11:43]
Hubatrix coz i didnt knw how to do parallel processing.. so had to first do something i knw, why it was an activity for us to build a task scheduler, i did but , i want to something more [11:44]
yawkat you will *not* be able to do it faster in java than the default scheduling. [11:44]
dreamreal you don't have to do ANY of this [11:45]
Hubatrix something like parallel processing so that i can cut waiting time found in round robin algo [11:45]
freeone3000 Hubatrix: new Thread(run1).start(); new Thread(run2).start(); //yay, I'm parallel processing! [11:45]
chrisdn2 [24-197-92-90.static.mtgm.al.charter.com] has joined ##java [11:45]
chrisdn2 does anyone know of a delimiter that wouldnt show up in a string when I set text to a JLabel? [11:45]
yawkat zero-width space probably, but why [11:46]
freeone3000 chrisdn2: Do not use JLabel display text for data storage. First, because they contain a name, which isn't displayed and you can use that. Second, we have variables for this. [11:46]
Hubatrix freeone3000: this is actually running simultaneously? without any task scheduler doing switching in between ? [11:46]
chrisdn2 oh im not, i need to be able to split the text [11:46]
freeone3000 Hubatrix: Sure, why not. [11:46]
dreamreal Hubatrix: if the cores support it [11:46]
chrisdn2 I have like 1. MENU OPTION 1 [11:46]
chrisdn2 and i need to get rid of the 1. [11:46]
chrisdn2 or 2. [11:46]
chrisdn2 etc [11:46]
dreamreal Hubatrix: if not, java has its own built-in round-robin workings [11:46]
freeone3000 chrisdn2: It still sounds like you're determining behavior based on your display text. [11:47]
dreamreal it's actually QUITE advanced [11:47]
chrisdn2 how else can i determine what menu option we are on? [11:47]
chrisdn2 when we hit enter [11:47]
freeone3000 chrisdn2: Well, it's the one that got the ActionEvent, isn't it? [11:47]
dreamreal by having the menu option perform an action. [11:47]
chrisdn2 yes [11:47]
dreamreal so .. there you are [11:47]
aktx [unaffiliated/aktx] has joined ##java [11:48]
chrisdn2 what do you mean? [11:48]
dreamreal the thing that gets the event handles the event [11:48]
freeone3000 chrisdn2: menuItem1.setActionListener(ae -> doThing()); menuItem2.setActionListener(ae -> doOtherThing()); //much simpler. [11:48]
chrisdn2 so a listener for each item? [11:48]
freeone3000 chrisdn2: Yes. [11:48]
dreamreal new MenuItem("option 1", new EventHandler() { do stuff for option 1 } } [11:48]
dreamreal right [11:48]
chrisdn2 i had that and changed it [11:48]
dreamreal what he said [11:48]
dreamreal why did you change it, that was dumb [11:48]
chrisdn2 i thought i could abstract [11:49]
klaas [simply.kla.as] has joined ##java [11:49]
dreamreal well, that was dumb [11:49]
l0pher [unaffiliated/l0pher] has joined ##java [11:49]
dreamreal be glad you used git [11:49]
dreamreal revert [11:49]
freeone3000 chrisdn2: Only for shared behavior. If you take out method identity and replace it with a switch/case, you didn't abstract, you concreted. [11:49]
dreamreal or you cratered, as the case may be [11:49]
yawkat hehe [11:49]
chrisdn2 indeed, ill revert, thanks guys [11:49]
dreamreal chrisdn2: you have enough hurdles in front of you thanks to the requirements for 1.6 - don't add to your own obstacles [11:50]
chrisdn2 indeed, I appreciate it.. [11:50]
Hubatrix dreamreal: yawkat freeone3000 cheeser thanks a lot guys [11:50]
yawkat that could have been over faster [11:51]
freeone3000 chrisdn2: Did you ever get it to run on a desktop-based JSE environment? [11:51]
dreamreal yawkat: we should have written our own scheduler. [11:51]
yawkat hm, can i serialize exceptions, send them over network and nothing will blow up? [11:52]
freeone3000 yawkat: No. [11:53]
yawkat why? [11:53]
dreamreal depends on what you mean. exceptions are serializable in general, but... [11:54]
yawkat actually, that was probably a dumb idea anyway. [11:54]
Ephemeral [unaffiliated/ephemeral] has joined ##java [11:54]
dreamreal i dunno, we do it at $employer all the time [11:54]
dreamreal of course, we also get a metric ton of bug reports about invalid data being passed to our strongly-typed services... [11:55]
wyvern [gateway/web/irccloud.com/x-ehtarfrtdqzckoqg] has joined ##java [11:55]
freeone3000 It works with binary serialization due to RMI requirements, but I wouldn't do it with anything else, and for everything that isn't RMI I'd do it by error-based endpoints. [11:55]
dreamreal (to wit: our data objects have enums, and the serialization layer translates from strings to these enums... and we see a lot of bug reports related to invalid data here) [11:55]
Markoo [95.149.17.216] has joined ##java [11:57]
eindoofus i'm really confused by ThreadLocal. won't it still return the same object from DriverManager.getConnection for each thread? what's the point of using it? still looks shared to me: http://pastebin.com/Q0Mpc2jy [11:57]
dreamreal it will have the same object for each thread [11:58]
dreamreal threadlocal acts like a Map<Thread, T> [11:58]
eindoofus so in this case there is no point.. ? [11:58]
yawkat should probably use a connection pool for that thing though. [11:58]
dreamreal I haven't looked at the code, but why are you using a threadlocal for JDBC connections? [11:59]
eindoofus going through the "Java Concurrency in Practice" book and it's one of their examples [11:59]
eindoofus they usually use a :( face for bad code, but they didn't in this case [11:59]
yawkat ah [12:00]
yawkat in that case it makes sense. [12:00]
yawkat except for the connection pool part of course. [12:00]
notanoldman [cpe-45-37-17-178.nc.res.rr.com] has joined ##java [12:00]
yawkat a jdbc connection is not thread safe so you need one for each thread. [12:00]
freeone3000 eindoofus: It will return a Connection created in the same way, but it will not return the same one. It will, in fact, be a different one for each thread - hence thread local. [12:01]
eindoofus yawkat, it's still referring to the same object though, isn't it? i don't see how ommitting ThreadLocal is any different [12:01]
freeone3000 eindoofus: In real code, you'd use a ConnectionPool - you'd normally use a ThreadLocal for things like a SimpleDateFormatter where a lock would be ridiculous, creation of one for each call is slightly inefficient, and the object in question is not thread safe. [12:02]
eindoofus freeone3000, ahhh [12:02]
yawkat eindoofus: no, in a different thread, you get a different connection. [12:02]
dreamreal issue the call from multiple threads [12:02]
chrisdn2 id id not [12:03]
dreamreal so if you had a Map<Thread, Connection>, and you used the current thread as the key, every new thread would get an empty ref from the map [12:03]
chrisdn2 i did not [12:03]
chrisdn2 it is working now though [12:03]
Dudi [125-105.echostar.pl] has joined ##java [12:05]
tyrostone [72.22.163.41] has joined ##java [12:05]
eindoofus thanks, it's starting to make some sense [12:05]
tylergoza [li933-108.members.linode.com] has joined ##java [12:05]
dreamreal a threadlocal can be thought of as something like this: static Map<Thread, Connection> threadLocal=new HashMap<>.getOrElse(...return DriverManager.getConnection();) [12:07]
dreamreal that's not all of it, of course, but hopefully illustrates the idea [12:07]
Markoo [95.149.17.216] has joined ##java [12:07]
SHOTbyGUN dreamreal: thanks, I was about to ask something similar :) [12:07]
dreamreal SHOTbyGUN: I implemented something like that before I realized that ThreadLocal was, like, not not a thing [12:09]
floralshoppe [147-203-196-88.dyn.estpak.ee] has joined ##java [12:09]
dreamreal this was long before getOrElse was in the API, mind [12:09]
SHOTbyGUN Thread.currentThread() is my friend in this case [12:09]
dreamreal why? Why wouldn't you just use ThreadLocal? [12:10]
SHOTbyGUN I have more than one thread specific items I need, so super easy to have static HashMap<Thread,MyThreadItems> [12:13]
ojacobson SHOTbyGUN: what's your cleanup process when (not if, when) threads die without removing themselves from that map? [12:14]
freeone3000 SHOTbyGUN: How is that better than multiple threadlocals? [12:14]
eucalyptus [4.34.49.230] has joined ##java [12:14]
dreamreal why not have ThreadLocal<MyThreadItems>? [12:14]
yawkat also, hashmaps arent thread safe. [12:14]
aspire [unaffiliated/aspire] has joined ##java [12:15]
ernimril yawkat, yeah, but you only get infinite loops in HashMap.get(*) when you misuse it so what harm can that cause? :-) [12:15]
yawkat just use a timeout and thread.stop [12:16]
Juzzika [91.183.62.67] has joined ##java [12:17]
bosyak [134.19.130.16] has joined ##java [12:17]
ernimril Question about scope: if I have "for (int i = 0; i < 3; i++) { int a = 0; }" is i and a in the same scope or are they in different scopes? not that it matter much, but how do you see it? [12:17]
yawkat they arent, you cant see a from the conditions in for. [12:18]
aspire ernimril i'd say yes, both 'i' and 'a' are only accessible in the for loop body [12:18]
tyrostone [72.22.163.41] has joined ##java [12:19]
ernimril yawkat, uh? you mean I can do "for (int i = 0; i < a; i++) { int a = 3;}" that makes no sense. [12:19]
yawkat oh, its defined later too, so that doesnt count. [12:19]
yawkat either way, i dont think so, since you still have a block which is a scope change. [12:20]
freeone3000 ernimril: https://ideone.com/zMaGQ4 . You actually can't. A for loop has two scopes - the for loop (everything after 'for') and the for loop body (everything after ')') [12:21]
freeone3000 for loop body is scoped to be within the for loop. It's unique - which is why you can declare a variable inside a for loop but not inside a while. [12:22]
freeone3000 Referring to the bit within () - of course you can declare a variable within the { } of anything you wish. [12:22]
ernimril freeone3000, that is sort of what I am thinking, what if I have "for(...) whatever();" is whatever in the same scope as the for or is it in a nested scope? [12:22]
ernimril freeone3000, I think that a for adds one scope and the block adds another. No block means just one extra scope for the for-statement [12:23]
ernimril although testing with "int i; for (int i = ...)" causes javac to complain about "...i is already defined...", so it is not a real scope [12:26]
yawkat it is a real scope [12:27]
yawkat you just cant do that, even in blocsk [12:27]
yawkat also http://docs.oracle.com/javase/specs/jls/se8/html/jls-6.html#jls-6.3 [12:27]
javabot yawkat's title: Chapter6.Names [12:27]
yawkat the scope of ForInit is defined there to include the body. [12:27]
ernimril so why am I not allowed to create a new i in this scope then? [12:29]
yawkat int i; { int i; } isnt valid either. [12:29]
yawkat "It is a compile-time error if the name of a local variable v is used to declare a new variable within the scope of v, unless the new variable is declared within a class whose declaration is within the scope of v. " [12:29]
yawkat that's the next section in the jls :) [12:30]
Betal [unaffiliated/betal] has joined ##java [12:30]
blackb1rd [38.88.247.146] has joined ##java [12:31]
mike802 [65-183-130-51-dhcp.burlingtontelecom.net] has joined ##java [12:31]
ernimril yawkat, ok they just decided that it is a bad idea to have that... ick [12:32]
ernimril yawkat, "This restriction helps to detect some otherwise very obscure bugs." [12:32]
yawkat well they are right. [12:32]
yawkat yes [12:32]
gr1sha [unaffiliated/gr1sha] has joined ##java [12:33]
gr1sha I want to use Apache's HttpClient, but it's still too much code for reusing [12:33]
gr1sha would it be totally wrong to wrap it inside a method in a special class for HttpRequests? [12:34]
gr1sha that gets a URL and parameters and returns a String of the answer? [12:34]
bolovanos [91.201.22.5] has joined ##java [12:34]
yawkat probably not. [12:34]
aspire sure why not [12:34]
yawkat if you really only need url+params->string, its fine. [12:34]
gr1sha thanks :) [12:36]
alexbligh1 [89-16-176-215.no-reverse-dns-set.bytemark.co.uk] has joined ##java [12:37]
Kephael [unaffiliated/kephael] has joined ##java [12:40]
allfro [216-48-160-29.cpe.distributel.net] has joined ##java [12:41]
MarkyC [75.98.201.106] has joined ##java [12:42]
b_rare [173-27-198-44.client.mchsi.com] has joined ##java [12:44]
b_rare [173-27-198-44.client.mchsi.com] has joined ##java [12:46]
jonee [112.198.103.117] has joined ##java [12:46]
b_rare [173-27-198-44.client.mchsi.com] has joined ##java [12:47]
jhm [unaffiliated/jhm] has joined ##java [12:47]
priidu [unaffiliated/priidu] has joined ##java [12:47]
gr1sha yawkat, aspire: Is the Apache HTTP client really the easiest there is? [12:47]
gr1sha yawkat, aspire: I'm a C and Python guy not JAva [12:47]
yawkat not easiest, but probably best. [12:48]
gr1sha best >= easiest [12:48]
gr1sha :) [12:48]
yawkat what are you requesting? [12:48]
dreamreal it's also the most idiomatic, for better or for worst [12:48]
gr1sha I'm requesting JSONS from an API [12:48]
yawkat some people like retrofit for that. [12:48]
gr1sha I'll google it [12:49]
gr1sha Thanks [12:50]
emma_ [unaffiliated/emma] has joined ##java [12:51]
ernimril gr1sha, it depends a lot on what you want, for _very_basic_ requests then URL/URLConnection works fine and is not to hard to use. [12:53]
nitro25 [cpe-104-229-16-183.rochester.res.rr.com] has joined ##java [12:55]
gr1sha ernimril, I think Retrofit is an overkill for me [12:56]
gr1sha I just need to send simple HTTP GET requests with params in the URI and parse the JSON it returns [12:57]
gr1sha :\ [12:57]
yawkat retrofit is like 20 lines to use. [12:57]
whaley okhttp is pretty easy [12:57]
whaley jersey client also [12:57]
gr1sha but adds a lot to the weight of the project [12:57]
gr1sha thanks i'll Google them all :D [12:58]
ernimril gr1sha, if you do not mind correctly encoding the request parameters you can then use URL/URLConnection [12:58]
Artemios [201-78-55-37.pool.ukrtel.net] has joined ##java [12:58]
gr1sha Well I see that Retrofit is using OkHttp's framework [12:58]
JakeWharton Only for unreleased v2 [12:59]
gr1sha blah [12:59]
JakeWharton V1 works on Apache and HurlConnection [12:59]
ernimril gr1sha, URL u = new URL("http://example.com?a=b&c=whatever"); InputStream is = u.openStream(); [12:59]
strainwrld [a95-92-81-202.cpe.netcabo.pt] has joined ##java [12:59]
JakeWharton And also OkHttp, of course, but optionally [12:59]
treehug88 [static-108-30-103-59.nycmny.fios.verizon.net] has joined ##java [01:00]
gr1sha ernimril, I just don't understand why can't it return a freaking String [01:00]
gr1sha :\ [01:00]
ernimril gr1sha, but if you go this way you have to to do cookie handling, login handling, correct encoding of parameters on your own [01:00]
ernimril gr1sha, it may give you 16TB of data, do you want to crash? [01:00]
gr1sha nope :> [01:00]
allfro hi all [01:02]
allfro while troubleshooting a bug with my app running in jdk1.8 i found the static initialization error here: Thread.currentThread().getContextClassLoader() -> returns null [01:03]
KP- [gateway/shell/elitebnc/x-kxerzgukqbixqskb] has joined ##java [01:03]
allfro this is part of the jfxrt.jar code and i was wondering if anybody else has run into this issue [01:03]
freeone3000 allfro: An invoker's class loader may be null. [01:05]
freeone3000 ~~ allfro javadoc Thread.getContextClassLoader() [01:05]
javabot allfro: http://bit.ly/1PqnvKj [JDK: java.lang.Thread.getContextClassLoader()] [01:05]
allfro freeone3000: sure, but this is not the case when i run javafx app in mac or windows [01:05]
freeone3000 allfro: It's still a valid value, and you have to handle it. [01:05]
allfro in this case this the static initializer fails and JFX fails to load [01:05]
allfro freeone3000: i wouldn't be able to handle it since it is in com.sun code [01:06]
yawkat what class? [01:06]
allfro freeone3000: unless im missing something [01:06]
allfro com.sun.javafx.css.StyleManager [01:06]
allfro line 840 [01:06]
yawkat what jdk version [01:07]
yawkat appearently fixed in 8u60 [01:07]
allfro 1.8.0_u51 [01:08]
allfro is 8u60 openjdk or oracle jdk? [01:08]
yianni [unaffiliated/yianni] has joined ##java [01:08]
yawkat im talking openjdk. [01:09]
yawkat actually, i might be wrong [01:09]
freeone3000 allfro: The version numbers should match. [01:10]
slackoverflow [37.228.231.28] has joined ##java [01:11]
Elysia [trivialand/guesser/zarthus] has joined ##java [01:11]
HoNgOuRu [r167-56-36-33.dialup.adsl.anteldata.net.uy] has joined ##java [01:13]
HoNgOuRu hi [01:13]
yawkat allfro: that does not look like static init to me. [01:14]
raoulvdberge [gateway/web/irccloud.com/x-phwztyezlbntffgv] has joined ##java [01:14]
gopar [c-73-162-171-146.hsd1.ca.comcast.net] has joined ##java [01:15]
HoNgOuRu I have a project done, that serializes objects for persistance, now im planning to refactor it so it uses mysql, Ill use hibernate for it, but Im having problems deciding what to do with a 2d array of strings thats part of a class.. [01:16]
Dudi [125-105.echostar.pl] has joined ##java [01:17]
iron_squid [g90194.upc-g.chello.nl] has joined ##java [01:18]
last_staff [218-50-15.connect.netcom.no] has joined ##java [01:18]
Fiveside [vsp-usr.vsp.com] has joined ##java [01:19]
Guy1524 [gateway/web/freenode/ip.72.86.43.20] has joined ##java [01:21]
Guy1524 Hello everyone, so Java is great for most of my needs, but sometimes I really need to override operators in vector classes. So, my plan is to have an interface called mathClass, then classes that implement it have a many methods that do nothing. Then in the same package there will be text files that are java code but they have special syntax for vector arithmetic. So, is it possible to get a method to run at run time to modify the .j [01:21]
Guy1524 of the text file [01:21]
allfro yawkat: you'd have to look at the call chain that im looking at [01:21]
Guy1524 during compilation [01:21]
yawkat allfro: if your code appears in the stack, just set a context cl there. [01:22]
allfro it starts from javafx.scene.control.Control line 87 [01:22]
ojacobson Guy1524: you are halfway down inventing a new language [01:22]
ojacobson consider using one of the new languages already invented that are "like Java, but" [01:22]
Guy1524 like scale, xtend [01:22]
Guy1524 i know, but this is for something much smaller [01:23]
ojacobson (groovy, scala, clojure if you stretch a bit, kotlin, probably others) [01:23]
Guy1524 a quick fix rather than a new language [01:23]
ojacobson So an informally-specified, bug-ridden implementation of a new language. :) [01:23]
Guy1524 ya (: [01:23]
ojacobson ceylon! [01:23]
Guy1524 I just want to do normal vector operations without (vectorOne.plus(vectorTwo)).times(vectorThree.minus(vectorFour)) [01:24]
Guy1524 etc. [01:24]
yawkat allfro: looking at some jfx code, try setting a context cl on your javafx init code [01:25]
Guy1524 i would much rather (vectorOne + vectorTwo) * (vectorThree - vectorFour) [01:25]
ojacobson (* (+ vector1 vector2) (- vector3 vector4)) #clojure, give or take [01:25]
allfro yawkat: forgive my noob question but what do you mean by context cl? [01:25]
yawkat context class loader. [01:25]
Guy1524 so, is there a way to have a method run per .java file so I can attempt to modify it before compiling? [01:26]
allfro yawkat: how does one go about doing that? :) [01:26]
yawkat Thread.currentThread().setContextClassLoader [01:26]
allfro ah ic [01:26]
yawkat set it to a non-null value and see what happens [01:26]
allfro ok [01:26]
allfro i will try that now :) [01:26]
allfro yawkhat [01:32]
allfro yawkat: that worked. I set it to the system context loader [01:32]
yawkat :) [01:32]
allfro yawkat: so what would be causing this issue? [01:32]
allfro 8u60 didnt work btw [01:33]
allfro i had to explicitly set the context class loader in order for it to work [01:33]
allfro but it seems like that should have been handled by the JFX framework? no? [01:33]
yawkat it's probably a bug [01:33]
yawkat did you start javafx somewhere weird? [01:33]
yawkat it usually takes effort to set the context cl to null [01:34]
allfro JFXPanel [01:34]
freeone3000 yawkat: If the context class loader is null, all that means is that no context class loader was set and you should use the system one, instead. [01:35]
allfro i know... it's ugly to interop swing with jfx but im writing a plugin for a swing app that i have no control over and i needed webview [01:35]
yawkat freeone3000: correct, but it's set in most cases [01:35]
allfro yawkat: any other pointers on how to further troubleshoot this issue without doing an explicit cl load? [01:36]
yawkat i dont swing, sorry. [01:37]
allfro (i have a strong feeling that this is a race condition btw because when i enable verbose:class it loads perfectly) [01:37]
allfro wondering if the delay when enabling verbose:class is allowing another thread to catch up to set the contextclassloader? [01:38]
yawkat i doubt it. [01:38]
keksblub [xd9bb0760.dyn.telefonica.de] has joined ##java [01:38]
bolovanos [91.201.22.5] has joined ##java [01:40]
gelignite [mue-88-130-86-093.dsl.tropolys.de] has joined ##java [01:43]
Markoo [2.29.211.8] has joined ##java [01:45]
fatguylaughing [worx01.worxco.net] has joined ##java [01:49]
avocado why do system properties use this.style instead of camel case? [01:50]
freeone3000 They're psuedo-heirchial. [01:50]
freeone3000 if.you.wanted.toDo.a.settingLikeThisIt.dBeOkay. [01:50]
[twisti] for flexible definitions of "Okay" [01:51]
infox [94.62.146.7] has joined ##java [01:53]
Kassad [bitnet.me] has joined ##java [01:56]
artemz [postman.develdynamic.com] has joined ##java [02:01]
phpcoder [net-188-153-171-52.cust.dsl.teletu.it] has joined ##java [02:01]
tyrostone [72.22.163.41] has joined ##java [02:03]
strainwrld [a95-92-81-202.cpe.netcabo.pt] has joined ##java [02:03]
druidd [cpe-98-27-54-57.nc.res.rr.com] has joined ##java [02:06]
autrilla What would you recommend to read to understand the inner working of the JVM? [02:10]
yawkat the jvm is big; what part of the jvm [02:10]
autrilla Everything, I don't care if it's a big book [02:11]
yawkat i dont know one, sorry. [02:11]
yawkat you can usually find good articles online about stuff like gc and jit. [02:11]
rgr [f054130099.adsl.alicedsl.de] has joined ##java [02:14]
l1on [178.62.0.35] has joined ##java [02:15]
sp1rs [122.176.197.246] has joined ##java [02:15]
Markoo [2.29.211.8] has joined ##java [02:17]
orthoplex64 [unaffiliated/orthoplex64] has joined ##java [02:21]
cheeser read the vm spec then [02:21]
cheeser ~vm spec [02:22]
javabot The VM specification can be found at http://docs.oracle.com/javase/specs/ [02:22]
krek [78-56-59-62.static.zebra.lt] has joined ##java [02:22]
autrilla cheeser: specs usually talk about what stuff should do and not about how it does it, is that the case here too? [02:22]
freeone3000 If you want to know *how* it does stuff, you need to look at the source. [02:24]
cheeser no idea [02:24]
philipballew [ubuntu/member/philipballew] has joined ##java [02:25]
autrilla freeone3000: reading big projects is very complicated. It's usually nice to use a book as a guide [02:25]
freeone3000 "All volatile writes will read from backing memory store" is something from the spec, that'd be 'mfence; membar #StoreLoad". [02:25]
freeone3000 autrilla: The actual behavior of the JVM is sufficient to program against it. [02:25]
autrilla Well, what initially drove me here was the fact that CPython has a global interpreter lock, and afaik the JVM doesn't, I was interested in why that was the case [02:27]
freeone3000 autrilla: Because it's a ridiculous thing to have, honestly. [02:27]
cheeser because the JVM is a far better VM than python's :) [02:27]
autrilla freeone3000: I find that to be the case too [02:27]
cheeser ruby has the same issue [02:27]
autrilla cheeser: well, Python can be compiled to jvm bytecode, thankfully [02:27]
cheeser so can ruby. that's beside the point. [02:27]
freeone3000 autrilla: What you're looking for is "How does the JVM do multithreading?" and the answer to that is "It starts a new OS-level thread and does stuff on it". [02:27]
autrilla cheeser: yes, I was recommended a book on Ruby's VM to understand why CPython chose to go with a GIL [02:27]
freeone3000 Because multithreading is HARD! Basically. [02:28]
autrilla freeone3000: well, you haven't told me anything I didn't know so far :p [02:28]
pdurbin autrilla: which book on Ruby's VM was recommended to you? [02:29]
hwpplayer1 [85.101.43.233] has joined ##java [02:29]
freeone3000 autrilla: If you want to know how the VM does concurrency, that's JCIP. [02:30]
autrilla pdurbin: Ruby under a microscope [02:30]
pdurbin ah, yeah, I've heard that one is good [02:30]
yawkat good job amazon http://s.yawk.at/vF3E [02:31]
javabot yawkat's title: Image [02:31]
autrilla freeone3000: I see. Well, I want to know as much as I can about the JVM, but that's at start, I guess [02:32]
freeone3000 autrilla: You get ones for the topics you care about. The Java volume on concurrency is Java Concurrency in Practice. [02:32]
freeone3000 autrilla: The bytecode volume is Programming for the Java Virutal Machine. [02:33]
yawkat i really doubt there are books about niche topics like jit and gc anyway. [02:33]
yawkat they evolve to fast too [02:33]
Cust0sLim3n [unaffiliated/cust0slim3n] has joined ##java [02:33]
freeone3000 GC is a series of sun tutorials. Oracle really wants you to run fast code on the JVM. [02:34]
pdurbin autrilla: you could watch videos from http://openjdk.java.net/projects/mlvm/jvmlangsummit/ [02:34]
javabot pdurbin's title: JVM Language Summit August, 2015 [02:34]
n03lvk [S0106ccb255ce2f2e.rd.shawcable.net] has joined ##java [02:39]
MarkyC [75.98.201.106] has joined ##java [02:45]
bolovanos [91.201.22.5] has joined ##java [02:46]
lexek_ [188.123.241.117] has joined ##java [02:55]
MasterPiece [unaffiliated/masterpiece] has joined ##java [03:04]
freeone3000 Aha. Video I was looking for earlier on JIT: http://www.slideshare.net/CharlesNutter/fast-as-c-how-to-write-really-terrible-java [03:04]
CustosLimen [unaffiliated/cust0slim3n] has joined ##java [03:05]
ChatPion [vol75-7-82-229-177-138.fbx.proxad.net] has joined ##java [03:05]
yawkat great video. [03:05]
freeone3000 yawkat: https://vimeo.com/131394615 , for those who want to progress through time at one second per second. [03:05]
javabot freeone3000's title: Charles Oliver Nutter - Fast as C: How to write really terrible Java on Vimeo [03:05]
yawkat well i already watched it :P [03:06]
yawkat it wasnt sarcasm [03:06]
allfro [216-48-160-29.cpe.distributel.net] has joined ##java [03:09]
allfro yawkat: thanks for the debugging tip [03:09]
GitGud [gateway/web/cgi-irc/kiwiirc.com/ip.108.170.8.164] has joined ##java [03:09]
l0pher freeone3000, the book on Programming for the JVM looks like it's written for an older version [03:10]
l0pher do you know if there's an up to date version? or any other alternative? [03:10]
feneco_ [179.186.146.247.dynamic.adsl.gvt.net.br] has joined ##java [03:10]
freeone3000 l0pher: Since that book was written, the JVM has added two instructions. [03:10]
l0pher ah, the pace at which JVM changed is almost zero? [03:11]
yawkat no, bytecode. [03:11]
GitGud hi guys. I have a question. Does anyone know of a project template for a web application in drop wizard? I'm talking about one that uses html and javascript as well in the page of the web application itself? basically i'm trying to learn to integrate dynamic web pages with the web applications [03:11]
freeone3000 That's a bit misleading. The bytecode instruction set and the rules for evaluating it has stayed pretty much constant. [03:11]
yawkat there's also http://cs.au.dk/~mis/dOvs/jvmspec/ref-Java.html which is where ive learned most of it from. [03:11]
javabot yawkat's title: Java Virtual Machine - Online Instruction Reference [03:11]
l0pher interesting [03:12]
avocado [unaffiliated/avocado] has joined ##java [03:12]
codepete [47.sub-70-199-169.myvzw.com] has joined ##java [03:13]
yawkat (bytecode is actually not very hard) [03:14]
GitGud hi guys. I have a question. Does anyone know of a project template for a web application in drop wizard? I'm talking about one that uses html and javascript as well in the page of the web application itself? basically i'm trying to learn to integrate dynamic web pages with the web applications [03:14]
freeone3000 GitGud: Same as you'd do for any other client site. [03:14]
Katana [unaffiliated/katana] has joined ##java [03:16]
Markoo [2.29.211.8] has joined ##java [03:16]
yawkat how do i escape shell args in java? [03:17]
ChatPion parted the channel: "Leaving" [03:17]
yawkat StringEscapeUtils cant do it :( [03:17]
shafox [gateway/web/irccloud.com/x-squumxygsumcfeku] has joined ##java [03:18]
dinglebarry [107.15.83.110] has joined ##java [03:19]
shafox parted the channel: [03:19]
yawkat oh who cares, it isnt user input anyway [03:20]
freeone3000 yawkat: What's a shell arg? Why are you passing things to a shell? How'd you get a shell? [03:21]
yawkat docker, i need to build a string to pass to sh -c [03:21]
yawkat you cant pass multiple commands to docker so i have to concat them using && so i have to use a shell [03:22]
aspire [unaffiliated/aspire] has joined ##java [03:24]
kailoAtWork [cpe-104-35-108-87.socal.res.rr.com] has joined ##java [03:25]
sssilver O gods of Java, I want my findAllOrders(offset, limit) function to return the set of orders between the given offset, and limit, but also the total number of orders (so that I can display a "Page X of Y" sort of a thing). [03:26]
sssilver Do I create some kind of a PagedResultSet class and return that [03:26]
sssilver containing result() and total() [03:26]
sssilver or is there a more Javaesque way [03:26]
yawkat are you using jpa/hibernate? [03:27]
rfmind_ [2a02:a03f:425:6400:28c:faff:fe88:26cf] has joined ##java [03:27]
sssilver me? no [03:28]
pld [unaffiliated/pld] has joined ##java [03:28]
yawkat dont think theres an easier way with jdbc. [03:29]
kirua [unaffiliated/kirua] has joined ##java [03:30]
ign0rant [71-222-79-243.ptld.qwest.net] has joined ##java [03:32]
ianp you could use pre-built paging ORM stuff... [03:33]
GFXDude [ciscoasa.ecrsoft.com] has joined ##java [03:33]
ianp like Spring Data's PagingAndSortingRepository [03:35]
cheeser it'll take two queries regardless. [03:37]
freeone3000 WITH a (select *, count(*) over (range unbounded preceding) FROM resgroups) SELECT * FROM resgroups order by foo limit x offset y; [03:38]
freeone3000 I mean, if you're running a modern RDBMS and have windowing functions. [03:38]
ojacobson freeone3000: select * from a, surely [03:38]
GFXDude So, I'm having this very odd issue. Our credit card processing company has provided a new .jar to use, that processes CC info against their servers. All was well, until we needed to test it in a linux server environment. The linux (Centos 6.6) server is running Java 6 (due to some legacy support that will be phased out next release), the windows install is running java 6, and the CreditCard.jar [03:38]
GFXDude is compiled in j6. There is no issue running the code in Windows, but when ran in linux (openjdk), I never get a response from the jar for a function that returns a string. [03:38]
freeone3000 ojacobson: Err, right. [03:39]
freeone3000 GFXDude: You never get a response? As in, there's no ClassFormatError, there's no ClassNotFoundError, there's nothing to indicate it's a problem loading the class as opposed to a different logical path the code is taking? [03:39]
GFXDude There's literally nothing. Their jar is supposed to return within 60 seconds no matter if it was able to process the card or not, and that functionality works in a java7 test environment, and in the java6 windows environment. My code also handles a 60sec timeout to decline the transaction and continue on with business. I get no classNotFound, everything compiles fine, no runtimes, nothing caught [03:41]
GFXDude in try/catch [03:41]
Macuser [unaffiliated/macuser] has joined ##java [03:42]
freeone3000 So run it in Java 7, problem solved? [03:44]
freeone3000 Actually, run it in Java 8, because that's the current version. [03:44]
Florp [121.54.54.185] has joined ##java [03:50]
kailoAtWork [38.82.195.110] has joined ##java [03:51]
tyrostone [72.22.163.41] has joined ##java [03:53]
Ruiseart [082139030028.kielce.vectranet.pl] has joined ##java [03:53]
kirua [unaffiliated/kirua] has joined ##java [03:56]
nonconvergent [unaffiliated/nonconvergent] has joined ##java [03:59]
nonconvergent Friggin IdP. [03:59]
The_Phoenix [unaffiliated/thephoenix/x-126492] has joined ##java [04:01]
ParmesanCaesar [S0106b0487aa77a65.vc.shawcable.net] has joined ##java [04:02]
kailoAtWork [208.184.77.122] has joined ##java [04:07]
codepete [47.sub-70-199-169.myvzw.com] has joined ##java [04:09]
TechCel [unaffiliated/progster] has joined ##java [04:20]
sssilver mmm I'm getting a java.lang.NullPointerException... is this even possible in Java? [04:24]
cheeser ~npe [04:24]
javabot NullPointerExceptions are easy to spot and deal with. For some tips on dealing with them, please see http://is.gd/ha7A [04:24]
cheeser of course it's possible [04:25]
cheeser if it wasn't, it wouldn't have happened. [04:25]
tang^ [184.70.127.122] has joined ##java [04:26]
sssilver lol certainly. I just thought the whole point of Java was that people wouldn't have to deal with that crap [04:27]
cheeser uh. no. [04:27]
ernimril sssilver, they removed pointer arithmetics, not pointers (but they mostly refer to pointers as references) [04:29]
sssilver ernimril well since we don't directly program memory, one would expect that runtime null pointer errors wouldn't occur [04:33]
Ephemeral let's call it a null reference exception then. [04:34]
Ephemeral Now go solve it, and stop whining about it. [04:34]
weemsledeux [unaffiliated/weems] has joined ##java [04:34]
pdurbin sssilver: you could use http://types.cs.washington.edu/checker-framework/ [04:35]
javabot pdurbin's title: The Checker Framework [04:35]
sssilver thinks about Rust [04:37]
Ephemeral then goodbye, go think about your oddly aptly named language. [04:37]
ojacobson Could Java use a maybe type instead of having all references be nillable? maybe, but changing it would break ~= every java program [04:38]
ojacobson Scala uses explicit optionals [04:38]
Ephemeral Java 8 does have an optional type as well [04:38]
Markhor1991 [104-136-15-59.res.bhn.net] has joined ##java [04:38]
Ephemeral But its a bit.. Eh to use [04:38]
ojacobson yeah, and `null` is still a legal value for an Optional<T>, because the underlying language [04:39]
sssilver lol [04:39]
robwaz [unaffiliated/robwaz] has joined ##java [04:39]
Ephemeral it isn't something I worry about. :P [04:39]
ojacobson Idiomatically avoiding NPE isn't hard but does take conscious effort [04:39]
freeone3000 We didn't need an Optional, we needed a Required. [04:40]
Markoo [2.29.211.8] has joined ##java [04:40]
dreamreal AKA a reference? [04:40]
yianni [unaffiliated/yianni] has joined ##java [04:40]
freeone3000 Sure. [04:42]
phpcoder [net-188-153-171-52.cust.dsl.teletu.it] has joined ##java [04:42]
dimberman [173-13-150-22-sfba.hfc.comcastbusiness.net] has joined ##java [04:44]
yawkat my spring app runs fine in ide, but when shading it it dies with a 'java.lang.NumberFormatException: For input string: "${cluster.basePort}"'. i have the property in an application.properties that is included in the jar. [04:48]
yawkat how do i fix this? [04:48]
wyvern kotlin's approach to nullability has worked out well for me so far [04:51]
wyvern Foo is not nullable. Foo? is nullable, and must be nullchecked before use. [04:51]
pulpfiction_ [unaffiliated/pulpfiction] has joined ##java [04:51]
Ephemeral the latter just sounds like any semi-competent static analyzer in java. [04:52]
ojacobson Ephemeral: semi- is the maximum amount of competence static null analysis can have in Java. [04:52]
ojacobson So, yes, that's a good starting point. :) [04:52]
cbeust It does smart cast: ?a.foo? <? compilation error ?if (a != null) { a.foo }? <? compiles [04:52]
freeone3000 IDEA will automatically act as if @Nullable or @NotNull was added as apporpriate if it can detects it. [04:53]
Ephemeral Praise be to Jetbrains. [04:53]
freeone3000 This is the @ sign in the left-hand column. Notice how many places where it could be applied but isn't in your codebase. [04:53]
yawkat there's also infer nullity. [04:55]
freeone3000 yawkat: Is process-resources missing that file? [04:56]
yawkat i dont have an applicationcontext xml in that module. [04:56]
yawkat and passing the variable manually did not fix it either [04:57]
freeone3000 yawkat: ${} in properties gets interpolated by maven, not runtime. [04:59]
yawkat oh wow. [04:59]
yawkat thanks, i will try with #{ [05:00]
dreamreal win 8 [05:00]
Enkidu_ak [unaffiliated/enkidu-ak/x-8729472] has joined ##java [05:00]
Ephemeral . [05:03]
yawkat freeone3000: actually, dont think it expands it here. [05:05]
yawkat javap doesnt report a difference at least. [05:05]
yawkat i dont have any ${} in the properties file either. [05:05]
kailoAtWork [208.184.77.122] has joined ##java [05:05]
freeone3000 yawkat: You're running javap over properties files? [05:06]
yawkat no, the class. [05:07]
yawkat the properties file is not modified. [05:07]
tyrostone [c-24-218-81-148.hsd1.ma.comcast.net] has joined ##java [05:07]
Markoo [2.29.211.8] has joined ##java [05:07]
robwaz [unaffiliated/robwaz] has joined ##java [05:10]
drith [94.26.1.106] has joined ##java [05:14]
k5_ [p54A76CD8.dip0.t-ipconnect.de] has joined ##java [05:18]
ParmesanCaesar [S0106b0487aa77a65.vc.shawcable.net] has joined ##java [05:19]
ParmesanCaesar window new [05:19]
ParmesanCaesar :3 [05:19]
dinglebarry [107.15.83.110] has joined ##java [05:20]
EsoRotica [gateway/vpn/privateinternetaccess/esorotica] has joined ##java [05:21]
Markoo [2.29.211.8] has joined ##java [05:22]
ParmesanCaesar [S0106b0487aa77a65.vc.shawcable.net] has joined ##java [05:23]
Macuser [unaffiliated/macuser] has joined ##java [05:25]
codepete [47.sub-70-199-169.myvzw.com] has joined ##java [05:26]
Ephemeral [unaffiliated/ephemeral] has joined ##java [05:29]
crudbits [c-35cc71d5.013-14-67626726.cust.bredbandsbolaget.se] has joined ##java [05:32]
Macuser [unaffiliated/macuser] has joined ##java [05:35]
Es0teric [199.34.249.167] has joined ##java [05:39]
kailoAtWork [38.82.195.110] has joined ##java [05:43]
rgr [f054130099.adsl.alicedsl.de] has joined ##java [05:47]
p4trix [114.Red-88-10-105.dynamicIP.rima-tde.net] has joined ##java [05:51]
p4trix #cplusplus [05:51]
p4trix ops xD [05:51]
Ragnor [dslb-084-062-047-025.084.062.pools.vodafone-ip.de] has joined ##java [05:54]
leolrrj [189.112.234.129] has joined ##java [05:59]
Macuser [unaffiliated/macuser] has joined ##java [05:59]
leolrrj [189.112.234.129] has joined ##java [06:00]
p4trix Im looking to build a desktop printing tool. It's only goal is to fill out a preformatted form document. The documents comes out of the printery on endless paper. Its printed with point matrix printers [06:04]
p4trix Can I do that with Java? [06:04]
Sasazuka [unaffiliated/sasazuka] has joined ##java [06:04]
p4trix I want the tool to get the input: Name and so on, and print it into the document. [06:05]
freeone3000 ~javadoc PrintFormat [06:05]
javabot I have no documentation for PrintFormat [06:05]
freeone3000 Oh, yes you do, it's just named something else. [06:05]
p4trix haha [06:05]
p4trix But its possible I guess [06:05]
p4trix I also want it to be multiplatform. Thats why java is nice [06:06]
Kephael [unaffiliated/kephael] has joined ##java [06:06]
MarkyC [75.98.201.106] has joined ##java [06:06]
freeone3000 p4trix: https://docs.oracle.com/javase/tutorial/2d/printing/ . It looks like it delegates to the OS for everything nonstandard about that setup. [06:06]
javabot freeone3000's title: Lesson: Printing (The Java Tutorials > 2D Graphics) [06:06]
AjaxCrixum [gateway/web/freenode/ip.184.6.44.203] has joined ##java [06:07]
freeone3000 It's part of AWT, in that it deals with graphics, but it can be used in headless mode. [06:07]
MarkyC [75.98.201.106] has joined ##java [06:07]
p4trix If it delegates to the OS, thats not so good. Becouse the output could depend on the OS. Looking to get universal output everywhere. The form document has fix spacing where I have to print the text in [06:08]
freeone3000 Right, but the thing here is you don't want to write a dot-matrix printer driver, and you don't want to use something that's Java-inbuilt that's dependent on inkjet. [06:09]
p4trix True aswell... [06:09]
p4trix Thank you very much good sir. That was very helpful [06:10]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [06:11]
ashahmali [94.3.150.69] has joined ##java [06:12]
AWizzArd [splendidlord.com] has joined ##java [06:13]
kirua [unaffiliated/kirua] has joined ##java [06:13]
AWizzArd I have a timestamp (via Date?s .getTime) and want to use the Java 8 time API. I need to translate the timestamp into a certain timezone. Currently I use Instant.ofEpochMilli and put this (together with my ZoneId instance) into LocalDateTime.ofInstant(myInstant, germanTimeZone); [06:14]
AWizzArd Is there a shorter / more concise way? [06:15]
pdurbin sssilver: you inspired me to play with Checker some more: https://github.com/pdurbin/maven-hello-world/commit/3c08628 :) [06:15]
javabot pdurbin's title: enable checker framework. thanks @renatoathaydes ! pdurbin/maven-hello-world@3c08628 GitHub [06:15]
freeone3000 AWizzArd: That's pretty short by java standards. [06:15]
yawkat for future reference, replacing shade with spring-boot-maven-plugin and building a war disguised as a jar fixed my problem. [06:16]
AWizzArd freeone3000: oki thanks :) [06:16]
AWizzArd freeone3000: just thought there might be some trick how I could use a LocalDateTime directly. [06:16]
freeone3000 AWizzArd: If you need the current time, it's LocalDateTime.now(timeZone), but not if you need it at a specific instant. [06:17]
soc [HSI-KBW-37-209-99-102.hsi15.kabel-badenwuerttemberg.de] has joined ##java [06:17]
ashahmali what the best library for password encryption in java [06:17]
freeone3000 ~~ ashahmali jbcrypt [06:17]
javabot ashahmali, jbcrypt is a java implementation of a simple (but the best) password hashing algorithm. It's open source and has just 3 methods. The site contains an example of how to store a password, and how to check one: http://www.mindrot.org/projects/jBCrypt/ [06:17]
yawkat AWizzArd: there's also Date.toInstant [06:17]
sssilver pdurbin that's awesome, although if one has to use that kind of stuff, one may as well just switch to a different language ^.^ [06:17]
sssilver just sayin'... [06:17]
yawkat AWizzArd: and Instant.atOffset/Zone [06:18]
ashahmali thanks javabot [06:18]
stack_ [cpe-68-203-2-152.austin.res.rr.com] has joined ##java [06:18]
AjaxCrixum So, going form C++ to Java is super easy, since Java is just C++ with GC, right? [06:19]
AWizzArd yawkat: oho okay, I will look into that. [06:19]
freeone3000 AjaxCrixum: Not at all. [06:19]
soc hi! I'm trying to work with the new Future API: I want to compute two independent things asynchronously, and use the results of these two as inout in a thrid future [06:19]
sssilver AjaxCrixum it is easy, but no it's not C++ with GC [06:19]
freeone3000 soc: "new" doesn't usually apply to things that are eight years old. You want a CompletionService. [06:19]
sssilver AjaxCrixum it's easy simply because it's an easier language with similar syntax [06:19]
soc https://docs.oracle.com/javase/8/docs/api/java/util/concurrent/CompletableFuture.html is Java 1.8 [06:19]
pdurbin sssilver: Rust seems nice but are there other languages where one doesn't have to worry about null pointer exceptions? [06:19]
freeone3000 soc: Ah, okay. [06:20]
sssilver pdurbin Swift comes to mind [06:20]
freeone3000 soc: What's the issue, then? [06:20]
soc basically I'm looking for the flatMap and map methods [06:20]
sssilver pdurbin also Go iirc [06:20]
OddDuck [unaffiliated/oddduck] has joined ##java [06:20]
sssilver pdurbin also most dynamically typed interpreted languages [06:20]
phroa pdurbin: pretty much any functional language afaik. [06:20]
freeone3000 soc: Future<T> newValue = computeAsync(CompletableFuture.allOf(one, two).get()); [06:20]
soc futureResult1.flatMap(result1 => futureResult2.map(result2 => slowBlockingMethod3(result1, result2))) [06:20]
sssilver also yeah what phroa said [06:21]
pdurbin hmm. ok. thanks [06:21]
soc allOf returns CF<Void> [06:22]
phroa while we're on the subject can anyone describe what's so different about checking for null vs. checking for Optional::isPresent? >.> I still have to do it [06:22]
soc phroa: the idea is that you don't check for Optional::isPresent :-) [06:22]
sssilver you get a type error phroa [06:22]
freeone3000 phroa: Optional<T> foo = null; //oh what fun we can have. [06:22]
sssilver freeone3000 lol [06:23]
phroa you're the best kind of programmer [06:23]
yawkat i dont understand why people are obsessed with fixing nullpointerexceptions. [06:23]
yawkat they are easy to debug and dont happen that often. [06:23]
sssilver yawkat because when left unfixed, they crash our programs ^.^ [06:23]
sssilver they're easy to debug, but how do you know they're there? [06:24]
sssilver runtime errors = bad [06:24]
phroa soc: I never really got that part. obviously if I have Optional<Foo> passed in from a method and I want to do something with the Foo, surely I need to make sure it's there, right? [06:24]
yawkat if you stick with not making everything nullable and marking stuff that is as such, it doesnt happen often. [06:24]
yawkat and nullpointerexceptions dont always crash programs. [06:24]
sssilver if you can eliminate a whole class of errors at compile time, that's always a big leap forward [06:24]
sssilver and usually improves your type system [06:25]
freeone3000 soc: Well, I'm thinking: List<T> t = Arrays.stream(first, second).map(x -> x.get()).collect(Collectors.toList()); otherThing(t.get(0), t.get(1)); [06:25]
freeone3000 soc: Mostly because it seems like everything useful in CompletableFuture drops the return value. [06:25]
freeone3000 soc: first.thenAcceptBothAsync(second, thing::longRunning, yourExecutor); //also looks promising [06:26]
soc phroa: you basically invert the control-flow. you pass the computations around, not Optionals. [06:26]
sssilver yawkat sure, but in any programming language the question is not "how you can avoid shooting yourself in the leg", it's "how easily can you shoot yourself in the leg" [06:26]
sssilver otherwise C++ is the best language ever [06:26]
sssilver coz there are sound strategies to avoid any of the C++ pitfalls [06:26]
soc freeone3000: yeah, placing things into a lcollection was exactly what I was trying to avoid [06:26]
phroa soc: if we're not passing optionals then why even have them? just make sure to always pass a valid value-oooh. I think I got it. [06:26]
yawkat well people seem to focus on null safety an aweful lot instead of doing sensible things with their language like improving testability. [06:27]
sssilver yawkat ironically enough, my NullPointerException problems today were caused by testing using mocks lol [06:27]
freeone3000 yawkat: How many possible branches does your test test for? Does it test for an NPE on every line? Why not, couldn't everything be null? [06:28]
soc freeone3000: I'm pretty sure that map and flatMap exist in CompletableFuture, but that Oracle picked non-standard names and the unreadbale lambda syntax make them hard to find :-/ [06:28]
sssilver testing stateful code is inherently problematic :( [06:28]
sssilver ...and Java code is more often than not extremely stateful [06:28]
freeone3000 yawkat: Well, no, only certain things can be null. Which things? And that's where it gets tricky, because that's dependent on state exposure and invariants. So, we annotate, use static analysis, and so on. [06:28]
Dudi [125-105.echostar.pl] has joined ##java [06:29]
tyrostone [c-24-218-81-148.hsd1.ma.comcast.net] has joined ##java [06:29]
freeone3000 soc: I think the one you want is acceptBothAsync(), if you have exactly two. [06:29]
freeone3000 soc: If you have more than two, I'd go with the streams approach, with your collector being some variant of thenCombine() because generating the nesting looks awful there. [06:30]
yawkat soc: combine? [06:30]
yawkat what the hell, it's 0:30, i'm gonna write a reference chart for completionstage because I always forget too [06:31]
soc absolutely, although it's kind of scary that Java Futures lack traverse and sequence [06:32]
soc "turn Future[C[T]] into C[Future[T]] ... who will ever need that?" hahaha. [06:34]
freeone3000 ~rxjava [06:34]
javabot freeone3000, rxjava is https://github.com/ReactiveX/RxJava , an event-based system for managing Java component interactions [06:34]
freeone3000 These guys. [06:34]
freeone3000 Which is, of course, an entirely different approach, but when I think "composable concurrency", I think Rx. [06:35]
freeone3000 soc: Your function seems to be http://reactivex.io/documentation/operators/zip.html [06:36]
soc freeone3000: yes, comparable, but that has an even more foreign naming approach [06:40]
soc i think i got it now [06:40]
soc CompletableFuture<Integer> futureResult1 = CompletableFuture.supplyAsync(() -> slowBlockingMethod1()); [06:40]
soc CompletableFuture<Integer> futureResult2 = CompletableFuture.supplyAsync(() -> slowBlockingMethod2()); [06:40]
soc CompletableFuture<Integer> futureResult = futureResult1.thenCombineAsync(futureResult2, (result1, result2) -> slowBlockingMethod3(result1, result2)); [06:40]
tterrag [192.99.151.21] has joined ##java [06:40]
soc freeone3000: the whole cold vs. hot observable thing is kind of scary in Rx [06:40]
Macuser [unaffiliated/macuser] has joined ##java [06:41]
soc and the manual reference counting stuff [06:41]
wyvern yeah, rx has some sharp corners [06:41]
fatguylaughing [ip68-12-4-227.ok.ok.cox.net] has joined ##java [06:41]
freeone3000 soc: I've never counted a reference, so I just pretend that the latter bit doesn't exist, and the former bit isn't even that weird because it behaves pretty much how I expect it to. [06:41]
yawkat soc: http://s.yawk.at/4RJv [06:41]
javabot yawkat's title: Code [06:41]
phroa every time I think I'm a moderately decent programmer I read about Rx again and holy shit [06:42]
soc thanks :-) [06:42]
yawkat the descriptions need work. [06:42]
soc i think going through it and just saying "this is map, this is flatMap, this is lift, this is bind, ..." would help a lot [06:43]
yawkat tbh, i wouldnt know better with lift/bind :P [06:43]
freeone3000 Well, they ... don't have those things. [06:43]
yawkat now with some descriptions. http://s.yawk.at/rO11 [06:45]
javabot yawkat's title: Code [06:45]
soc freeone3000: I meant ConnectableObservable.refCount() [06:45]
soc some of the Rx stuff is downright evil [06:45]
soc because some of the operations are not idempotent [06:45]
freeone3000 idempotency isn't a requirement for most concurrency libraries. [06:46]
soc if you add more than one subscriber to an observable, it's basically a race who gets the value [06:46]
OddDuck [unaffiliated/oddduck] has joined ##java [06:46]
freeone3000 No, they both get the value, one just gets the value first. [06:47]
freeone3000 Which one? Stop thinking so much. [06:47]
soc ever thought "there is a bug, let's add a subscriber which just logs?" NOPE ... now everything is broken [06:47]
freeone3000 soc: I've never had that break things - it gets events just like all the other subscribers. [06:47]
nunchuck [ec2-54-152-74-3.compute-1.amazonaws.com] has joined ##java [06:48]
conan__ [mdproctor.plus.com] has joined ##java [06:49]
soc well, maybe they changed that. when I used it, the Hot vs Cold Observable thing, publish/refCount where a huge issue [06:51]
soc if you had A, B, C, D, E in your observable and subscribers S1 and S2, S1 maybe got A, C and D, and S2 got B and E [06:52]
phroa as someone that's never used it, I assume there would have to be an option for "send to all" or "load-balance" [06:52]
phroa you would think? [06:52]
soc phroa: exactly, but you had to do it explicitly [06:53]
teralaser [unaffiliated/teralaser] has joined ##java [06:53]
soc either with publish/connect or with refCount [06:53]
phroa tbh I don't think that's an issue... either way you do it, one of the two options is going to have to be behind a chained method. </$.02> [06:53]
soc the thing is that you will never realize your mistake until you go to more experienced people and describe your symptoms [06:54]
freeone3000 phroa: "send to all" is the default. [06:54]
soc whew, good that they changed that [06:55]
freeone3000 Now, what's possible is that S1 subscribes, gets A, B, then S2 subscribes, then S1,S2 get C, D, E. [06:55]
freeone3000 Which is completely appropriate for, say, a MouseListener (a "Hot" observable). That's what I'd expect to happen. It's a bit confusing for a database consumable, which is what happens with a ConnectedObservable (a "cold" observable) and .refCount(), if you don't first use .replay(). [06:56]
freeone3000 If you use neither refCount() nor replay(), you'll never get events, unless you call .connect(). [06:56]
PigFlu [unaffiliated/pigflu] has joined ##java [06:57]
freeone3000 But this amount of complexity is required, because every single one of those possible outcomes is easily concieved as something that someone wants for their program. [06:57]
AWizzArd parted the channel: [06:58]
btc_panhandler [216.49.181.251] has joined ##java [07:01]
Enkidu_ak [unaffiliated/enkidu-ak/x-8729472] has joined ##java [07:05]
somazero [ip72-198-86-61.ok.ok.cox.net] has joined ##java [07:14]
bolovanos [91.201.22.5] has joined ##java [07:21]
sfix [unaffiliated/sfix] has joined ##java [07:22]
AjaxCrixum sssilver: Haskell, though [07:22]
soc val futureResult1 = Future(slowBlockingMethod1) [07:23]
soc val futureResult2 = Future(slowBlockingMethod2) [07:23]
soc val futureResult = async { slowBlockingMethod3(await(futureResult1), await(futureResult2)) } [07:23]
soc *yay* [07:23]
cheeser don't paste here [07:23]
soc first time I tried the async/await stuff, seems to work pretty well, at least compared to the java stuff [07:23]
cheeser and it's not even java you're pasting. [07:24]
soc oh, sorry, I thought paste limit was three, but it was two :-/ [07:24]
soc it's related to the issue further above. [07:24]
Zalabinsky [91-158-179-28.elisa-laajakaista.fi] has joined ##java [07:27]
P1RATEZ [unaffiliated/p1ratez] has joined ##java [07:33]
bq_ [112.65.211.217] has joined ##java [07:36]
Dudi [125-105.echostar.pl] has joined ##java [07:36]
kirua [unaffiliated/kirua] has joined ##java [07:54]
Macuser [unaffiliated/macuser] has joined ##java [07:54]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [07:59]
fstd [unaffiliated/fisted] has joined ##java [07:59]
paulpaul1076 [broadband-95-106-132-36.atc.tvcom.ru] has joined ##java [08:01]
tyrostone [c-24-218-81-148.hsd1.ma.comcast.net] has joined ##java [08:03]
aspire [unaffiliated/aspire] has joined ##java [08:07]
setgraded [179.176.154.13.dynamic.adsl.gvt.net.br] has joined ##java [08:17]
Rickmasta [pool-74-101-29-191.nycmny.fios.verizon.net] has joined ##java [08:21]
di0_ [unaffiliated/di0-/x-5053590] has joined ##java [08:24]
wildlander [unaffiliated/wildlander] has joined ##java [08:24]
howitdo [unaffiliated/howitdo] has joined ##java [08:33]
heliosaurus [ppp-94-68-254-122.home.otenet.gr] has joined ##java [08:36]
aspire [unaffiliated/aspire] has joined ##java [08:36]
Cust0sLim3n [unaffiliated/cust0slim3n] has joined ##java [08:38]
svm_invictvs [unaffiliated/svminvictvs/x-938456] has joined ##java [08:45]
grim001 soc, java async stuff works well. [08:45]
aspire i'm trying to get all of the subclasses of class X in a certain package using the reflections api [08:49]
aspire new Reflections().getSubTypes(Class) is what i'm looking for but is it possible to limit it to only one package? [08:49]
cheeser .stream().filter(c -> c.getPackage().equals("...")) [08:51]
aspire cheeser, not for that purpose - for the sake of it not searching my entire class path [08:51]
cheeser planning on doing this 1000 times/sec? [08:52]
aspire once, on startup [08:52]
cheeser pfft [08:52]
aspire it has quite the impact though [08:52]
cheeser that's a premature optimization if i've ever seen one [08:52]
aspire well it takes about 3-4 seconds before the gui shows [08:53]
plarsen [redhat/jboss/pdpc.professional.plarsen] has joined ##java [08:53]
cheeser consider using SPI [08:54]
CustosLimen [unaffiliated/cust0slim3n] has joined ##java [08:55]
aspire ~SPI [08:55]
javabot aspire, spi is Service Provider Interface. Lets you drop a small text file into a jar saying "I have a class that implements this interface", then use java.util.ServiceLoader at runtime to find all implementations of that interface. See http://bit.ly/UsqMuz for an intro and http://spi.googlecode.com to make creating the service files much simpler. [08:55]
aspire ah, the service loader - it came up when i was googling how to do it [08:55]
Peste_Bubonica [191.254.180.199] has joined ##java [08:55]
aspire has anyone ever come across any syntax highlighting libraries that works off of regex? [08:57]
cheeser why would regex matter? [08:58]
SHC [117.204.38.35] has joined ##java [08:58]
cheeser you want a user to input a regex and have it highlight in a doc? [08:58]
aspire no, i want the syntax to be recognized via regex and the matching groups to be colored a particular way [08:58]
Peste_Bubonica [177.94.0.194] has joined ##java [09:02]
arescorpio [243-96-16-190.fibertel.com.ar] has joined ##java [09:05]
Macuser [unaffiliated/macuser] has joined ##java [09:08]
solenoids [unaffiliated/phillips1012] has joined ##java [09:09]
dinglebarry [107.15.83.110] has joined ##java [09:17]
rag1ngGerba1 [2601:647:4501:2f78::f59f] has joined ##java [09:17]
rag1ngGerba1 anyone in here familiar with the jackson json framework? im trying to figure out a way to throw an exception during deserialization if a field is null [09:20]
Draecos [58-7-167-241.dyn.iinet.net.au] has joined ##java [09:20]
gopar [c-73-162-171-146.hsd1.ca.comcast.net] has joined ##java [09:22]
cheeser look at the serialization features. i think there's an annotation/flag for that. [09:30]
strainwrld [a95-92-81-202.cpe.netcabo.pt] has joined ##java [09:34]
floombilter [ip72-208-40-251.ph.ph.cox.net] has joined ##java [09:37]
floombilter should I use JUnit for a new project at work, or is there a better alternative? [09:38]
allfro [216-48-160-29.cpe.distributel.net] has joined ##java [09:39]
svm_invictvs [unaffiliated/svminvictvs/x-938456] has joined ##java [09:39]
cheeser testng [09:40]
floombilter thought of it. any others? [09:44]
Macuser [unaffiliated/macuser] has joined ##java [09:45]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [09:47]
cheeser pretty much it [09:48]
weemsledeux [unaffiliated/weems] has joined ##java [09:49]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [09:54]
BSWolf [cpe-76-167-251-16.san.res.rr.com] has joined ##java [09:55]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:03]
blue_deref [cpe-74-77-246-241.buffalo.res.rr.com] has joined ##java [10:06]
jonee [112.198.103.115] has joined ##java [10:08]
Frojoe [2a01:7e00::f03c:91ff:fe70:bc74] has joined ##java [10:12]
setgraded [179.180.1.151] has joined ##java [10:12]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:12]
rhonabwy [2001:4c50:16f:6500:45c2:8468:3dc3:1c12] has joined ##java [10:16]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:23]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:32]
ish What am I looking for if I want to process all elements of a list concurrently, then wait and collect the results? [10:33]
canvs2321 [gateway/web/irccloud.com/x-bwlpseueqzuxuyxj] has joined ##java [10:34]
wordsToLiveBy [cpe-104-230-102-177.neo.res.rr.com] has joined ##java [10:35]
Betal_s [unaffiliated/betal] has joined ##java [10:39]
jonee [112.198.103.115] has joined ##java [10:40]
Tirz [gateway/web/freenode/ip.192.235.7.4] has joined ##java [10:40]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:41]
daseiboshi [50.243.110.209] has joined ##java [10:46]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:50]
AMcBain [66-189-215-97.dhcp.knwc.wa.charter.com] has joined ##java [10:52]
cheeser parallelStream() [10:52]
Ephemeral but do realize that parallelStream can also be slower depending on what you're doing and list size. [10:58]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [10:59]
cheeser pffft. threading and async make *everything* faster [11:00]
AMcBain cheeser, I agree! Let's do it 99 times on a quad core. :P :D [11:01]
cheeser puts a business plan together [11:02]
floombilter [ip72-208-40-251.ph.ph.cox.net] has joined ##java [11:02]
philipballew [ubuntu/member/philipballew] has joined ##java [11:08]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:08]
Audiowork [unaffiliated/not-mike/x-4399907] has joined ##java [11:12]
Audiowork parted the channel: "Leaving" [11:12]
dinglebarry [107.15.83.110] has joined ##java [11:17]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:17]
likecolacola [185.35.67.244] has joined ##java [11:20]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:27]
rsz [182.68.32.5] has joined ##java [11:33]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:36]
feneco_ [179.186.146.247.dynamic.adsl.gvt.net.br] has joined ##java [11:40]
druidd [cpe-98-27-54-57.nc.res.rr.com] has joined ##java [11:43]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:45]
aspire [unaffiliated/aspire] has joined ##java [11:50]
AbdulRehman [cpc7-seve22-2-0-cust846.13-3.cable.virginm.net] has joined ##java [11:54]