Coda Hale, Dropwizard and Scala

December 4th, 2014 No comments

I enjoyed working with Scala at my last client. One of the frameworks that we used there was Coda Hale‘s Dropwizard framework. The Dropwizard project, itself, is written against Java, and provided a nice bunch of friendly open source frameworks and applications already integrated together in read-to-run server. The developer just writes configuration, resources and if necessary templates to plugin in the application framework. The great idea is that you can dropped in some code into the setup and you are generally on track with a monitoring, logging and healthy beating infrastructure.

  • Jetty for a lightweight Java EE 6 style Web Servlet container
  • Jersey JAX-RS for REST
  • Jackson for JSON serialization
  • The incredible Metrics library for handling all sorts of Developer/Operation metrics
  • Logback and SLF4J for performance logging including integration to UNIX style SysLogs through a network port
  • Hibernate Validator 1.0 for bean validation
  • Database help with JDBI and Liquibase
  • Guava is useful for writing functional programming Java before Lambdas (Java SE 8)

Coda Hale presented an interesting talk on the importance of measuring critical systems in an disparate and diverse architecture. He posited the idea that you need to know the numbers in order to make key decisions of your system. His talk is available on YouTube You Tube Metric, Metrics are Everywhere (opens separate window) and the slides are here.

I did say that Scala is being used in this blog entry. Dropwizard has a Scala module, which I saw definitely being used in the Registered Traveller project at GOV.UK. It made sense to really on pre-existing open source framework (NIH, DRY) based on sound ideas like health checks, pings and pongs and logging. You can build reasonable scalable, maintainable and robust Micro Services in Java and Scala with this integration of configuration and resources.

The issues with Dropwizard are that some of the modules are dated. In particular, the Jersey framework integrated is only 1.18, where as a recent check of MvnRepository.com already shows the latest Jersey version 2.13 or better. The latest version of Jersey provides Java EE 7 style API with the standardised JAX RS 2.0 API and the Client side API. If you want to use Java EE 7 then DropWizard is not yet capable of running against Jetty 9.

I mentioned that there is a Scala module for Dropwizard, which is a fork on the original unmaintained project. Brett Hoerner maintains this Github project. The module does work with Scala 2.11 even though the original fork dates back to Scala 2.9. There are some clunky expositions of Guava and Java that seep through to the Scala side. Ok the Java framework is not written in Scala, but Drop Wizard solves a pressing issue with bundling working application/infrastructure that almost ready to go for the enterprise. There could be more Scala style library API, but most of all it would great of the Java framework was upgraded to latest Java EE 7 features and frameworks.

I believe that sometimes people forget that Scala is hybrid of object-oriented programming and functional programming. That is exactly what the inventor of Scala wanted to achieve on the JVM. Therefore there will be people will prefer a one of these directions and just because that someone choses one these orthogonal does equate with ineptness or inferiority. To penalise somebody because, to date, they have had less experience of FP and more experience OOP or the other way around, in my mind at least, demonstrates elitism, contriteness and damn right stupidity. It more important to continuously improve on both axes as much as possible and we all have something to learn from each other.

+PP+

A Scala development task for ACME

November 26th, 2014 No comments

I recently took part in a Scala development task for ACME. I spent about a few hours over a weekend in mid November on it. I completed the task in Scala 2.11 and against the popular Drop Wizard IO project. It you are interested you can go and review the ACME Server project on Github and let me know what you think.

Bonus question: How does one create an efficient ZIP task in SBT e.g. (build.sbt)?

+PP+

IntelliJ IDEA 14 RC 2 Looking Good

November 16th, 2014 Comments off

JetBrains announced another pre-release of the fabulous IntelliJ IDEA 14 RC2, which I installed yesterday. For me, it is already working fine and they appeared to have a fixed troublesome core dump editor bug. The current IDE 13.1.5 crashes on Mac OS X and Windows, because a project compiled against Java 7 cannot be deployed to the latest GlassFish 4.1-SNAPSHOT. Because IDEA 13 must run against JDK 6 it fails to deploy to GlassFish 4.1, which is compiled against Java SE 7, so one has to force IDEA to run against Java 7, but then you get the crash with creating new Runtime Configuration [ Run -> Add -> GlassFish -> Local ]. (JDK 6 is available from the Apple for Mac OS X Yosemite and Oracle still provides an archive of releases for historical purposes.) I tested the new release on Windows of course with code from my up and coming book Digital Java EE 7 Web (working title).

Captured

+PP+

Categories: Digital, discourse, future, Glassfish, javaee7 Tags:

JavaOne 2014: Developing Java EE 7 Applications with Scala (CON2644)

October 20th, 2014 Comments off

Here is the slide deck to my JavaOne 2014, San Franciso, talk Developing Java EE 7 Applications with Scala (CON2644) as a PDF. It seems that Slideshare still messes up the heavy graphical content design of my slides. You can find the entire code to the presentation on GitHub and yes the examples do all work. Have fun programming!

+PP+

 

PS: If you desperately to try out Slideshare, then it is also available there:

 

 

 

JavaOne 2014 Impressum

October 8th, 2014 Comments off

 

Photo License

My photos are licensed under Creative Commons License 2.5.
You must include the license. You must attribute the source. You cannot use my work, the source for commercial activities. You cannot edit or derive the source. For more information read the license or for enquiries contact me.

I have reserved this technical blog session for random tidbits around the JavaOne 2014.

 

 

Whilst there was trouble brewing a head at home and disappointments with contracting, at least I could saviour this selfie with the Father of Java, James Gosling, himself
Untitled
In fact, I am sure that I have a photo on hard disk drive, an external USB drive, from the then JavaPolis 2005 conference in Belgium with James Gosling.

 

 

This is the one and only Gerrit Grunwald in the exhibition space, demo grounds.
IMG_2282

 

 

Amelia Eiras and David Blevins from TomiTribe. Thanks guys for a great JavaOne experience.
IMG_2262

 

 

Annual developer tee-shirt toss with a giant elastic slingshot was back in effect for the keynote
IMG_2136

 

 

This is not my car, although I thought this Lamborghini cladded in copper metal plate outside of my JavaOne hotel was van glorious.
IMG_2573

 

 

The Internet of Thing’s Winners with their prizes at the Oracle Technology Network podium in the exhibition area. (L) Jose Pereda and Barcelona’s own David Peñuela and Jose Antonio Lorenzo from Lhings Connected Table
IMG_2165

 

 

Cameron Purdy’s gives the Java EE speech at the keynote with Duke’s Choice award winner, Mohamed Taman (r) and Red Hat’s Mark Little.
IMG_2126

 

 

One of the best thing at JavaOne was the Null Pointers band, which had musical instruments and equipment sponsored by JFrog.
Every year at the conference, the Java Community Process, who managed hundreds of standards proposals and specification for Java, throw a lavish party. For several years, it has taken place at the top floor restaurant of the Hilton hotel. This year they hosted the Null Pointers band.
IMG_2181

 

 

Here is a photo taking during the performance of the band at JCP Party on Monday night:
(L) Geert Bevin singing duties and Jim Weaver (Lead guiter), the drummer is Mattias Karlson
IMG_2192

 

 

The amazing Frank Greco, who knew?
IMG_2194

 

 

This is Nicole Scott from Oracle’s Outreach program for JUG Leader and Java Champions at the JCP Party.
IMG_2218

 

 

Nor is this one my car.
IMG_2575

 

 

The Oracle Appreciation Event really outdid themselves this year with the amazing Aerosmith.
IMG_2346

 

 

If these rockstar pensioners can keep going in their mid-60s that surely this is inspiration for us oldie rockstar programmers, developers and designers. We just have to keep rocking those programs no matter the business. We can keep on deliveries, and some of us will have no choice to do so now in order to pay off the flipping mortgage!
IMG_2335

 

 

We salute you too Steven Tyler!
IMG_2328

 

 

I crept up the stairs to perview the PartyONE party! This was an night time event on Tuesday organised by four companies: Atlassian, Tomitribe, Zero Turnaround and HazelCast. It was also a winning combination in second place to the JCP Party.
IMG_2252

 

 

This photo has the wrong camera setting, but you make out the British contingents in the house. (L) Richard Warbarton and (R) David Bryant
IMG_2214

 

 

Michael Hendriks (L) is chatting with Ixchel Ruiz (R)
IMG_2277

 

 

Mark Hazel (L), who organised for the first time this year Devoxx UK, is sitting and relaxing at PartyONE.
IMG_2260

 

 

It was James Gosling again at the JFrog stand during the conference. Fred Simon, a regular attendee to the Java Posse Roundup, is in the middle.
IMG_2286

 

 

The bar staff hipsters running the bar at PartyONE
IMG_2265

 

 

Arun Gupta (L) and Adam Bien (R), taking a picture of them seating together of me taking a laying down photo of them at the Thursday keynote. Simon Ritter left of Arun is always trying to be so cool, because he is.

 

 

Here is another shot, but Mark Reinhold was tied up to business matters
IMG_2431

 

 

Another shot of the other members of the Null Pointers, here is Ed Burns as the band’s keyboardist. JFrog said that the instruments have stored for safe keeping for next year’s stint.
IMG_2299

 

 

Super Frank Greco
IMG_2311

 

 

Here is an example of JavaFX foreign exchange service written by Celertech. Oh! The opportunity that was missed in the time frame of 2010. If it is good idea then somebody else will implement regardlessly and so well done Celer technologies.
IMG_2447

 

 

Paul Perrone of the Perrone robotics, who one authored a huge tome of book, 1000 pages or more, of J2EE 1.4 on the benefit of Prentice Hall publishers, presents on cqr automation, robot car contraptions adaptors and hazard detection technologies. He also dumped a video down about the research being conducting into driverless cars and embedded systems programming written in Java.
IMG_2502

 

 

Here is a shot of the Liquid Robotics sail craft.
IMG_2284

 

 

Johans Vos and RoboVM has just announced, in this picture, a joint venture to bring a JavaFX port of the harder parts of the SDK to iOS and Android.
IMG_2461

 

 

IMG_2277

 

 

Java Champions in arms: Ladies and gentleman, I give you Mr. Griffon, Andres Almiray!
IMG_2550

 

 

Finally, I get to have a photo with the Chief Architect of the Java Platform, Mark Reinhold, who is the man with the biggest job, modularisation of the Java Development Kit and Runtime Environment. Cool!
IMG_2553

 

 

Mobbed by the fans!
IMG_2546

 

 

Mark Reinhold on the first keynote on Sunday, which was the one that was horribly cut short, because the presentation ran out of time!
IMG_2149

 

 

