IDempiere/FullMeeting20130220
⇐ Table of Contents | Full Meeting Minutes | Full Meeting 2013-02-20
CarlosRuiz: Good Morning
tbayen: Hi CarlosRuiz, Daarestiet!
Edwin_Ang: good night here :)
nmicoud: Bonjour !
red1: Hola
tbayen: red1 pointed me to http://demo.globalqss.com/mobile Is this included in iDempiere?
Edwin_Ang: @red1: contact me when you have fixed date to visit jakarta
red1_: i dont think so
Edwin_Ang: would like to meet and chat with you :)
red1_: Edwin_Ang: please private message me, i cant do it from here
CarlosRuiz: no, mobile has not been "pluginized" :-) (new term)
red1_: yeah.. need the plumber man to do it :D
tbayen: Would you be my plumber and do a plugin from that? ;-) You told me it is only 20 Minutes to do a plugin... I will pay your time
tbayen: ...20 Minutes will be about one or two beer here in Krefeld I think. Haha
CarlosRuiz: nope - with good beer it will be 20 hours
tbayen: I bet red1 can do that in the half time.
CarlosRuiz: Woltman's Law: Never program and drink beer at the same time.
tbayen: Who did that code? It looks nice on the phone and the tablet.
red1_: Yeah, but i dont mind been paid with some coffee
possy: CarlosRuiz, if the world would have followed Woltman's law, most software would never have been written.
red1_: i think it was weed that reverse that law
possy: weed was the source of BSD iirc
red1_: tbayen: book me on the plane for Dusseldorf April 1st till June 30th
red1_: i still got some weed in the house but i am not sure how it works
red1_: it makes me dizzy but at least helps me sleep well
tbayen: Dont bring that with you. Your stay will be much longer...
red1_: Dietmar will bring it for me
CarlosRuiz: possy, yes :-) most developers must follow another rule, like the comment here:
CarlosRuiz: / drunk, fix later
CarlosRuiz: http://www.javacodegeeks.com/2011/07/funny-source-code-comments.html
red1_: we can put it in your beer brew and see if it helps your business
red1_: haha
red1_: // If you delete the credits, I will fucking kill you.
red1_: that is politically correct
tbayen: we know that already
tbayen: Dont' mention the war
CarlosRuiz: :-D
tbayen: Did someone find the time to look into my pull requests?
CarlosRuiz: checking now
CarlosRuiz: any particular that you want me to start with?
tbayen: :-)
tbayen: #65 and #68 are a bit connected. Begin with #68 to have the "right" order.
tbayen: That means: begin reading http://jira.idempiere.com/browse/IDEMPIERE-637
tbayen: Sorry if I am not concentrated as I should. I am playing with your mobile adempiere. ;-)
CarlosRuiz: every time I need to review what is userelement vs userlist - they are named opposite IMHO
tbayen: Yep. It was not easy to understand it and I even am not sure I understood it really. But is does what I want. :-)
tbayen: it
tbayen: I contrast to what I have said in the last comment I did some testing since then. It works well. I hope I am not wrong in that nmicoud introduced this as a bug in IDEMPIERE-344.
tbayen: In principle this kind of implementing the UserElement is not good because you need to change the Model of a Document (and use the ModelGenerator to recreate the code). This is not well "pluginnable" (another new word :-) ).
tbayen: But it is how Jorg Janke did it and I do not know how many people use that.
CarlosRuiz: nmicoud, developed IDEMPIERE-344, he knows about what he's talking
CarlosRuiz: tbayen, I think the idea of UserElement1 and UserElement2 are not to be created with that name on documents
CarlosRuiz: I see in your comments on IDEMPIERE-637 you got the idea
CarlosRuiz: did you test adding the column BLA_Test_ID on GL_JournalLine?
tbayen: Yes. It works well.
red1_: for pluginable use, i think GenerateModel should include creating of stub ModelFactories
CarlosRuiz: tbayen, I see in the PR68 a change on MLookup slipped
CarlosRuiz: is it ok if I take just the OK parts and dismiss that one?
tbayen: I got my knowledge how UserElements work at most from this code https://bitbucket.org/idempiere/idempiere/src/8c2e8aca10176eefe60256544a464d9a92d907f4/org.adempiere.base/src/org/compiere/acct/FactLine.java?at=development#cl-170
tbayen: Arg - yes, that MLookup change should not be in the pull request.
CarlosRuiz: and I would like to add also the drop column to the migration script
tbayen: I proposed that but I did not know how you see that.
tbayen: good. :-)
CarlosRuiz: you mean adding BLA_Test_ID works well after your patch? or it worked well before?
Edwin_Ang: hi carlos, can i ask you one thing?
CarlosRuiz: yep?
Edwin_Ang: in adempiere, i used to set the VM_OPTS in AdempiereEnv.properties
Edwin_Ang: but after several testing at several places, i found out that the only place that is able to set it in idempiere is in idempiere-server.bat
Edwin_Ang: is it ok if i set it there?
tbayen: CarlosRuiz, adding BLA_Test_ID worked before and after. The UsereElement1&2 columns were just useless.
CarlosRuiz: yep - I think so - there is where I change it too
red1_: it may be a path issue
CarlosRuiz: tbayen, what are the changes on CalloutGLJournal?
CarlosRuiz: and MJournalLine?
CarlosRuiz: I mean - if it worked fine before - what are those changes for?
tbayen: If someone changes the UserElement the Accounting Combination will be cleared. I think this is what IDEMPIERE-344 is about.
CarlosRuiz: ah, I see - if I add the BLA_Test_ID to journal line
tbayen: I did it the same with all other accounting dimensions. The before code used the unneccesary columns.
CarlosRuiz: then it will behave correctly bringing/changing the combination
tbayen: yes
CarlosRuiz: excellent! sounds great
tbayen: :-)
CarlosRuiz: wow - zk is a lot faster with the latest changes from hengsin
CarlosRuiz: and today I see a little useful "edit" button on grid mode
Deepak: Yes, I noticed that too
hengsin: Edwin, adding it to idempiere.ini should work too if you are using idempiere.exe to start the server
Edwin_Ang: next question :D
tbayen: CarlosRuiz, where can I find that /mobile/ code? Is it in 361?
CarlosRuiz: yes - mobile folder
Edwin_Ang: @hengsin: if i add to idempiere.ini, will it work for idempiere-server.bat too?
CarlosRuiz: is the old htmlUI from compiere ported to this library -> http://code.google.com/p/iui/
hengsin: Edwin, I don't think so
hengsin: for mid to long term use, that mobile client is not recommended.
tbayen: Where can I begin? At 361 source or at iui?
tbayen: I really would like to have a real android client with the possibility to work offline. But I have no time and I have a usecase *now*.
tbayen: hengsin, do you think it is not woth the effort to pluginize it?
buildmaster: Project iDempiere build #788: SUCCESS in 5 min 52 sec: http://jenkins.idempiere.com/job/iDempiere/788/
buildmaster: hengsin: IDEMPIERE-635 Reference validation behaving different than Dynamic Validation. Previous revision break lookup direct for non base locale.
hengsin: tbayen, someone have done an partial android client for adempiere, maybe you can give that a try
CarlosRuiz: tbayen, for offline the SFAndroid sounds like a better start
CarlosRuiz: they synchronize to a local phone sqlite db
hengsin: http://www.adempiere.com/SFAndroid
tbayen: I have two different problems: First I want to access idempiere from a tablet for sales persons to make notices and such. I could need this now. But zk does not work with Android Chrome. Perhaps we better address that. hengsin have you tried zk with Android?
tbayen: It looks well but the buttons do only work sometimes.
tbayen: The second problem is longterm. I want to create a real android client for that and have a look at SFAndroid. Thanks for the link.
hengsin: yes, it works just ok with firefox and chrome
hengsin: performance wasn't that good though, probably can be better ( I've a nexus 7 and ipad 2 so that's the device I've tested on )
tbayen: If I press a an entry in the favourites the entry becomes blue but nothing happens. :-(
tbayen: Yes, mine is a nexus 7 too.
tbayen: You say that one can work mobile with that (not fast but possible). So this will be the best solution (until the android client is ready).
hengsin: works better on firefox, you can give it a try. android chrome is not that great at this moment anyway.
tbayen: I tried firefox. Which version you use?
tbayen: If I had known you own a nexus 7 I would have asked direct. :-)
hengsin: the latest version :)
tbayen: CarlosRuiz, if you review the last one you could even look into #65 and IDEMPIERE-629. You can review the commits one for one or alltogether.
hengsin: we do have plan to integrate SFAndroid in future so it will be great if you can kicj start that now
tbayen: hengsin, Not now (too much other construction sites) but I am very interested to be in the team.
CarlosRuiz: tbayen, still checking IDEMPIERE-637
tbayen: ok
CarlosRuiz: I'm not sure if that's needed - I'm checking with other documents and apparently the combinations are never filled with userelement
hengsin: Carlos, do note that the 787 build is broken for non-english locale.
CarlosRuiz: ? do you mean IDEMPIERE-635 ?
hengsin: yes, blacklevel reported it on idempiere group. build 788 fixed that.
tbayen: CarlosRuiz, it was used before, but all that code was from nmicoud . It can be that it is not used in combinations. Question is how comes that the dimension value get into the Accounting Fact Line.
red1_: Hi trifon_
CarlosRuiz: tbayen, the trick is on FactLine.java line 170
tbayen: Yes, that's the link I gave above.
CarlosRuiz: testing now with your patch ...
tbayen: hengsin, I did a system upgrade on my nexus 7. Now it has no internet connection any more... :-( I will try and tell you if I can get it running again.
red1_: CarlosRuiz: i think the SFAndroid is a better module to pluganialized. WDYT?
red1_: can it work with the webservices in iDempiere?
CarlosRuiz: it works with webservices
CarlosRuiz: it's a better starting point - but I think you must look at it as that -> as a starting point
red1_: nothing to change on idempiere side i hope. I will then just pluganalized SFAndroid side
hengsin: tbayen, 4.2.2 ? mine already upgraded and works ok so far.
CarlosRuiz: I think the released code is very specific for a customer
CarlosRuiz: so it requires to be generalized
red1_: ok, its worth the effort, since we got a high start there
tbayen: Upgraded now and can not get an internet connection. Have to try in another wlan. This one here is from my nexus 4. Maybe a nexus-loop. :)
red1_: i heard some time ago the project owner contacted u stating they are willing to let it be in iDempiere?
tbayen: CarlosRuiz, I need something that works offline. I need a special architecture (caching/replication) for that. Perhaps we could take this into account if we begin this as a new project.
hengsin: using a Samsung here, still stuck with ICS
hengsin: tbayen, the SFAndroid project is design with offline use in mind
CarlosRuiz: I would advice if somebody is going to work on SFAndroid - to start with some reverse engineering and try to get and document the whole idea - then we could discuss how to generalize it or improve it
CarlosRuiz: thomas / red1 - good news on your email
CarlosRuiz: tbayen, red1, red1_ :-)
red1_: wait...
trifon_: hi red1_
trifon_: i'm just 5 minutes here and have to travel.
red1_: please come to our Dark Side conference so we can strangle each othe :D
red1_: Good.. so Thomas.. u can buy my tickets now
red1_: see u in April 4th
red1_: or earlier
red1_: Russia also sent me good news
red1_: Its fated.
tbayen: Hi, I am back and just read the good news.
red1_: Tell Michaela the good news
red1_: We shall have free cooking classes
red1_: organise the women
tbayen: hengsin, I was in the neigbourhood at a real access point. Nexus 7 works and my own idempiere seems to work with chrome. :-) I could not login to demo.idempiere.com. Hazelcast error?!
hengsin: not sure, maybe deployment ?
CarlosRuiz: upgrading and restarting demo at this moment
CarlosRuiz: ready http://demo.idempiere.com/webui/ is fresh and running
tbayen: OK - I will start using zk for my salesman. Meanwhile we have a look into SFAndroid. But before I do that I have to learn a bit about android. Did only two "hello world" and "crash the camera" apps until now. So don't count on me to be the first to analyze and understand SFAndroid.
red1_: tbayen: u shuld reply Anthony asking for official PO (Purchase Order) from which u can organise an Invoice. Otherwise apply your German method.
CarlosRuiz: tbayen, the patch is giving me errors
tbayen: :-(
CarlosRuiz: ah - maybe you tested with both userelements - I'm testing with just one and getting an error
CarlosRuiz: java.lang.NullPointerException
CarlosRuiz: at org.compiere.model.POInfo.getColumnIndex(POInfo.java:306)
CarlosRuiz: at org.compiere.model.PO.get_ColumnIndex(PO.java:1188)
CarlosRuiz: at org.compiere.model.PO.get_ValueAsInt(PO.java:4243)
CarlosRuiz: at org.compiere.model.MJournalLine.getOrCreateCombination(MJournalLine.java:457)
CarlosRuiz: but I think really that's not needed maybe
tbayen: I had better written it in this way: "ud1ColumnName==null?0:get_ValueAsInt(ud1ColumnName)" but I wonder why I did not find this Exception. You are a good tester, thanks!
tbayen: Shall I correct it or are you already in the code?
CarlosRuiz: patching now
CarlosRuiz: ah - this is another bug - the window account combination is not showing the value of user element 1
CarlosRuiz: maybe better to define it as number?
tbayen: It is a missing feature. It is already mentioned in 2009. http://sourceforge.net/tracker/?func=detail&aid=2857076&group_id=176962&atid=879335
CarlosRuiz: also - the account combination name is not bringing the userelement name
tbayen: Yes - it is not perfect. Perhaps I will find time to address some of these things while I use it.
CarlosRuiz: also - you cannot get the combination created from the combination window
CarlosRuiz: yes - I think this is a different wider effort to make that works if we plan to
CarlosRuiz: tbayen, still here?
tbayen: Yep. I am surfing on android developer site.
CarlosRuiz: checking PR67
CarlosRuiz: don't understand the change adding `pwd` to the idempiere-server.sh
tbayen: The startscript needs some "tag" to identify "our" idempiere process. It uses the path for that.
tbayen: and pwd in the end adds the path to the output of "ps ax"
buildmaster: Project iDempiere build #789: SUCCESS in 8 min 27 sec: http://jenkins.idempiere.com/job/iDempiere/789/
buildmaster: globalqss: IDEMPIERE-637 GL Journal: Accounting Dimension "User Element 1&2" not posted to Accounting Facts / Thanks to Thomas Bayen
buildmaster: Transplanted and modified from:
buildmaster: https://bitbucket.org/tbayen/idempiere/commits/e8c641c
CarlosRuiz: ah - I see - the kill is not working because the ps is not showing the processes
tbayen: I found no good way to extract the pid of the idempiere server.
tbayen: The problem is about identifying the right process and not kill all idempiere servers on the machine. Or all java processes. Or...
CarlosRuiz: I think changing pgid by pid is not right
CarlosRuiz: look IDEMPIERE-543
CarlosRuiz: https://bitbucket.org/idempiere/idempiere/commits/67f6ca7fb3d3/
CarlosRuiz: we did precisely the opposite
tbayen: I did not understand why there was pgid. It did not work. But it can be that I missed the point.
CarlosRuiz: hahmed explained it here
CarlosRuiz: http://www.globalqss.com/wiki/index.php/IDempiere/FullMeeting20130109
CarlosRuiz: do you mean debian doesn't recognize "ps ax o pgid,command"?
CarlosRuiz: I'm on ubuntu and it works fine
tbayen: mom.. will try
buildmaster: Project iDempiere build #790: SUCCESS in 7 min 57 sec: http://jenkins.idempiere.com/job/iDempiere/790/
buildmaster: * hengsin: Merge 3e896427dfa4
buildmaster: * hengsin: IDEMPIERE-625 Zoom Across list is not scrollable.
tbayen: "pgid" gives me a number that is not a process id. As I understood it should give me the pid of the idempiere-server.sh but it gives me this-1. If I only use "pid" I get the number of the java server process. Isn't that the process I want to send the exit signal to?
CarlosRuiz: the idea is to kill all childs of a process
CarlosRuiz: http://stackoverflow.com/questions/392022/best-way-to-kill-all-child-processes
CarlosRuiz: I had the same confusion on 20130109
tbayen: Killing the script would be the same. But why do you send first -15 and then -9? I thought that you wanted to signal the java process to exit gracefully. If you send it to the shell process it will kill his child very hard.
CarlosRuiz: as I understood kill pid can leave some java threads running there - kill -pgid kills all children threads
CarlosRuiz: I used kill -15 and then kill -9 because sometimes the jboss (adempiere days) process didn't kill with -15
tbayen: Ah! Now I understand the single small minus sign.
CarlosRuiz: when the server was really stuck could not be killed
CarlosRuiz: so - I added that part
CarlosRuiz: kill -15
CarlosRuiz: wait some timeout
CarlosRuiz: and then try kill -9 if the -15 could not do it
CarlosRuiz: of course is dangerous
CarlosRuiz: but you'll be forced to do that anyways
tbayen: Now I understand. You could correct and check that or if you want I will redo my commit and test it before.
tbayen: Thank god for this unix process lesson. It's not been enough to learn only about idempiere and android.
tbayen: ;)
tbayen: I did not know really about process groups. I thought pgid was about the parent process.
tbayen: rtfm
CarlosRuiz: I haven't tried the service yet - but I think you're right we need to mark the IDEMPIERE_HOME somewhere in the command
tbayen: gtg
CarlosRuiz: tbayen, just answered you https://bitbucket.org/idempiere/idempiere/pull-request/67/debian-start-script-can-not-stop-the/activity
CarlosRuiz: gtg too
CarlosRuiz: thanks for the meeting
tbayen: thanks too