tag:blogger.com,1999:blog-11583932.comments2008-07-04T13:23:56.839+02:00Welcome to the Jungle (Redux)Diego Parrillahttp://www.blogger.com/profile/18178999300259710048noreply@blogger.comBlogger208125tag:blogger.com,1999:blog-11583932.post-54787567653904035532008-07-04T13:23:00.000+02:002008-07-04T13:23:00.000+02:00Well, 2 years after this post, and why don't I rea...Well, 2 years after this post, and why don't I read this before ;). I made so many trials to surround a 20 entities relationship with simple EJB3 as PO[I]JO.. Large mistake, many problems, many things learned (JAXB, JPA implementations divergences between Toplink essentials and Hibernate 3 ...), but no real solution to escape to a DTO design and coding (or not stable).<BR/><BR/>So agree than in real life objects are more quitely more complex than those provided for expert's tutorials and technics so deeply said deprecated still worth to use.<BR/><BR/>Please to read you. I read in this post a so good sumary in my EJB3 integration experience in application bigger than an early sample that not fit real industry|life softwares.<BR/><BR/>After 2 years of EJB3 production, do you have any particular feedback ?<BR/><BR/>Thanks again for sharing this real experience.chamalhttp://www.openidfrance.fr/chamalnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-16701886934318996632008-06-19T04:27:00.000+02:002008-06-19T04:27:00.000+02:00Thanks for posting this!!it's pretty helpful to wr...Thanks for posting this!!<BR/>it's pretty helpful to write a text message within a limited number of letters! =)SUNGMIhttp://www.blogger.com/profile/04867177676050843293noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-69053948047926592432008-06-19T00:59:00.000+02:002008-06-19T00:59:00.000+02:00Hi,This worked on firefox and safari. IE throws er...Hi,<BR/><BR/>This worked on firefox and safari. IE throws error "Could not open the site.Operation aborted".<BR/>Any idea?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-87876548390087127862008-06-16T18:14:00.000+02:002008-06-16T18:14:00.000+02:00I don't understand everyones fascination with cool...I don't understand everyones fascination with cool looking applications with all sorts of bells and whistles! Sometimes you just need a simple app with a very simple interface. For that J2ME is perfect, it reduces costs on the app provider side and it does the job. Mobile banking for example, just need to key in my PIN code and select Balance from the menu. And that's it.Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-81248450401471326112008-04-25T09:41:00.000+02:002008-04-25T09:41:00.000+02:00I was trying to create venn diagram chart from goo...I was trying to create venn diagram chart from google chart api .. with <BR/>HttpClient with your exampl code but it did nor work, The GetMethod is throwing ..invalid query :(<BR/>my url was "http://chart.apis.google.com/chart?cht=v&chs=400x250&chd=t:100,80,60,30,30,30,10&chl=Hello|World|Venn&chco=00ff00,0000ff,ff0000"<BR/>which works when pasted to the address bar, can't understand wats the errorPallavhttp://www.blogger.com/profile/06788726223382601318noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-90179660027524972552008-02-21T15:45:00.000+01:002008-02-21T15:45:00.000+01:00hey man, you trying to get George fired or what? ...hey man, you trying to get George fired or what? I mean Art... Art Vandalay... yes, he's an Architect and a Marine Biologist...jackthemachttp://jackthemac.myid.net/noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-82578814201126364562008-02-20T17:15:00.000+01:002008-02-20T17:15:00.000+01:00Hi Diego,many thanks for your grails diary. Very i...Hi Diego,<BR/><BR/>many thanks for your grails diary. Very interesting and informative. I am sure many readers will appreciate that.<BR/><BR/>Regards<BR/><BR/>SebastianAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-6063794997575207332008-02-20T14:48:00.000+01:002008-02-20T14:48:00.000+01:00@graham,ha,ha! may be you are right, but I think t...@graham,<BR/><BR/>ha,ha! may be you are right, but I think the role of a senior developer and an architect is different. And you can call yourself architect, technical lead, superprogrammer, uberdeveloper or whatever, if you are happy with it; The title is irrelevant, from my point of view.Diego Parrillahttp://www.blogger.com/profile/18178999300259710048noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-25601512889218165192008-02-20T14:00:00.000+01:002008-02-20T14:00:00.000+01:00s/architect/senior\ developer/g and you might have...s/architect/senior\ developer/g and you might have a point. nobody needs a guy that calls himself an architect. <BR/><BR/>bring back senior developers and lets get some work done!grahamnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-28897973498884918682008-02-20T10:43:00.000+01:002008-02-20T10:43:00.000+01:00Thanks @Praveena,I have tried GWT and Tapestry. I ...Thanks @Praveena,<BR/><BR/>I have tried GWT and Tapestry. I think Tapestry is an excellent concept, but for some reason it never took off. I tried it long, long time ago and I missed a Visual IDE a-la JSF. I have tried GWT and I have enjoyed it. I still think it's a very good option and there are a couple of Visual IDE out there that can help to prototype. I stopped using it because it lacked of support of internationalization -critical in europe and I guess worldwide-. Also, the integration with existing stuff -Spring specially- was not very good. I think this is somehting of the past, but then I started to be interested in Grails, and I took the Grails path.Diego Parrillahttp://www.blogger.com/profile/18178999300259710048noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-9517613794478965782008-02-20T07:18:00.000+01:002008-02-20T07:18:00.000+01:00Very good aricle, Looking for side by side compari...Very good aricle, Looking for side by side comparison of Grails & RoR for building green field projects.<BR/><BR/>How well grails integrate with existing fits in integrating existing schema/code bases will be important point. <BR/><BR/>What do you think about component oriented frameworks (GWT,Wicket, Tapestry, wingS etc..) compared to GrailsPraveena Mhttp://www.blogger.com/profile/06430141770319257376noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-82109330042724986342008-02-17T17:27:00.000+01:002008-02-17T17:27:00.000+01:00i agree with youi agree with youjob siteshttp://jobsinsites.googlepages.com/usajobs.htmlnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-76221921296112290842008-02-15T09:11:00.000+01:002008-02-15T09:11:00.000+01:00@Charles, I think you are right. We had exactly th...@Charles, I think you are right. We had exactly this problem time ago and he put the developer in 'isolated mode'.<BR/>But what if more than one developer failure to follow the standards? We can't put them all in isolated mode! What would you do? (Firing the manager is not an option ;-) )Diego Parrillahttp://www.blogger.com/profile/18178999300259710048noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-77829791383715609052008-02-14T23:43:00.000+01:002008-02-14T23:43:00.000+01:00Fire? Probably not. It's very hard to justify firi...Fire? Probably not. It's very hard to justify firing someone on such shaky grounds as coding standards.<BR/><BR/>On the other hand, failure to follow such standards is a sign that the developer is more interested in himself than in the team or the project. People like that are <I>poison</I> for a team that might otherwise be trying to pull together.<BR/><BR/>As such, it would make sense to manage that developer out. Put him on some isolated part of the project where his non-conformity can do little damage and he doesn't have to work with anyone else, make sure his performance reviews (and salary) reflect his unwillingness to be a part of the team, and wait for him to either get a clue, or leave.Charles Millerhttp://www.blogger.com/profile/04469280378310928436noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-90205795727969936722008-02-08T21:43:00.000+01:002008-02-08T21:43:00.000+01:00Thanks so much, very useful !!Thanks so much, very useful !!Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-20513619970727626192008-01-19T02:17:00.000+01:002008-01-19T02:17:00.000+01:00So the question is, what to top programmers make? ...So the question is, what to top programmers make? I use the term programmer loosly. I don't want to use the term Architect because that can be confused with an ivory tower type with a PHD, who don't get their hands dirty, can't solve problems in someone elses area of expertise, etc. I mean the dude that walks on water, is a not just a fast programmer who never asks anyone else to debug some hard bug. They design/architect solutions, come up with ideas and also dig into the coding. The guy that other domain experts come to when they can't figure out why something is crashing due to memory corruption, race conditions, etc. in the most complex of software products like database/system internals. Even amongst those individuals there is a spectrum. What do the people companies keep hidden in the back room make?Anonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-53479174273839350972008-01-18T18:49:00.000+01:002008-01-18T18:49:00.000+01:00Diego, nice article. There have been some comments...Diego, nice article. <BR/><BR/>There have been some comments I've had to answer for a <A HREF="http://www.techcrunch.com/2008/01/08/longjump-launches-cloud-database-service/" REL="nofollow">TechCrunch article</A> written about us and this is a good perspective on relational models. <BR/><BR/>I work for a company called <A HREF="http://longjump.com" REL="nofollow">LongJump</A> and would love to know what you think of us.Derekhttp://www.longjump.comnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-53950269571340808972008-01-17T09:16:00.000+01:002008-01-17T09:16:00.000+01:00@Daniel,> Honestly, I don't know how you can do UI...@Daniel,<BR/>> Honestly, I don't know how you can do UI development without being intimately familiar with asyncExec/invokeLater. They're hardly nasty additions to poorly designed APIs. They're standard features of *any* UI toolkit.<BR/><BR/>I agree: when I wrote this post (back in 2005) something I missed was good information about how to handle asyncExec. My feeling was: 'if there is not information about this topic and SWT is popular, then the code written using SWT must be really poor...'.Diego Parrillahttp://www.blogger.com/profile/18178999300259710048noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-85147569810063529172008-01-17T01:16:00.000+01:002008-01-17T01:16:00.000+01:00Just to clear something up: Swing is *not* thread-...Just to clear something up: Swing is *not* thread-safe either, it just pretends to be. It lets you get away with a lot of really nasty concurrent things and only borks 10% of the time (unpredictably). Don't get me wrong, I love Swing, but it *really* needs stricter checking for asynchronous access.<BR/><BR/>There's nothing wrong per se with asyncExec and friends. As I said, it's just like EventQueue#invokeLater in Swing (which, if you read the documentation, is what you're supposed to be using). Also, if you look very closely at the SWT javadoc for asyncExec or invokeLater (I think it's somewhere on the second line), it mentions that it's not really spawning a separate thread but adding an event to the queue. Basically, anything you put in asyncExec is getting executed when you call Display#readAndDispatch() (the RCP calls it for you if you're in a plugin). Swing has a similar thing, but the event queue is hidden, so you don't really know where the heck your stuff is getting executed. The difference between asyncExec and syncExec is the same as the difference between invokeLater and invokeAndWait. With asyncExec, the event is created, thrown onto the queue and execution moves on. With syncExec, the event is created, thrown onto the event queue and the syncExec method will block until the event has been executed (wait/notify).<BR/><BR/>Honestly, I don't know how you can do UI development without being intimately familiar with asyncExec/invokeLater. They're hardly nasty additions to poorly designed APIs. They're standard features of *any* UI toolkit.<BR/><BR/>(oh, it's worth noting that any native UI toolkit is going to enforce single-thread access just as strictly as SWT. They impose the same restrictions on Swing's native peers (canvas, graphics, etc), which is why Swing will occasionally bork when you try to access its components concurrently).Daniel Spiewakhttp://www.blogger.com/profile/17323566514229790079noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-80750851469248677082008-01-17T01:06:00.000+01:002008-01-17T01:06:00.000+01:00As far as I can see from your example you're right...As far as I can see from your example you're right at the beginning to write SWT applications - have fun!<BR/><BR/>As far as it belongs to me: If it is avoidable in any imaginable way, I never ever will write a SWT application again.<BR/><BR/>I had to write an Eclipse plugin (even worse) which connected to a server, displayed information and generated wizzards etc. . asyncExec was one of our least problems. But most components are not even inheritable. When you do inherit from most SWT class a runtime (!!) exception leads from it. Did you ever wonder why no Tree leaves in Eclipse have gray text? Well I had to solve that and I never want to do such things in SWT again.<BR/><BR/>SWT and multithreading... SWT is NOT multithreadable (as mentioned in the article), that's the reason you have to do nasty things like asyncExec. Imagine you are programming in visual component "A", then something like asyncExe is needed to display information in every other visual component "B". Every time. I mean, the VM has to create a Thread every time you want to do this? Ummm... performance? Memory? Verbosity in programming? When does it return exactly (it's "a"syncExec)?<BR/><BR/>Okay, using Swing you probably would have to write a "synchronized(this)" block into one or the other method that is not thread safe (and these classes are documented). That, by nature, is really that more complex to just believe in SWT.<BR/><BR/>Just my 0,02 $, GeorgiGeorginoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-10254304655342018612008-01-16T23:22:00.000+01:002008-01-16T23:22:00.000+01:00They must get free air miles or something like tha...They must get free air miles or something like that. No, it's not common in the US.<BR/><BR/>Nor getting money for transport to the office, although there are companies that pay the parking expenses to employees using public transport or carpooling (100$/month).<BR/>Health and life insurance, time to work remotely,...<BR/>All that is if you work in a nice job, in a nice company.Carlos Sanchezhttp://www.blogger.com/profile/09998103046437395225noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-13462951599681849812008-01-16T19:03:00.000+01:002008-01-16T19:03:00.000+01:00Actually, this is one of the things that I really ...Actually, this is one of the things that I really like about SWT. If you start updating UI components from multiple threads in Swing, you just get unpredictable results (like a blocking/nonblocking setVisible(true) call). SWT doesn't let you drift into indeterminate territory because it checks you every step of the way, ensuring you're not doing anything naughty with your concurrency. <BR/><BR/>Since asyncExec/invokeLater and friends should already be second nature to you, the checks should only be helpful, right? :-)Daniel Spiewakhttp://www.blogger.com/profile/17323566514229790079noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-67469232576764760222008-01-16T14:00:00.000+01:002008-01-16T14:00:00.000+01:00Have you tried out SWTBot?Have you tried out <A HREF="http://ketan.padegaonkar.name/2007/12/18/announcing-swtbot-01.html" REL="nofollow">SWTBot</A>?Siduhttp://www.blogger.com/profile/11938300811286150164noreply@blogger.comtag:blogger.com,1999:blog-11583932.post-3210000586321804402008-01-14T13:38:00.000+01:002008-01-14T13:38:00.000+01:00i love iti love itAnonymousnoreply@blogger.comtag:blogger.com,1999:blog-11583932.post-39037211530945102832007-12-31T21:17:00.000+01:002007-12-31T21:17:00.000+01:00Love the Google Charts entry - have it book marked...Love the Google Charts entry - have it book marked for the next time I have to mess with charting. Hows is Grails? I am also switching over to grails and am curious how your experience compares to my own (mostly positive)... keep it up your one of my fave blogs.Jamesnoreply@blogger.com