Brian Goetz is talking about JDK 8 and the Lambda expressions with parallel Streams, which declaratively increase the concurrency of algorithms, providing you have programmed the function blocks correctly. In other words, parallel streams, are still not the magic bullet, they can help with readability.
IMG_2153

 

 

Adam Bien contemplates some pressing issue or two during the Thursday keynote in the Marriot Marquis.
IMG_2408

 

 

Andra Keay manages the Silicon Valley Robotics takes the stage at the keynote.
IMG_2425

 

 

Tori Wieldt and Yolande Poirer lead out the Duke’s Choice awards winner for 2014
IMG_2489

 

 

The Java Desktop Lunch part 1
IMG_2563

 

 

The Java Desktop Lunch part 2 – holding court was Jonathan Giles, who currently handles the invitations and the organisation of this unique JavaOne event.
IMG_2567

 

 

The Java Desktop Lunch part 3 – who do recognise in the photograph and in the background. Some clues, Carl Dea (L), Stephen Chin (far L), who else?
IMG_2560

 

 

This is Doctor Deprecator a.k.a Stuart Marks (L) checking up on Ed Burns (R) for Java Specification responsiveness
IMG_2588

 

 

This is Mario Torres who was also the Java Desktop lunch
Untitled

 

 

Shout outs

In no particular order

  • Cesar Hernandez
  • Carl Dea
  • Roberto Cortez
  • Heather Vancura
  • Yoshio Terado
  • Sean Phillips
  • Nicole Scott
  • Beverley Pereira
  • Aslak Knutsen
  • Johan Vos
  • Mark Heckler
  • Mark Little
  • Stuart Marks
  • Amelia Eiras
  • Mario Tores
  • David Blevins
  • Gerrit Grunwald
  • Chris Richardson
  • Daniel Byrant
  • Ed Burns
  • Josh Juneau
  • Oliver Gierke
  • Mark Reinhold
  • Mario Torre
  • José Pereda
  • David Heffelfinger
  • Bruno Borges
  • Jim Weaver
  • SooYeol Yang, CTO, Java Champion
  • Fred Simon
  • Brian Goetz
  • Lucy Carey
  • Adam Bien
  • Tim Boudreau
  • Kazuyoshi Kamitsukasa
  • Masahiro Yoshioka
  • Tonya Rae Moore
  • Kito Mann
  • Arun Gupta
  • Stephen Chin
  • Kirk Pepperdine
  • Alex Heusingfeld
  • Jim Laskey
  • Fabrizio Gianneschi
  • Mark Hazell
  • Sven Reimer
  • Dierk Koenig
  • George Saab
  • Brian Goetz
  • Todd Costella
  • Otavio Santana
  • Yara Senger
  • Ixchel Ruiz
  • Vinicius Senger
  • Andres Almiray
  • Ben Evans
  • Alexis Lopez
  • Dick Wall (Typesafe Party)
  • James Gosling
  •  

     

    If I missed somebody real, I am so sorry.

     

     

    +PP+

JavaOne 2014: Conferences conflict with contractual interests

October 8th, 2014 Comments off

 
The Duke’s Street Cafe where engineers can have a hallway conversation on the street.
IMG_2176

Incompatible with contracting

 

Photo License

My photos are licensed under Creative Commons License 2.5.
You must include the license. You must attribute the source. You cannot use my work, the source for commercial activities. You cannot edit or derive the source. For more information read the license or for enquiries contact me.

My eleventh JavaOne conference (11 = 10 + 1, 2004 to 2014) was splendid. It was worth attending this event and meeting all the people involved in the community. Now here comes the gentleman’s but. My attendance came at some cost beyond the financial obvious, hotel and plane ticket. It appears going to conferences are seriously incompatible with the motivations around business of contracts. One cannot have freedom and escape obligation to professional work. Despite, all of the knowledge that we have learned as professional developers, designers and architects, if your client requires you to be on site and you are not around, it can be taken that attending conferences like JavaOne 2014 in certain minds is taken as an illustrious and salubrious adventure for your own benefit. On the hand this is fair assessment, a client pays a contractor to be available, around for a burning need, and it is balanced with team work, morale; and deadline and commitments. At the back of mind, there are two schools of thought. One way is not to care too much about clients, but then a contractor will find they have a devalued reputation and lack of repeat business. The other way is never to take time off or away from project work for a client and then rely on contracts ending or finishing exactly before or after a major conference like JavaOne.

So what to do in 2015? How can I resolve contracting and conferences? I believe the answer,  obviously, to reduce the conferences that I actually attend to the minimum that I can unfortunately. It means that I will consider whether JavaOne 2015 is going to be viable or not.

 

 

The keynote question and answer session with a Twitter hashtag, #j1qa, which obviously has long expired, featuring John Rose(far left), James Gosling (inner left), Brian Goetz (middle), Brian Oliver (inner left) and Charles Nutter (far right). The chair was Mark Reinhold.
IMG_2399

 

Ten years ago, when I worked investment banking in the good times. I could pretty much rely on 6 months J2EE contracts lasting as long as that term. At Credit Suisse bank, I managed six month contract renewals at a breeze as long as I perform and finished project work on time. In 2014, the climate is more restrictive, the pressure on high profile projects and the uncertainty of business means that contracts lengths are typically 3 months to start with and that cannot guarantee renewals, and if you think that permanent employment solves the dilemma then you are incorrect.

A contract is a temporary and by definition that implies a contractor is treated as a temporary resource, but a permanent person can also be removed at short notice in the United Kingdom, if you have less than two years with the employer. When you think that the typical IT employment last about two to three years before somebody changes job, then you can see even permanent people have to be extremely careful with their holiday planning and entitlement. Yes you are entitled 25 days or more, but if you fail to give forewarning and mess around with the program delivery managers project plan too much, don’t be surprise if a ton of bricks eventually comes tumbling down.

 

 

A picture with the Java Mascot to complete the collection. I wonder if Duke has a sixth sense and if she/he/it can sense the trouble ahead lurking in my subconscious.
IMG_2273

 

Frustrating as it is, and still more than year from the next JavaOne conference, the next one is late October 2015, from Sunday 25th to Thursday 29th, I can’t say with real confidence that I will be there. I will, of course, submit some Calls For Papers, when the time approaches, but it will be dependent on client requirements if I can attend or not. If I do attend, then I probably cannot stick around California and see friends. Even for the UK and European conferences, I can only see trouble ahead with more conflicts. I already decided that I will not be at Devoxx in Belgium. There are also issues when the conference planning is late, the confirmations are validated less than three months before the event, project managers are already looking at their schedules for resourcing and if a contractor is going to disappear, then they are more easily replaced with somebody who will be around to fix their present pain, which is what work is more often than not about. I have found that client’s typical do not have the attitude of kindness, it is about the budget and time. That’s is the way the business world is running now, and the only conference speakers who can give up the time as the developer advocates, the people who paid to speak or promote at conferences. Independents are finding it harder and there will be no improvement in this situation. I just can’t find seem to find that benevolent, technology loving and business client, who understand me for what I am :(

 

 

These guys and gals at Alderbaran electronics with their NAO robots are inspirational. This is photo from the JavaOne demo grounds and exhibition.
IMG_2295

 

 

+PP+

Addendum: Earlier this year, I attempted a campaign: ITMustChange2014, I think it definitely failed in this regard.

JavaOne 2014 in Depth

October 8th, 2014 2 comments
“Sometimes life is going to hit you in the head with a brick. Don’t lose faith.” Steve Paul Jobs

I attended many more sessions at  JavaOne 2014  than I would have if I had to perform lots of sessions. This circumstance allowed me to relax, to put my feet up as it were. I spoke to many developers and influential people about their future Java prospects. I will give you my opinions on the sessions, I attended.

 

 

James Gosling on the Thursday keynote
IMG_2515

 

Monday

 

Photo License

My photos are licensed under Creative Commons License 2.5.
You must include the license. You must attribute the source. You cannot use my work, the source for commercial activities. You cannot edit or derive the source. For more information read the license or for enquiries contact me.

CON3015 Java EE 8

This was a packed session. It was the my first session of JavaOne 2014, I had to argue with the door entry to let me in, because although I was pre-enrolled, they had started to let the people who had not enrolled already into the room. In a room of around 300 people, it demonstrated to me, that they still cared enough about enterprise Java. Linda DeMichel confirmed the stuff that we knew already such JSON-Binding and JCache specifications will be part of the Java EE 8 standard. The speaker also covered in details the Java EE 8 survey, which Oracle sent up earlier this year.  It appears the Model View Controller specification is an attempt to standardise modern practice around building JAX-RS applications RESTful services and standardising the practice of using a JavaScript client side. MVC 1.0 will allow Java EE engineers to add service endpoints to properly support abilities to AngularJS and Backbone JavaScript functionality. Linda DeMichel is also the Specification Lead for Java EE 8. She went to detail over the upgrading the Servlet 4 to HTTP 2.0 standard, interceptors and events in CDI 2.0, and harmonising dependency injection approach in the sub specifications like JAX-RS and WebSocket. Part of the solution could be break up of CDI 2.0, so that intercepters and events handling is divided from the core. DeMichel mentioned that serious thought was also required for adding cloud specific configuration to Java EE 8. Whilst the Java EE 8 is not about standardising the cloud as a Platform as a Service, developers clearly wanted the means to declarative specify resources and administrative objects from source code. The work of the Java EE 8 had already began, she said, it will be about two years to achieve agreement on the new specification.

CON1993 JavaFX 3D: Advanced Application Development

Selfie clockwise from 6pm: Andres Amilray, Ixchel Ruiz and Marcus Eisele.

 

 

Untitled

 

 

Richard Bair and Jasper Potts demonstrate their latest embedded Java and Java FX project involving automation of car, which is not on stage for safety reasons.
IMG_2114

 

 

I will be honest and say that I have not written any JavaFX code for a very long time. Maybe the last time, I fired up that ScalaFX Video Cube was about 2 years ago. I always felt that JavaFX had a specialist niche interest in the world. So I was intrigued with the work that other engineers had attempted with JavaFX 8 in my absence. This session was a 3D demonstration show case, which was chaired by long term advocate Jim Weaver. I was not disappointed, JavaFX 3D is perfectly usable for complicated modelling work. Sean Philips, consultant at Ai, demonstrated the visualisation of chaotic orbits around the moon Titan, using astrophysics data. The idea was to find the most stable orbit for a spacecraft and it helped to have an appreciation of gravity wells in order to comprehend the solution, but clearly the third dimension helped considerably! The thousands of orbits could be tracked and spun on the screen and clearly it was easier for user to decide on a plausible stable orbit. Jose Pereda from Spain demonstrated a leap motion controller connect to a Mac, and using it was able to control a virtual hand in 3D space. He wrote the software interface himself and was able to pick up a virtual ball in 3D space, as he closed his right hand side, the virtual hand would also close. Pereda could even detect movement in individual fingers. I promised myself again to revisit JavaFX and experiment again in 2015.

 

 

Sean Philips demonstration for Java FX 3D of finding a stable orbit around Titan amidst the chaos
Untitled

 

 

After his terrific JavaFX 3D demo and presentation, Sean Philips chats to @svenNB
Untitled

 

 

Easily the most interesting and low cost demo of JavaFX 3D by Jose Pereda with a Leap Motion controller.
Untitled

 

CON2341 Enterprise JavaFX

Hendrik Ebbers gave this talk on Enterprise JavaFX and I was in the session for most of the talk before bailing out before the end. Ebbers informed us about the way Java FX applications can communicate with the Java EE and another server using the Task API, which allows developer to spawn background threads outside of the display and event handling GUI threads, in order to execute processes that would otherwise block the graphics processes. No user expects to see a spinning hourglass or bouncing beach balls, whilst there spreadsheet is blocked. So this information is very useful for developers. The speaker moved on asynchronous tasks to other areas including the Open Dolphin project, which was mildly useful. It was not clear if the framework was all in and you could use just part of it. I expected more information beyond REST and JavaFX, what about JMS queues or may be directly using RMI using EJB Client? Whilst I found the content fascinating, the delivery was disjointed at times. Nevertheless there was useful info.

BOF JavaOne 2014 Developing Java EE 7 Applications with Scala

So this BOF was my own talk. I will let other folk comment on this session. All I will say that the people who did attended were interested in Scala and Java EE 7 integration. I was surprised by the interest, because the BOF was late in the evening. I had some good questions to the end of the talk. The demonstration went very well.

 

 

David Blevins is talking about Java EE Game Changers
IMG_2243

 

 

The Null Pointers in action at the Monday night, JCP party.
IMG_2183

 

 

Tuesday

CON3698 Java on iOS? Yes, You Can!

Henric Mueller and Niklas Therning presided over this packed session. RoboVM translates Java byte code into native ARM or x86 chip instruction code and therefore resultant machine code avoid interpretation. This is called ahead-of-time compilation. RoboVM provides a Java to Objective-C bridge that in order to allow developers to write non-portable code that uses the native iOS CocoaTouch APIs. This means that common Objective-C objects can be used just like any other Java object. RoboVM claim that it is easy to share code between desktop and mobile application by following their model. Muller talked about the standard JDK Java packages, which are java.lang.* and java.util.*. These libraries are based on the work that they did with the Android runtime. The current toolkit, sadly, is based on Eclipse toolchain and Maven, so Gradle and IntelliJ and NetBean developers have a harder time to configure the RoboVM seamless. The talk finished well ahead of time, and the audience in the room asked plenty of searching questions on the RoboVM capabilities. At the moment, RoboVM does not support JavaFX media or JavaFX 3D, because no work has yet been applied to rasterisation and rendering language, shaders for the GPU. These limitations mean that the true cross platform for mobile devices and desktops are almost there. There is however a workaround to access OpenGL and media video and audio features using the CocoaTouch bridge. Hopefully, Oracle and RoboVM and a few of the expert top JavaFX coder may be able to help RoboVM push even further with their breakthrough effort.

 

 

Mark Reinhold presents at the Sunday JavaOne keynote and 2015 will be twentieth anniversary of Java, when John Gage of Sun Microsystems announced the Java 1.02 on 23rd May 1995 at the Sunworld conference.
IMG_2144

 

CON2450 Lessons Learned from Real-World Deployments of Java EE 7

This was a talk by Arun Gupta , which covered three industrial deployments around Java EE 7. The first these was a description and overview of a system that Mohamed Taman (Duke’s Choice winner 2014) architected and developed. Taman built an application Union Nations High Commission for Refugee (UNHCR) that just used the standard Java EE 7 API and almost nothing else. The system relied on PrimeFaces JSF plug-in and JQuery for the view technology. The second project was a Red Hat sponsored community project called Miles 2 Run. So it is a bit of cheat, I suppose, as there are no commercial or volume business customers there. The third project was Tipi Camp (tipi.camp), which allows proprietors and owner to have SaaS campground management for about  £1/€1 per day. Both of projects relied PrimeFaces, Batch API, Concurrency Utilities, WebSocket and the common attractive standard in Java EE 7 like JAX RS, JPA, Servlet, EJB and CDI.

One could have hoped for more businesses to be brave about Java EE 7 adoption, but I suspect the lack of commercial adoption has to do with the current application servers available: GlassFish 4.1 and WildFly 8.1 are the only two. Until this conference, GlassFish has little commercial support and WildFly just was too new to fully rely on Red Hat. Oracle’s own Web Logic Server has some Java EE 7 features already, but it will not be fully certified until 2015. If Tom EE were to cross the finishing line on Java EE 7 certification line then that it might make the situation easier for businesses to make the leap of faith. Also I think that many people have the wrong idea, still, about what is genuinely heavy weight and light weight, and they still tuned in to Rod Johnson’s devastating criticism of the old J2EE, circa 2002-2007. In fact, the recent popularity of service configuration management technology, Chef and Puppet, and the mentality of high scalable web performance site, “Prepare for failure. Let it fail, let it burn or burn it, then rebuild and restart; or restock”, alters the old argument and renders it redundant.

CON6759 Java EE Game Changers

This was the first talk that I saw with David Blevins, the CEO of Tomitribe. I have seen David before at Devoxx UK in 2013 talk some of these topics, particularly Message Driven Beans and the Java Connector. In this session, he concentrated on embeddable containers and testing. He covered a brief history of the Java EE standards and illustrated how we moved from XML deployment and overkill in metadata configuration to the Java EE annotations that we have now. David wafted the flag up again for meta annotations and stereotypes. I think we need the ability to have meta-annotations in Java EE 8 in order to achieve better readability and flexibility of turning the requirements into working code. He also enthuse over CDI events in order to decouple model and layers in Java EE enterprise application.

David Blevins always has a lot of content and many opinions that presentation time allows, he is worth listening to and watching in my opinion.

Wednesday

CON6650 Understanding Java Garbage Collection

I had penned this session as possibility, but there was no chance to actually attend it at 8am. Sorry. The great thing is that I can pick Gil Tene’s presentation later in the year on Parleys.

CON2228 Packaging Your JavaFX Apps for the Mac and the Mac App Store

Happily, I did make into the conference for this interesting talk by David Ferrin and David Dehaven. This is the session that explained in technical detail how to write a Java FX for the Mac App Store. It is increasingly important, because the trend for even desktop applications looks like sandbox application environment. Also, consumers are getting used to the idea of installing applications from a dedicated store. Happily, JavaFX Mac OS X platform port has supported extensions, properties to integrate a Java application to the native operating system. So the slides for the talk include advice for setting up the menu bar and rendering anti-alias views, which are obviously important for retina laptops. The speakers also gave advice to creating resources for the Mac OS X application, including pixel sizes and dimensions for the application icon and graphics and finally they had advice for getting the application through the store to the other end. Developer will need OS X Yosemite or the last patch update for Mavericks and be signed up to the Apple Developer Program. The answer is no, you can reliably build Mac App Store applications on a Windows or Linux machine, in fact they said the developer agreement expressly forbids it. I thought this was a really helpful session, especially for JavaFX application writer who not yet prepared to go mobile (with RoboVM) and just want to test the waters with desktop applications first.

CON6782 Apache TomEE, Java EE Web Profile, and More on Tomcat

This was the second of David Blevins talks of the JavaOne that I attended. To be honest, I am not sure that I learn more personally, however the material content was definitely useful for new Java EE people. This session was particularly useful for people who want to develop against Tom EE 6, and I also think there are many organisations out there who will not upgrade to Java EE 7 to GlassFish or WildFly, but the impedance mismatch to Tomcat is a lot lower. As this talk was live coding, David demonstrated testing using Arquillian framework using the Tom EE server. He also talked about the web profile and how Tom EE extends it with support for additional APIs such JAX-RS, Bean Validation, JSF, CDI and EJB.

 

 

My first book Java EE 7 Developer Handbook was available at the JavaOne Bookstore.
Untitled

 

 

CON1690 Sensor Networks with Java SE Embedded and Java(FX)

Beverley Pereira receives a signed copy of the Java EE 7 Developer Handbook
Untitled

The last technical session of the day was Gerrit Grunwald and it was very impressive. Gerrit was a Java FX developer well known in the community and used to work for Canoo, but now is a developer advocate at Google. He is very much in the Internet of Things, and playing with embedded devices. His talk at JavaOne was about home monitoring, which is not the same as automation. He has wireless connected his house with little units called XBEE, which consume low battery life and have a range of sensors, such a temperature. XBEE have WIFI transmitters, so Gerrit distributed nine of the cards around his home including his garden shed and set to work building a Java application to monitor the temperature every 5 minutes or so continuously. He developed the JavaFX 8 user interface for the main pub, which is actually very attractive, and looks like a heat map. Of course, he has the code running on a tablet as well as a desktop. This presentation showed another interesting push for the IoT movement.

 

 

Gerrit Grunwald graphical visualisation of the temperature of one of his XBEE controllers as a polar coordinate heat map. He programmed this against JavaFX on a Raspberry Pi and, of course, it works perfectly fine on a desktop machine.
Untitled

 

 

XBEE are low battery powered Arduino micro controllers with RF connectivity including WIFI. Gerrit Grunwald presents his talk on these sensors.
Untitled

 

 

Thursday

CON1740 Scala Macros: What Are They, How Do They Work, and Who Uses Them?

Unfortunately I skipped Adam Warski talk on Scala Macros, so I can’t tell you much about it. I was walking back to Hilton with Mark Heckler, who was going to the Java Desktop Lunch. I tagged along with notable leaders in JavaFX and Java embedded devices.

CON1766 Reactive Programming for Java Programmers

Sadly, I locked out of this session, because it was full. Yes again, I had pre-enrolled, but there you go, they say the rules are the rules. I actually arrived 3 minutes after 1pm. It was time for hallway conversations of which there were many. I do remember going back to the speaker room to chill.

CON11532 Testing Java EE Applications with Arquillian

Reza Rahman gave this talk about testing Java EE applications. Of course, Arquillian is featured in my first Java EE 7 Developer Handbook. It really does help to validate the operation of CDI, EJB, Servlet, JAX-RS and WebSocket endpoints inside the container. Arquillian is not a unit test framework rather it solves the problem of developing practical integration tests. Reza Rahman covered most of these features. He also touched on Graphene and Warp, which are Arquillian module extension to web driver testing and client and server side testing. Arquillian can also help improve database integration testing with enterprise application with another extension. I think the speaker presented well enough on a complex topic.

CON1914 Map, Flatmap, and Reduce Are Your New Best Friends

 

 

Chris Richardson chats with Ed Burns, the Servlet 4.0 and JSF 2.3 specification lead
IMG_2583

 

 

The final session of JavaOne 2014 was Chris Richardson overview of the basis of functional programming. The map, flatmap and reduce are operations for manipulating data (immutably) in all functional programming language. Richardson presented the behaviour of these operations in Java 8 with Lambda functions, expressions and the Stream Collections API. He then pointed out the limitation of Java as a language and crossed over to Scala for other examples. A good example of this was the explanation around the optional types in Java. In Java, you can also avoid null pointers, but Scala, as the speaker said, options are on steroids through the language support for pattern matching and sugaring around foreach and for expressions. Overall, it was a good talk and inspired me to ensure that I play with Java 8, Lambdas and Streams in 2015 even though I am now a full time Scala developer.

 

 

This photo was from the Sunday, GlassFish Users party at the Thirsty Bear with the party from Japan: Kazuyoshi Kamitsukasa and Masahiro Yoshioka from the mighty Mazda Motor Corporation.
Untitled

 

 

This photo was also from GlassFish party. From L to R Bruno Baptista (Portugal), Roberto Cortez (Portugal) and Bruno Borges (Brazil, Oracle). Bruno also came to my Developing Java EE Application with Scala talk. Thanks!
Untitled

I also think this photo is from the same GlassFish user group party. It features most of Tomi Tribe people including Amelia Eiras and David Blevins.
Untitled

 

 

Devoxx 4 Kids on stage at the keynote
IMG_2103

 

 

Here is another perspective on the Null Pointers
IMG_2209

 

 

Ben Evans (l) and the other half
IMG_2555

 

 

Adam Bien is on stage talking about where Java EE 8 will concentrate next, including Java collections, and lambda expressions.

IMG_2484

 

 

+PP+

Retracing JavaOne 2014

October 8th, 2014 Comments off

 

Photo License

My photos are licensed under Creative Commons License 2.5.
You must include the license. You must attribute the source. You cannot use my work, the source for commercial activities. You cannot edit or derive the source. For more information read the license or for enquiries contact me.

JavaOne 2014 is my ten year anniversary of attending this conference in San Francisco, California, USA. I remember when I first stepped off the plane in the terminal, walking through the area, collecting my luggage, getting the cab to then the distant Metropolis Hotel in 2004. I didn’t know at the time that the low cost Metropolis was probably not the best for comfort. I spent only a week in the city, arriving on the Saturday and flying out the next Saturday morning. In those days, JavaOne, ran from Monday to Friday. It was great fantastic experience to witness the last vestiges of Borland, before the company disappeared, and I met innovators in the industry. The most famous person that I respected at the time was the one and only, Craig McClanahan, who created the Struts 1.0 web application framework, which sorted out the problem of spaghetti code in JavaServer Pages. He also created and helped the Apache Tomcat project. My goodness, if we had #selfies back then, I could be looking at them now.

Peter Utzschneider, Vice President Java Product Management

IMG_2096

Why did I ever decide to attend JavaOne? You, the regular reader of the blog, perhaps already know this story. In 2004, I opportunistically created a Java User Group, embryonically named, The London Struts Networking Group, which over the next couple of years transformed to the Java Web User Group. A decade ago, everybody, any Java enterprise person, who was anybody, was subscribed to the struts-user@jakarta.apache.org, including some big Apache names, Don Brown, Wendy Smoak, Naill Pemberton and many others. I asked on that list in May 2004, sent an email to the subscription list, if anyone in London was travelling to JavaOne 2004 and secondly, if there Struts Users in London who wanted meet up in a pub in town. Actually, I thought many people from London had the chance and reason to travel San Francisco. It turned out that I was the only person going to California, because raising the funds, negotiating the holiday leave with your boss were (and still is) a substantial hassle. People responded to call out for an impromptu meet-up at London’s Waxy O’Connors pub (sadly rebranded and no longer exists) we had a more than dozen people turned on a weekday evening. Some people did not know who I was and could recognise me by face, let alone hear me.

So much has changed in a world, there were no prevalent social networks in 2004. We did not have Twitter, Facebook and Google+ and yet we managed to organise around community. It was thanks to a certain Duncan Mills that the burgeoning JAVAWUG held on for a couple of years, before we found at home at Skills Matter.

The present day, Hotel Metropolis

IMG_2614

Closed off Howard Street at the Moscone Center

IMG_2159

I remember my first JavaOne in 2004 very fondly, because it was there I saw a couple of people that were well respected in the community: Kirk Pepperdine, Manfred Riem, Bruno Souza, Cathy Sierra, etc. The community was sparsely populated across the globe, but it was much bigger than I thought thanks to a great empresario and connector, Aaron Houston. I saw many talks and sessions, I was exhausted from the Moscone Center, travelling up and down, my feet were sore. The Borland party was groovy, The Thirsty Bear meet equally illuminating. I had been contracting professionally for about 18 months since the stock market explosion, and therefore, I self-funded the hotel, plane and conference ticket. The session started at 9am and then there late night BOFs that finished at 11pm at night! It was some show, very busy and exciting to see the American side of the Java. It was so worth it to be there then. What happened next? We know the answer, it was his-story (or her-story).

Chinatown, San Francisco
Untitled

In 2004, I was less experienced writer, just actually finding my feet and voice. I was surprised that I swore a lot, which was disgraceful. Hopefully, I have rained that behaviour in. Struts 1.0 was king, the community was less diverse than it is now and everyone felt closer to the cause. Nowadays, your preference might be technology: Scala, Clojure and Groovy; mobile, desktop and server; functional or object oriented; iOS or Android and so on. The common root is the Java Virtual Machine and the platform that ties us all together.

My celebration of 2014 starts with sore point. I almost did not make it to San Francisco, I submitted a few presentations talks, all were rejected, because the abstracts were not clear enough to the reviewers. You might be surprised, coming from a book writer, but this is down to me, my fault and mine alone. I luckily had a chance to talk in BOF session and hence I had the viability to fund the operation. (I will say something about the root of all evils in a subsequent article.) Ten years ago, I was a relatively new IT independent contractor on my first stint. Now, I am an independent contractor, again, and I asked myself what has changed? Hence, I started to write this set of articles to establish a deeper hidden meaning and understanding. I have reached certain conclusions about conferences, including this JavaOne 2014. There is no need to be worried, now, because I thought that this JavaOne 2014 was one of the best for getting inspired for a while and one of the reasons is that I had only one presentation that was early in the week, then I could enjoy the attending the conference like an attendee. I was a complete attendee in 2004, I knew Struts, Servlets, JSP, bits of J2EE, EJB, Applets, Swing and Java SDK 1.4. I was no Java Champion, no Alumni, no special one, just a newly minted fledging JUG Leader and yet this was just the beginning of a special journey.

To be continued.

PS:I searched the Internet and found copies of my old blog on JRoller; Struts Birds-of-a-Feather 2004

This is one of my favourite JavaOne 2014 Selfies. This is Fabrizio Gianneschi @javabird

Untitled

Struts Birds-of-a-Feather 2004

This is not my car

IMG_2596

Duke and I

IMG_2273

Here is a huge clue to the overall theme of this JavaOne 2014.
Jose Pereda (https://twitter.com/JPeredaDnr) demonstrates the Leap Motion controller manipulating a digital virtual hand in JavaFX 3D space.

IMG_2166

+PP+

JavaOne 2014 :: OPEN Music Video

October 2nd, 2014 Comments off

Wow! I just realised that the last time I wrote a blog entry was in the Summer, early July. Now it is a September, I am writing this time at JavaOne 2014 in San Francisco. The delay is blamed to my life a contractor. I arrived in California on Saturday and went to the introduction keynote on Sunday. We were pleasantly surprised when the video started playing on the big screen. Here we went then. I was very honoured to be feature in the promotional music video. This two minutes of dance auto-tuned hilarity, frivolity and pleasant nonsense that takes an amusing light-hearted twist on the learnings of a professional developer and the Java community. A lot of the content in the video was crafted from the Devoxx UK conference and driven by the Oracle Technology News team. It features several Java Champions, JUG leader and many notable Oracle folks like Stephen Chin.

 

Peter_Pilgrim_Java_Music_Video_Capture_2014_500x283

 

 

Thanks for the OTN and here is the Welcome to JavaOne Conference 2014 OPEN Music Video:

 

 

 

Have a few laughs, have fun, grab those fluorescent party flares and bust a move!

 

 

+PP+ 2014

PS: The truth is, indeed, stranger than fiction. Through a few tears and struggles from everyone, it proves that Java is worth it.


Is TDD Dead Or Alive?

July 10th, 2014 Comments off

This blog post is for those of you who are unaware that there is a major debate in contemporary software development happening now, today. People have been wondering about the value of Test-Driven Development (TDD) for a long while, but it was not until David Heinemeier Hansson of 37 Signals  posted a blog article on St. George’s Day (23rd April 2014 and a significant day personally for me) called “TDD is Dead. Long live testing”. It started an unstoppable momentum of discussion into what is now a heated and controversial topic. So I encourage you read his article, first, if you are an experienced software engineer and then watch the videos.

After this article was posted to the Internet, Heinemeier Hanson, Martin Fowler and Kent Beck followed up with a series of Google Hangout recordings, in May and June, each one was about 30 minutes long. The last edition (part V and VII), which was full hour long was very revealing, because it was a question and answer sessions from the community and therefore extended the discussion to the wider audience. If you have 3 hours of free time, instead watching another Hollywood movie or re-runs of World Cup football, then it is well worth your time to listening (and/or watching) the entire series to understand the debate and different points of view.

As for my own opinion on TDD, it has a place in my toolbox like another hammer or a screwdriver, and it should be treated as such. To be a TDD practitioner requires skill and discipline; and the knowledge to believe that it is not appropriate in all situations. I have some sympathy with Heinemeier Hansson’s frustrated view, “Most people cannot just leave good ideas the f**k alone”. I witnessed a certain zealotry in a couple job interviews a few years ago, when interviewers used the technique like an officer using a truncheon to beat somebody with. If you didn’t write code in a correct view for the client, you were rejected. I raised suspicions in my head about the variations of different testing styles across different organisations and sectors. In the end, I have suspected that you do not have write code test first all the time, with the plethora of unit testing frameworks out there such JUnit, ScalaTest, Scala Specs. It is more important to have the ground level, there must be tests in the application and system software that exercise the customer’s acceptance requirement and produces a Minimal Viable Product. This is definite the road to follow.

PS: The first video in the series, “Is TDD Dead?”, starts here.

+PP+

 

Categories: Agile, Design, discourse, Education, technical, testing Tags: