• Home
  • About
  • Sample Apps
  • Sun asks for a repeat performance!

    May 9th, 2008

    Fun and great feedback following Mike and Dierk’s talk at JavaOne; Sun asks for a repeat performance!

    As previously announced, Dierk and I held a talk at JavaOne today (actually Dierk held no less than TWO talks - there’s just no stopping this guy!) The title of our over-subscribed session was “Going Mobile with JavaFX Script Technology, Groovy and Google Android” and in addition to an eager and informed public, we were honoured to have some of JavaFX’s and Android’s champions and contributors in the audience.

    We took the first few moments of the session to emphasize one of Canoo’s core value propositions: The discernment of hyperbole from reality. Indeed, much of my part of the talk concerned the current
    status of JavaFX Script (scheduled official release in June 08) and how it does not (yet) live up to many of the claims being made about it.

    Unsurprisingly, our statements concerning the immature status of functionality and tooling in JFX were not met with silence. And in a delightfully spontaneous moment at the end of the talk we invited
    James Weaver to join us on stage for what amounted to a mini panel session.

    James’ main point was that JFX makes rich client development significantly easier than, say, with Swing, and that this can only be good for the Java platform. Of course, we don’t disagree with this
    statement. But where differences in opinion remain is (a) in the use of the word “significantly”; and (b) in our level of confidence regarding whether or not JavaFX Script will succeed in a market, where
    competition is tough, well-established, and only getting tougher by the week. JFX’s current deficiencies (which we talked about in some detail) of course only reduce its chances of success.

    So what’s our primary take-home based on the feedback we got directly after the talk and at the Canoo booth? That a level-headed and unbiased opinion on a given technology is what the majority of
    conference attendees are looking for. And who are these attendees? Quite simply: Real people representing real companies who serve real customers, who nevertheless enjoy being inspired by examples from the cutting edge, such as our MusicPinboard JavaFX and Mobile Shopping Android applications.

    Finally, to top off all the great feedback, Sun asked us to repeat the session this coming Friday!!! So if you didn’t catch us the first time around, we’d be thrilled to see you in hall 302 of the Moscone Center at 13:30.

    Thanks to everyone who did attend for coming and for the positive feedback!


    JavaOne 2008 Day 1

    May 8th, 2008

    A conference typically starts off with a keynote and JavaOne is no different. This is Sun’s biggest opportunity to brainwash its Java faithfuls, realign them and get them excited about the latest innovations Sun would like to take off. So if you expect any relevant technical information then this is the wrong session to attend, because this is all about marketing and hyping. Nevertheless, it’s interesting to see what hype might be coming next. Whether this will make into a product you can bet your business on is a completely different story.
    John Gage was the host, as usual, but Rich Green, James Gosling, and Jonathan Schwartz got most of the airtime.
    Most exciting from Canoo’s point of view was RIA being one if not the topic of the keynote. Finally, Sun has realized that plain ugly web applications are not good enough anymore. Their solution to this challenge is JavaFX which was introduced at last year’s keynote, but, frankly spoken, has not seen much progress in the last year. This year Sun expects JavaFX to be the centerpiece for a unified Rich Internet Experience both on the desktop and on mobile devices (and even Blu-Ray players). One demo showed how a JavaFX application running in the browser can be dragged to the desktop and continues to run there even after closing the browser. I was most surprised by the announcement that JavaFX will run on top of Android. Looks like Sun is trying to embrace this renegade platform rather then suing them.
    In addition, Sun intends to heat up the desktop competition by making Java SE slimmer and slicker. Java is now also included with Ubuntu and RedHat by default and other Linux distributions are to follow soon. The guest star of this year’s keynote was Neil Young who praised Java for helping him to realize the documentation of his musical career to be released on Blu Ray. The demo of which was really impressive, and by the way one of the few demos that worked (the demo gods were not really benevolent). The bottom line of the keynote was that Sun is trying to get back to the desktop, the server-side of Java was hardly a topic. On another note I had the feeling that the attendance numbers keep decreasing. There also seem to be less exhibitors than last year. Probably also a sign of the weakening economy.
    On the first day I attended two sessions. Josh Bloch is one of my favourite speakers and therefore I could not miss his talk on “More Effective Java”. I was not disappointed. He presented a few chapters (esp. enums and lazy initialization) from the second edition of his “Effective Java” book and it is always fun to learn about the intricacies of the Java language. If you ever have a chance to listen to Josh Bloch, don’t miss it!
    The second talk was about GUI testing using the FEST library. Just a few weeks ago I read a paper written by Alex Ruiz who is the lead developer of this library. I was pretty much convinced by the concepts, the implementation and esp. the nice Domain Specific Language for developing programmatic tests for Swing user interfaces. The presenters, however, were not as convincing, but my judgement might be unfair having just attended Josh Bloch’s session before. One interesting piece of information was that when asked most attendees prefered programmatic GUI testing over play-record GUI testing.


    Canoo at JavaOne 2008

    May 7th, 2008

    Here’s a quick note from JavaOne 2008:

    We had a busy day at the booth yesterday. Greg Hutchinson, Principle Developer at Farm Credit Canada showed a demo of their UltraLightClient application that was very well received. If you’re attending JavaOne: He’s coming again today. If you’re interested, come over to booth 429 at around 1:30 pm.

    Canoo sample application Music Pinboard was mentioned in one of the JavaFX sessions (and attributed to Canoo as well!)

    2008 JavaOne Conference - Content Catalog

    Canoo Sessions
    Dierk and Mike are speaking today. Dierk’s WebTest talk, which was listed as an alternative talk, is taking place at 13:30, right after the “Going Mobile” talk at 10:50.


    New ULC 08 Milestone and Screencast Tutorial

    May 2nd, 2008

    We’re preparing to travel to San Francisco to attend this year’s JavaOne.
    At our company booth (at number 429) we will be showing the brand new milestone 2 for the upcoming release of UltraLightClient.

    Download and try it out!

    Screencast tutorial: “Enterprise Web Applications in 5 Minutes”
    Daniel Grob and I recorded a screencast to show what’s new in the upcoming release:
    http://www.canoo.com/ulc/external/video.html

    The screencast highlights a number of features that Daniel presented and discussed in this blog.

    The video is a little over 7 mins but we believe you’ll be able to build a ULC app in 5 mins…
    :-)


    JavaOne 2008: Canoo @ booth no. 429

    April 29th, 2008

    Canoo is exhibiting at booth no. 429 at this year’s JavaOne. Please feel free to stop by to say hello.

    Some of the highlights at the booth (besides Swiss chocolate) include:

    • How to build an enterprise-class RIA in five minutes using Canoo’s RIA library, UltraLightClient.
    • A Canoo customer will demo their Enterprise Web application at the Canoo booth.

    And don’t miss the Canoo technical session:

    Dierk Koenig and Mike Mannion are speaking on “Going Mobile with JavaFX Script Technology, Groovy, and Google Android” (Session ID: TS-5815 on Wednesday, May 07, 10:50 - 11:50).


    Canoo session at JavaOne 2008

    April 22nd, 2008

    While Dierk König is speaking at this week’s JAX in Wiesbaden, Germany, I’m sending out an info pointing to his next session in San Francisco.

    JavaOne 2008

    Dierk König and Mike Mannion are presenting a session at JavaOne 2008 on:

    Going Mobile with JavaFX™ Script Technology, Groovy, and Google Android



    Add this session to your schedule! And stop by at the Canoo booth at booth number 429.


    Canoo at JavaOne 2008

    March 18th, 2008

    javaone.jpg

    Jim Weaver has posted a list of Java FX sessions at JavaOne 2008.

    The list includes a Canoo session by Dierk König and Mike Mannion:

    Session title:

    Going Mobile with JavaFX™ Script Technology, Groovy, and Google Android

    Session abstract:

    Since the 2007 JavaOne℠ conference, the JavaFX™ Script technology-based application MusicPinboard has been justifiably cited by many (including Sun) as a significant demonstration of the power of JavaFX Script technology as well as a radical improvement over Java™ technology in terms of developer productivity.

    One year on, in this session, one of the original team of first-time JavaFX Script technology users that knocked out the sexy-looking MusicPinboard application in just 20 developer-days shares his thoughts about what kind of audience JavaFX Script technology is likely appeal to, today and in the future. In addition, he offers objective comparisons with some rising competitors in what he calls the RIA/mobile space:

    • Groovy, which has in recent months encroached on the JavaFX Script technology space by including a data binding mechanism as part of its Swing GUI Builder
    • Google’s prototype Android platform, which the global giant hopes to position as the platform of choice for providers of high-end mobile device and business applications alike

    The speaker argues that each of the solutions described embodies a different vision of how the mobile experience will evolve in the near future and that the time frame may be shorter than we think when it comes to seeing which technology gains the upper hand.

    Canoo is exhibiting at booth #429.


    Speaking about RIA, Groovy, Grails and WebTest

    January 28th, 2008

    I just updated the Canoo events page and would like to point you to the impressive schedule of events:

    Canoo’s CEO, Hans-Dirk Walter is presenting a one-day course on Rich Internet Applications at the ETH in Zurich, in cooperation with Prof. Dr. Donald Kossmann and Prof. Dr. Gustavo Alonso this Friday.

    Dierk König will be speaking in Denmark, the USA, Switzerland, Sweden and Germany in the next couple of months on Groovy, Grails and WebTest topics.

    Bruno Schäffer is presenting at SD West 08 in Santa Clara, California on “Design Patterns for Rich Internet Applications”.

    And we will be exhibiting at this year’s JavaOne in San Francisco from May 6 to May 9.


    JavaOne 2007 – Day Four

    May 13th, 2007

    Now for the final stretch of this year’s JavaOne conference: the pavilion closed on Thursday and we dismantled the booth pretty quickly. After half an hour everything was packed and we took our equipment back to the hotel. Hence, today I could really enjoy the conference without any booth duties.

    Comparing the Developer Experience of Java EE 5.0, Ruby on Rails, and Grails” looked really promising to me. I know Java EE from real programming practice, Rails and Grails just from reading some articles. The speaker, Thomas Daily, had a funny Australian accent and made quite a good show. He demonstrated how easy it is to create a simple CRUD application with all three technologies. For Java EE he had to use heavy machinery (i.e. NetBeans), though. He then presented some performance benchmarks which claimed that Java EE scales way better. The runner-up was Grails, followed by Rails. Tom Daily was somewhat biased towards Java EE (he doesn’t work for Sun for no reason), although his final recommendation was to use the tool that best fits the application. What I missed in this talk was some statements about maintainability. I would have liked to see how each of these environments coped with new requirements.

    Hard core stuff was up next with “Cranking up Java Application Performance with DTrace“. DTrace allows to run instrumented code with zero impact on performance. At run time you can activate/deactivate probes in a live system. Right now, DTrace is only available on Solaris 10, but it will be available on at least one other operating system later this year. The Java VM is also instrumented, which allows to use DTrace at run-time for Java applications as well (Java 5 and newer). For Java 7 it is even planned to allow for statically adding probes to the application code. DTrace can produce a vast amount of tracing data in almost no time but the DTrace language helps to filter and aggregate this data. DTrace solves the developer’s dilemma: adding tracing statements is necessary for systemic analysis but even when switched off it usually has some impact on performance.

    Java Champion Adam Bien gave a talk on “Java 6 Platform, Java DB, Swing, JNLP, Java Persistence API: The New Operating for Rich Internet Applications“. He covered a lot of ground in one hour and proved to be one of the überarchitects. Adam Bien strongly recommended to use business objects (i.e. real objects with state and behaviour) rather than SOA with dumb objects such as DTOs. The Java 6 platform and JPA make it even possible to run these business objects either on the server-side in an EJB container or on the client side outside of a container. However, I missed two topics. First, he talked a lot about the thin client challenge by which he did not mean real thin clients (i.e. presentation logic is on the server-side) but “thin clients” with just the presentation logic running on the client side. Some of these challenges do not come up with server-side presentation logic. Secondly, he should have at least mentioned approaches how to synchronize client-side database changes back to the server. Nevertheless, get hold of the slides and dive into this wealth of information.

    I closed JavaOne 2007 with Neil Gafter’s “Closures for the Java Programming Language“. Neil Gafter is a brilliant speaker: perfect pace, well pronounced, deeply reflected - it’s just a pleasure to listen to him. He started with a number of cases where anonymous classes are not sufficient and argued how closures would help. Some of the code examples reminded me of my code and how I had to work around the limitations of anonymous classes. I used to develop in Smalltalk for quite some time and blocks are as natural as recursion (quoting Neil Gafter). He also argued how the Java API could be improved with closures. However, I am still undecided whether the Java language should be extended with closures. What once was a fairly small and clean language is gradually turning into a dreadnought. Java should have offered closures from the very beginning; adding it as an afterthought might have too much negative impact.


    JavaOne 2007 – Day Three

    May 13th, 2007

    I don’t get much sleep during JavaOne. Days are long even if you don’t attend any late night BOFs and the jetlag gets me out of bed pretty early. On the third day I start get feeling the lack of sleep and I am not too unhappy that JavaOne lasts only four days rather than five as in previous years.

    My first session in the morning was “Java Persistence API: Portability Do’s and Don’ts”. I have been using Solarmetric Kodo (now with BEA) for some years and although I am not using the latest version I am still quite pleased with the functionality. The latest version of Kodo also supports JPA and therefore I was curious how JPA can be used with portability in mind. Mike Keith explained how the JPA specification was specifically designed such that vendors could add specific functionality without interfering with other vendors. A developer can refer to vendor specifics both at the property and query level and it’s quite easy to support more than one vendor. It reminded me a lot of JDO which has similar capabilities. The only thing that’s missing is a portable approach for pessimistic locking.

    Designing Scalable High Performance Rich Clients: From the Trenches” was up next. Rob Ratcliffe took part in the development of a complex Swing-based application which monitors and controls a potentially large number of mobile sensors. The talk was less than convincing, his demo nice in the beginning but way too long so I left early. If somebody tries to teach to me the advantages and disadvantages of a singleton I am definitely in the wrong session.

    I was looking forward to Ben Galbraith’s talk about “Debugging Swing Apps” and I wasn’t disappointed. Ben is a brilliant presenter, although he speaks incredibly fast which might be a challenge to some people in the audience. I admired the two sign language interpreters who somehow managed to keep up with his speed (they had to take turns every ten minutes). Ben explained how to use weak references for easy fixing of memory leaks and how AOP can help to identify code that leads to sluggish user interfaces. At the end he demonstrated a tool he wrote to experiment with Java 2D, e.g. trying out Java 2D calls interactively to gauge the impact of options on different platforms. To summarize, the talk was both filled with lots of useful information and entertaining. I was quite amused when Ben tried to dodge the Apple NDA while explaining some garbage collection features on Mac OS X.

    The title of “Spaghetti Is Not Tasty: Architecting Full-Scale Swing Apps” was promising but did not meet my expectations. Rather than focusing on design problems of large Swing applications he spent too much time on OSGI which can solve some problems but not all of it. The only thing I took from this talk is that for large applications it is recommended to use a message bus to distribute events, which was also mentioned by Rob Ratcliffe in his talk. Wiring listeners to too many consumers does not scale and is hardly maintainable,

    My last session was about “Garbage-Collection Friendly Programming“. Three garbage-collecting engineers from Sun laid out all the do’s and don’ts in Java to effectively deal with garbage collection:

    • Don’t use object pools. Java’s memory management is usually way better than Java developers can implement object pools.
    • Don’t use System.gc(): The garbage collector knows better when to run, you don’t have to tell it.
    • Resizing arrays frequently can put more pressure on the garbage collector
    • Finalize always takes two garbage collection cycles and is therefore quite inefficient. For Java 6 the garbage collection team even convinced the AWT-team to remove all finalize methods from the AWT (and therefore Swing) components. If you need something like finalize you can either use a finally clause or weak references.
    • Don’t use soft references, because it is expensive for the garbage collector to reclaim objects referenced softly. Only use soft references for quick and small caches. This contradicts what Ben Galbraith said in his session when he recommended soft references for any kind of cache.

    If you have a chance to grab the slides, just do it. They contain numerous hints how to write clean and efficient code with respect to memory management.

    The third day was kind of a mixed experience. I learned most in the sessions about Swing Debugging and Garbage Collection. With the other two Swing sessions the JavaOne program committee made some questionable decisions.