Wednesday May 20, 2015

JavaOne Java EE Track: Saying Thanks and a Look at the Real Decision Makers

As some of you know the JavaOne 2015 CFP is now closed. I want to take this opportunity to thank all of those that submitted their thoughtful topics and all those who considered submitting. The outstanding quality of submissions is a testament to your passion for the Java community and it is a great start on the road to keeping JavaOne a true success. In terms of the Java EE track we now have all the raw material we need to construct a strong selection. In the next few weeks we will be working hard with the review committee to carefully sort through all the submissions we have at hand.

I want to remind you now not to be discouraged if you don't get the response you are hoping for. You should remember that you are competing against some of the best and brightest of Java at a global scale - especially so in the Java EE track. As much as we would like for things to be perfect in the end all of this is also based on all too fallible human judgement applied through a fairly intricate process designed with checks, balances and fairness in mind. If your session does not get accepted this year, you should definitely consider honing your submissions and trying again next year. If you are indeed selected I hope you see it as the testament to your abilities and good fortune it truly is. Either way, I hope you will consider coming to JavaOne to experience the incredible talent, energy and intellect in the air.

The Java EE Track Content Committee
I also want to take this opportunity to introduce you to the real decision makers in the track - the content selection committee members. Although I and my co-track lead Lance Andersen clearly do make decisions, I like to think of ourselves as mere coordinators of a very strongly democratic open collaborative team. The folks in the committee by far play the most important role in help shaping the track. They really deserve to be commended as most of them are community folks that contribute many hours of their time to help advance JavaOne. Below are the profiles of these good folks. If you have any questions on your submissions you should feel free to reach out to any one of them or us. In the next few weeks, I plan to publish interviews with some of these folks through the Aquarium blog.

David Blevins needs little introduction. He is an excellent speaker, a long-time JCP expert, Java EE advocate and powerhouse developer behind the highly innovative Apache OpenEJB and TomEE projects. David more recently founded Tomitribe, a company offering commercial support for TomEE. His Twitter handle is @dblevins.

Cay Horstmann is a Java Champion, author, blogger, Java EE advocate and Computer Science professor at San Jose State University. He has been part of the content committee for many years. His Twitter handle is @cayhorstmann.

Johan Vos is a Java Champion, author, speaker, blogger, member of the BeJUG steering group, member of the Devoxx steering group and a JCP member. He is a fan of Java EE, GlassFish and JavaFX. He founded LodgON, a company offering Java based solutions for social networking software. His Twitter handle is @johanvos.

David Heffelfinger is an independent consultant in the Washington DC metropolitan area, author, blogger and speaker. He is a long time advocate of Java EE and GlassFish. He is a brand new and great addition to the committee. His Twitter handle is @ensode.

Ryan Cuprak is the founder of the Connecticut JUG, author, blogger, speaker, JavaOne Rock Star and Java EE advocate. He is a senior manager at Dassault Systemes. Like David, Ryan is a brand new and welcome addition to the committee. His Twitter handle is @rcuprak.

Scott Sosna is a veteran Java developer now working at Dell. He helps with JavaOne on his own time and has been a very strong contributor in the committee for many years. His interests include API design, integration, messaging, REST, SOAP, performance and operations.

Markus Eisele is a Developer Advocate at Red Hat and focuses on JBoss Middleware. He is a long time Java EE advocate, blogger, author, speaker, JCP expert, Java Champion and former Oracle ACE Director. His Twitter handle is @myfear.

Kevin Sutter is the lead architect for the Java EE and JPA solutions for the WebSphere Application Server and the WebSphere Liberty Profile. Kevin is very active with the Java and open-source strategies as they relate to IBM's Middleware. His Twitter handle is @kwsutter.

Linda DeMichiel is the specification lead for Java EE. She is a long-standing member of the Java EE architecture team, initially at Sun, and now at Oracle. Linda has been a specification lead for the EJB and JPA specifications. Linda has been on the committee for a number of years.

David Delabassee is my teammate in the Java EE evangelism team. He is a veteran of Sun and now Oracle that's been involved in JavaOne for many years. In his many roles he has been a product manager, sales consultant and Java Ambassador. His Twitter handle is @delabassee.

Bruno Borges is a product manager for WebLogic, Fusion Middleware, Java and Cloud services. He also actively evangelizes topics from Java Embedded to Java SE and JavaFX to Java EE. His Twitter handle is @brunoborges.

Harold Carr is a veteran of Sun and now Oracle. He is the architect of InfiniBand usage in WebLogic. Throughout his long and illustrious career at Sun/Oracle he has had key roles in the SOAP/JAX-WS/Metro stack, GlassFish, Grizzly, RMI-IIOP/CORBA ORB and load-balancing/fail-over. He has been part of the committee for many years. His Twitter handle is @haroldcarr.

Keep in mind that JavaOne is now already open for registration. I hope to see you all at JavaOne. In the meanwhile as always if you have any questions never hesitate to reach out.

Monday Mar 30, 2015

ConFoo 2015 Trip Report

ConFoo 2015 took place 16-20 February in Montreal, Canada. To my knowledge it is the largest developer conference north of the border. The conference has roots in PHP, but has been making an effort to better attract a Java audience hence it was important for me to support the conference. If you are a Canadian Java developer, I would consider adding ConFoo to your radar as a more convenient (and possibly cheaper) event to go to in order to stay up-to-date. Topics covered included PHP, Ruby, methodology, JavaScript/HTML, Java and .NET. Thanks to a number of community speakers, the Java EE presence was very strong this year.

I started the first day of the conference with my talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. Given the dynamics of the conference the crowd was modest but not bad. The slides for the talk are posted below:

After lunch I did 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 are 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. This session too had decent attendance and I chatted with a few folks offline after the talk.

I finished the first day of the conference with a five minute lighting talk on Java EE 8 and Adopt-a-JSR in the main keynote hall. During the talk I referred to the Java EE 8 talk delivered by Brazil Java community member Hanneli Tavante (details below).

The next day of the conference my friend Ryan Cuprak delivered his excellent talk on mobile development and Java EE 7 titled Hybrid Mobile Development with Apache Cordova and Java EE 7. Ryan is my fellow co-author for EJB 3 in Action, the JUG leader for the Connecticut JUG as well as a fellow JavaOne Rock Star Speaker. The talk has some excellent material and it is basically the same talk that Ryan delivered at JavaOne 2014 as a two-hour tutorial. The video for that talk is embedded below (it is linked here if you are having trouble seeing the embedded video):

Not at all surprisingly, Ryan received excellent feedback on his talk. In the afternoon Florianopolis, Brazil JUG leader Rodrigo Candido da Silva gave a very good talk on securing JAX-RS services with OAuth.

The last day of the conference Rodrigo did another very interesting talk on various strategies for handling multitenacy in Java EE applications. After lunch, I was very happy to attend Hanneli Tavante's talk on Java EE 8. Usually someone from our team does this talk at conferences so it is very encouraging to see folks in the community picking up the topic. Like Rodrigo, Hanneli is also an active part of the Brazilian Java community, but from Sao Paulo. In the coming months, key North American Java EE advocate Josh Juneau will also be covering Java EE 8 at the Chicago Coder Conference (I will be speaking at the conference as well). To make it easier for the community to pick up the material, I have now included speaker notes to my public deck - you can download it's source in PowerPoint (now, I realize talks are highly personal and I don't expect anyone to deliver my talk verbatim - neither Hanneli nor Josh are doing that). I will make a point to keep both the deck and the speaker notes reasonably up-to-date as Java EE 8 progresses:

Please do feel encouraged to pick up this talk yourself. If needed please reach out to me and I will be happy to help you prepare.

I finished the conference with yet another five minute lighting talk in the main keynote hall - this time on Domain-Driven Design (DDD). Because the talk was supposed to be technology agnostic, I mentioned Cargo Tracker only briefly as a resource to look at on how to implement DDD with Java EE.

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

Monday Feb 16, 2015

CodeMash 2015 Trip Report

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 Trip Report

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:

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.

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 Trip Report

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:

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.

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: A Small Step in the Right Direction?

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:

  • Adam Bien (JavaOne Rock Star, Java EE author, speaker, consultant)
  • David Blevins (JavaOne Rock Star, Apache TomEE project lead)
  • Patrycja Wegrzynowicz (CTO, Java EE researcher)
  • Antoine Sabot-Durand (CDI specification lead, Red Hat)
  • Kito Mann (Java EE author, speaker, consultant)
  • Peter Pilgrim (Java EE author, speaker, consultant)
  • Steve Millidge (London GlassFish User Group, C2B2 Consulting, Paraya)
  • Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)
  • David Heffelfinger (Java EE author, consultant)
  • Josh Juneau (Java EE author)
  • Mohamed Taman (Duke's Choice Award Winner, JUG leader)
  • Ivan St. Ivanov (Forge Committer, JUG leader)
  • Roberto Cortez (Consultant, JUG leader)
  • Michael Remijan (Java EE author)
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

NFJS Pacific Northwest Software Symposium Seattle Trip Report

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.

The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.

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:

The last talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

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):

I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

Monday Nov 03, 2014

NFJS New England Software Symposium Boston Trip Report

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:

The second talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

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:

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.

My last one for the show was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below:

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:

I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

Wednesday Oct 29, 2014

NFJS Greater Atlanta Software Symposium Trip Report

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:

The second talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

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.

The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.

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 hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

Thursday Aug 21, 2014

NFJS Central Iowa Software Symposium Des Moines Trip Report

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 next talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

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.

The demo code is posted on GitHub: https://github.com/m-reza-rahman/hello-websocket.

My next NFJS show is the Greater Atlanta Software Symposium on September 12 - 14. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

I hope you'll take this opportunity to get some updates on Java EE as well as the other useful content on the tour?

Friday Aug 15, 2014

JavaDay Taipei 2014 Trip Report

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):

It appears your Web browser is not configured to display PDF files. No worries, just click here to download the PDF file.

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

NFJS Lone Star Software Symposium Austin Trip Report

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:

The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

My third and last one for the show was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below:

My next NFJS show is the Central Iowa Software Symposium in Des Moines on August 8 - 10. Here's my tour schedule so far, I'll keep you up-to-date as the tour goes forward:

I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

Wednesday Jul 16, 2014

NFJS UberConf Trip Report

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:

I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

Wednesday Jul 09, 2014

NFJS Central Ohio Software Symposium Trip Report

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:

The next talk I delivered was my Cargo Tracker/Java EE + DDD talk. 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.

My third and last one for the first day was the talk on JMS 2. Besides covering JMS 2, I've also started to roll in some of the possibilities for JMS 2.1. The slides for the talk are posted below:

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:

I hope you'll take this opportunity to get some updates on Java EE as well as the other awesome content on the tour?

Tuesday Jul 01, 2014

Java Day Tokyo Trip Report

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:

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.

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:

He is doing a similar talk at JavaOne 2014 titled "Java EE 6 Adoption in One of the World’s Largest Online Financial Systems".

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!

About



Reza Rahman is a former independent consultant, now Java EE/GlassFish evangelist.

He is the author of the popular book EJB 3 in Action. Reza is a frequent speaker at Java User Groups and conferences worldwide.

Reza has been a member of the Java EE, EJB and JMS expert groups. He implemented the EJB container for the Resin open source Java EE application server.

All views voiced are my own, not necessarily Oracle's.

Search

Categories
Archives
« May 2015
SunMonTueWedThuFriSat
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
21
22
23
24
25
26
27
28
29
30
31
      
Today