Javapolis 2007 is already over and it was too fast; I barely had the time to look to the booths this year. Regarding the conference itself, the level is still highly valuable. Technologies that draw my attention are:
Regarding more practical stuff now, some thoughts in no particular order:
As you can see, the Real guys’ve pissed me off, no biggie though. Final note, many thanks to the BeJUG for organizing this event: it was great and I hope to be there next year.
Location Based Services: Latitude, Longitude and BEYOND was obviously a talk I had to attend since we use similar technologies at work. Most of the presentation was an overview of OpenLS and related concepts so it was nice to see this from another perspective. I am glad to see that a standardization exists for that kind of technology (JSR 293).
Java for high performant 3D and 2D graphical applications was presented by Luciad, a belgian-based company that is working on the same area as Ionic so I was very interested to see what they have to propose in the talk. The talk was full of advices about 2D and 3D rendering as well as realtime-like applications. Very interesting.
OSGi has been around for a while now so I really hoped that the OSGi, the future of Java? talk would provide a complete introduction and answered the few questions I had. In theory, what OSGi provides is almost a must have for the Java virtual machine altogether: ability to have application scopes, use different versions of a particular library, ability to communicate between applications, component lifecycle callbacks (start& stop), ability to hide internal implementations, etc. What is a bit scary about OSGi is that it is a layer on top of the virtual machine and should therefore be supported by the application server in which you deploy your OSGi bundles. For a desktop application this is an easy choice though.
Test Driven Development: Beyond the Acronyms was a no choice for me since I’ve been used to Test Driven Development for a while now and I wanted to see if I apply the principle the right way. Well, it can be improved! Half of the session was a live coding demo with some guy from the audience, very nice.
Day four’s keynote was mostly focused on Adobe Flex and related technologies. At first, I was a bit afraid because they started with exactly the same content they showed during the Thinking in Flex session. Hopefully it starts being very interesting when Bruce asked naively (yeah once again) if Flex had any problem with complex image rendering! Remember the quotes from James Gosling yesterday? They basically showed us an independent tool that calculates the same image rendering with different technologies and obviously Flex was better than any Java-related technology. Well, watch out their respective blogs / web sites, it may be fun. The second part of the keynote was about the Parleys v2 web site; it is not yet online at the time of writing but the live demo we saw was just amazing: smooth, features rich, completely integrated with the existing back-end. I wonder how many man day this thing took. But we went crazy when they presented the desktop flavor of the tool with immediate communication with the web version and the desktop version. This sounds a bit cryptic to me on a technical point of view but for the end users this is just pure joy.
Mule 2 and Beyond talk was very much expected since I have a direct interest in that kind of tool and the university session gave already a good insight about it. They apparently did a very good job to ease the configuration file (mule 1.x configuration files are a bit scary!) and the overall technology seems very mature. What I really like about this talk is that the speaker insisted on the fact that not only the tool is not intrusive but also it adapts to your existing infrastructure. Sometime I get a bit discouraged of some talks when they present the latest super genius technology that would imply us to refactor half of our code base to switch to it efficiently. With Mule and a new project, this sounds more affordable: I have some use cases in mind and it fits.
Enterprise RIA with Flex and Java was nice overall but still cryptic. I had this constant feeling the whole week about it, something like “Wahou this client feature is terrific … Wait, how do they do that?!’”. I mean, they have this ability to push updated content on other client editing data and this is done with a boolean flag that you switch. On one hand this is easy, very cool but on the other hand how do I configure this? What about network roundtrip? Performance? I am not saying it isn’t there, I am saying it sounds too easy to be true.
Close Customer Collaboration - the BMW case was interesting and very practical. This talk showed the success of introducing Agile methodologies and Scrum in a project. Finally the Java Puzzlers session was enjoyable, like every one I’ve ever the chance to attend.
Day three starts the conference part of Javapolis and more specifically the keynotes. That was the second time I see James Gosling live (I actually can’t remember when/where the first time was!). His part was overall funny to watch, full of very interesting quotes:
James also had a question about JavaFX and a statement regarding Flex: he was pretty much aggressive on that one saying that one of their customer had actually very poor performance using the flex’s VM for rendering complex histograms, which lead them to render the images on the server-side and send the binary representation to the client. I wonder how the flex’s guys felt about that.
Kick starting the Content Repository, AJAX meets JCR was a session that my boss suggested as interesting and I had scheduled to see Google Web Toolkit in a first place. Hey, he had a good idea actually since it was full of nice ideas about some of the stuff we’re using at work. First, I had no idea about this Java Content Repository specification and Apache Jackrabbit sounds like a very neat implementation. We actually use JAXR at work and I wonder what the fundamental differences are between the two. The guy showed us a nice RIA to access the content of the repository as well as to update it. Two words: fast & impressive. It seems to be part of the commercial flavor of the product though. The core of the talk was about u-jax (micro-jax), a tiny ajax library that allows you to easily get, add, edit and delete. I found that a bit cryptic but I am not really the kind of guy that should have a look to that sort of thing.
SOA Development using JBossESB was very theoretical and was lacking of structure: it was actually quite hard to figure out the relationship of one slide with the other. All in all, this was another SOA platform talk. I am not saying it wasn’t interesting or the platform does not provide cool functionality but you need to have at least a set of use cases that actually need that kind of stuff to be involved.
Scrum in practice for non-believers was the session of the day I was expecting most. And I was very disappointed. The theoretical part was interesting but the rest was a bit rude and it was probably the first time the speakers were presenting this to a so large audience. Anyway.
The future of Computing panel gathered a bunch of interesting people but it was hard to follow a QA session at the end of the day, especially when they have not received the topics in advance (or not prepared them!).
University day two started with the Thinking in Flex session. I actually expect Bruce Eckel to look different but I like his style, asking naive questions to the other speaker just like he didn’t knew (well at least I hope I got it right!). Most of his questions were very helpful for the overall comprehension of the talk. Regarding flex now, I’ve been amazed how easy the UI can be built using Flex Builder and the overall reactivity of the tool. However it’s pretty much hard to figure out how that kind of tool will help in very complex projects with a non state-of-the-art server implementation; not that the server-side stuff I practically use suck but they just show very nice RESTfull web services or simple XML return streams. With more data, session and all that kind of stuff, I wonder if it would be that smooth and easy. Anyway, as Bruce Eckel said, the first idea of Flex is to provide a UI framework in contrary to most systems out there. And it shows!
Struts2 was very much expected since the Web Toolkit on which I am working on with the team right now is using Struts1 and we are wondering what would offer Struts2 compared to the current implementation. I’ve been a bit disappointed by this one since we focused a lot on this very legacy JSP paradigm (JSP invoking an action on the server, then we have the processing, then we forward the result to my-cool-result.jsp). On the contrary, I was expecting information regarding annotations and especially the ability to completely remove the struts configuration file. When using overlays for instance, it’s very common to have server-side actions in separate war projects and the reconciliation is currently a pain since we need to touch the web.xml file to add our custom struts configuration file. I was also expecting examples of asynchronous requests handling, typically with JSON messages coming back and forth. The next version of Struts2 will actually have annotations (well I hope) and the Ajax-related stuff are underway but … when? I kinda have the feeling that this annotation change request has been there for ages now. I hope we’ll have it soon. Final note, that Ian Roughley guy really looks like to Kiefer Sutherland (Jack Bauer in the 24 tv series).
Developing Software like a band plays Jazz was the final sessions (in two parts). I actually didn’t knew Jazz at all but this sounds like it’s addressing a more and more common use case in distributed teams: how can we work efficiently and how can we react to issues (in its broadest scope)? Access to the tool is still a bit secret for the moment but what we’ve seen in the demo is really interesting: issue tracking, scm integration, instant messaging, build integration system, project management capabilities, etc. I have to wonder if all these tools are IBM stuff or if they integrate with external systems. I am expecting my favorite third party company, Atlassian, to solve that kind of use cases. And apparently, they are doing this with Jira Studio eventhough I am not sure the scope is as broad as Jazz has. Anyway, Mike’s around so I’ll just ask if I can.
I’m very glad to attend Javapolis; to me it’s the best conference I’ve ever attended. Lots of people this year again, met already a couple of colleagues and folks I see once a year. So far, the organization is as amazing as last year.
Open Source ESBs is the session is was expecting to be the most interesting for day one and it was. I’ve been playing around with Mule a couple of months already and I really thing that kind of tool can help us a lot in what we are trying to build. The use case they demonstrated was an automated billing system for cars driving in the center of London based on camera recognizing the plate number. We basically got the idea on how we could link and chain loosely-coupled components to implement the use cases, using various technologies such as EJB and JMS. Two other ESBs that implements the JBI spec were also discussed: ServiceMix and OpenESB. I wasn’t that much convinced especially because the JBI specification sounds to complicate the job.
Google API’s wasn’t really what I was expecting. I actually didn’t read the summary and thought naïvely that it will all go about Google Maps but we talked about the Google Collections API and the Google Data API. Dick Wall is a funny guy and this one was really a joy to follow. The Google Collections API sounds like a real-value on top of the Java Collections API:
The Google Data API demonstrated how easy one can update a google calendar or query cells of a spreadsheet.
SoapUI was very short and straight to the point. I had the feeling that the tool is kinda a must-have for anyone working heavily with Web Services. I really liked the ability to start a test web services based on a mocked SOAP response. Testing and load testing integration capabilities seemed neat as well.
Addictive code reviews with Crucible is about a code review system. I already had a look at the online demo and the presentation was quite similar. I am not yet convinced by that kind of tool since we have a couple of steps to reach before making this efficient.
So far so good! I hope day two will be as exciting as day one. I’ll let you know.
Et oui, enfin j’y suis allé aux Etats-Unis. Pour ceux qui ne le savent pas encore, la société pour laquelle je travaille (Ionic Software) a été rachetée récemment par Leica Geosystems Geospatial Imaging (quel nom à rallonge!). Ses bureaux principaux sont localisés a Norcross, au nord d’Atlanta en Géorgie. Cette semaine, je suis allé là bas avec deux de mes collègues.
Cette première visite ne m’a pas vraiment impressioné positivement à vrai dire. Au fil des années, j’ai de plus en plus accordé d’importance à l’écologie et à chaque geste quotidien qui mène à un impact important si il est collectif. Et là, le choc : des routes immenses, des voitures immenses, un flux continu de voitures. Les endroits où je suis allé n’ont pas de trottoirs et il n’y a dès lors pas de piétons. C’est un changement immense parce qu’il me semble difficile de pouvoir aborder l’esprit d’une ville sans pouvoir s’y promener (à pied s’entend).
J’ai aussi eu l’occasion de voir mon deuxième match de NHL (Atlanta vs. New York Islanders) et le stade d’Atlanta est tout aussi impressionant que celui de Montréal (moins de monde et moins d’ambiance cela dit).
La nouriture dans les restaurants était assez mauvaise. Pour tout dire, elle a été horrible deux fois sur trois. Je me demande quelle en est la raison car nous sommes allés dans des restaurants pas spécialement bon marché du tout. C’est sans doute une question de goût. En tout cas, je n’ai encore jamais vu une sauce parmigiana remplacée par un concentré de tomates (très concentré) et 2 pincées de basilic chimique.
En définitive, ce premier voyage m’a plus et ça a été une riche expérience. Je serai plus que probablement amené à y retourner et j’espère pouvoir mieux aborder l’endroit.