greptilian logo

IRC log for #javaee, 2013-10-11

Please see http://irclog.greptilian.com/javaee for which days have been logged.

| Channels | #javaee index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

All times shown according to UTC.

Time S Nick Message
00:15 MegaMatt joined ##javaee
00:20 Technodrome joined ##javaee
00:54 Technodrome joined ##javaee
00:54 Technodrome left ##javaee
01:23 shoky left ##javaee
03:33 mbc joined ##javaee
03:36 javaeebot joined ##javaee
04:08 SoniEx2 joined ##javaee
04:40 dangertools joined ##javaee
04:40 dangertools joined ##javaee
05:02 Quest joined ##javaee
05:42 grug joined ##javaee
06:13 Quest how to attach a GUI java app to run on each desktop of user logged in, but run all instances of that app as system admin or as service so that the user cant stop it. I had a lot of tough time doing it. I found no proper way. Is there one?
06:24 Quest its not possible by robot class either. well, I guess its not pure java issue. its related to OS.  and linked to java. so is there a work around?
06:31 Quest can install the java app as service but it will not attach itself to the desktop gui. it will be just non-gui.
06:33 Quest need some way to attach each deskop to it. or make multiple instances to start the app, attach it when ever a new user logs in (as there may be multiple users logged in an OS at the same time)
06:39 Quest the service will run as SYSTEM user then. how to attach the GUI desktop to it. (by default windows dont attach GUI to things that are ran by SYSTEM)
06:40 Fubar^ What do you even mean by "attach the GUI desktop to it"?
06:41 Quest == run a GUI based app. showing a window or capturing desktop snap. moving moust. etc
06:44 hahahaha joined ##javaee
06:44 hahahaha http://masoodahmad.com/resume/
06:44 hahahaha best resume ever!
06:45 hahahaha was kicked by Quest: bye grug
06:47 Quest who set -v on tjsnell ?
06:48 Woopwoopwoop joined ##javaee
06:48 Woopwoopwoop http://masoodahmad.com/resume/
06:48 Woopwoopwoop so pro
06:48 Woopwoopwoop too pro
06:49 Woopwoopwoop was kicked by ChanServ: User is banned from this channel
06:50 grug was kicked by ChanServ: User is banned from this channel
06:53 Quest Fubar^ sorry for intruption. you were saying?
06:57 Fubar^ Can you do that with Robot maybe
06:58 Quest cant.
06:58 Fubar^ Ohh, you already said you can't do what. Why is that?
06:58 Fubar^ s/what/that/
06:58 Quest well robot lets you doo all. but running an app on every user login as a service dont lets desktop gui interactivity.
06:58 Quest thats by SYSTEM user
06:59 Quest windows^
07:00 Fubar^ Is this for your worker surveillance program?
07:00 Quest kind of
07:00 Quest but it can be any app that needs such functionality.
07:01 Quest a messenger like skype say
07:02 Quest Fubar^ this is a / should be a problem of all java devs
07:09 Fubar^ Normally we don't worry about the users being able to close our app
07:22 Quest but running an app as system service is a thing to worry
07:24 Fubar^ That's easy, just register it as a service and tell it to start automaticly
07:27 Quest Fubar^ have to done it before? did the app ran and showed up a swing/javafx windows when ever the user logs in?
07:28 Quest Fubar^ the service runs once the windows is started. it runs as SYSTEM user. the SYSTEM user has not desktop. so it just runs in one instance. console based thing.   I want to run the app in attached mode to each desktop for each user when he logs in.
07:28 Fubar^ why?
07:29 Fubar^ you can run new programs for every user
07:29 Quest skype message for example. thats why.  each skype is for each user. each user can log in with its own skype
07:29 Quest Fubar^ new program? what do you mean
07:30 Fubar^ skype is not running as system
07:31 Quest Fubar^ if you mean that the app running as SYSTEM will run a new instance of a child app when ever a user logs in. then the child app will also run as SYSTEM. and again will not be attached to any specific windows user
07:32 Quest Fubar^ skype is not. but what if an app requires to be ran as admin user or as SYSTEM
07:32 Fubar^ no, i mean that you run it as a startup program. That way it is run as the user that just logged in
07:33 Quest yes. simple way is just to put that app in the run>programs>startup  menu. it will run as the user
07:33 Quest but
07:33 Quest the user can close it. or just delete it and it will not run ever again
07:33 Quest thats the issue
07:33 Fubar^ Why does it matter?
07:34 Quest <@Fubar^> Is this for your worker surveillance program?
07:34 Quest <@Quest> kind of
07:36 Fubar^ Your system service could monitor that all users are running the program
07:36 Fubar^ i guess
07:36 Fubar^ Another alternative is to start trusting the workers
07:40 Quest the later is never acceptable :)
07:41 Quest Fubar^ I think i have to make an other app that runs in console mode as SYSTEM and monitors all users logged in
07:42 Quest BUT.... even if that app sees a user has logged in. it will run the reall GUI app for that user. But how will it ATTACH that app for that new user desktop and not let the user close it?
07:42 Quest This surely needs a trick
07:42 Quest doesnt it Fubar^
07:44 Fubar^ What i'm saying is that you could let the user close it as long as the system app knows that the user has closed. It could set of an alarm or something
08:02 Quest Fubar^ isnt there a way that the user cant close it?
08:04 Quest the only way is to run the app as admin or SYSTEM but attached to the current logged in user desktop (the app starts at each user login)
08:44 Fubar^ I don't think it's possible. But i'm not a windows expert
08:59 Quest all is possible was my theory
09:00 Quest just a trick is needed
11:30 MegaMatt joined ##javaee
11:39 Quest http://stackoverflow.com/questions/19317139/windows-xp-7-service-interactive-with-each-logged-in-user-but-ran-as-admin-s
11:59 AlexCzar joined ##javaee
11:59 AlexCzar left ##javaee
12:08 myu joined ##javaee
12:08 myu left ##javaee
13:28 tommmied joined ##javaee
13:29 Naros joined ##javaee
13:44 sess joined ##javaee
13:48 sfisque joined ##javaee
13:51 acuzio sfisque: hey you got your +0o back
13:52 sfisque yeah, it seems i never lost it.  it was just changed.  instead of "auto op" we have to msg chanserver to give it to us
14:03 acuzio sfisque: so now you can kick tjsnell whenever you want - this is an improvement
14:05 sfisque now now,  though he can be a bit trying, he hasnt done anything egregious enough to peeve me into KBing him
14:29 Quest joined ##javaee
14:33 jbwiv joined ##javaee
14:34 acuzio sfisque: tjsnell is a trouble maker
14:34 acuzio i bet he is waiting to come in and cause trouble we should be vigilant against him and kick him
14:34 acuzio :-)
14:40 * sfisque wonders how long it will be until acuzio reveals he is in fact tjsnell… DUN DUN DUNNNNNNN
14:41 Quest joined ##javaee
15:00 acuzio oh god no
15:00 acuzio sfisque: i have heard a lot of things - lot of people have said mean things about me - but thats a low blow
15:05 tjsnell I never use aliases
15:06 sfisque oh well… tough crowd….
15:06 * sfisque puts the mic back on the stand and walks off stage
15:12 acuzio well you should try tjsnell
15:14 Quest joined ##javaee
15:16 acuzio are you creating trouble again tjsnell
15:17 acuzio do you want to fight ?
15:17 acuzio come on - choose your weapon and get ready to fight
15:17 * sfisque sighs
15:20 * SoniEx2 hugs sfisque
15:22 tjsnell I'm just tired of you picking on me
15:22 tjsnell I thought that wasn't allowed here
15:23 Quest tjsnell,  I have asked acuzio  not to.
15:24 tjsnell he doesn't listen very well
15:24 Quest he will. he's a good dude. right acuzio  ?
15:25 acuzio only cause tjsnell is old and infirm .,
15:25 acuzio but he still smells
15:26 Quest acuzio,  ok. discuss that in ##javaee-offtopic with him
15:26 acuzio there is an -offtopic
15:26 acuzio so whats this ?
15:26 Quest ontopic?
15:26 acuzio and hassling tjsnell is not ontopic ?
15:27 Quest is it?
15:27 acuzio course it is
15:28 Quest not ontopic to java :)
15:28 Quest or javaee
15:28 Quest acuzio,  any ways . how things are going? what are you doing these days?
15:29 acuzio I am trying to understand the difference between javascript, java and javaee
15:31 * sfisque thinks the differentiator is "the cool kids are here in javaee"
15:31 SoniEx2 javascript = "browserscript"
15:31 Quest acuzio,  hm
15:31 Quest sfisque,  you know javascrtip well?
15:32 SoniEx2 javaee = server thingy based on java or something like that...? I don't really know much about JEE :/
15:32 sfisque actually you can embed js in just about anything.  just like lua
15:32 Quest sfisque,  like ?
15:33 acuzio can you embed js in js ?
15:33 sfisque any java executable can embed js.  there is at least one ecma impl that is 100% java and it appears java8 is going to put JS in the JVM
15:33 sfisque eval
15:33 sfisque just like you can embed perl in perl
15:34 acuzio what perl in JS in perl
15:34 sfisque the original implementation of javascript (in netscape browser) was built on top of the integrated jvm
15:34 Quest sfisque,  JS only runs in a browser. how can java app embed it?
15:35 acuzio yes answer that sfisque
15:35 sfisque download a library (say… rhino), link it into your executable, instantiate a JS environment, and execute javascript (with bindings back into your app)
15:35 acuzio rhino - you mean the animal
15:36 Quest sfisque,  do you know js?
15:36 sfisque javaeebot lucky rhino ecma implementation
15:36 javaeebot sfisque: https://developer.mozilla.org/en-US/docs/Rhino
15:37 acuzio sfisque: answer the question man - do you know js ?
15:37 sfisque i know enough.  i have not kept up with anything new since ajax, but i've been using javascript since when it was only present in netscape navigator
15:38 Quest well then you can solve an issue.
15:38 * sfisque is not a big fan of javascript but accepts that it solves some problems well
15:39 acuzio ajax .. ha
15:42 acuzio answer Quest's question
15:42 * Quest shrugs :|
15:51 pdurbin yep. javascript in the jvm with nashorn
15:51 pdurbin javaeebot: lucky nashorn java javascript
15:51 acuzio who the hell is nashorm ?
15:51 javaeebot pdurbin: http://openjdk.java.net/projects/nashorn/
15:51 acuzio whats with the word "lucky2
15:51 acuzio lucky ?
15:52 pdurbin will be released with Java 8: http://en.wikipedia.org/wiki/Nashorn_%28JavaScript_engine%29
15:52 sfisque i wonder if oracle will ever consider updating javacc and folding it into the jdk
15:56 sfisque ooohh looks like there is work going on for a javacc7
16:06 whartung javacc?
16:07 kobain joined ##javaee
16:08 sfisque javaeebot lucky javacc
16:08 javaeebot sfisque: http://javacc.java.net/
16:10 whartung Oh they're going to add one to the JDK?
16:11 sfisque no, i wish they would, making it a standard tool and giving it better documentation
16:11 sfisque so far, for the last 17 years, it's been a red headed step child
16:12 whartung well there are other models, Anltr is really well documented (it seems to be the king of the hill in this domain in the community)
16:13 whartung When I wrote my compiler years and years ago, I used SableCC
16:26 jenue joined ##javaee
16:29 sfisque my issue with sable and anltr is that they do not generate standalone code.  you HAVE to link their libs in
16:30 whartung fair enough. I use Sable because it built the AST for me "for free"
16:30 sfisque jjtree (built into javacc)
16:31 sfisque what i'd really really like is to see javacc embrace newer tech, like instead of being LLk, instead being GLR
16:32 sfisque i find some grammars are "unapproachable" with LLk (aka you can do it, but the grammar bears little resemblence to the actual language semantically)
16:32 whartung I don't know if jjtree existing in 2001 ...
16:32 whartung yea
17:18 pdurbin http://metrics.codahale.com - Metrics is a Java library which gives you unparalleled insight into what your code does in production
17:18 pdurbin via whartung in #glassfish :)
17:19 Quest any javascript guy?
17:43 acuzio sfisque: LISP
17:43 whartung Lisp doesn't have a grammar, it has a reader.
17:43 acuzio whartung: yes yes
17:43 whartung LISTs have a grammar, but the language itself, less so.
17:44 acuzio pdurbin: dropwizard uses that also , its a good lib
17:44 whartung that's where I found it
17:44 pdurbin javaeebot: lucky dropwizard
17:44 javaeebot pdurbin: http://dropwizard.codahale.com/
17:57 acuzio javaeebot: lucky jackson
17:57 javaeebot acuzio: http://www.jacksonguitars.com/
17:57 whartung fail :)
17:57 acuzio clearly
18:03 sfisque javaeebot lucky jackson json parsing
18:03 javaeebot sfisque: http://jackson.codehaus.org/
18:03 pdurbin dropwizard does seem nice. REST stuff
19:13 pdurbin whartung: my summary about my attempts this week to get a SAML SP working turned more into a rant
19:13 whartung welcome to saml :)
19:13 pdurbin sigh
19:13 whartung "How hard can this be?" "Very" apparently
19:13 pdurbin whartung: wanna see the summary? it's a google doc
19:13 whartung sure
19:14 pdurbin https://docs.google.com/document/d/1y2axfd_ScmXVICFlV8AuPDdp5xHwTag54pUpVefzs5g/edit?usp=sharing
19:32 jenue joined ##javaee
19:46 pdurbin whartung: you're speechless
20:14 whartung heh I left for lunch..
20:14 pdurbin :)
20:14 pdurbin likely story
20:15 pdurbin maybe I *should* stand up that simplesamlphp thing. so I have an IdP I control
20:16 pdurbin would probably help me better understand the interaction between the IdP and SP
20:16 whartung well I did suggest that, umm…, weeks ago :)
20:17 pdurbin yep :)
20:17 pdurbin whartung: I believe you said it's the easiest IdP to stand up
20:17 whartung that's my understanding, I have not done it, but it seems simple
20:17 whartung the problem with the others is they're so big
20:17 pdurbin yeah
20:17 whartung or, in shibs case, too abstract
20:18 pdurbin I've been doing a lot of testing with the IdP at http://testshib.org , which is a great resource
20:21 whartung I think you should work on writing your own SP. WRting the SP is a lot easier than writing the IdP
20:23 pdurbin "The main component of the package is a servlet filter which handles user authentication. The filter checks if the user is already authenticated, and if not, the user is redirected to the SAML Identity Provider. When the user returns with a SAML assertion, the assertion is validated, and a new session is created for the user. The application can access the received assertion and its attributes through a
20:23 pdurbin programming API."
20:23 pdurbin whartung: write something like that, you mean?
20:23 whartung yes
20:23 pdurbin that's from https://svn.softwareborsen.dk/oiosaml.java/sp/trunk/docs/intro.html
20:24 pdurbin so a servlet filter
20:25 whartung yea
20:26 pdurbin it's on my list, on that google doc
20:26 pdurbin last ;)
20:27 whartung yes
20:27 whartung just saying, all the time you've spent looking for the "easy" way, it would have been done by now :)
20:28 pdurbin well, dunno about that. I need to learn the protocol, etc. It's nice to look at working code
20:30 pdurbin whartung: you wrote your own IdP and SP?
20:30 whartung yes
20:31 Quest heres my Entity class of boards and boxes.  http://pastebin.ca/2465764   and a snapshot of 3 tables.   http://oi40.tinypic.com/30ur3pw.jpg  I have populated one board and many of its child boxes but the boards_childboxes has no data. (the pgAdmin 3 said the note by the way. i think it might not be relevant though)
20:34 Quest what can be wrong?
20:35 sess why do you have a jointable for a oneToMany relation?
20:38 sess Quest: ^
20:38 Quest hm
20:38 sess jointables are for manytomany
20:39 Quest hm.
20:39 Quest so I should delete it? then see if it works?
20:39 sess delete and replace by something
20:39 sess a join column
20:39 Naros @OneToMany and @ManyToOne are generally managed using foreign keys
20:40 sess or skipping probably works too if default names are used
20:40 Naros not a join table
20:40 Quest should I delete the database table too. ? i think hibernate stores some meta data for each table. that might not get disturbed?
20:40 sess well the table shouldnt exist to start with
20:40 sess not sure what kind of meta data youre talking about
20:41 Naros hibernate just takes the annotation stuff and using the schema updater, creates necessary database objects
20:41 Quest I would just delete the annotation  @JoinTable (name = "boards_childboxes",            joinColumns = @JoinColumn(name="boardId"),            inverseJoinColumns = @JoinColumn(name="childBoxId")           )   and keep all other things as is
20:41 sess i think so
20:41 sess without thinking too much
20:41 sess try it
20:41 Quest k
20:41 Naros yes, it will add to teh boards table a field called childBoxList and to the boxes table a parentBoard field
20:42 Naros er wait
20:42 Naros should add to the boxes table only a parentBoard field
20:42 Quest need to get data both ways
20:43 * Quest reloading
20:44 Naros @OneToMany(mappedBy="parentBoard")
20:44 Naros then in boxes @ManyToOne @JoinColumn(name="yourFieldName")
20:45 Naros no need for columns in both tables
20:45 Naros the 'youFieldName' will contain the board id from the Board object
20:45 Quest ah.. forgot to write y(mappedBy="parentBoard")
20:46 Quest will that matter?
20:46 Naros I would expect hibernate to choke without it
20:47 Naros but it might be able to figure it out with your simple entity relationship
20:47 sess i usually specify all names
20:47 sess so not sure
20:47 Naros as do I
20:47 sess i prefer db first design
20:47 Naros Likewise
20:47 sess since hibernate generated tables have a tendency to be a bit crap if you ignore it
20:47 Naros I also dislike your column naming notation
20:48 sess in a project at work
20:48 Naros DBAs will choke you for those namse :P
20:48 sess there is a table
20:48 sess called long_val
20:48 sess that has 2 columns
20:48 sess foreign key
20:48 sess and a decimal
20:48 sess thats it :D
20:48 Naros o.O
20:48 Quest ok then. @OneToMany (mappedBy="parentBoard")   private Collection<Boxes> childBoxList = new ArrayList<Boxes>();
20:48 sess it comes from a lazy mapping
20:48 sess map<String, Double>
20:48 sess something like that
20:48 sess with a onetomany
20:48 sess rather than elementcollection
20:49 Naros hah
20:49 sess in their defense it was JPA 1
20:49 sess but in that case, fuck maps
20:49 Quest I was in the image that hibernate would just create duplicate tables if no mapping is told. but anyway. i did it
20:49 Naros hibernate won't create anything in the database unless you tell it to create your schema
20:49 sess Naros:  he's doing it hibernate first
20:49 Naros and just as an FYI - i won't recommend using that thing in production
20:49 sess with drop and create property set
20:50 Quest should I delete the database table board_childboxes too?
20:50 sess Quest:  designing the database first would probably help you understand the relationship and what mappings you need
20:50 Naros Yep, with the mapping gone, hibernate won't even know it exists any longer
20:51 Quest hm
20:51 Naros inevitability you're after something like this
20:51 sess you want boards with collections of boxes? Make a Box table and a Board table, with a foreign key in Board poiting to Box
20:51 sess and its pretty much done
20:52 Naros SELECT board.*, boxes.* FROM Board board, Boxes boxes WHERE boxes.parentBoard = board.id;
20:52 sess or just select b from board b
20:53 sess oh it was sql
20:53 Naros lol
20:53 Naros yah
20:53 sess :)
20:53 Naros the jpa provider would just take that SQL and spit out whatever you ask for using resultset manipulation.
20:54 Naros distinct boards with their boxes in a collection per object
20:59 Quest getting the childboxlist in hibernate. dont know the table name hibernate made for to keys for both box,boards
20:59 Quest works but dont know the table name
20:59 Naros it doesn't make a table
20:59 Naros look in your boxes table
21:00 Naros you should have a parentBoard field it added
21:00 Naros that field is called a foreign key
21:00 Naros you can't insert a box without a valid value for a board
21:00 sess join tables are only needed for many to many
21:00 Naros Right because no one can own the relationship in that case
21:00 sess a board with a collection of boxes just means that each box has a reference to a board
21:01 sess i.e a column in box is enough to map the relation
21:01 Naros and that each box owns the relationship to its board.
21:01 sess yeah
21:02 Naros The owning side of a mapping is typically where you see the @JoinColumn/@JoinColumns mapping and the side with mappedBy is a relationship participant.
21:02 Naros this is why if you understand the DB side of it, the hibernate mapping stuff falls into place.
21:06 Quest hm
21:07 Quest <Naros> you can't insert a box without a valid value for a board  ?  what if a box has no parent (hypthetical e.g or null)
21:07 Quest sess,  Naros  got it
21:07 sess thats fine actually
21:07 Naros null is valid so long as you have @JoinColumn(.... nullable=true) which is the default setting in JPA
21:07 Quest sess,  fine?
21:08 sess having boxes without boards
21:08 sess as long as they have their own primary key
21:08 Naros if you set the field nullable=false, the database field will be set to NOT NULL which means your case won't be valid
21:08 Quest Naros,  no i mean. with no @JoinColumn
21:08 Quest <Naros> you can't insert a box without a valid value for a board        what if the parent is not null nor a value
21:09 Quest Naros,  nulable != false here
21:09 Naros Quest: you understand foreign keys yes?
21:09 jenue joined ##javaee
21:10 Naros A table can have a field which is constrained by a value from another table, AKA Foreign Key.
21:10 Naros So lets say I have boards 1 - 10 defined
21:10 Naros I can't create a box and set it's board database value to something like 15
21:10 Naros the database will tell me no way jack, that isn't valid
21:11 Naros but i can create a box and say it's board reference is NULL if and only if the board reference column permits nulls.
21:11 Naros typically in a parent/child relationship, the parent reference is NOT NULL however.
21:12 Naros do you follow?
21:12 Quest Naros,  yes
21:12 Quest sure
21:12 Naros That was all I was eluding to in my earlier comment
21:12 Quest appologies for delayed responses though
21:13 Quest i see
21:13 Quest greate
21:13 Naros No worries, mine as equally delayed :)
21:13 Naros 8are
21:13 Quest ah. office off time!
21:13 Quest sess,  Naros  I am honoured.
21:13 Quest to have you
21:14 Naros hehe, nah im just swapped here at work atm.
21:14 sess :)
21:14 Naros trying to finish up stuff before weekend starts up!
21:14 Quest hm.. i had to work on saturdays too. well this saturday.
21:15 Naros hehe, my saturday hasn't started yet but mine will consist of debugging my game engine :P
21:15 Quest it was some holiday swapping. they gave us more in the other week and asked to work on saturday.
21:15 Quest game engine
21:15 Naros Yep, that's what I do in my spare time
21:16 Quest sess,  Naros  i really like self business or innovative ideas. i like to work for my self. not for a company that makes more money by my work than it pays me
21:16 Naros hehe, likewise.
21:16 sess youre gonna have a hard time finding a company that earns less from your work than you get payed :)
21:16 Naros although that's the benefit of being an independent consultant too
21:16 Quest sess,  Naros  do you guys have some dreams/ business ideas?
21:17 sess i get 60% of what i earn the company, pretty decent
21:17 Quest sess,  lol
21:17 Quest sess,  oh
21:17 Quest sess,  how do you know what the company gets from its clients?
21:17 sess since i have a minimum wage if i dont find any customers, and they pay for the building and administration and stuff
21:17 sess i know how much the client pays for me
21:18 sess and i get a straight percentage from that
21:18 Naros I know how much my company makes from our customers.  With my income + perks + bonus packages and such its highly decent.
21:18 Naros work from home, flexible hours, 401k contributions, insurance, etc.
21:19 sess its good being in a business where companies cant screw us over
21:19 sess programmers are high in demand
21:19 sess cant imagine it going down at any point
21:19 sess ever
21:19 Naros hard to find a 'good' programmer :(
21:19 sess yup
21:19 Naros let alone a decent one :o
21:20 sess i read that a good programmer can produce 10-20x the output of an average/bad one
21:20 sess probably true
21:20 sess kind of unique for our profession
21:20 Quest the sql for delete all in a table is...
21:20 Quest delete * from boxes;
21:20 Naros hehe, my boss had a chance to see me in action a few years back while I was traveling aboard with one client in Europe.  The throughput was amazing being able to work + drink beer simultaneously ;P
21:21 sess sweet
21:21 sfisque sess: depends on what you mean by "output".   i openly admit that i am a slow coder, i spend more time on forensics than writing code, because i prefer minimal to verbose
21:21 Naros *abroad even
21:21 sess sfisque:  output was a bad word, i basicly mean the long term gain from the employee
21:21 sfisque gotcha
21:21 Naros Fewer lines of code = better 99% of the time
21:21 sess counting the benefit from writing good code that can be changed easily
21:22 sess not output as in number of lines :)
21:22 Naros yah
21:23 sfisque but even that is iffy.  in a "live product" sometimes writing 1 line of code that requires eventual refactor is better than writing 20 lines that have a potentially huge regression footprint, if you need to hot fix something in production (aka, QA needs it 3 days ago, and it's gotta go live the second QA says "good")
21:24 sfisque having been through that exercise too many times, i've learned to spend more time on forensics than just slewing code
21:24 sess i dont think the amount matters that much
21:24 sess readability is the only thing that counts
21:25 sess id rather have 20 easy to understand lines than 4 lines 100 char wide with compact crazy stuff
21:27 sfisque aye.  my point is sometimes even readabilities value is "loose".  imo, it's ultimately a basket.  does the developer understand ROI.  can they weigh regression footprint, code quality, performance metrics, maintainability, and correctness in a way that is ultimately beneficial to the team and product
21:27 sfisque basically, can they make good judgements based on real world constraints
21:28 sess i dont like the real world
21:28 sess it disturbs my coding
21:28 sess ROI?
21:28 sfisque admitttedly, i've written "hot fixes" that were a single line, with 3-20 line comments that explain the "proper fix" and the potential regression footprint that QA has to swallow
21:29 Naros ROI = return on investment
21:29 sfisque lol, yeah, that real world really gets my goat
21:29 sfisque :P
21:29 Naros lol i love those types of fixes
21:29 Naros novel of comments and just a few lines to fix the issue
21:30 sess protip
21:30 sess the proper fix will never come
21:30 sfisque aye, the fix is easy, but the regression footprint is too big for QA to swallow for a hot fix
21:30 sess so might aswell do it properly the first time
21:30 sfisque negative, sess.  it comes, but you have to have ALOT of discipline to keep at it
21:30 sess dont get me wrong
21:30 sess i love fixing stuff
21:30 sess but someone has to pay for it
21:30 sfisque i've had the opportunity on many occasions to "fix it right", but you have to keep it on your plate so it doesnt get lost
21:31 sess few customers wants to pay for fixing something that "works"
21:31 sfisque of course,  ROI
21:31 Naros Proper fixes come if your team is judicious about maintaining a running list of those things to address on major or sometimes minor version releases, just not hotfixes.
21:31 sess the ROI is too abstract in those cases
21:31 sfisque aye.  but if you comment approproately, you can "opportunity fix" when you run through those sections of code
21:32 Naros Customers are always willing to pay for enhancements.  That's where you get creative and roll out those proper fixes with those enhancements :P
21:32 sfisque depends.  if you can tie it to something "tangible", like "rewriting this converter will optimize the rendering of select options in the JSF layer"
21:32 sess .// TODO: Fix
21:32 * sfisque nods with naros
21:33 Naros TODOs are nice but I prefer JIRA tasks
21:33 sess i deal with customers that things 20h per month in maintenance cost is too much
21:33 sfisque that's where the novel "todo'" comments come in handy.  (aye naros) if you're fixing a jira, and your fix is right next to a "todo", you can just swallow it as part of the bug fix
21:34 Naros sess: but that's the thing, what we're talking about wouldn't be viewed as maintenance costs.
21:34 Naros these are enhancement costs
21:34 Naros you roll maintenance in with those costs
21:34 sfisque aye.  you just have to be "creative" in how you describe the refactor
21:34 Naros Yep
21:34 sess well, have to have enhancements semi related to the todos
21:35 sess but I do that too a lot :)
21:35 sfisque it can't be "i'm optizizing the converter", it has to be "as a user, i want select menus in the web page to re-render in a timely fashion"
21:35 sfisque that way it has "value"
21:36 Naros funny you mention menus /cries
21:37 Naros one of my jira tickets is to provide fully 100% customized menus
21:37 Naros allowing users to reorder and reorganize the lists :(
21:37 Naros all because someone is hellbent on full user customizations here :E
21:37 sess that sounds... not so useful
21:37 sess and a bitch to code
21:38 Naros yah but when your product is used by a plethora of people from C-level to people on the maintenance shop floor, customization becomes a key factor
21:38 sfisque just lots of ajax against a backing bean that reloads the backing lists
21:38 Naros C-levels want pretty stuff
21:38 * sfisque nods
21:38 Naros shop guys want something that jsut works and is bland
21:38 * sfisque shakes his fists at C-folks
21:38 sess nothing wrong with customization, but order of menus sounds kind of meh
21:38 sess it doesnt really improve speed of usage
21:39 Naros speed isn't everything :P
21:39 sfisque doesnt matter.  whoever signs the checks gets to make all sorts of bad decisions
21:39 sfisque nature of capitalism
21:39 Naros lol yah
21:39 Naros i go home and bitch about it but what is a guy to do
21:39 sess what could be more important in gui than effiency? (=speed)
21:39 sfisque i want it blue on blue, ADA be damned
21:39 Naros i get paid to code
21:40 Naros There is a lot to be said in look-n-feel sess.
21:40 Naros Especially to CFOs who want pretty charts & graphs
21:40 Naros Or to the sales team on their performance
21:40 sfisque aye, ergonomics, aesthetics, simplicity in use, etc.
21:40 sess pretty charts is fine and all, but the specific case of ordering menus
21:40 sess really doesnt sounds like it would improve anyones work
21:40 sess unless the menu is like 100 items long
21:41 sfisque depends.  one persons' default isnt anothers.  role based defaults makes sense in many contexts
21:41 sfisque C-level might have 3 certain items at the top, wehre as clerical might have a different ordering
21:41 Naros Aye, our menus are role-based but are structured to group like options together.
21:41 * sfisque nods
21:41 Naros But someone might want to create a quick-menu list
21:41 Naros their top 5 used things and remove all the other fluff
21:42 sess i was thinking of the main nav menu for a site with perhaps 10 options
21:42 Naros We also have some users who suffer from being able to use the mouse to hover over content effectively.
21:43 Naros So we had to allow those people to be able to interact with the menus in a different fashion due to their disabilities.
21:43 Naros Search
21:43 Naros Search -> Inventory
21:43 Naros Search -> Inventory -> Items
21:43 sess sounds like a challenge
21:43 Naros Instead the user might want just to have items below search :P
21:44 Naros anyhow
21:44 Naros it is what it is
21:44 Naros Just found it ironic sfisque mentioned menus :P
21:46 Naros I guess it would help sess if I had prefaced our app is a web-based ERP system :P
21:46 Naros perhaps knowing how many transactions a user can do in those things may make more sense
21:47 sess makes more sense then :p
21:47 Naros I think i have one jira ticket to permits themes :/
21:47 Naros lawlz
22:05 mbc joined ##javaee
23:17 sfisque so anyone here have experience with camel server?
23:22 whartung no
23:23 whartung I should say, no I haven't
23:23 whartung what are you trying to do?
23:26 whartung ..sfisque
23:36 sfisque our product connects to camel server to do some "queued work", and we do so via camel's API, rather than just doing it via generic JMS.  i'm wondering how much work it woudl be to refactor it to do pure JMS, rather than via the camel api
23:36 whartung ah interesting
23:37 whartung so you talk to the camel server straight, rather than to a queue that camel is servicing?
23:37 sfisque one of those cases where i came on board, it was already done, and all i could do was just "shake my head" and wait for it to "be a problem" at some point
23:37 whartung and Today is Some day!
23:37 sfisque it talks via ActiveMQ (bundled with camel) but we instantiate a camel provider and talk through that, rather than just bundling a generic JMS message and sending it to AMQ
23:37 whartung O.o
23:37 whartung "ok"
23:38 sfisque if by 0.o you mean "makes your eyeballs twitch", then yes, i concur
23:38 whartung if you'r enot using anything special about the camel connector, you should be able to jus talk to amq via JMS
23:38 whartung yea
23:38 whartung scritchy
23:39 sfisque basically what i discovered sometime ago (cdi fails in @asynch) has bitten us again, because camel server uses cdi.  dun dun dunnnnnnn
23:39 whartung nice
23:40 whartung what do you guys do with camel?
23:40 sfisque bucketed email processing and queueing
23:40 whartung ok
23:41 whartung an MDB talking to JavaMail wasn't going to work?
23:41 sfisque camel has buckets for various template types, so the request goes into a bucket, gets macro expanded, and then queued for smtp
23:41 sfisque i could go MDB but i am unsure if CDI is also going fail as well since MDBs are also considered asynch (they were asynch before @Asynch existed)
23:42 whartung depends on what part of Asynch is making CDI fail
23:42 sfisque so yes, i can try that
23:42 whartung what kind of things are you doing with CDI?
23:42 sfisque the fact that Asynch has no context (its completely decoupled from any http session life cycle
23:42 whartung yea
23:42 sfisque i think he was just using it for injection
23:43 whartung but using session scoped stuff in async has a taint of insanity to it anyways
23:44 sfisque of course.  that was part of my major refactory when i discovered the cdi / asynch break
23:44 sfisque anyway , time for me to go afk for QT with the wife.  g'nite all and be well.  code strong!
23:44 whartung nn have a good weekend

| Channels | #javaee index | Today | | Search | Google Search | Plain-Text | plain, newest first | summary

Please see http://irclog.greptilian.com/javaee for which days have been logged.