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 |