Oracle Blog

Reza Rahman's Java EE/GlassFish Blog

Monday Feb 16, 2015

CodeMash 2015 took place 6-9 January in Sandusky, Ohio at the exotic Kalahari Waterpark Resort. With another sold-out year, CodeMash is quickly becoming one of the largest developer conferences state-side. It has it's roots in .NET, but is making a concerted effort to better attract a Java audience hence it was important for me to support that effort. This is especially so with Columbus JUG leader Chris Judd leading the Java track and Cleveland JUG leader Scott Seighman speaking. This year it attracted a decent section of the Java crowd. I would say it was better than last year but still has room for much improvement, especially with regards to submissions from Java centric speakers. Topics covered included .NET, methodology, JavaScript/HTML, mobile, cloud, DevOps, Hadoop, NoSQL, Docker, Java SE and Java EE.

I started the first day of the conference with one of my brand new talks this year titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here:

Thus far this new talk seems to be quite popular and well received. I am sure to present the talk again soon.

In the afternoon I delivered another one of my very popular talks on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house with very good feedback afterwards. The slide deck for the talk is posted below:

One of the goals of this talk is actually to give you the starter code for exploring this sort of architecture. The demo code is posted on GitHub: https://github.com/m-reza-rahman/javaee-javascript. Do give me a shout if you need help getting the demo up and running but it should be very straightforward.

The second and last day of the conference in the afternoon I delivered our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here:

Do note that I've now added detailed speaker notes available to you in the downloadable PowerPoint deck. This means that you could deliver the talk yourself if you were so inclined. Since it was towards the end of the conference attendance was sparser but still satisfactory.

All in all, this was a good trip worth doing again. If you are a Java centric speaker, do consider CodeMash as a future destination.

Tuesday Feb 10, 2015

Java2Days 2014 was held on November 17-19 in Sofia, Bulgaria. It is far and away the largest Java conference in the Balkans region and now perhaps one of the most important conferences in Europe as a whole. Far beyond the modest borders of Bulgaria it seemed to increasingly attract audiences from as far as Serbia, Bosnia/Herzegovina, Albania and Macedonia. This was another great year for this rapidly growing, vibrant event. It attracted a host of international and local speakers including Arun Gupta, Geertjan Wielenga, Roberto Cortez, Ivan St. Ivanov, Andy Gumbrecht and Andrew Lombardi. Topics included Java SE, Java EE, HTML5/JavaScript, mobile, OSGi, IoT and the cloud. If the conference is not on your map already, it should be. It is simply inspiring to see a youthful, energetic Java community rise in this once very tumultuous, repressed part of our world.

One of the most unique things about Java2Days that one should appreciate is that it is an event run entirely by women - the incredibly capable trio of Yoana Ivanova, Iva Abadjieva and Nadia Kostova (left to right in the image below). It is the only Java conference that I know of for which this is true. Iva's husband Emo Abadjiev (inset, bottom) and Bulgaria JUG leader, Forge commiter Ivan St. Ivanov (inset top) also contribute many hours of hard work into the conference. I am very proud to be able to call all these passionate, down-to-earth, genuinely good people my friends and gracious hosts in Bulgaria. Other than now Java Champion Yara Senger of The Developer Conference (TDC) Brazil, Java2Days was the first international conference to invite me as a speaker while I was still an independent. In fact I feel very honored to say that I was the first and last speaker of the very first Java2Days a few years ago. They have been very kind to invite me back every year since. Though I have not always been able to accept the invitation largely due to personal scheduling reasons, I am very glad I was able to speak at Java2Days one more time this year.

My first talk of the conference, right after the opening keynote was our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here:

The talk was packed and was very well-received. My hope is that we will see greater participation in the Java EE 8 JSRs from the Balkans. The Bulgaria JUG is already active in OpenJDK thanks to Ivan. After me Arun delivered a very popular talk of his titled "Nuts and Bolts of WebSocket".

After that talk Arun, I and Ivan ran the Java EE 7 hands-on lab. This is basically the same lab that Arun developed while still at Oracle. Arun has since evolved the lab to run on both WildFly and GlassFish. The materials for Arun's lab is available on GitHub. You should feel free to check it out - the lab is intended to be entirely self-directed. The lab really went very well. The attendees provided excellent feedback and the lab was packed even given a fairly sizable space. Towards the end of the day Andy Gumbrecht had a very cool presentation on moving from Tomcat to the Java EE platform very easily using TomEE titled "Apache Tomcat to Apache TomEE in 1-n Steps".

On the second day of the conference around lunch time Roberto and Ivan presented a talk on JBatch titled "Java EE 7 Batch Processing in the Real World". This is the same talk that they presented at JavaOne 2014 embedded below:

After Roberto and Ivan's talk Geertjan presented a very cool talk on developing either desktop/web or mobile HTML 5 applications using Java EE 7 as a back-end. At the same time I delivered my thus far very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape as a workshop (I did the same thing at JavaOne 2014). I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house and was very well-received. The slide deck for the talk is posted below:

After the workshop I helped Ivan run a hands-on lab on Forge and Arquillian. The Forge part of the lab is available for all and can be done entirely on your own. Antonio Goncalves has a pretty nice blog entry on running the lab.

I closed the conference with a bang back in the main hall with my talk titled "Why Open Standards and Java/EE Matter (to You)". The talk is designed to be a keynote and covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I was finally able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here:

Besides a very lavish speaker dinner (the most lavish I have ever experienced at a conference), one of the very cool things our extremely gracious Bulgarian hosts do is take interested speakers outside the capital city of Sofia to the picturesque country side. On my request, this year we went to the Devil's Throat cavern. The tour this time was unfortunately pretty sparse with just me, Iva, Yoana and Nadia. Although modest by comparison of the likes of the Mammoth cave of Kentucky or the Ape cave lava tubes of Mount Saint Helen's, Devil's Throat is the second largest cave in mountainous Bulgaria and contains the tallest underground waterfall in the Balkans. Besides it's geology Devil's Throat is actually unique because of it's very special place in world history and literature. It is said to be the inspiration for the ancient Greek underworld and it's overlord, the feared god Hades (the cave is very close to the modern day Greek border). It's main space is assumed to be the real world origin of the mythical main hall of Hades. It is easy to see why if you think about how the cave may have felt like without the modern amenities of concrete/metal ladders/steps and electricity, with the thundering sound of a deep underground waterfall in the background. Below are some pictures I took of the cave and it's immediate surroundings:

All in all it was great to be back in Bulgaria/Java2Days. I hope to return soon and see all of my kind Bulgarian friends once again.

Wednesday Jan 21, 2015

JMaghreb 2014 was held on November 4-6. Organized by the Morocco JUG, JMaghreb is one of the largest Java developer conferences in North Africa. Although centered around the Maghreb region (that's Morocco, Algeria, Tunisia, Libya and Mauritania) the conference is on the radar for folks around the broader Middle East, Africa and Southern Europe. This was yet another brilliant year for the conference. Speakers included Patrick Curran, Werner Keil, Johan Vos, Mohamed Taman, Hazem Saleh, Paul Bakker, Romain Manni-Bucau, Abdelmonaim Remani, Simon Ritter, Angela Caicedo and Mike Milinkovich. Topics included Java SE, Java EE, JavaFX, HTML5/JavaScript, mobile, NoSQL, OSGi, Big Data and the cloud. The passion that organizers including Badr El Houari, Faissal Butaounte, Youssef Misdaq, Mohammed Aboullaite, Abdelmonaim Remani and Mohamed Taman put into JMaghreb speaks for itself. I am extremely grateful that the organizers invited me and very glad that I was able to accept. One of the most remarkable things about JMaghreb that I was astounded to notice was the very large number of female attendees - far more than any conference I have ever gone to. In the words of organizer Faissal Butaounte, "they are sending a clear message - they are passionate about technology".

I started the conference on the first day with my thus far very popular talk on aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end using a Java EE 7 back-end. This session was a full house in the main hall. The slide deck for the talk is posted below:

I didn't have a talk scheduled the second day so was able to focus on honing my three brand new talks the next day. Romain had a pretty cool talk the second day on TomEE.

I started the last day of the conference with a bang back in the main hall with my talk titled "Why Open Standards and Java/EE Matter (to You)". The talk is actually designed to be a keynote and covers a very important topic that I think there's far too little material out there on. It talks about the core value proposition for standards like Java EE in maintaining a healthy competitive marketplace. It differentiates open technical standards from so called "de-facto standards" and explores the relationship between open source and open standards. I also talk about what the community can do to make standards really work. The talk taps into one of my fields of study that I never pursued in my career and few developers really seem to have even a basic grasp of - economic analysis. This is a talk I've been waiting to give for many years and I am glad I was finally able to start presenting it. To some degree it embodies many of the core motivations that keep me doing what I do to try to help move the Java EE standard forward. The slides for the talk are here:

The talk was very well attended and well received. I was glad to be able to invite Patrick and Mohamed Taman on stage for the talk. I hope to get an opportunity to do this talk again soon (I did the same talk for the closing keynote of Java2Days 2014).

My second talk of the day was our likely new flagship talk for this year titled "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, REST management/monitoring, even better JSON support, CDI 2, platform-wide CDI alignment, more pruning, JCache, JMS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here:

The talk had good attendance and I had some excellent conversations afterwards. The Morocco JUG as well as the Egypt JUG are among the early adopters of Java EE 8 JSRs, quite possibly along with the Tunisian JUG community. After lunch Patrick had a session on the JCP which also had very good attendance.

I had the last session slot for the conference and my last talk was very packed. The title of this new talk is "Reactive Java EE - Let Me Count the Ways!". It aligns Java EE with core Reactive Programming principles. Though many people don't realize it, Java EE has long had very good support for asynchronous, event-driven, non-blocking scalable systems. This includes features and APIs like JMS, Message Driven Beans, Asynchronous Session Beans, CDI events/observers, asynchronous Servlets/NIO, server/client side JAX-RS, WebSocket asynchronous support and the Java EE concurrency utilities. These features can be used in a highly Reactive fashion especially in conjunction with Java SE 8 lambdas, streams and CompletableFuture. The slides for the talk are here:

Thus far this new talk seems to be quite popular and well received. I am sure to present the talk again soon.

Besides the conference Morocco was truly a pleasure. It is really a shame more Americans don't make Morocco their preferred travel destination. Morocco features rich history, culture, architecture, food and nature. It is by far one of the most thoroughly friendly countries that I have ever been to with a deep tradition of warm hospitality - and this is despite the obvious signs of poverty and misery. During the conference I was able to explore a little bit of legendary Casablanca, particularly in the evening hours. Thanks to Badr and the JMaghreb organizers I was also able to see a bit of Morocco outside the very urban Casablanca. Our very gracious hosts took some of the speakers including myself for a brief visit to the beautiful desert city of Marrakesh. Though Marrakesh is definitely worth seeing, I found myself truly captivated by the Moroccan country side. To explore it a bit more intimately I excused myself from my hosts and decided to spend some time trekking in the reasonably nearby but far more rugged Agafay desert (popularly known as the "Marrakesh desert"). Agafay is actually at the very base of the Atlas mountain chain and is a very picturesque mix of rocky desert, mountains and classical sand dunes. If you check out the pictures below it's very easy to see why Morocco is one of Hollywood's most favored destinations for science fiction movies. At times, it was easy to imagine that I've magically gone through a dimensional portal into another planet altogether. Only the presence of my local Berber tribesman guide Ali was indication that I was still on planet Earth. Maybe next time I'll skip the companionship just to complete the illusion.

The most awe inspiring experiences that drove home the true hospitality of the Moroccan/Berber people occurred during the hike through a remote mountain village. Since it was lunchtime, Ali and I were actually invited to share a meal with a very friendly rural family! And these were people that barely had the benefit of electricity, running water or mass communication! As time was of essence I and Ali politely declined the once-in-a-lifetime invitation...

The Atlas mountains are very unique on their own right and Agafay barely scratches the surface. The peak of the Atlas Mountains is the second highest in Africa behind mount Kilimanjaro. An overnight strenuous technical climb, it offers some of the most unique terrain in the world and definitely worth attempting if opportunity permits.

All in all I thoroughly enjoyed JMaghreb and Morocco. I hope to return soon and see all the folks I met there again!

Wednesday Dec 10, 2014

JavaOne 2014 San Francisco was held September 28 – October 2. I am proud to say this is my eight JavaOne as an attendee, my sixth one as a speaker, my third one as an Oracle employee, my second one as a member of the content committee and my first one as a track lead. I think this was a particularly good year for JavaOne in many ways and it's certainly been a privilege to try to do justice to the crucial role of Java EE track lead. In this hopefully relatively brief post I'll share my thoughts, observations and experiences at JavaOne 2014. The astute among you may have noticed that this post is belated. It's a reflection of the fact that's it's been a very hectic few months in terms of US and International conferences and in fact it'll be the very worthy first of a handful of belated trip reports now that the seemingly unofficial Java conference season towards the year's end is over.

A Look to the Past, A Look Ahead
There's very little doubt JavaOne is the largest and most important Java conference in the world. In fact it is critical to continuing to strengthen and growing the Java ecosystem itself. Having taken part in organizing a few other fairly large conferences and attending/speaking at numerous others, the JavaOne content is definitely of outstanding quality even as compared with many other conferences of similar magnitude. It's clear the best and the brightest in the Java ecosystem still see participating in JavaOne as a badge of honor. In terms of quantity, JavaOne beyond any doubt has the largest concentration of Java content anywhere. That all being said there's no denying the fact that JavaOne today is a relative shadow of what it used to be in the early days of Java. Perhaps to some degree that's alright. After all Java is not a spring chicken debutante any more and Java is probably the most widely covered topic at events worldwide today. Nonetheless JavaOne is the single most prestigious gathering of the minds with a sole focus on all things Java. Keeping that fact in mind we must do everything that we reasonably can to keep it the magnate event for Java developers everywhere. As they say, it is far more difficult to stay on top than to get there. To that end we did a few things differently this year that seems to have paid off.

How JavaOne 2014 was Different
There were a number of important encouraging signs from the very beginning for JavaOne 2014. We had the highest number of JavaOne CFP submissions in the recent few years. In fact the CFP process was so effective that unlike many previous years there wasn't a need to extend the CFP deadline. As a net result we at least maintained or improved upon both the quality and quantity of content. The event was highly professionally run as it always has been in terms of venue, scheduling and organization. Most encouragingly we grew the attendance numbers at a more rapid pace than we have in the past few years while still growing or maintaining a community feel. These are trajectories we should try and maintain in the coming years to keep JavaOne what it should really be.

There can be many reasons why we saw what we saw - economic cycles, pent up demand for developer training, a desire to learn more about the Java SE 8 and Java EE 7 releases, a desire to preview the newly minted Java EE 8 or Java SE 9 effort and so on. We would like to hope the small handful of things we did differently at least helped in getting things in the right direction:

We started the CFP process earlier, provided as much details as possible and kept the community in the loop with periodic updates. For the Java EE track, we did this via the Aquarium blog as well as the official JavaOne blog.

JavaOne like many larger conferences has traditionally taken a very egalitarian (perhaps too egalitarian) approach to speakers. The reality as we all know though is that not all speakers are created equal. There are some speakers out there that deserve recognition by way of an individual invitation to speak at the conference on a topic of their choice. For the Java EE track we had a small number of these well-deserved speakers that bypassed the official CFP process altogether: Adam Bien, David Blevins, Patrycja Wegrzynowicz, Arun Gupta and Anatole Tresch. Besides these Java EE rock stars we also reached out to a much larger group of people and cordially invited them to join the CFP (you know who you are). We announced these rock stars and their talks as soon as we could.

We required a video of either the submitted session or a brief overview of the session as part of the talk proposal. The goal of this was in fact to level the playing field for new or inexperienced speakers.

What we did in the Java EE Track
There are a few more things we did differently in the Java EE track specifically in addition to the general changes to JavaOne:

The quality of the program committees is a crucial part of the overall quality of JavaOne that needs to improve far more. Ideally we should be aiming to minimize folks from vendors (Oracle included specially) and folks that are more "honorary" than "participatory" in favor of folks genuinely passionate about actively contributing to the Java EE track in the community - including folks that help put together other successful conferences. We made some gradual efforts towards this goal this year.

In the same vein we did our best to trim down speakers and content from Oracle and other vendors in favor of folks from the community. This balance is crucial in keeping JavaOne the conference for the Java community and not a vendor sales conference.

As soon as we could we recorded and promoted video interviews with key JavaOne speakers about their sessions via The Aquarium and the JavaOne blog. We tried to do as many interviews as we could right up until the beginning of the conference. The folks we had time to highlight this year: Arun Gupta, Adam Bien, David Blevins, Ed Burns, Antoine Sabot-Durand, Kito Mann and Greg Wilkins.

There were some specific goals that we wanted to accomplish in the track that we reached to various degrees:

Upcoming JSRs: One of the unique value propositions for JavaOne is that it is the best place to learn about what is ahead in terms of standard Java technologies right from the source - the spec leads themselves. This was particularly true this year with Java EE 8 JSRs submitted right before JavaOne or shortly thereafter. Luckily, we were able to put together a number of such sessions:

Existing JSRs: In order to continue to grow the Java EE community, it is vitally important to cover existing JSRs at JavaOne, especially as they pertain to solving new and emerging problems. We had a number of such sessions at JavaOne, most led by the community itself:

Real World Case Studies: As we grow the Java EE community it is becoming more and more important to highlight adoption stories, case studies and migrations from other technologies. Whatever the underlying factors this year was particularly good for this. In fact there were a number of such submissions that we could not accept this year that we hope will be resubmitted in the coming years:

Best Practices and Design Patterns: Beyond learning Java EE APIs, it is important to understand how to properly use them, which is where best practices and design patterns come in. This year we had a decent number of such sessions in the track but we could hope to improve upon this:

The Java EE Ecosystem: The ecosystem that builds upon Java EE APIs is critically important in keeping the platform strong. We always hope to highlight such content and wish there were more submissions along these lines:

Labs and Tutorials: Hands-on-Labs and tutorials are the unsung heroes of JavaOne. They provide opportunities to gain first hand experience with Java EE technologies, do deep dives or acquire basic knowledge. We didn't do too badly with labs and tutorials this year but this is another area where we could use better quality submissions:

Fostering Java EE Community Speakers: One of the key reasons attendees come to JavaOne is to hear from Oracle's Java technologists. Unsurprisingly the most well attended sessions tend to be led by Oracle speakers. This year was no exception and we had the usual strong showing of Oracle speakers: David Delabassee, Geertjan Wielenga, Bruno Borges, Yoshio Terada, Bill Shannon, Linda Demichiel, Ed Burns, Manfred Riem, Santiago Pericasgeertsen, Marek Potociar, Nigel Deakin, Pavel Bucek, Heather Vancura just to mention a few. In order to continue to grow the Java EE community however it is vitally important to foster a greater number of community speakers that advocate Java EE. While this has gotten much better over the years, we certainly need to do more at JavaOne to encourage speakers to take up Java EE as a topic. These are just some of the community speakers that we were proud to host this year:

Besides presenting my own sessions (detailed below) I tried to audit as many sessions as I could (all content committee members are really supposed to do that but sadly few actually do). Everything I saw was good in the Java EE track and I scouted a few very good folks I have made a point to follow up with (you know who you are).

What I did at JavaOne
The last few JavaOnes have been fairly hectic for me and this year was no exception. Frankly that's exactly how I prefer it. As a speaker (and a host in this case) I am there to deliver as much as I possibly can for attendees. Here's what kept me busy this year:

Keynote Demo: This year I helped put together the keynote demo. The demo consisted of an end-to-end Java story for vehicle telemetry. At the lowest level, Java Embedded was used to collect vehicle sensor data such as speed, acceleration, geo-location, odometer reading, engine temperature and the like. Some of this data was incorporated into a pretty slick vehicle on-board dashboard interface using Java FX. All of the sensor data got forwarded real time to a centralized IoT (Internet of Things) gateway. The idea of the IoT gateway is that any third party could securely connect to the gateway to subscribe to collated vehicle sensor data instead of connecting directly to a vehicle. Once a third party endpoint is registered for subscription, sensor data is forwarded to the endpoint via REST calls. Third parties could be auto makers, insurers, service shops and so on. For the demo we created a third party back-end system that put the sensor data on a cool real time line graph on an HTML 5 page. The back-end would also issue warnings to the HTML 5 interface as well as issue an SMS message to any registered users when significant events are detected such as an engine or mechanical problem (for example an imminent required tire or oil change).

The back-end part is what I wrote using Java EE 7 and GlassFish 4.1. The sensor data is received from the IoT gateway using an asynchronous JAX-RS endpoint, processed and forwarded to a WebSocket end-point using CDI events. Any external communication such as SMS is done in a completely non-blocking fashion using the Java EE 7 concurrency utilities. Finally the WebSocket endpoint sends the processed data asynchronously to the HTML5/JavaScript front-end over JSON using the Java API for JSON processing. EJB provides thread-safety, pooling, bandwidth-throttling and monitoring for all back-end components. The Java EE 7 powered back-end implements the basics of architectural concepts like Microservices, Reactive Programming and Complex Event Processing important to scaling most back-ends in an IoT system. Though we developed the demo for JavaOne it could potentially be reused elsewhere. Who knows - perhaps you'll get to see it in person at some point at a conference?

Sunday: Besides the keynote demo, I started JavaOne this year with hosting the Sunday GlassFish community events. This has long been the rallying point for GlassFish fans at JavaOne and this year was no exception. This year I broke up the GlassFish events into two distinct parts with a small break in the middle:

In the first session, John Clingan presented the GlassFish road map and we had the annual Oracle GlassFish executive panel. John talked about Java EE 7, GlassFish 4.1, Java EE 8 and GlassFish 5. The panel this year consisted of John, Mike Lehmann and Cameron Purdy. I asked a few set questions to the panel and then opened the panel up to community Q & A. If you haven't yet attended the GlassFish Sunday event, the panel is basically our annual town hall meeting. This session was packed (much more so than last year) and went extremely well.

In the second session we heard a GlassFish 4.1/Java EE 7 adoption story and did a deep dive into a GlassFish feature. The adoption story is something we've had for a few years now. This year we had a particularly cool story. Mohammed Taman shared the story of the first known real world deployment of Java EE 7 on GlassFish 4.1. Mohammed detailed a highly innovative and important project he helped develop for the United Nations High Commissioner for Refugees (UNHCR) and the World Food Program (WFP). The project won the Duke's Choice Award for 2014. Mohammed is a consultant, Morocco JUG member, Egypt JUG leader, JCP executive committee member and expert group member for multiple JSRs. He has been a very active participant in the Adopt-A-JSR, Adopt-OpenJDK, and FishCAT programs.

A new component to the community events we decided to add this year is a technical deep dive. We wanted to show the nuts-and-bolts of a cool GlassFish feature presented by an actual GlassFish engineer. Martin Mares shared the details on the GlassFish extensible command line framework. It is an extremely innovative feature that allows an end user to extend and customize the rich command line capabilities built into GlassFish. Martin is now leading the Java EE 8 Management JSR and much of the work he presented actually forms the basis of that upcoming standard.

Like the first session, the second session was also packed (again a significant improvement from last year when some folks left early). Like past years, we actually created a dedicated page on glassfish.org for the Sunday events that's worth checking out if you are interested.

In the evening we hosted the traditional GlassFish Party at the Thirsty Bear. The party was completely packed until the very end even despite the fact that we got a bigger space this year! I gave out a few Java EE 7 shirts and posters to a few very well deserving folks in the community (you know who you are).

Monday: I spent most of Monday auditing a handful of sessions on the Java EE track including Linda's Java EE 8 session, the batch lab and Josh's Java EE 7 recipes talk. Everything seemed to go extremely well. In the late afternoon I manned the "Meet the Experts" table. The idea here was to have folks talk to us about various upcoming Java EE 8 APIs as well as Adopt-a-JSR. The idea was good but I think we got only mixed results from the effort. Next year we may need to better publicize it. In the evening I went to the JCP party which is always lively and a great way to network with some key folks in the Java community. I skipped the GlassFish BoF this year as I had a subsequent very late BoF with Steve titled Calling All GlassFish Users and User Groups: Please Contribute to GlassFish. Steve and I talked about the various ways to contribute to GlassFish. Steve did a brief demo on how easy the GlassFish source code was to setup and build. Unfortunately the BoF was very lightly attended probably because it as so very late in the evening (9 PM - 10 PM).

Tuesday: I started Tuesday out with a bang with my two hour JavaScript + Java EE 7 tutorial titled Using JavaScript/HTML5 Rich Clients with Java EE 7. This tutorial is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS) using some of the HTML 5 centric features like JAX-RS, WebSocket and JSON-P along with the rest of the EE back-end stack. The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. The talk was packed and seemed to be very well received.

