Archive

Archive for November, 2010

Devoxx 2010 European JUG Leaders BOF

November 30th, 2010 1 comment

Dear All

As promised, a few weeks ago, at Devoxx 2010 the Java User Group Leaders Meeting (annual birds-of-a-feather) video is now uploaded to Vimeo. I have created a byte-size edition of the meeting, first, because this version is shorter and has the Oracle talk at the beginning. The byte-size edition also has Antonio Goncalves, Paris JUG Leader, important discussion points about the IOUC (International Oracle Users Group Community) and the prospects of Java User Groups joining this body. There will be a second video with the full verbatim material that I captured and it include the discussion from the floor.

 

Devoxx 2010 The Byte-Size Edition European JUG Leaders BOF from peter_pilgrim on Vimeo.

 

As a final note, I missed the first five minutes of the BOF. Therefore you will not find all of  Jackie Rosie’s, Oracle EMEA User Group Liaison, opening statements. I will also apologise for the sound when the people at the back of the room were speaking on the floor. I have added some de-noiser digital sound processing to help compensate.

 

You now can also watch the full length verbatim edition V2 [Vimeo]

Devoxx 2010 European JUG Leaders BOF FULL LENGTH Edition V2 from Peter Pilgrim on Vimeo.

 

This is Peter Pilgrim. Out.

Enjoy Winking smile


Categories: Conference, Devoxx, Java, JUGS, Leaders, Users Tags:

Devoxx 2010: Conference Days Shout-Outs

November 23rd, 2010 Comments off

Friday 19 November 2010

 

Future of Java Discussion Panel

 

Original this last day at Deovxx was going to be a keynote by James Gosling. He had pull the gig a month before, because of surgery. So we had instead a future of Java discussion panel moderated by Java Posse members: Dick Wall and Joe Nuxoll. There were six Java stars, at least five were Java Champions, and they were Joshua Bloch (Google), Mark Reinhold (Oracle), Stephen Colebourne (Open Gamma/Apache/Independent Voice), Jürgen Hoeller (Spring Source/VMWare) and Bill Venners (Artima).

There were sections to this heated discussion, which were topically for the day:

  • Google versus Oracle lawsuit
  • The state of the Java Community Process
  • Java SE JSRs
  • What is the future of running Java ME on a mobile phone?
  • Alternative JVM Languages

Lots of the discussion was sensitive and so there were topics that were out-of-bounds for certain individual. You might have seen Stephen Colebourne wearing a tin foil hat during the last day as a joke. The speakers could opt out of a lawsuit or sensitive discussion, if they put on a tin foil hat.

Devoxx 2010

(Stephen Colebourne with the obligatory tin hat)

I am not sure that we actually any ideas that new from the panel except to say let us keep pushing forward. We need innovation still in Java.

 

Mobile Development Choices: Native Apps vs. Web Apps by Max Katz

Yours truly attending Max Katz session with Stephen Chin and Jo Voorendecker. We three souls were, if you like, the JavaFX Script lifeline. Max Katz promoted and developed on the Exadel JavaFX Plugin for Eclipse.

Devoxx 2010

As for Mr Katz presentation, it was a quite overview of the choices for mobile developers. Really the choice is native versus web applications. There are in 2010 at least six different operating systems or platforms for mobile phones. Katz pointed out how similar this state of sorry affairs was to the era before the IBM PC, as when we had home computers like the Commodore Pet, BBC Micro, Vic 20, Dragon 32 and ZX Spectrum.

Time is money, it is a good VC funded start-up or software giant with deep pockets that invest in building native mobile applications for all six platforms. Likely developers, especially bedroom developers, will choose their poison, be it iOS, Android or RIM.

Of course, developers can build a working mobile phone application using the web: HTML5, CSS, AJAX and good dose of JavaScript libraries. However it is pointed that the off-line capabilities of web mobile platforms is in its infancy. Katz said that this may improve over the next few years with better browser and storage capabilities.

Mr Katz concluded build a native mobile application if your applications requires high performance, makes a call, needs the native platform API beyond location for example magnetometers, accelerometers and touch gestures. Overall it was good talk and Katz finished well ahead of time.

 

 

Project Lombok: Boilerplate Busters by Roel Spiker and Reinier Zwitserloot

 

I time to fly across the Metropolis to catch the last five minutes of Project Lombok. The two Austrian guys were suited and booted like the original Ghostbusters. I wonder where they sourced that idea / meme from [Clickety Hackety Hack Jack bros]. Anyway, the Lombok project is essentially impressive as that it is looking after Java developers, who feel they want to get away boiler plate Java, but yet cannot make that transition beyond Java. The annotations have improved since last year. Excellent stuff and the Project Lombok is definitely worth a look

 

Shout-Outs!

 