Later that morning Heather, Ed, Mohamed and I had our session on Adopt-a-JSR + Java EE titled Adopt-a-JSR for Java EE 7 and Java EE 8. Heather covered the Adopt-a-JSR program at a high level, Ed talked about the program from the perspective of a spec lead while Mohamed covered the adopter perspective. I finished by talking about Adopt-a-JSR in the specific context of Java EE 8. The talk was very good but unfortunately only moderately attended mostly by folks already involved in the program in one way or the other. Next time we need to figure out how to better boost attendance for these kinds of talks at JavaOne. I audited a few more sessions after the talk before manning the "Meet the Experts" table once again after lunch.

Most of the rest of the afternoon I audited a few more sessions before heading over to Oracle OpenWorld for a BoF on using WebLogic 12.1.3 with Arquillian. The BoF was a joint effort between me and Aslak Knutsen (Arquillian project lead). Given that OpenWorld has a weak reputation for developer centric topics, our expectations were fairly low. To our surprise, the talk was pretty decently attended though the audience was definitely more aloof than at JavaOne with very few developers in the audience. I finished the day off with briefly going to the Tomitribe party and chatting with a few friends.

Wednesday: After the hectic Tuesday I felt pretty tired and thought I'd rest a bit the next morning and catch up with email before my next session. I arrived at JavaOne shortly before lunch and delivered my next talk in the afternoon on Cargo Tracker/Java EE + DDD. This talk basically overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Below is the slide deck for the talk:

The talk was totally packed, there was very good audience interaction and I got some excellent feedback from a few folks afterwards. After the talk I headed over to a book signing for the second edition of EJB 3 in Action along with my co-authors Micheal and Ryan. It was great to get a chance to catch up with them and the book signing went well at the JavaOne book store. I did not really have much else scheduled for the day so I headed back to my hotel for a quiet evening preparing for the next and last day of JavaOne.

Thursday: The last day of the conference I started by attending the Java EE 8 panel in the morning. The panel went pretty well but was surprisingly modestly attended, especially compared to previous years. After the panel I audited a few more sessions including the one on migrating from Spring to Java EE 7. The session was very well attended and participated by other folks also apparently in the middle of such a migration. Let's hope those folks submit sessions sharing their experiences the coming years! I finished off the conference with my talk on effectively testing Java EE applications using Arquillian. The talk basically goes through each major Java EE API and demonstrates through code how the API could be tested using Arquillian. The slides for the talk is posted below:

The code for the talk is available on GitHub. If you are looking into testing Java EE applications using Arquillian, the code should be very helpful to you. Feel free to give me a holler if you need any help. The session was very well attended despite the fact that it was one of the last sessions of the conference and I got some very good feedback afterwards. It was the perfect way to end JavaOne 2014!

JavaOne 2014 will Come to Your Computer - for Free!
I want to remind all of you that we make a point to make JavaOne content openly available to all. Some of the recorded sessions have already been made available and more is on the way. In fact, we've already started highlighting these sessions on The Aquarium blog and will continue to do so in the next coming months, so do stay tuned.

On a more personal note, I did get to do something that's been on my to-do list for a while on this trip - hike Mount Diablo (yes, that's "Devil Mountain" in Spanish). The mountain so close to and so visible from the Bay area is pretty unique - although it's fairly short at only about 3,800 feet, it is said that you can see the second largest amount of the surface of the earth from it's tallest peak. That's because the area surrounding the mountain is incredible flat increasing visibility dramatically. This is also true of Mount Kilimanjaro - the place where you get to see the most amount of the surface of the earth (to top it off Mount Kilimanjaro is the tallest mountain in the African continent by a good margin). What I find really fascinating is actually the beautiful semi-arid landscape in the Diablo Mountain chain (see for yourself in the pictures I took below). I've seen it many a time while driving around the Bay area and it was awesome to finally see it up close and personal. If you ever plan to take the hike yourself be cautious - the hike is long and strenuous with many successive rapid elevation changes both upward and downward.

All in all this was a great JavaOne that we hope we repeat or improve on in the coming years. Hopefully you'll make the JavaOne pilgrimage one of these days too if you haven't already? For those of you that did attend it would be great to hear what you though especially with regards to Java EE?

Wednesday Nov 12, 2014

The NFJS Pacific Northwest Software Symposium was held October 17 - 19 in Seattle, Washington. I had five talks total over two days, more or less back-to-back. The first one was my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.

My second talk was titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.

I finished the day with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below.

On the second day I started with our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

My next NFJS show is the Great Lakes Software Symposium in Chicago on November 14 - 16. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward (I'll be updating my content on the tour for the next season):

Monday Nov 03, 2014

The NFJS New England Software Symposium was held September 19 - 21 in Boston. This is one of the larger NFJS shows and attendance at the show and my sessions was pretty good. It is always encouraging to see the same folks attend more than one talk. On my way to the show I also stopped by at the Connecticut Java User Group (more on that below).

I had five talks total over two days, more or less back-to-back. The first one was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

I finished off the day with my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.

The first talk on the next day was my session titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

Since Boston is such a short drive, I decided to skip the tedious flight for this show. One very nice thing this did was enable me to stop by and speak at the Connecticut Java User Group on the way there. The JUG is led by my friend and co-author for EJB 3 in Action Ryan Cuprak. I've spoken at the JUG a number of times over the years and it was good to be back. I did my JavaScript + Java EE talk there. The attendance was great and I got some great feedback. I hope to speak at the JUG again in the near future as time allows.

My next NFJS show is the Great Lakes Software Symposium in Chicago on November 14 - 16. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

Wednesday Oct 29, 2014

The NFJS Greater Atlanta Software Symposium was held September 12 - 14. I had four talks total over two days, more or less back-to-back. The first one was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

On the second day I started with my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.

I finished off the event with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below.

Thursday Aug 21, 2014

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round.

The NFJS Central Iowa Software Symposium was held August 8 - 10 in Des Moines. The attendance at the event and my sessions was moderate by comparison to some of the other shows. It is one of the few events of it's kind that take place this part the country so it is extremely important. I had five talks total over two days, more or less back-to-back. The first one was my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.

The second talk (on the second day) was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

The third was my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.

I finishd off the event with a talk titled Building Java HTML5/WebSocket Applications with JSR 356. The talk introduces HTML 5 WebSocket, overviews JSR 356, tours the API and ends with a small WebSocket demo on GlassFish 4. The slide deck for the talk is posted below.

Friday Aug 15, 2014

JavaDay Taipei 2014 was held at the Taipei International Convention Center on August 1st. Organized by Oracle University, it is one of the largest Java developer events in Taiwan. This was another successful year for JavaDay Taipei with a fully sold out venue packed with youthful, energetic developers (this was my second time at the event and I have already been invited to speak again next year!). In addition to Oracle speakers like me, Steve Chin and Naveen Asrani, the event also featured a bevy of local speakers including Taipei Java community leaders. Topics included Java SE, Java EE, JavaFX, cloud and Big Data.

It was my pleasure and privilege to present one of the opening keynotes for the event. I presented my session on Java EE titled "JavaEE.Next(): Java EE 7, 8, and Beyond". I covered the changes in Java EE 7 as well as what's coming in Java EE 8. I demoed the Cargo Tracker Java EE BluePrints. I also briefly talked about Adopt-a-JSR for Java EE 8. The slides for the keynote are below (click here to download and view the actual PDF):

In the afternoon I did my JavaScript + Java EE 7 talk titled "Using JavaScript/HTML5 Rich Clients with Java EE 7". This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The talk was completely packed. The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.

I finished off Java Day Taipei with my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE" (this was the last session of the conference). The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.

After the event the Oracle University folks hosted a reception in the evening which was very well attended by organizers, speakers and local Java community leaders.

I am extremely saddened by the fact that this otherwise excellent trip was scarred by terrible tragedy.

After the conference I joined a few folks for a hike on the Maokong Mountain on Saturday. The group included friends in the Taiwanese Java community including Ian and Robbie Cheng. Without warning, fatal tragedy struck on a remote part of the trail. Despite best efforts by us, the excellent Taiwanese Emergency Rescue Team and World class Taiwanese physicians we were unable to save our friend Robbie Cheng's life. Robbie was just thirty-four years old and is survived by his younger brother, mother and father. Being the father of a young child myself, I can only imagine the deep sorrow that this senseless loss unleashes. Robbie was a key member of the Taiwanese Java community and a Java Evangelist at Sun at one point.

Ironically the only picture I was able to take of the trail was mere moments before tragedy. I thought I should place him in that picture in profoundly respectful memoriam:

Perhaps there is some solace in the fact that there is something inherently honorable in living a bright life, dying young and meeting one's end on a beautiful remote mountain trail few venture to behold let alone attempt to ascend in a long and tired lifetime. Perhaps I'd even say it's a fate I would not entirely regret facing if it were my own. With that thought in mind it seems appropriate to me to quote some lyrics from the song "Runes to My Memory" by legendary Swedish heavy metal band Amon Amarth idealizing a fallen Viking warrior cut down in his prime:

"Here I lie on wet sand
I will not make it home
I clench my sword in my hand
Say farewell to those I love

When I am dead
Lay me in a mound
Place my weapons by my side
For the journey to Hall up high

When I am dead
Lay me in a mound
Raise a stone for all to see
Runes carved to my memory"

I submit my deepest condolences to Robbie's family and hope my next trip to Taiwan ends in a less somber note.

Friday Jul 25, 2014

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round.

The NFJS Lone Star Software Symposium was held July 18 - 20 in Austin, Texas. The Austin show is one of the smaller ones but still was good overall. It is one of the few events of it's kind that take place this part the country so it is extremely important. I had three talks total over two days, more or less back-to-back. I had decent attendance for all my sessions and had many of the same folks staying for multiple sessions which is always a very good sign. The close knit nature of NFJS also allows for excellent networking opportunities with users. My first talk was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

Wednesday Jul 16, 2014

UberConf was held June 24 - June 27 in Denver, Colorado. For those unaware, this is essentially the largest single annual event under the NFJS umbrella and to a certain extent the culminating point of the US based tour. Unlike the usual NFJS events that are squarely locally focused, it's intent is to be a national/international conference. Consequently it has a larger set of attendees, speakers, tracks and sessions. This year's event was very vibrant and clearly a success by all measures.

Personally I was already impressed by the more local events on the tour such as the event in Columbus, Ohio and UberConf certainly did not disappoint. I had a larger number of talks and larger rooms yet still excellent attendance in my talks. As with the other shows I had many folks staying for multiple talks which is always a very good sign. I also got to do a little bit of networking with some Java EE and GlassFish users that I happen to come across. I am hoping I can get some of these folks to jump through the corporate hoops and share their adoption stories at some point.

My first talk for the conference was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

Next I delivered my talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1 (as you may be aware the JMS 2.1 specification is beginning to spin up right now). The slides for the talk are posted below:

I started day two delivering my Cargo Tracker/Java EE + DDD material as a three-hour workshop. The workshop overviews DDD and describes how DDD maps to Java EE using code examples/demos from the Cargo Tracker Java EE Blue Prints project. Given the depth of the topic and the current size of the application the three hour slot was actually very effective. My goal was to foster discussion and I thought folks did speak up in the workshop, certainly far more in comparison to the typical session. This bodes very well for my session at JavaOne 2014 covering the material. I and my fellow Cargo Tracker co-committer Vijay Nair will be delivering the tutorial at JavaOne. Below is the slide deck for your review:

Following my workshop, I helped out Arun Gupta with his three hour hands-on-lab on Java EE 7. This is basically the same lab that Arun developed while still at Oracle. It appears the lab has now been evolved to run on both WildFly and GlassFish. The materials for Arun's lab is available on GitHub. The lab really went very well. The attendees provided excellent feedback and the lab was standing room only even given a fairly sizable space.

Following the Java EE 7 lab I delivered my JAX-RS 2 talk. Besides JAX-RS 2, I also talked about the possibilities for JAX-RS 2.1. The slides for the talk are posted below:

My first talk for the final day of the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory. I am delivering this material at JavaOne 2014 as a two-hour tutorial. This should give me a little more bandwidth to dig a little deeper, especially on the JavaScript end.

I finished off UberConf with my talk titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The JPA based demo is available here, while the CDI based demo is available here. Both demos use MongoDB as the data store. Do let me know if you need help getting the demos up and running.

I did get a chance to have some fun while at UberConf. Pretty close to the conference location was the FlatIrons at Chautauqua Park. A local icon of the Boulder and Denver areas, the FlatIrons offer a very scenic hike with some of the best views of the Rocky Mountains. The hike is not supposed to be particularly strenuous, but it can be for folks like myself not acclimated to the already higher altitudes in the Denver area. Denver is at approximately 5,000 feet above sea level and rightly nicknamed the mile high city. Be very cautious while drinking or undertaking any serious physical strain while in Denver just for a few days - don't underestimate the effects of the thinner air especially if you are not in good health. Patrick Dodson, a long time GlassFish adopter accompanied me for the hike up the FlatIrons and it was definitely worth it. Check out the photos I took below:

My next NFJS show is the NFJS Lone Star Software Symposium in Austin on July 18-20. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

Wednesday Jul 09, 2014

As some of you may be aware, I recently joined the well-respected US based No Fluff Just Stuff (NFJS) Tour. If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round. Via NFJS you get to have amazing training without paying for an expensive venue, lodging or travel. The events are usually on the weekends so you don't need to even skip work if you want.

My first engagement with NFJS was the New York Software Symposium on April 4-5. The show went relatively well and I have the trip report here. My second engagement was extremely encouraging - the Central Ohio Software Symposium in Columbus, Ohio on June 6-8. Unlike New York, the Columbus show was fully sold out and very vibrant. I had five talks total over two days, essentially back-to-back. I had a full house for all my sessions and had many of the same folks staying for multiple sessions which is always a very good sign. The close knit nature of NFJS also allows for excellent networking opportunities with Java EE users and occasional Oracle customers. My first talk was our flagship Java EE 7/8 talk. Currently the talk is basically about Java EE 7 but I'm slowly evolving the talk to transform it into a Java EE 8 talk as we move forward. The following is the slide deck for the talk:

My first talk for day two of the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.

I finished off the show with a talk on JAX-RS 2. Besides JAX-RS 2, I also talked about the possibilities for JAX-RS 2.1. The slides for the talk are posted below:

After the Columbus show I also spoke at UberConf, the largest yearly "destination" event under the NFJS umbrella held in Denver, Colorado on June 24 - 27. That show went even better than Columbus and I'll write a separate trip report on that soon.

My next NFJS show is the NFJS Lone Star Software Symposium in Austin on July 18-20. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

Tuesday Jul 01, 2014

Java Day Tokyo 2014 was held on May 22nd. Organized by Oracle Japan, it is the largest Java developer event in the country. Indeed it is really a replacement to JavaOne Japan. This was another highly successful year for the event with a fully sold out venue packed with youthful, energetic developers. Speakers included Steve Chin, Stuart Marks, Simon Ritter, Nandini Ramani, Cameron Purdy and Yoshio Terada. Topics included Java SE, Java EE and JavaFX.

Cameron Purdy, Vice President of Development at Oracle responsible for Java EE, shared the Java EE 8 road-map during the opening keynote. You can download video of the keynote here.

Following the keynote, I reviewed Java EE 7 and went into more details on Java EE 8 possibilities during my session titled "JavaEE.Next(): Java EE 7, 8, and Beyond". The sizable room was completely packed for the session. At the beginning of the session, I asked the audience whether they wanted to hear more about Java EE 7 or more about Java EE 8. To my pleasant surprise, the audience indicated that they knew about Java EE 7 and wanted to know more about Java EE 8. I talked about possibilities such as HTTP 2/Servlet 4, Server-Sent Events (SSE), a new standard action-oriented web framework, security simplification, multitenancy, REST management/monitoring, CDI 2, platform-wide CDI alignment, more pruning, JCache, configuration, JMS.next() and Java SE 8 alignment. The slides for the talk are here:

I also presented my talk aligning Java EE 7 with the HTML 5/JavaScript Rich Client landscape. I use AngularJS for my demo but the concepts can apply to any JavaScript (or even native mobile) front-end. This session was a full house with standing room only. The slide deck for the talk is posted below:

Besides my sessions, there were a good number of other Java EE related sessions including from Japanese Java EE evangelist Yoshio Terada (naturally he delivered his talks in Japanese). One of the most interesting of these was a talk titled "Move from J2EE to Java EE" by Hirofumi Iwasaki of Rakuten. For those who don't know what Rakuten is, it is one of the largest e-commerce platforms in the world (by volume) based in Japan. Hirofumi-san made the case for transitioning to Java EE from J2EE and avoiding non-standard frameworks. He blogged about his talk here. His slide deck is embedded below:

At the end of the day, we had an "Ask the Experts" panel. I was on the panel along with Steve, Stuart, Simon and David. There was some lively discussion around Java EE, GlassFish and WebLogic that the audience seemed to really appreciate. I too enjoyed the panel.

Fortunately, the trip to Japan wasn't all work and no fun. I was largely expecting to just check out the vibrant Tokyo nightlife, but it turned out I had more free time than I was expecting. As a result, I got to do a whirlwind tour of sights like the Imperial Palace, Senso-ji/Asakusa, Meiji Shrine, Tokyo Skytree, Kabuki-za (I got to check out Kabuki - the legendary Japanese traditional opera), Shinjuku, the insane Tokyo Metro, the dazzling Shibuya Crossing, Tokyo Central Railway Station and a few others. Perhaps next time I'll aim for more of the nightlife such as the Robot Restaurant, Sumo wresting and Japanese heavy metal (yes, there is such a thing). All in all, Japan was a mystifying mix of centuries old traditions and ultramodern fixtures. Just check out the pictures I took below, you'll see what I mean:

I also got to do something I was really looking forward to - check out the Mount Fuji area (some of those pictures are in the album too). Unfortunately, the official climbing season is July though August, denying me the opportunity to ascend one of the most iconic mountains on the planet. Technically I could have attempted it renting the proper gear but it would have probably been a little foolhardy considering I would have been alone and I am not in the kind of shape I once used to be in. Oh well - I guess it's good to have some things to do later in life, perhaps with my wife Nicole once we are at a stage where we can seriously think about doing this sort of thing again (and hopefully can still afford it :-)).

I definitely enjoyed Java Day Tokyo and hope to be part of the event next year again!

Friday May 30, 2014

If you work in the US and still don't know what the No Fluff Just Stuff (NFJS) Tour is, you are doing yourself a very serious disfavor. NFJS is by far the cheapest and most effective way to stay up to date through some world class speakers and talks. This is most certainly true for US enterprise Java developers in particular. Following the US cultural tradition of old-fashioned roadshows, NFJS is basically a set program of speakers and topics offered at major US cities year round. Many now famous world class technology speakers can trace their humble roots to NFJS. Via NFJS you basically get to have amazing training without paying for an expensive venue, lodging or travel. The events are usually on the weekends so you don't need to even skip work if you want (a great feature for consultants on tight budgets and deadlines).

I am proud to share with you that I recently joined the NFJS troupe. My hope is that this will help solve the lingering problem of effectively spreading the Java EE message here in the US. For NFJS I hope my joining will help beef up perhaps much desired Java content. In any case, simply being accepted into this legendary program is an honor I could have perhaps only dreamed of a few years ago. I am very grateful to Jay Zimmerman for seeing the value in me and the Java EE content. The current speaker line-up consists of the likes of Neal Ford, Venkat Subramaniam, Nathaniel Schutta, Tim Berglund and many other great speakers.

I actually had my tour debut on April 4-5 with the NFJS New York Software Symposium - basically a short train commute away from my home office. The show is traditionally one of the smaller ones and it was not that bad for a start. I look forward to doing a few more in the coming months (more on that a bit later). I had four talks back to back (really my most favorite four at the moment). The first one was a talk on JMS 2 - some of you might already know JMS is one of my most favored Java EE APIs. The slides for the talk are posted below:

The third talk I delivered was our flagship Java EE 7/8 talk. As you may know, currently the talk is basically about Java EE 7. I'll probably slowly evolve this talk to gradually transform it into a Java EE 8 talk as we move forward (I'll blog about that separately shortly). The following is the slide deck for the talk:

My last talk for the show was my JavaScript+Java EE 7 talk. This talk is basically about aligning EE 7 with the emerging JavaScript ecosystem (specifically AngularJS). The slide deck for the talk is here:

Unsurprisingly this talk was well-attended. The demo application code is posted on GitHub. The code should be a helpful resource if this development model is something that interests you. Do let me know if you need help with it but the instructions should be fairly self-explanatory.

My next NFJS show is the Central Ohio Software Symposium in Columbus on June 6-8 (sorry for the late notice - it's been a really crazy few weeks). Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

Thursday Mar 13, 2014

Code PaLOUsa 2014 took place 24-26 February in Louisville, Kentucky. Code PaLOUsa is a fairly unassuming conference with great quality farther away from the beaten paths. The conference is principally rooted in .NET but is trying hard to beef up Java content, so it was important to have a presence from our team. My fellow Oracle colleague Scott Seighman (Cleveland JUG leader) also supported local Java developers by delivering a Java SE 8 talk. Topics covered included Java, .NET, JavaScript, mobile, methodology and Big Data/NoSQL.

I was very fortunate in that on my way to Kentucky, I was able to stop by at the Montgomery County (Maryland) JUG for a Java EE 7 session. The JUG was very kind in agreeing to schedule an off-cadence meeting to accommodate my trip. I have been to the JUG several times over the years and it is always a good experience with solid attendance - this time was no exception. Whenever I can I'll try to schedule another talk with the JUG. I essentially presented the same Java EE 7 deck we have been using for a while as our main talk (embedded below) - just taking time to do a bit more of a deep dive (the session lasted two and a half hours with almost everyone staying until the very end!).

Since the JUG meeting lasted much longer than I expected, I didn't arrive at Louisville until late the next day (yes, I drove :-)). With just a few hours to spare, I did my first talk at Code PaLOUsa titled "Using NoSQL with ~JPA, EclipseLink and Java EE". The talk covers an interesting gap that there is surprisingly little material on out there. The talk has three parts -- a birds-eye view of the NoSQL landscape, how to use NoSQL via a JPA centric facade using EclipseLink NoSQL, Hibernate OGM, DataNucleus, Kundera, Easy-Cassandra, etc and how to use NoSQL native APIs in Java EE via CDI. The slides for the talk are here:

The next day I presented one of my most favorite talks titled "Applied Domain-Driven Design Blue Prints for Java EE". The talk is essentially about the Cargo Tracker Java EE Blue Print project. The project is an attempt at reviving and modernizing the much needed Java EE Blue Prints effort to demonstrate some architectural best practices for Java EE. The talk has three parts -- a brief overview of DDD theory, mapping DDD to Java EE and actual running Cargo Tracker DDD code with Java EE/GlassFish. The talk was well attended and I got excellent feedback on the talk later. InfoQ recorded the session so hopefully it will be available to a broader audience soon. The slides for the talk are here:

After the conference I took some time out to enjoy one of the most unique experiences in the World - the Louisville Mega Cavern. To my knowledge, it is one of the largest man-made Caverns open to the general public anywhere. A truly massive former limestone mine, during the early days of the Cold War it was used as a fallout shelter. If that isn't fascinating enough, it might be the only place in the world you can zip line through a primitive limestone mine!

While the zip line was a truly awesome experience (there's five of them total across various parts of the mine), I wouldn't advise it for the uninitiated. With pitch dark corners, jagged rocks, mud/dirty pools of water, sudden sheer drops, simple rope bridges and fast/long inclines I imagine it could be a very scary experience for folks that have never been inside a primitive cave or cavern (natural or man made) - check out the pictures below. You have been duly warned :-). However if you feel you can make it, it is definitely worth doing if you are in the area.

All in all Code PaLOUsa, the Maryland JUG and Kentucky were worth the while. To boot, I didn't have to take a dull long flight :-).