In no particular order:

  • Stephen Colebourne
  • Stephan Janssen
  • Jo Voorendeckers
  • Dick Wall
  • Valerié Hillaware
  • Stephen Chin
  • Carl Quinn
  • Joe Nuxoll
  • William Pugh
  • Aaron Houston
  • James Ward
  • Michael Chaize
  • Martin Odersky
  • Max Bonbhel, JCertif
  • Chrisbel Malonga, JCertif
  • Soren Berg Glasius
  • Flippo Diotalevi
  • Mattias Karlsson
  • Martijn Verburg, LJC 
  • Manuel Bernhardtht
  • Joshua Bloch, Google 
  • Bill Venners, Artima 
  • Viktor Klang
  • Kirk Pepperdine, Kodework 
  • Antonio Goncalves, Paris JUG Leader
  • Talip Ozturk 
  • Oliver Gierke
  • Kito D. Mann
  • Jasper Potts
  • Richard Bair
  • Johan Vos
  • Regina ten Bruggencate, JDuchess
  • Dave Booth, ZeroTurn Around, JRebel
  • Joe Darcy
  • Andy Hicks, London Scala User Group
  • Paris Apostopoulos
  • Michael Huettermann
  • Vita Estevao Silva Souza
  • Enno Runne
  • Chet Haase
  • Heinz Kabutz
  • Graeme Rocher
  • Romain Guy
  • Adam Bien
  • Max Katz
  • Brian Goetz
  • Michael Coté, Redmonk
    Hello World Error in MS Live Blog. Huh?

    Devoxx 2010

    L-To-R: Aaron Houston, Stephen Chin, Myself and Jo Voorendeckers

     

    Devoxx 2010

    L-to-R: Myself and Dominic from Cambridge (JAVAWUG member)

     

    Devoxx 2010

    Filming the goings on at the European JUG Leader BOF on Thursday night. (Yes I know that I am no longer an official JUG Leader now, however remember the JAVAWUG ran until July 2010 Winking smile )

     

    Devoxx 2010

    First row of the table: L-To-R: Nicole Scott (Oracle), Mattias Karlsson (JFokus) and one of the JDuchess (the Java user group for ladies).

     

    Devoxx 2010

    L-To-R: Jackie from Oracle and Antonio Goncalves

    Devoxx 2010

    Middle: Enno Runne, Right: Bill Venners; Downstairs in the exhibition hall

    Devoxx 2010

    The Cititec Recruitment folk from London: to the left, Azzez Lasmi and right, Peter Sham ;

     

    This is Peter Pilgrim at Devoxx 2010. Thanks BEJUG for another great year. Out.

    Categories: Communication, Conference, Devoxx, Java Tags:

    Devoxx 2010: Conference Days Part Two

    November 19th, 2010 Comments off

     

    Akka: Simpler Scalability, Fault Tolerance, Concurrency & Remoting Through Actors by Viktor Klang

    You know that I came across the name always, Viktor Klang, but I think always the Java Posse mailing list / Google forum along with Casper Bang. So here was the man in person and I had no idea before this session he was a committer for Akka. What a revelation Akka is for Scala! And my goodness you can also use Akka from good old Java. It is library framework in the best tradition of the concept.

    Devoxx 2010

    (Viktor Klang discusses Akka)

     

    Klang’s presentation style is really good. I mean really good. Decent pace, great eloquence, and for this talk in particular, the information structure was well organised and above average.

    Akka is the framework closely associated Scala. They say that Akka is to Scala as Rails is to Ruby. I am not entirely in agreement with this, because Akka in this talk appears to be more its own thing. It has a lot of features going for it, including concurrency and execution through a four types of thread / actor execution model. Akka has a registry. The idea of passing messaging to actors, there are local and remote actors.

    ActorRegistry

    The actor registry single point where all actors are living and can be referenced. You can use the ActorRegistry to look up a actor by id.

    ActorRef[] actors = ActorRegistry.actors()

     

    Remote Actors

    Remote actors are there to enable fault distribution across JVM. This looks relatively easy to code as well. All one needs is to just start the RemoteNode. The current implementation is build on (Netty) NIO and  ProtoBuf
       
    Akka has Client managed supervision works across nodes. The client is responsibility for  creating that actor on that server. The remote actor is instantiated through a proxy. For open source version you need to have the code on all of the servers. There is a proprietary Commercial server remoting solution that does feature provisioning, and therefore the code does not need to already install on the target server nodes.

    With Server-managed remote actors you need to look up the actor by remote registry. There is a basic cluster endpoint for remote actors based on the JGroups.

    Software Transactional Memory

    Akka has it’s own version of a STM. The implementation I think is based on the clojure library, although I need to verify this: Akka atomic closures are nestable and therefore composable. Managed References separates identity and value

    val ref = Ref(0)

    atomic {
        ref alter( _ + 5)
    }

    // -> 5
       
    atomic {
        deferred {
        }
       
        compensating {
        }
    }

     

    Actors + STM == Transactors

    In Akka there are also separate modules and the Transactors is featured through modules.

    Spring Integration inside a configuration

    Akka integrates well into Apache Camel. All you need to configure an Endpoint URI to file or a http.

    Akka HotSwap

    The name suggests exactly that does do as it says on the tin. Imagine how one could hot swap in another actor for another, particularly if one trading process fails! Hmm, hmm, hmm sweet mama actors.

    Akka Persistence

    STM gives Atomic, Consistent, Isolated and therefore guarantee three axioms in the ACID principle. Akka gives the forth axiom in the ACID transaction principle Durability (persistence). Akka persistence supports the following frameworks: Redis, Cassanda, HBase, Voldemort, CouchDB, MongoDB, JTA and JDBC data stores and a whole lot more:

     

    How to run Akka?

     

    There are three ways to officially launch an Akka application and its microkernel:

    • Add the JAR to the WEB-INF/lib folder and launch your Akka based Java EE web application
    • Run it as a standalone microkernel
    • Inside in OSGI container
      Above all I was really impressed by Viktor Klang Akka presentation one of the best of the conference in my opinion.

        Extending Visual VM by Kirk Pepperdine

        Here was interesting technical session by a fellow Java Champion about extending the User Interface of the Visual VM in order to display additional sources of data. Visual VM is a NetBeans Rich Client Platform application. So if you already know NetBeans RCP then extending Visual VM is easy for you. The differences are that Visual VM has it own special UI components, including one that renders a quadrature. Four sub components in a 2 x 2 grid.

      Devoxx 2010

      (The ever industrious Kirk Pepperdine, fellow Java Champion)

       

      Once you have you have your UI sorted out, then you probably need to know JMX and MBeans in order to instrument your application. If you use Spring Framework as a dependency injection container then this is rather too easy to create MBeans in your application. Otherwise you must delve in Managed Instrumented MBeans at the API level. Mr Pepperdine had some good notes on MBeans and how to get instrumented data out of the JVM.  It is also useful to instrument your applications. You can then extend Visual VM to examine specific resources, switch then on or off, or restart them, using a custom UI component.

      Finally let me say that Kirk Pepperdine finished his talk early, ahead of schedule and had plenty of time for questions. Enough said.

      JavaPosse Live by the JavaPosse

      Awesome fun by the JavaPosse crew. Go and listen to the recording of the live 2010 episode.

      Devoxx 2010

      Devoxx 2010

      Defective Java: Mistakes That Matter by Bill Pugh

      Unfortunately this was overcrowded and I gave up attempting to get into the room.

      Java Puzzlers – Scraping The Bottom of The Barrel by Joshua Bloch and Bill Pugh

      Missing the previous session meant I could go early and get a comfy cinema seat to catch the last edition of the Java Puzzlers. Bloch and Pugh had six brand new (or may be not so new) Java Puzzlers to show us. It was a really good session I thought and it would help to have revised the current Puzzler’s book, because about “El” and “CafeBabe” already. I do not want to spoil it for those of you who attack the puzzles during Parleys.

       

      More Pictures

      Devoxx 2010

      (Aaron Houston, now of Adobe Community Outreach and Mattias Karlsson, fellow JC, lead organiser of JFokus)

       

      The European JUG Leaders BOF

      In short, I have video recording of most of this event, and I will be posting it on Vimeo.com at the earliest free-time opportunity.

       

      JavaFX BOF by Stephen Chin

       

      This BOF was about getting JavaFX / Visagé running on an Android mobile phone device. There is not a lot to really add. Stephen Chin supplied the hardware, 3 phones and USB cables. The rest of us downloaded Android SDK and a private copy of Visagé with Android runtime / wrapper classes, actually from Stephen Chin’s USB stick. At least one of us in the audience got Android and Visagé to play together nicely! (It was not yours truly. Sorry) The proof is the pudding as they say, in this picture:

      Devoxx 2010

      (Google Nexus One smartphone belongs to Stephen Chin, and yes it does say, “Hello World JavaFX”. It demonstrates Visagé SDK and a very alpha wrapper framework running on an Android phone)

      Please wait for Stephen Chin to announce on his blog.

       

       

      This is Peter Pilgrim at Devoxx 2010. Out.

      Devoxx 2010

      (L-to-R Max Bonobel, Me and Chris. This is the Congo JUG connection and finally a picture of yours truly at the Devoxx conference. Cheers fellows!)

      Devoxx 2010: Conference Days Part One

      November 19th, 2010 Comments off

       

      Keynotes

       

      To Wednesday 17th November 2010 and the proper conference began in earnest with a keynote by Mark Reinhold, which was about Java SE 7 and then followed by Dion Almer and Ben Galbraith, who had a breathe taking reprise of State of the Web.

      Java SE 7 and 8

      Mark Reinhold talk about the upcoming reasons for the Release Plan B. The schedule for the release is pretty ambitious as the date is 28th July 2011. There were no more surprise in store in Project Coin, since the keynote at JavaOne 2010. There were explanations for the delays in getting out JDK 7. I think generally the development community were acceptable to new features like: multiple-catch exceptions, string literals inside switch statements, type inference for generic types. The big announcement of course the night the keynote was a Mark Reinhold blog, where Oracle pushed out the Java Specification Requests for Java SE 7 and 8, Project Coin, Jigsaw and Lambda, namely 334, 335, 336 and 337. Now that was good news that the community had wanted hear for a long time.  These JSRs have now been submitted to the Java Community Process.

      State of The Web

      Devoxx 2010

      (L-to-R: Dion Almer and Ben Galbraith keynote)

      There was another keynote to follow up and it was by Dion Almer and Ben Galbraith. It was a really good presentation and rather thought provoking I should say. Galbraith and Almer started with an examination of Microsoft sudden change of heart on the web with push of Internet Explorer 9 (in Beta status now) and the deprecation of Silverlight.

      Devoxx 2010

      The Ajaxian duo team reviewed the state of the web with screen captures from the grand old days of the web. Screenshot of the Google web page from 1998 was updated to the present day.  The same applied to Apple and the audience were amused by the sheer change. It was clear the change in the look and user interface when UX designers got on board the web. The duo pointed out that the influence of Ajax and Ruby-on-Rails, 37 Signals creator, David Heinemeier Hansson on the way the web has evolved. There was a clear distinction in the presented evidence of web sites pre 2006 and post the Ajax revolution.

      Almer and Galbraith of course were pushing the web as may be ultimate platform for development. Yours truly might beg to differ on the web being complete. It is however interesting how HTML5 / CSS3 / AJAX / Web Sockets and of course JavaScript the programming language have come along for people. It is also the design of web pages and separate of styles and mark-up that allowed this evolution. The web cannot quite replace high performance and data intensive native application and there is no universal off-line solution. What happens when one boards a jet plane from London to San Francisco? You cannot work on the web. It is all to play for, in this decade. Maybe Google can actual deliver Chrome OS over a hyper-spatial link?!

       

      Reflection Madness by Heinz Kabutz

       

      Devoxx 2010

      Heinz Kabutz, fellow Java Champion

      Doctor Heinz Kabutz had some interesting Java puzzler solutions concerning Java Reflection. It appears you can break the JVM by changing the private field property of immutable objects. Take instance the venerable java.lang.Integer class. An object of this class can be subverted such that it’s secret private value is not in agreement with its declared constructor input. Now if you add to this object to collection and you start iterating over the collection, may your program can go into infinite loop or crash. His newsletters contains the full explanation and examples so I refer you to got subscribe to this fellow Java Champions web site Java Specialist.

       

      From Shabby To Chic by Richard Bair and Jasper Potts

      This was repeat of the presentation almost that Bair and Potts gave at JavaOne six weeks ago. The technical session was about styling JavaFX components. The JavaFX SDK team, namely the duo here spent some considerable time building Caspian component with really nice designer look and feel. The example was the JavaFX Login Dialog screen and so this is repeat report and I will leave it there.

       

      JavaFX Your Way: Building JavaFX Applications with Alternative Languages by Stephen Chin

      Devoxx 2010

      Stephen Chin, fellow Java Champion

      This is also a repeat presentation from JavaOne 2010 and for the benefit of the European. So ok if you could not get to JavaOne, then it shows the presenters do get send the message to a different continent. Since the surprise announcement about JavaFX Script these examples on the experiments of programming with JavaFX 2.0 as DSL are quite useful. For my money, many developers, especially the innovative one, might look to program JavaFX 2.0 from alternate JVM language in the future rather than Java. If you are thinking of JavaFX 2.0 then it worth taking a look at some the presentation slides and also getting the Parley’s video when it is released.

       

      Performance Anxiety by Joshua Bloch

      Unfortunately this was one I missed due to networking with individual. I will pick it up on Parleys.

       

      Android Graphics and Animation by Romain Guy and Chet Haase

       

      Devoxx 2010

      (L-to-R: Chet Haase (Google), Romain Guy (Google) and James Ward (Adobe). Actually there is a funny story of the custom "hoodies" that I think is better told by Devoxx chief organiser, Stephan Janssen. ;-)

      Here was a session that left me a little confused about the Android platform. I think that I sort of got the design architecture of the Android platform. A Canvas type has no state and does not store a display list. A Paint type has a state about the colour and the brush to fill a Drawable type. Android is an unfamiliar graphics system based on the hierarchical order of “views”. There is the concept of a ViewRoot and nested Views. Actually I think that Romain Guy answered my question as best he could have. I asked about the different states and the filtering that could be applied to an Android graphic application. He answered that the filtering work only with bi-linear algorithm and not bi-cubic one, and in fact that even Java 2D does not implement the graphics context hint BICUBIC.

      Devoxx 2010
      Devoxx 2010


       

      JavaFX BOF by Richard Bair and Jasper Potts

      In this BOF Richard Bair and Jasper Potts were connected to the other Oracle SDK over a web conference. They had the brilliant idea of throwing open the design decision to a much wider audience. The question was, which design programming idiom should the Oracle JavaFX SDK team use to write the new JavaFX 2.0?

      This BOF, therefore, was much more intense discussion of the above scene-graph node construction kit. Stephen Chin, Jo Voordecker and Johan Vos were also in attendance for this crucial BOF. It made for a more technical discussion of JavaFX 2.0. The result was that the “Builder method chaining” programming idiom looks like it was the best solution going forward. This is, however, no guarantee that the Oracle JavaFX SDK team will take it forward. As was said, before the huge issue is the binding of properties of the Java scene-graph node objects, and that binding works best when it is immutable and therefore the binding must initialised at object construction time. In other words, as with JavaFX Script, it is not easy to implement dynamic binding and therefore infer “unbinding” of two properties without excessive cost and complexity.

      Salient questions were:

      • How can we have an object construction idiom in Java that is type safe?
      • How can we reduce the boiler-plate of the syntax to make it easier for [intermediate] Java developers?
      • How can we write an object constructor idiom that is amenable binding in Java [that inherits most of the power of JavaFX Script]?

      Here is my own question thrown in is:

      • How does the new object construction idiom, whatever its future scheme, help domain specific language writers in other programming languages like Groovy, Scala or Clojure?

         

        What’s New In Parleys.com Version 4 by Stephan Janssen

         

        This BOF with Parleys.com Version 4 was extremely impressive. It was quite amazing how much further along the software improved since 2009. The Parleys 4 now works on iPad and will be shortly working on Android devices. The iPad support was through a MP4 conversion process that Stephan Janssen described. MP4 will be featured on Devoxx 2010 technical sessions and keynotes. Unfortunately older presentation streams and channels will not be transcoded. Stephan Janssen claimed it is just too much work, memory and time.

        The key demonstration was how to use Parleys to capture a presentation talk in audio and video including the slides. Most presenters export PDF to the conference, so a specific application captures the PDF slides and separates each slide to a JPG image. Another part of the Parleys application examines the video stream of the presenters laptop and smartly demarcates slide transitions. This same technique also recognises when the presenter has jumped into demo mode. In other words, Parleys can automate a lot of the digital capture of a presentation.

        The iPad client version was created by Jan-Kees van Andel  in his spare time. The version has a very nice U/X specifically designed for the Apple tablet device’s resolution. The author pointed out that it is designed solely for the iPad U/X and not the iPhone. The Parleys client supports the iPad using HTML5, standard Java Server Faces (JSF) and streaming MP4 service. It is also open source.

        The Android client version was still in development mode. However it had all the good U/X hallmarks of the other clients. Android Parleys client is expected early 2011.

         

        This is Peter Pilgrim at Devoxx 2010. Out

        Devoxx 2010: University Day 2

        November 19th, 2010 Comments off

         

        Dive into Android with Chet Haze and Romain Guy

        http://devoxx.com/display/Devoxx2K10/Dive+into+Android

        Devoxx 2010

        For yours truly, this was useful interesting introduction in Android, another mobile computing platform. Romain Guy and Chet Haase talk about Android in higher level at the beginning, then they descending to into the key aspect of the platform: the Activities, the Intents and the Events. There was a lot of code in this demonstration and the presentation was at fast pace. I think there was so much here that it could overwhelming for the beginner (like me). Well you need download the Android Development Kit and then install a particular Android version and then you need download Eclipse. Finally install the Android Plugin with a software update of Eclipse. However, I have been told by other attendee that this is order of magnitude improvement on setting a mobile phone environment with J2ME or Nokia Symbian. The second half of the Android University talked about the different Canvas, Drawables, Surfaces and other bits and bombs. With Android there is a lot to learn. The two guys talk about improvements to writing Android applications, performance optimisation techniques and other development tricks. For instance, there was way to create a blur by reducing a image bitmap and up-scaling again. This is normal excitement for the authors of the Filthy Rich Client book, and yes they were asked [again] about writing an Android Filthy Rich Client book and the answer was: no, we do not have the time.

         

        JavaFX 101 University with Jasper Potts and Richard Bair

        http://devoxx.com/display/Devoxx2K10/JavaFX+101

        Here was a technical session that was rather relevant to yours truly. Of course everybody knows the news that JavaFX Script was de-supported by Oracle, and Stephen Chin took ownership of the JavaFX Script Compiler and rebranded the GPL source code as Project Visagé. Oracle are now refactoring the JavaFX concept into a complete Java API. In other words developers will have a Java API to manipulate a scene-graph. This new project is called JavaFX 2.0.

        Bair and Potts reveals some of the details of their current thinking on the JavaFX 2.0. In their University session they covered experimental API and that they were still thinking how to write the API. The issue here is all JavaFX scene-graph have to be properly constructed at initialisation time, because they found that binding between nodes is more efficient, if the binding is immutable. The JavaFX team thought a couple of choices:

         

        • Builder Pattern Constructor
        • Argument Constructor
        • Key Value Map Constructor

        The builder pattern constructor uses a static class that create an scene-graph node. This is similar to Google Guava Collection (ImmutableList, ImmutableMap and ImmutableSet). I actually like this syntax the very best, because it is easier to create a Domain Specific Language for it.

        The argument constructor was a surprise genuinely. The idea is to pass in property settings using a varargs constructor. This was in two sub parts: First you can have a varargs constructor and therefore the parameters are not type safe. Second you can write a helper class that takes the parameter and return it. Therefore the argument help ensures type safety.

        The third solution was to allow key value map to be passed to the node constructor. From first principles this us also a type unsafe.

        The next revelation was their thoughts on the possible binding. Bair and Potts discussed the JavaFX SDK team ideas on PropertyRef property references. They claimed that the old JavaFX Script concept of triggers supplying the old value of property is mostly detrimental to the performance of binding. So they though that only ChangeValue class event should be part of the binding listener. I think this was because the cost of auto-boxing was shown to be too expensive in their research labs. Also they had a concept of a ValueModel interface where the reference to the property reference would be useful for callers. In particular, Bair, mentioned that the Java code that fired events in the scene-graph node was verbose.

        Devoxx 2010

        Bair and Potts had some good news. The JavaFX SDK team had been hard at work since August 2010 and they had converted most of the JavaFX Script code to the equivalent Java classes. They feel still that they are schedule for a release of JavaFX 2.0 in July 2011 as mentioned in the roadmap.

        The presenters laid two golden goose eggs when they showed off an alpha quality version of a HTML5 Java WebKit Pane. This component is only for JavaFX 2.0 and not for Swing. It was rather good, because it showed most of the Devoxx.com front page and the schedule. I thought this was rather decent of Oracle to show their wares in this way and maybe communication from the SDK team is getting through the Marketing at Oracle. Second, the duo ran the version of JavaFX that rendered to a browser using HTML5. They demonstrated the simple JavaFX Script sample with the Fish following the pointer inside a Firefox browser and we, the audience, could see the Firebug logging of the AJAX / scripting version. Yours truly would say this was awesome progress and we are more confident about Oracle delivering the tech in 2011

         

        Monday BOF: Meet The Adobe Guys and RIA In The Enterprise

         

        As a past of Macromedia Dreamweaver MX, yours truly was tempted to visit the Adobe Guys, which included Aaron Houston. When Sun Microsystems existed their community outreach program was strongly directed by Mr Houston. The discussion centred around James Ward and Michael Chaize of USA and France respectively. The audience asked many questions about the Flash platform around the availability of Flash 10.5 on the Desktop. Aaron Houston announced that Adobe Air 2.5 had just released on desktop and soon to appear on mobile devices, depending on carriers and manufacturers. James answered some questions on how to get more adoption of developers to produce more publicly facing Flex applications. It appears that the majority Flex solutions are developed behind closed doors, inside the intranet of companies or locked behind password protected sites. The evangelists were puzzled why more developers did not use the UI technology. With Flash technologies there is strong association with broadcast and streaming data, and the duo suggested that if you wanted commercial viable solutions for this, then Adobe LifeCycle server was already built and designed to supposed this requirement.

        Personally, I have always been impressed by the samples and professional samples on the Tour De Flex. In terms of design and tools, Adobe wins this hands down. The UI components are very nice to see, the animations are subtle, colour schemes gentle on the eye. The examples of Flash applications running on the Samsung Galaxy Tab and other Android devices have also been impressive enough. Adobe, to my mind, are getting to rather close to overall cross-platform solution for mobile computing for good development and yes a word from a sponsor did confirm that iPhone support for Flex applications in back on Adobe’s agenda.

         

        Tuesday BOF:  Scala

        Martin Odersky made a special appearance with Dick Wall and Bill Venners for this BOF on Scala, an alternative static compiled programming language for the JVM. The room was over crowded such was the popular of Scala at the moment. There lots of items discussion here from under the why the maven-scala-plugin was so brute-force and slow to compile to scala DSL’s and testing Scala. There was one memorable comment in learning Java. A BOF participant described how some of the Java developers [that he obviously was acquainted with] were no better than COBOL programmers who wrote their coding style into the Java language programs. Once could obviously paraphrase that anecdote into disgruntlement on future Scala programs.

        Devoxx 2010

        (From left to right: Dick Wall, Martin Odersky and Bill Venners)

        The fact is Scala is still shiny and brand new. It is new enough that there are not experienced people around to notice or discover any flaws in the programming language. Yes. Everything is quite rosy in the Scala garden and we should remember that there are thorns attached stems that are delicate to our kind hands. Like a rose bush it takes time to nurture Scala and developers will learn at the pace to master the functions.

        Participants were asking about how to test Scala program. One person asked if there was a plugin Clover or CheckStyle available for the Scala programming language. Dick Wall mentioned that FindBugs ran fine. Your truly posed a question about debugging Scala programs. Hardly anyone used a debugger on a Scala program, apparently it is too painful. Instead developers wrote tests in Scala Test or used another framework to check their programs.

        The conclusion, here, is that Scala is wide open for developers to improve the coding experience.

        This is Peter Pilgrim at Devoxx 2010.Out

        Categories: Communication, Conference, Devoxx, Java, JavaFX, Scala Tags:

        Devoxx 2010 University Day 1

        November 17th, 2010 Comments off

        Devoxx University Day 1

        Yours truly arrived on Sunday for the annual Devoxx conference in Antwerp, Belgium. After the experiences of JavaOne only six weeks before it felt rather peculiar to be here on the continent again so soon.

        Seam 3 Context Dependency Injection

        http://devoxx.com/display/Devoxx2K10/Dan+Allen

        Monday started for me with the SEAM 3 CDI technical session. Personally I have been less interested in SEAM for a while, because there are other technologies and solutions in this space. SEAM is great for integrated JavaServer Faces and EJB (as in 3.0/3.1 and JPA entities) . It was Gavin King’s originally design baby to solve the conservational scope and the page flows issues, which were prevalent in 2005-2007.  Not to bemoan CDI by any stretch of the imagination, the tech is still relevant to those who marry dependency injection and portability and frameworks. However I wonder about the CDI relevance to other alternative JVM languages like Groovy or Scala.

        That said I liked the ability to extend CDI with SEAM modules, and idea of type safe configuration of beans (managed beans).  How is this appropriate to JavaFX 2.0? Could this be a solution? So I skipped out during a tea break and found Neal Ford’s session.

        Devoxx 2010

        The Productive Programmer

        http://devoxx.com/display/Devoxx2K10/Productive+Programmer

        Oh my sweet  funkiness, was Neal Ford on a good form? Was he good? He was great. How about this for a bullet quote:

        If you must ever do anything in computing worthwhile. prefer to work like a craftman, not a labourer

        Or this one

        Always use a real language for scripting

        The former quote related to the part where Ford discussing Selenium IDE, automating web UI testing and the latter pertained to automating Microsoft COM using Ruby!

        Actually, I had wished that went Neal Ford entire session for the whole morning, especially for this snippet of gold dust:

        Top Ten Corporate Smells

        (Here Neal Ford’s smells means corporate mistakes or suspicious activities that make a consultant or contractor think twice before agreeing to work on project with that particular corporation)

        10. We invested our web/persistence/messaging/caching framework because none of the existing ones was good enough (an averice of dot Net companies where there lack of open source tradition)
        9. We bought the entire tool suite (even though we needed about 10% of it) because it was cheaper than buying the individual tools
        8. We use WebSphere because … (He always stops listening at this point)
        7. We can’t use any open source code because our laywers say we can’t
        6. We have an architect who reviews all code precheckin and decides whether or not to allow it into version control
        5. The only JavaDoc is the Eclipse message explain how to change default JavaDoc template
        4. We keep all of our business logic in stored procedure … for performance reasons (premature optimisation already in up front architect)
        3. We don’t have time to write unit tests (we’re spending time doing debugging)
        2. The initial estimate must be within 15% of the final cost, the post-analysis estimate must be within 10% and the post-design estimate must be within 5% (A lot of company desparately try to
        1. There is a reason that WSAD isn’t called WHAPPY (IBM Websphere derived Eclipse environment that is always several version behind the current Eclipse and crippled by blot)

        Actually, this list of corporate smells, which a small sub section of Neil Ford’s larger presentation: 10 ways to improve your code. The main take away was not get involved in business who practice these corporate fails knowingly or unknowingly.

        Groovy Update Ecosystem with Guillaime LaForge

        http://devoxx.com/display/Devoxx2K10/Groovy+update%2C+ecosystem%2C+and+skyrocketing+to+the+cloud+with+App+Engine+and+Gaelyk!

        Let me just say simply, Guillaime Laforge is the Groovy Project Manager and now is the “Groovy man”. If you have an question about Groovy then Laforge can probably answer it well enough. This university talk was an overview and update of Groovy starting from version 1.6. Of interest to me was the ideas of AST Transformations, abstract syntax tree manipulations, which mean developers can write annotation that modify the meaning of Groovy code as it is compiled. The fruits of this labours are @Singleton, @Immutable, @Delegate, @Lazy, @Newify, @Mixin and of course @Grab.

        Devoxx 2010

        Groovy has support dynamic mixins.

        Groovy has a DSL for handling JMX.

        Groovy 1.7 brings the AST Viewer/AST Builder and anonymous inner classes and nested classes. With the latter you can bring more Java code now into Groovy directly. Groovy 1.7 brings the customisable GrabResolver.

        Groovy 1.8 will improve currying so that curry from left associativy or the right associativy,  rcurry() and ncurry() calls respectively.

        Groovy 1.8 will add Closure annotation parameters, functional composition, memoisation and trampolining, native JSON improvements, Gradle build and earlier modularisation and alignment with JDK 7 / Project Coin.

        If you have an interest in DSL implementations, then Groovy 1.8 will add Command Expressions. This is a feature that is impossible to do in Scala at the moment, and Groovy will have a nice syntax for DSLs

        send("Hello").to("Grame Rocher")
        sell(100l.shares).of(MFST)
        take(2.pills).of(chloroquinone).after(6.hours)

        With command expression expansion becomes:

        send  "Hello" to "Grame Rocher"
        sell  100l.shares  of MFST
        take 2.pills of chloroquinone  after 6.hours

        Wow! These were examples of {verb} followed by a {noun} DSLs! (Why can we not do this well in Scala?)

        LaForge covered a lot of Groovy projects in a brief overview and the ecosystem for Groovy is rather rich now.

        • GContracts – André Steingress idea of writing invariant specifications using closures and annotations
        • GPars – parallelisation of Groovy collections, which relies on JSR 166y the concurrent fork join framework created by Doug Lea
        • Griffon – is a Grails like application framework for developing desktop applications in Groovy applications in the style of Grails application (convention over configuration)
        • EasyB – behaviour driven development framework that is similar to RSpec in Ruby
        • Spock – powerful mocking framework and also specification framework with fluent interfaces
        • GMock – another mocking framework and library for Groovy
        • GAELYK - Laforge’s own pet project for running Groovy inside the cloud, namely the Google App Engine

        I am very intrigued by Google App Engine and GAELYK, because it may be way to generate Groovy web content sites very efficiently. WIth GAELYK there is lot of Groovy styled DSL implemented to wrap around the App Engine standard services. For instance a DSL wraps the XMPP, Images, User, TaskQueues, URL Fetcher, Memcache, Blob store and of course the key value based Data store. Therefroe it looks to my eyes very easy to write a GAELYK application. The issue here one has to write Groovy Server Pages and break up HTML design into template defintions yourself.

        Here is the Groovy sample code for using Memcache DSL

        class Country implements Serializable { String name }
        def countryFr = new Country( name: France )
        memcache['FR'] = countryFr // store inside memcache
        
        // Check memcache for the key and if it is there do some work
        if ( 'FR' in memcache ) {
             def countryFromCache = memcache['FR']
             doWork( countryFromCache )
        }

        In summary, the Groovy ecosystem talk was very impressive and to my mind showed the strength of Groovy and the users who are actively involved in it.

        Overall, it was a very entertaining day at the Devoxx races.

        This is Peter Pilgrim at the Devoxx 2010. Out.

        http://www.flickr.com/photos/8268882@N06/5187049930/in/photostream/

        Categories: Devoxx, Groovy, Java Tags:

        JavaPosse Episode 328: JavaFX The Sequel

        November 3rd, 2010 2 comments

        Hello

        I was rather pleased that the JavaPosse released the RoundUp 2010 session that I chaired JavaFX The Sequel podcast episode 328. The Roundup  is a yearly unconference session organised by Bruce Eckel and JavaPosse and takes place in February or March at Crested Butte, Colorado, USA. Roundup 2010 was particular interesting, because we had just over one year of JavaFX releases since the version 1.0 in late 2008.

        At the time the podcast was recorded, in March 2010, JavaFX Script was still the chosen way that Sun/Oracle were positioning the next Java rich user technology, JavaFX. We were still looking forward to the full JavaFX 1.3 release and all developers were mucking around with the JavaFX 1.2.2 release. During the conference Tor Norbye, a Sun/Oracle employee back then, had access to the non-public JavaFX 1.3 release branch and he gave us valuable in to the up and coming new features in 1.3.

        DSCF1056


        Here is a picture of me at the JavaPosse Round Up 2010 at the fabulous restaurant Django at the top of the mountain resort that is Crested Butte.  The cost is the restaurant is exhorbitant: one of everything, with two deserts for about USD 270.  Recognisable folk include Frederick Simon (JFrog) , Robert Cooper, etc

        In the podcost, there were a number of salient points that I liked and still are valid:

        • JavaFX could have had an active travelling adovocate (an evangelist) like James Ward does for Adobe Flex
        • JavaFX Script really required the equivalent of Tour de Flex from its earliest inception
        • Modularisation of the Java runtime platform and how much this is crucial for JavaFX deployment in the past, present and future. Breaking up the JRE means that deployment of JVM application could be cheaper, faster and smaller for distribution
        • In my opinion Sun/Oracle marketing chose the wrang name, “JavaFX” was far too close to the Adobe “Flex”. This was also confusing for non-IT people in the financial market industry where the term FX means Foreign Exchange or the further abbrevation of FOREX
        • The expense of providing tooling for the JavaFX Script eventually caused it’s eventual ejection from commercial Sun/Oracle development. The overall cost of investing in building a domain specific language was underestimated, especially if it was statically compiled and required interaction with Java APIs, IDEs and debuggers
        • JavaFX Script was also a victim of the merger and acquisition between Oracle and Sun Microsystems (2009-2010)
        • It was far too hard to get into the JavaFX Partner Program as an individual and therefore outsiders could not innovate with the JavaFX SDK team to provide better solutions
        • The inability of Swing developers to embed a JavaFX Script application in their own existing Swing applications

        Now that there is a new Roadmap for JavaFX 2.0 since the JavaOne 2010 conference, some items from the above are now mute.

        • Since JavaFX 2.0 APIs are being rewritten into Java language, therefore Swing developers will be to get full access to the new scenegraph model from Java for the first time ever
        • Because the API is now rewritten in Java, means the door is suddenly thrown open to the alternative JVM languages such as Scala, Groovy, Clojure, Fantom, Erjang and others. Java is now the Mother language for client UI on the JVM
        • The expensive tooling issue for JavaFX Script has gone away from Sun/Oracle point of view. Developers will be able to use all their favourite Java IDEs, debuggers and testing frameworks and toolkits for Java.
        • The elegance and the power of JavaFX Script will be sorely missed, even though it will continue with next open source project of Visagé. No one outside of Sun/Oracle can see how elegant JavaFX Script binding feature will be implemented in the Java API for JavaFX 2.0. (This new Java binding implementation will become a crucial cornerstone of the DSL, see below)

        In order to solve the lack of uptake issue for JavaFX, I think we need more context outside JavaFX (2.0) to become a reality, namely:

        • A core league of developers, outside of Sun/Oracle, must create Domain Specific Language implementations for the JavaFX 2.0 API in their favourite alternate JVM language of choice
        • The PRISM rendering pipeline must be completed and released with the JDK release in version 6 and 7
        • The brand new Java plugin that uses PRISM exclusively must also be completed on time. This is essential to show off the hardware accelerated 2D and 3D graphics applications, which run inside web browser runtime such as Firefox, Opera and Google Chrome
        • PRISM requires improved 3D primitives support. It needs the basics: planes, polygons, pyramids, meshes, surfaces, spheres, dodecahedrons, toroids, etc and not just cubes that we saw in the JavaOne 2010 keynote demonstrations
        • The web start JNLP should be enhanced to allow dynamics properties and capabilities added to the application in order allows system administrators to customise deployment
        • Media must be supported, at least in the output mode, e.g. H.264 video, MP3 playback, positioning, seeking and scrubbing.  (If the Sun/Oracle team could also rush-release the ability to record audio input then that would be a superb bonus.  See the popular Android Market application the Talking Tomcat)
        • JavaFX requires the mountain of runtime support that is OpenJDK 7 and Jigsaw and the ability reduce the payload for downloading, installing and running an JavaFX application from a remote web server
        • Keep the status quo of releasing Windows, MacOS and Linux essential. Sun/Oracle originally heavily investing in Windows JavaFX releases, I think recent history has shown that Linux and MacOS runtimes are now crucially important. It may be actually true in 2011 that Oracle Corp  must invest some of the stockpile of billions of USD that it has in bank accounts in keeping Write Once Run Everywhere alive.

        There is lot of work still be done in 2011.

        Peter Pilgrim. Out. 3 November 2010 ;-)

        ( Updated 5 November 2010 )

        Categories: Java, JavaFX, Rich User Interface Tags: