Thursday Mar 03, 2016

Farewell to Oracle

              I will have the moral courage to make my actions consistent with my knowledge of right and wrong.

                                                                                                                                                  (See Job 27:5)

I am leaving Oracle behind on Friday March 4, 2016. Consequently this blog will become dormant. The Aquarium blog and the GlassFish/Java EE social media platforms like the @glassfish/@java_ee Twitter accounts will march forward as they have through numerous such transitions.

I have no doubt whatsoever that this was one of the top five hardest decisions of my life. I am also at this stage equally certain that this is the way I personally can best help continue to advance the Java and Java EE communities. I will be rejoining the purely community driven Java EE efforts I have been part of for the better part of a decade in complete good faith as soon as possible post-Oracle.

At Oracle folks like my colleagues David Delabassee and Bruno Borges will continue their roles in the Java EE ecosystem. I certainly wish the many good folks at Oracle nothing but the best of luck. They have a very hard job to do and they will continue to need our support, perhaps now more than ever.

As always you are absolutely welcome to connect with me personally or reach out to me on just about anything. I will be shortly reactivating my somewhat neglected and dormant purely personal blog. I will also be keeping my personal twitter handle active as always. Beyond these below are all my contact points.

Email: reza_rahman at lycos dot com
Cell: 717-329-8149
Home Office: 215-736-1208
Google/Skype: m.reza.rahman
https://www.linkedin.com/in/javareza
http://cargotracker.java.net

Sunday Feb 28, 2016

ConFoo 2016 Trip Report

ConFoo 2016 took place 24-26 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, Python, methodology, usability, JavaScript/HTML5, mobile, cloud, big data, DevOps, NoSQL, Java and .NET.

I started the conference late afternoon the first day with one my most recent talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

Despite being later in the day the talk was very well attended. It is clearly popular, on the mark and well received. There was good Q & A during the talk and some very nice feedback afterwards. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.

The second day in the afternoon I delivered one of my other newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java 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 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 (click here if you can't see the embedded slides):

This talk was also very well attended and well received. I presented the same talk at JavaOne. The video for the session is here.

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

Thursday Feb 18, 2016

DevNexus 2016 Trip Report

DevNexus 2016 was held in historic Atlanta on February 15-17. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South Eastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). I guess at this point I am somewhat of a DevNexus veteran myself. As usual DevNexus attracted a bevy of world class speakers including Stuart Marks, Stephen Chin, Heather VanCura, Venkat Subramaniam, Yakov Fain, Burr Sutter, Freddy Guime, Bob Paulin, Jason Porter, Rafael Benevides, Scott Kramer and so on. Topics included Java SE, NoSQL, mobile, cloud, Docker, HTML5/JavaScript and of course Java EE. This was a solid, fully sold out year for DevNexus!

I started the conference by running a whole day workshop titled "Have You Seen Java EE Lately?". The talk is principally intended for folks that have not stayed abreast with Java EE, especially past the J2EE era. It is also good for newcomers with little or no exposure to Java EE. This is a talk I had been wanting to do for a while. It is highly appropriate for some venues and gives me an opportunity to share some of the things I have grown to value the most about Java EE over the years. I have done this talk a number of times with various Oracle customers, but this is only the second time I did the talk at a major conference.

I start the talk with a historical perspective of how the platform has evolved right up to Java EE 7. I then talk about what Java EE really is today and what it is not. The vast majority of the talk is spent covering major Java EE APIs like JSF, CDI, EJB, JPA and JAX-RS. I explore the APIs and Java EE as a whole heavily utilizing Cargo Tracker as a demo mechanism. For each API I do a high level overview of motivation, features as well as explain what makes them uniquely valuable before diving into a representative demo and code walk-through. I finish the talk by discussing the vibrant Java EE ecosystem as well as discussing Java EE 8. The slides for the talk are below (click here if you can't see the embedded slide deck):

Perhaps I should not be but I am taken by surprise as to what degree some of this is new to attendees. They particularly marvel at the simplicity, productivity, lack of configuration, annotation driven meta-data, lack of complex third-party build dependencies, very lightweight war files and fast deployments that Java EE has offered for many years now.

I started the conference late afternoon the next day with one my most recent talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

Despite being later in the day the talk was packed. It is clearly popular, on the mark and well received. There was good Q & A during the talk and some very nice feedback afterwards. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.

Overall this was another great year at DevNexus and I hope to be part of the conference next year.

Tuesday Jan 26, 2016

Oredev Trip Report

Oredev 2015 was held on 3-6 November in Malmo Sweden. This was my third time at the largest IT conference in the Scania region - I had been there first in 2010 as an independent. The conference is rooted in .NET and development process/methodology but has been trying hard to beef up it's Java content. This year it attracted a decent section of the Java crowd including my fellow Oracle colleagues Bruno Borges and Stephen Chin. Topics covered included .NET, Java SE, Java EE, mobile, methodology, agile, HTML5, JavaScript and NoSQL.

The third day of the conference I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java 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 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 (click here if you can't see the embedded slides):

The attendance was good and there was good Q & A afterwards. The video for the session is here.

The last day of the conference I delivered "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, a new standard action-oriented web framework, security simplification, even better JSON support, CDI 2, more pruning, JMS.next(), JAX-RS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck):

The talk was reasonably attended with some good Q & A afterwards. The video for the session is here.

My visit to Malmo was not all work and no fun. Since this was my third time to Malmo, I know the city quite well. This time I decided to look beyond the city to some of the many Viking sites that litter the Scandinavian country side. Ales Stones - a Stonehenge like mysterious rock formation - was especially hauntingly beautiful (take a look at the pictures below). If you have some extra time while visiting Scania I recommend at least visiting Ales Stones.

All in all, I enjoyed Oredev/Malmo and look forward to going back some time again soon.

Thursday Jan 14, 2016

Java2Days Trip Report

Java2Days 2015 was held on November 2-4 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, Romania, Albania and Macedonia. This was another great year for this rapidly growing, vibrant event. It attracted a host of international and local speakers including Patrick Curran, Geertjan Wielenga, Ivan St. Ivanov, Vladimir Pavlov and Andrew Lombardi. Topics included Java SE, Java EE, HTML5/JavaScript, mobile, and the cloud. If the conference is not on your map already, it should be. It is 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 capable trio of Yoana Ivanova, Iva Abadjieva and Nadia Kostova. It is the only Java conference that I know of for which this is true. Iva's husband Emo Abadjiev also contributes 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 venerable JCP colleague Patrick Curran kicked off the conference with his very important talk titled "The JCP and the future of Java". In the talk he discussed the fundamental importance of standards and the JCP. He also explains how developers should engage with the JCP through programs like Adopt-a-JSR. After Patrick I delivered my new talk titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

I delivered the same talk at JavaOne and you can watch the video here.

Towards early afternoon I ran a hands-on lab on JMS 2 titled "Down-and-Dirty with JMS 2". The lab was packed and went pretty smoothly. The goal of the lab is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I did a brief presentation overviewing JMS 2 and went over the JMS 2 Javadocs. The rest of the time attendees actually wrote JMS 2 code mostly by themselves. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck).

The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)). After my lab my friend Ivan led a lab on the upcoming Java EE MVC JSR. The same lab was also run by Ivan at the Bulgaria JUG as part of their Adopt-a-JSR efforts.

The second day in the afternoon I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java 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 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 (click here if you can't see the embedded slides):

I presented the same talk at JavaOne. The video for the session is here.

While at Java2Days I met up with my friends at the Bulgaria JUG. The JUG is one of the most active ones in terms of their support for Adopt OpenJDK and Adopt-a-JSR.

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.

Tuesday Jan 05, 2016

Java Day Mexico Trip Report

Java Day Mexico 2015 was held on August 29 in historic Guadalajara. I was truly honored to be invited to speak here and this is a very fitting first trip report of the year. Java Day Mexico is the largest Java developer conference in Mexico and it is led primarily by Mexican JUGs. This was another highly successful year for the growing conference. Speakers included Venkat Subramaniam, Pratik Patel, Bruno Borges and Heather VanCura. Topics included Java SE, Java EE, HTML5, JavaScript, architecture, JVM languages, mobile and the cloud.

I started the conference in the morning with my now somewhat dated Java EE 7 talk titled "JavaEE.Next(): Java EE 7, 8, and Beyond". Because this was my first time at the conference, the timing was right for the talk. The talk was certainly well attended. I covered the changes in JMS 2, the Java API for WebSocket (JSR 356), the Java API for JSON Processing (JSON-P), JAX-RS 2, JPA 2.1, JTA 1.2, JSF 2.2, Java Batch, Bean Validation 1.1, Java EE Concurrency and the rest of the APIs in Java EE 7. I also briefly talked about some of the possibilities for Java EE 8. The slides for the talk are here (click here if you can't see the embedded slide deck):

My next talk before lunch was "Why Open Standards and Java/EE Matter". The talk 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 am 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 (click here if you can't see the embedded slide deck):

After lunch I delivered my 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. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck):

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.

Later in the afternoon I delivered my new talk titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

Despite being later in the day the talk was packed. I finished the conference with "What's Coming in Java EE 8". The talk covers the possibilities for Java EE 8 such as HTTP 2/Servlet 4, a new standard action-oriented web framework, security simplification, even better JSON support, CDI 2, more pruning, JMS.next(), JAX-RS.next() and Java SE 8 alignment. I also cover Adopt-a-JSR. The slides for the talk are here (click here if you can't see the embedded slide deck):

The talk was reasonably attended with some good Q & A afterwards. During the closing ceremonies we celebrated the twenty-year anniversary of Java with a pretty cool Mexican Duke shaped cake!

Besides the conference, Mexico was truly a pleasure. Central Americans generally and Mexicans specifically are warm, hospitable, gregarious people so this was not at all a surprise. I took some personal time off to do something that has been on my bucket list for a while - visiting the Mesoamerican pyramids in the Yucatan. My colleague Heather and my old Mexican friend Gustavo were very kind to join me. We visited Tulum, Coba, Chichen Itza and Ek'Balam. We also had time to visit a couple of the very cool Cenotes (basically cave lakes) in the area. Particularly special was the experience of climbing some of the pyramids in Coba and Ek'Balam. It is easy to see that the steep stairs were intended to represent an ascent to the heavens (although it was hard not to think about the fact that for many unfortunate souls sacrificed at the crest of these pyramids, the structures embodied a hellish nightmare indeed). The pictures from the trip definitely do not do justice to these magnificent works of art by a mostly tragically lost civilization (click here if you can't see the embedded slideshow).

While in Guadalajara I caught a pretty cool classic Heavy Metal cover band playing the hallowed likes of Iron Maiden, Dio, Black Sabbath, and Rainbow. I also got to catch a more traditional Mariachi band. I tried in vain to see Lucha Libre (very colorful, acrobatic Mexican freestyle wrestling) in person.

All in all this was a great first Java Day Mexico for me as well as a fun trip to the country.

Wednesday Dec 23, 2015

UberConf 2015 Trip Report

UberConf 2015 was held July 21-24 in Denver, Colorado. UberConf has grown to become one of the most significant US developer conferences - one located in close proximity to the otherwise under-served middle America. Consequently it is an important conference for our team to support. Topics covered included Java SE (thanks largely to Venkat Subramaniam), JavaScript, JVM languages, architecture, methodology, mobile, cloud and the like. My former colleague Arun Gupta and I covered Java EE.

I started the conference late afternoon Wednesday with a talk titled "Down-to-Earth Microservices with Java EE". This is the first time I presented this talk and this was a good testing ground for it. The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

Despite being very late in the day the talk was packed. I've since done this talk a few times already. It is clearly popular, on the mark and well received - even with what I have traditionally observed to be a hostile audience at some venues. I presented this same talk along with Steve Millidge (C2B2, Payara co-founder) at JavaOne. You can view the JavaOne recording of the talk here.

I started the next day of the conference early in the morning with a three hour workshop titled "Have You Seen Java EE Lately?". The talk is principally intended for folks that have not stayed abreast with Java EE, especially past the J2EE era. It is also good for newcomers with little or no exposure to Java EE. This is a talk I had been wanting to do for a while. It is highly appropriate for some venues and gives me an opportunity to share some of the things I have grown to value the most about Java EE over the years. I have done this talk a number of times with various Oracle customers, but this is the first time I did the talk at a conference. This talk, while in a smaller room, was standing room only.

I start the talk with a historical perspective of how the platform has evolved right up to Java EE 7. I then talk about what Java EE really is today and what it is not. The vast majority of the talk is spent covering major Java EE APIs like JSF, CDI, EJB, JPA and JAX-RS. I explore the APIs and Java EE as a whole heavily utilizing Cargo Tracker as a demo mechanism. For each API I do a high level overview of motivation, features as well as explain what makes them uniquely valuable before diving into a representative demo and code walk-through. I finish the talk by discussing the vibrant Java EE ecosystem as well as discussing the Java EE 8 road map. The slides for the talk are below (click here if you can't see the embedded slide deck):

Perhaps I should not be but I was taken by surprise as to what degree some of this is new to attendees. They particularly marveled at the simplicity, productivity, lack of configuration, annotation driven meta-data, lack of complex third-party build dependencies, very lightweight war files and fast deployments that Java EE has offered for many years now. In fact the audience reaction makes it obvious that I should write further about this soon - using some numbers that are bound to be shocking and perhaps unbelievable to some in the community. While these characteristics are already impressive with GlassFish (which is what I used for the demos), they are even better with WebLogic.

I finished the conference in the afternoon with another one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java 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 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 (click here if you can't see the embedded slides):

I presented this same talk a few months later at JavaOne. The JavaOne video for the session is here.

The last day at the conference saw a slew of Java EE talks all day from Arun Gupta including "DevOps with Java EE", "Refactor your Java EE application using Microservices and Containers" and "Package your Java EE Application using Docker". I unfortunately was not at the conference so could not attend Arun's talks. I can only assume they were as well attended and well received as they always are.

All is all this was a worthwhile UberConf 2015.

Monday Dec 21, 2015

JavaOne 2015 - Another Year, Another Step Forward

JavaOne 2015 San Francisco was held October 25-29. I am proud to say this is my ninth JavaOne as an attendee, my seventh one as a speaker, my fourth one as an Oracle employee, my third one as a member of the content committee and my second one as a track lead. I think this was another great year for JavaOne and it is 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 2015. I'll also share all the materials that I presented at JavaOne this year towards the end of the post.

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 is no doubt JavaOne is the largest and most important Java conference in the world. It is critical to continuing to strengthen and grow the Java ecosystem. Having taken part in organizing a few other fairly large conferences and speaking at numerous others, the JavaOne content is definitely of outstanding quality. 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 has the largest concentration of Java content anywhere. As it is said, however, it is far more difficult to stay on top than to get there. Fortunately in the past few years we have been able to maintain an upward trajectory for JavaOne by continually improving whatever we can. To that end we did quite a few things differently last year and this year was no exception.

How JavaOne 2015 was Different
Last year we grew JavaOne attendance numbers at a much more rapid pace than we have in the past few years. This year the challenge was to maintain or improve upon that dramatic growth. We were fortunate that we did indeed see modest growth even this year. This was despite the fact that we did not have any new releases announced of either Java SE or Java EE at JavaOne. On the Java EE front the biggest announcement was full Java EE 7 support in WebLogic (announced here), as well as WebSphere (announced here). Red Hat also announced their work towards making JBoss EAP Java EE 7 certified adding to the existing Java EE 7 community support via WildFly (take a look at the JBoss EAP beta announcement here). It was great to see a number of real world Java EE 7 adoption stories presented including from Rakuten during the JavaOne keynote (more on that below and in future Aquarium entries).

We started the CFP process as early as we could, provided as much detail as possible and kept the community in the loop with periodic updates through blogs like the Aquarium. We pre-selected a small number of rock star speakers to bypass the CFP altogether. On the Java EE track we also reached out to a larger group of folks and cordially invited them to join the CFP (you know who you are). In the end we had a large number of high quality CFP submissions. As a result we managed to create a strong content offering. The event was highly professionally run as it always has been in terms of venue, scheduling and organization. We did do a few things differently that hopefully helped in keeping things in the right direction:

  • Collecting good quality and quantity of feedback has long been a challenge at JavaOne, especially with the amount of content we have. We may have arrived at the best solution this year - we introduced voting kiosks right outside each session room. Since this was our first deployment of the machines it did not go entirely smoothly. Some speakers noticed votes disappearing in the online speaker tool. This is now a known issue in the speaker tool and no votes were actually lost (speakers can request all their feedback data specifically if needed). A small handful of sessions indeed did not have data captured due to setup issues. Despite these issues we still got eight times more session feedback votes cast than previous years. This is critical for us to improve content for the conference in the coming years.
  • Some of you probably know Java celebrated it's twenty-year birthday earlier this year. Partly in recognition to this we did the JavaOne community keynote a bit differently this year. Normally this keynote is a place to celebrate innovative work in Java, usually highlighting many Duke's Choice award winners (click here to see this year's winners announced at JavaOne 2015). This year we decided to do something akin to a theatrical production consisting of a time travel journey through the past twenty years of Java with stops along the way to highlight important technology milestones in the platform. The keynote was a success with a large cast of familiar community members including Java Champions, JUG leaders and JCP members. It generated kind words such as "...it was the best community keynote in JavaOne history!" (Frank Greco, NY JUG leader) and "One of the highlights of this year’s JavaOne is the community keynote...what a show it was!" (Baruch Sadogursky, JFrog Evangelist). You can watch the full video of the community keynote here. I am proud to say I took part in the community keynote.

A few other new ideas we attempted this year included a youth education program on the Saturday prior to JavaOne similar to the highly successful Devoxx4Kids program as well as live streaming a selected set of sessions to the Java YouTube channel.

What we did in the Java EE Track
There are a few more things we did in the Java EE track specifically:

  • The quality of the program committees is a crucial part of the overall quality of JavaOne. I am very happy to say we had a very active committee this year in the Java EE track. We aimed to minimize the Oracle and vendor footprint in the committee in favor of folks in the community including folks that help put together other successful conferences. I wrote about this year's committee in detail prior to JavaOne. I also interviewed some committee members for the Aquarium. We will try to improve the committee further in subsequent years.
  • Just as we did last year 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.
  • Just as last year we promoted video interviews with some JavaOne speakers about their sessions via the Aquarium. 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: Ivar Grimstad, Bessem Hmidi and Kito Mann. We will try to do more of this in subsequent years.

There was some specific content that we wanted to have in the track that we got to various degrees:

Java EE 8: 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. We were able to put together a number of such sessions.

Best Practices/Design Patterns: Beyond learning Java EE APIs, it is critically important to understand how to effectively apply them in real life applications, which is where best practices and design patterns come in.

Real World Adoption Stories: As we grow the Java EE community it is more and more important to highlight adoption stories, case studies and migrations from other technologies. Last year was very good in this regard and I am happy to say this year was even better. 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.

The Java EE Ecosystem: The ecosystem that builds upon Java EE APIs is critically important in keeping the platform strong. This year was far better in this regard than previous years. We always hope to highlight such content and wish there were more submissions along these lines.

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 we had the usual strong showing of Oracle speakers: David Delabassee, Geertjan Wielenga, Bill Shannon, Linda Demichiel, Ed Burns, Manfred Riem, Santiago Pericasgeertsen, Nigel Deakin and 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 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 very proud to host this year:

  • Adam Bien (JavaOne Rock Star, Java EE author, Java Champion, speaker, consultant)
  • David Blevins (JavaOne Rock Star, Java Champion, Apache TomEE project lead)
  • Arun Gupta (JavaOne Rock Star, Java Champion, Java EE advocate, author, blogger, speaker)
  • Patrycja Wegrzynowicz (CTO, Java EE researcher)
  • Antoine Sabot-Durand (CDI specification lead, Red Hat)
  • Kito Mann (Java EE author, speaker, consultant)
  • Murat Yener (Java EE author, speaker, Java Champion)
  • Peter Pilgrim (Java EE author, Java Champion, speaker, consultant)
  • Steve Millidge (London GlassFish User Group, C2B2 Consulting, Paraya)
  • Ivar Grimstad (Java EE advocate, JCP expert, blogger, open source hacker, consultant)
  • Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)
  • David Heffelfinger (Java EE advocate, author, blogger, consultant)
  • Aslak Knutsen (Arquillian project lead, Red Hat)
  • Mohamed Taman (Java EE advocate, Java Champion, Duke's Choice Award Winner, JUG leader, consultant)
  • Roberto Cortez (Java EE advocate, JUG leader, blogger, open source hacker)
  • Alex Soto (Java EE advocate, speaker, blogger, open source hacker)
  • Matti Tahvonen (Developer Advocate, Vaadin)

We will be highlighting some of these sessions on the Aquarium in the next coming months including videos and slide decks (more on that below).

What I did at JavaOne
The last few JavaOnes have been fairly hectic for me and this year was no exception. Indeed this was the most busy JavaOne for me by far. 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:

Sunday: As in previous years I started JavaOne 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 we had quite a bit of time allocated to us on Sunday so we decided to do things a bit differently. Instead of focusing just on GlassFish we had four sessions covering both Java EE and GlassFish. The strategy turned out to be a success and we had much higher attendance than previous years. We will try to continue this strategy in the coming years.

In the first brief session Mike Lehmann presented the GlassFish/Java EE road map. Mike talked about GlassFish 4.1.1, Java EE 8 and GlassFish 5. The second session was titled "GlassFish Performance Tuning: Tips from the Field" and was presented by Steve Millidge (founder Payara, C2B2 Consulting). The third session slot was for David Blevins as well as Oleg Tsal-Tsalko and was titled "Evolving Java EE". They shared some interesting ideas for evolving Java EE APIs using featured introduced in Java SE 8. Adam Bien presented the last session of the day titled "Building Nanoservices with Java EE and Java 8". All of the sessions, particularly Adam's one, were very well attended. Indeed we had to move the room location twice to the largest space we could find to fit everyone that wanted to come listen to Adam!

In the evening we hosted the traditional GlassFish party at the Thirsty Bear. The party was completely packed until the very end as usual.

Monday: I kicked off the Java EE track Monday morning with my two-hour workshop titled "Java EE 7 in Action". It was a fully packed house with most folks staying to the very end. The workshop is something I've successfully delivered in the past. It uses Cargo Tracker but focuses on Java EE 7 usage instead of DDD and Java EE generally. I overview Java EE 7 at a high level, go through each API change and demo some selected features using Cargo Tracker. For each demo I explain the use case for the Java EE 7 feature in use and show actual running code. The slide deck is embedded below and the source PPT can be downloaded from here.

I have deliberately added detailed speaker notes to the source PPT so you should be able to go through the workshop yourself. You can also view the video recording for the entire workshop here.

Later in the afternoon I helped out David Heffelfinger with his popular hands-on lab titled "Java EE 101". The lab is so popular that in fact it is a repeat from last year! In addition it had such high demand that it was scheduled to be run twice this year! Both sessions were completely booked and ran very smoothly. The lab goes through the very basics of Java EE including JSF, CDI, JPA and EJB. I am seriously considering having David repeat the lab again next year. All the lab materials can be downloaded here. You should also check out David's blog entry on the lab here.

In the evening I went to the JCP party which is always lively and a great way to catch up with some key folks in the Java community. This year's JCP award winners were announced at the party including some key winners on the Java EE side of things. You can read my write-up on this year's winners here.

Tuesday: I started Tuesday out with repeating the Java EE 101 lab again in the morning. Towards noon I ran a hands-on lab on JMS 2 titled "Down-and-Dirty with JMS 2". My Turkish friends Salim Kayabasi and Hasan Keklik did an awesome job helping me prepare the materials and run the lab. The lab was packed and went pretty smoothly. The goal of the lab is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I did a brief presentation overviewing JMS 2 and went over the JMS 2 Javadocs. The rest of the time attendees actually wrote JMS 2 code mostly by themselves. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck).

The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)). There were a few good ideas to improve the lab that I hope to incorporate soon.

Later in the afternoon I co-presented a very cool session with another good Turkish friend - Murat Yener. The talk is titled "Java EE Revisits GoF Design Patterns" and is based on Murat's excellent book. The talk explores how modern Java EE incorporates many key GoF design patterns such as singleton, factory, session facade, observer and decorator. Java EE also directly or indirectly incorporates other patterns such as MVC, entity, DAO and DTO. I also discussed how DDD patterns fit seamlessly into Java EE (this is the subject of my other design pattern talk - Applied Domain-Driven Design Blue Prints for Java EE). The talk was completely packed with good Q & A throughout the session. The slides for the session are below (click here if you can't see the embedded slide deck).

You can watch the video for the session here. I finished the day off with briefly going to the Tomitribe party and chatting with a few old friends.

Wednesday: After a hectic few days I was beginning to feel a bit tired and thought I'd rest a bit the 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 with Steve Millidge. This is one of my newest talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are, what practical value they offer for most of us and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible real world microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

I've done this talk a few times already. It is clearly popular, on the mark and well received - even with what I have traditionally observed to be a hostile audience. Unsurprisingly the talk was a full house and went well at JavaOne as well.

You can view the video of the talk here.

Thursday: Thursday was the last day of JavaOne 2015. In the morning I delivered one of my newer talks titled "Reactive Java EE - Let Me Count the Ways!". It aligns Java 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 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 (click here if you can't see the embedded slides):

Although JavaOne had thinned out by Thursday this talk too was packed. The video for the session is here. I finished JavaOne well this year by participating in the excellent community keynote.

JavaOne Comes to Your Computer - for Free!
I am very happy to report that you can take advantage of the materials at JavaOne even if you could not come this year. All the session titles, abstracts and most of the slides are available for all on the content catalog. In addition we've made the session videos available on YouTube. This is a wealth of knowledge available for free that you should not hesitate to take advantage of (especially over the holidays :-)).

All in all this was another 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 content.

Sunday Sep 06, 2015

Devoxx Poland 2015 Trip Report

Devoxx Poland was held on June 22-25 in historic Krakow. This was strictly technically speaking the first ever Devoxx Poland but in reality it is simply a re-branding of the highly successful 33rd Degree conference that I have spoken at in the past. I was truly honored to be invited to speak here - this is one of the largest and most prestigious Polish developer conferences. The conference was completely sold out and chock full of world class speakers/content. Speakers included Adam Bien, Venkat Subramaniam, Ted Neward and Pratik Patel. Topics included Java SE, Java EE, HTML5, JavaScript, DevOps, architecture, methodology, NoSQL and cloud.

I started the conference with our 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, 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 (click here if you can't see the embedded slide deck):

Do note that I've 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 :-). This talk was well attended with some excellent Q & A afterwards. I connected with a potential contributor to the Java EE 8 security specification after the talk.

In the afternoon I delivered my 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 with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck):

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. Later in the afternoon there were interesting talks on JCache as well as WildFly 9.

The second day was pretty light for me with just a fifteen-minute lightning talk and an after-hours Birds-of-a-Feather session. Both were on the same seldom covered but very critical topic - the JCP and Adopt-a-JSR. This is essentially an updated version of a talk I'd developed years past. The talk covers the basics of what the JCP is, how it works and how ordinary developers can participate especially in Java EE 8 JSRs via Adopt-a-JSR. Both the lighting talk and the BoF were reasonably attended and I got some excellent follow-up afterwards including potential new participants in the JCP and Adopt-a-JSR. The slide deck is below, I used the same deck for both the lighting talk and BoF (please click here if you can't see the embedded slide deck):

Please don't hesitate to reach out if you have any questions at all on this vital topic. Like all my talks the slide deck source is posted publicly for you to use.

I did not speak on the last day of the main conference but attended a vital talk on microservices and Java EE by Adam Bien. Unsurprisingly Adam's session was packed, well-received and generated great discussion afterwards.

The part that really took me by surprise was how much Adam and my views coincide with regards to microservices and Java EE. Although we've never discussed the topic, have very different presentation styles and focus, both of our talks on microservices and Java EE deliver essentially the same core message. I delivered my talk on the topic shortly after Devoxx Poland at UberConf (trip report coming soon). My slide deck is posted below for you to take a look at (click here if you are having trouble viewing the embedded slide deck).

After the end of the main conference I ran two separate hands-on workshops on Thursday. In the morning I ran the official Java EE 7 Hands-on-Lab. The lab was a complete full house with great comments afterwards. It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have polished the lab enough to accomplish this goal. My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-).

The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've included a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video.

In the afternoon I ran a hands-on workshop on JMS 2 titled "Down-and-Dirty with JMS 2". This session was packed as well with folks staying over from the Java EE 7 workshop. This was the first time I attempted the JMS 2 workshop and it went surprisingly smoothly (in fact it did not result in a single change to the lab). This is very good news as I am planning to deliver the same workshop at JavaOne. The goal of the workshop is to give attendees some first-hand experience with the primary changes in JMS 2. In the first hour or so I do a brief presentation overviewing JMS 2 and go over the JMS 2 Javadocs. The rest of the time attendees actually write JMS 2 code mostly by themselves. There was some pretty good interaction and Q&A throughout the workshop. The slides I use are available on SlideShare (click here if you can't see the embedded slide deck).

The lab materials are hosted on GitHub for anyone to use. The lab uses NetBeans 8, GlassFish 4 and Arquillian. I've deliberately designed the lab materials to be fairly self-guided so you can definitely use the lab materials on your own (or perhaps even run the lab in your own company/JUG) . You are always welcome to reach out to me when needed. In the lab you'll basically be putting in code to finish a set of JUnit tests using JMS 2, starting from incomplete code with comments on what to do (don't worry, a completed solution is also posted :-)).

Fortunately the trip to Poland wasn't all work and no fun. I had an opportunity to quickly visit a few of the notable sights in historic Krakow including the main square, Wawel castle and the Wieliczka salt mine. The salt mine was particularly striking. I took both the highly sanitized museum-like tour as well as a far less popular rugged, properly-geared guided tour much closer to the experience of visiting a realistic 19th century mine. It'll be easy to spot the difference in the pictures below (click here if you can't see the embedded slideshow).

All in all this was a great first Devoxx Poland and another productive as well as fun trip to the country.

Wednesday Aug 19, 2015

Chicago Coder Conference 2015 Trip Report

The Chicago Coder Conference 2015 was held on May 14-15. The conference is locally organized by the community including the Chicago JUG, which is why it was important for us to support the event. If you are a Chicago based developer, you should definitely consider the event. The event is somewhat Java leaning but also has great presence from the web, .NET, database, etc communities.

I started the conference with a 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 (click here if you can't see the embedded slide deck):

The talk was well attended and I got some very good questions afterwards. My second talk was my 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 with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck):

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.

I am very grateful to have some excellent support from Chicago based Java EE advocate Josh Juneau at the conference. He presented a very good talk covering what's coming in Java EE 8. Normally this is a talk that our team winds up presenting at conferences but it is always far better if the community can help us get the word out just as Josh did at the Chicago Coder Conference. If you wanted to do the same, for example at your JUG, I will be happy to get you any support that you need. That is the reason we have the source PPT with detailed speaker notes posted on SlideShare.

Josh's slide deck is posted below (click here if you can't see the embedded slide deck). As you can see Josh made the content his own, as I would expect most folks in the community to do.

Josh's talk was well attended and he had good feedback on his talk. I thanked him for doing the talk on behalf of the Java EE community and certainly our team.

Overall this was very good for still a fledgling conference. I would urge you to include it in your radar as a speaker or attendee.

Wednesday Aug 05, 2015

JavaOne 2015 Java EE Track Content Finalized (A Detailed Preview)

I am very pleased to share with you that the JavaOne 2015 content is now fully finalized and published. In this brief but detail-rich blog entry I want to tell you a little bit about the Java EE content. As a reminder, JavaOne 2015 is going to be held on October 25–29 in San Francisco and you can register here.

Thank You, Regrets and Being Persistent
First and foremost I want to thank everyone that took the time to submit carefully crafted proposals to the Java EE track. Your passion and dedication has helped us construct a very strong offering for the community at large. It was a privilege to review all your sessions. JavaOne is a key part of the global Java community far beyond the walls of Oracle and all of you are a large part of keeping it successful. This year we are proud to say we have been able to minimize Oracle speakers again in favor of folks from the community as well as real world stories from your fellow Java EE users.

I want to especially thank the folks that did not get sessions accepted, I ask that you don't get discouraged and I hope that you still consider coming to JavaOne. Not getting a session accepted doesn't mean your proposal wasn't great - it simply means the track was fortunate enough to have submissions this year that perhaps were a better fit in one way or the another. It is all the more reason to further sharpen your proposal and try again next year.

Some Key Content
Following are some of the key Java EE sessions that got accepted, broken down by some useful but arbitrary categories. The full content catalog is available here. You should take a look at the catalog and perhaps book your sessions before they fill up.

Java EE 8: 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. We were able to put together a number of such sessions. You should take advantage of these sessions not just to stay informed but to engage.

Best Practices/Design Patterns: Beyond learning Java EE APIs, it is critically important to understand how to effectively apply them in real life applications, which is where best practices and design patterns come in.

Real World Adoption Stories: As we grow the Java EE community it is more and more important to highlight adoption stories, case studies and migrations from other technologies. Last year was very good in this regard and I am happy to say this year is even better. 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.

The Java EE Ecosystem: The ecosystem that builds upon Java EE APIs is critically important in keeping the platform strong. This year was far better in this regard than previous years. We always hope to highlight such content and wish there were more submissions along these lines.

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 we have the usual strong showing of Oracle speakers: David Delabassee, Geertjan Wielenga, Bill Shannon, Linda Demichiel, Ed Burns, Manfred Riem, Santiago Pericasgeertsen, Nigel Deakin, Heather Vancura and Mark Heckler 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 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 are very proud to host this year:

  • Adam Bien (JavaOne Rock Star, Java EE author, Java Champion, speaker, consultant)
  • David Blevins (JavaOne Rock Star, Java Champion, Apache TomEE project lead)
  • Arun Gupta (JavaOne Rock Star, Java Champion, Java EE advocate, author, blogger, speaker, Director of Developer Advocacy, Red Hat)
  • Patrycja Wegrzynowicz (CTO, Java EE researcher)
  • Antoine Sabot-Durand (CDI specification lead, Red Hat)
  • Kito Mann (Java EE author, speaker, consultant)
  • Murat Yener (Java EE author, speaker, Java Champion)
  • Peter Pilgrim (Java EE author, Java Champion, speaker, consultant)
  • Steve Millidge (London GlassFish User Group, C2B2 Consulting, Paraya)
  • Ivar Grimstad (Java EE advocate, JCP expert, blogger, open source hacker, consultant)
  • Ryan Cuprak (JavaOne Rock Star, Java EE author, speaker and JUG leader)
  • David Heffelfinger (Java EE advocate, author, blogger, consultant)
  • Aslak Knutsen (Arquillian project lead, Red Hat)
  • Mohamed Taman (Java EE advocate, Java Champion, Duke's Choice Award Winner, JUG leader, consultant)
  • Roberto Cortez (Java EE advocate, JUG leader, blogger, open source hacker)
  • Alex Soto (Java EE advocate, speaker, blogger, open source hacker)
  • Matti Tahvonen (Developer Advocate, Vaadin)

I hope to see you all at JavaOne. In the next coming weeks and months we will be sharing more details on the Java EE track, content and speakers at JavaOne. Lastly having been on the other side of the fence I know as much as you might come to JavaOne, it might not be a practical reality for you for a variety of good reasons. I want to remind you that we make a point to make JavaOne content openly available to all. That being said I want to tell you that you should make the pilgrimage to JavaOne at least once as a Java developer. I have attended it a total of eight times, most often paying out of my own pocket as a self-employed consultant.

Tuesday Jul 28, 2015

Voxxed Days Istanbul 2015 Trip Report

Voxxed Days Istanbul 2015 was held on May 9th. It might seem surprising but this was the first large scale independent Java focused conference ever to be held in Turkey. It was a deliberately modest but solid first step with gradual future growth in mind. Though the event was modest in scope it was certainly not in terms of spirit and enthusiasm. It attracted some of the best and brightest in the Java ecosystem including Gavin King and Arun Gupta not to mention local Java luminaries like Cagatay Civici (PrimeFaces lead) and Murat Yener (Java Champion). In fact I am proud to say Cagatay and Murat have been good personal friends. Topics included Java SE, mobile, NoSQL, methodology and of course Java EE. Indeed Java EE had a fairly strong presence at the event. I feel very privileged to be invited to this inaugural event. While in Turkey I am very happy to say I also spoke at two of the largest Java user groups in Turkey - the Ankara JUG as well as the Istanbul JUG. It was very gracious of the Voxxed Days Istanbul organizers to help facilitate meetings with both JUGs.

I started my Turkey tour in the political capital of Ankara. True to legendary Turkish hospitality my friend Cagatay picked me up promptly at the airport and never left me alone in Ankara until it was time to head to Istanbul. I spoke at the Ankara JUG on the 5th, delivering a two hour workshop titled "Java EE 7 in Action" that ran more towards three hours. It was a fully packed house with many kindly staying to the very end. For those unaware the Ankara JUG is the most active in Turkey thanks to the likes of Cagatay and Java Champion Mert Caliskan. The workshop is something I've successfully delivered in the past. It uses Cargo Tracker but focuses on Java EE 7 usage instead of DDD and Java EE generally. I overview Java EE 7 at a high level, go through each API change and demo some selected features using Cargo Tracker. For each demo I explain the use case for the Java EE 7 feature in use and show actual running code.

Instead of taking yet another dreary flight I took a very comfortable bus ride from Ankara to Istanbul. I could have also opted for high speed rail but the bus offers a more relaxed experience, picturesque views of the mountainous Anatolian county side and a cool rural meal stop. Just as Cagatay was my kind host in Ankara, Murat Yener, his wife Nilay Yener, Salim Kayabasi and Hasan Keklik were my gracious hosts in Istanbul. On the 7th I delivered the "Java EE 7 in Action" workshop again at the Istanbul JUG to a full house at an excellent ultra-modern venue (thanks Istanbul JUG and Voxxed Days Istanbul lead organizer Rahman Usta for the well-taken pictures).

Voxxed Days Istanbul itself started with a bang celebrating the twenty year anniversary of Java. This was my first of multiple such celebrations. I was honored to be invited onstage to cut the cake featuring Duke alongside my former colleague Arun Gupta, Voxxed Days organizers, Stephan Janssen, Murat and many others. After the keynote and Java birthday celebrations I delivered a very important short talk titled "What's New in WebLogic 12.1.3 and Beyond". The talk essentially covers the very important hard work that we have already done in WebLogic 12.1.3 including supporting some of the most critical Java EE 7 APIs as well as the fundamental changes coming soon in WebLogic 12.2.1 including full Java EE 7 platform support. Below is the slide deck for the talk (click here if you can't see the embedded slide deck.):

I am very glad the Voxxed Days Istanbul organizers were enlightened enough to allow this talk. I wish more events would recognizer the distinction between selling and informing current/prospective users about important technological changes that they can use. As a result, it leaves the industry at large dangerously ignorant of what is really going on with key bits of mission critical industry infrastructure be it WebLogic, WebSphere or JBoss EAP. Likely largely because of these dynamics the session was relatively sparse and that is very unfortunate indeed. Concurrent to my talk Arun Gupta delivered a very cool session on refactoring existing Java EE applications into Microservices using Docker. After my time slot Cagatay delivered a talk on JSF and PrimeFaces.

After lunch I delivered our main driving talk for this year titled "What's Coming in Java EE 8" in the main keynote hall. 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 (click here if you can't see the embedded slide deck):

Do note that I've 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. The talk was well attended and I got some good feedback afterwards. The Istanbul JUG is an active Java EE 8 adopter via Adopt-a-JSR. After my talk there was a good talk on the latest changes in WildFly.

My last talk for the event was my very popular talk 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 (click here if you can't see the embedded slides):

The talk went well and was a full house in a smaller breakout room. I got some excellent questions throughout the session as well as afterwards. Arun Gupta used the last session slot to deliver another talk on Java EE, Docker and Kubernetes.

As tough as a longer multi-destination trip like this can be, one upside is the fact that one can use their personal time to explore one's destination. Thanks to Cagatay, Murat, Nilay, Salim and Hasan I was able to do just that in both Ankara and Istanbul. As unbelievable as this may sound I think I was able to cover the vast majority of the sights in both cites in the short down time that I had including the Kemal Ataturk memorial, Kocatepe mosque, Ankara castle, the blue mosque, Hagia Sophia, Topkapi palace, Basilica Cistern, Suleymaniye mosque, the spice bazaar and the grand bazaar. It's not difficult to see the elegant layers of history in the cradle of so many of the world's major civilizations (that's the Hittite, Byzantine and Ottoman empires for the historically illiterate among you). Just take a look at the pictures below (click here if you can't see the embedded slideshow):

While in Istanbul I was also able to check out underground Turkish heavy metal in the social hub of the city. Cagatay, Murat, Nilay and others from the event came with me so I wasn't on my own for a change (Cagatay and Murat are both metalheads like me). You should do the same if you get a chance to really get a glimpse of the Janus-like heart of Istanbul - with one facet steeped in history and tradition while the other enthusiastically embracing modernity at the same time...

All in all my trip to Turkey was a thorough pleasure and I look forward to going back again soon enough.

Wednesday Jul 15, 2015

Great Indian Developer Summit (GIDS) 2015 Trip Report

The Great Indian Developer Summit (GIDS) 2015 was held on April 21-24 in Bangalore, with a follow-on GIDS.Mini held on April 25 in Hyderabad. GIDS is very easily the largest and most significant developer event in South Asia. Perhaps reflecting global demographic shifts in software development, GIDS may also now have become one of the largest developer conferences in the world. This was yet another highly successful year for the event. As usual it drew some of the best and brightest minds in Java and beyond. It was truly a privilege to be able to speak at the event and I was even more fortunate to have had a number of Java EE sessions there. While in India I am very happy to say I also spoke at a couple of entirely community driven JUG events at the Madras JUG (Chennai) and the Hyderabad JUG before and after GIDS. It was very gracious of GIDS to fully support my engagement with both JUGs.

I started my India tour in Chennai with the Madras JUG on April 21st. They were very kind to warmly invite me and organize a day-long event. It was a very brave, passionate effort for the newly minted JUG with key JUG members speaking. You can take a look at the full agenda here.

I started off the day with my talk titled "Why Open Standards and Java/EE Matter". Designed to be a keynote, the talk 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 (click here if you can't see the embedded slide deck):

After lunch I delivered our main driving 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 (click here if you can't see the embedded slide deck):

Do note that I've 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.

I finished the day giving a very preliminary, impromptu slide-only version of one of my newest talks titled "Down-to-Earth Microservices with Java EE". The talk has two aims. The first is to try to do the right thing in explaining what microservices really are and when you should consider them (or not). The second aim is to demonstrate why Java EE makes perfect natural sense for developing sensible microservices, so called "monoliths" and everything in between. I also briefly explore the work that some parts of the Java EE community is doing to support what I'll lovingly call "microservices Nirvana" (spoiler: I don't think most of us can or need to achieve this Nirvana state). The slide deck for this talk is below (click here if you can't see the embedded slide deck):

I really enjoyed meeting all the good folks at the Madras JUG and hope to speak there again as soon as opportunity permits.

My next stop on the India trip was to Bangalore for GIDS.Java on April 23rd. I chose to take a bus ride from Chennai to Bangalore instead of yet another dreary flight. I definitely recommend it as a way to get a glimpse of the real Indian countryside though one should expect this to be a rugged, down-to-earth experience not comparable to a flight that would be out of the budget of most of the Indian populous. I started GIDS in the morning with my very popular talk 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 (click here if you can't see the embedded slides):

The talk went well and was a complete full house. I got some excellent questions throughout the session as well as afterwards. In the afternoon I delivered one of my latest talks 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 (click here if you can't see the embedded slides):

This talk was also packed and very well received - this has been true basically every time I have presented it so far. I finished off GIDS.Java with another one of my very popular (but older) 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 also a full house with very good feedback afterwards. The slide deck for the talk is posted below (click here if you can't see the embedded slide deck):

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.

My next stop was Hyderabad for GIDS.Mini and Hyderabad JUG. I took another cool bus ride from Bangalore to Hyderabad. GIDS.Mini is essentially a compacted version of the four-day event in Bangalore. I repeated the JavaScript/HTML 5 + Java EE talk for GIDS.Mini. Given the more compact form factor, a smaller crowd and the less Java centric audience the attendance was moderate as compared with Bangalore.

The day after GIDS.Mini the Hyderabad JUG hosted the official Java EE 7 Hands-on-Lab as a full day workshop. Under the very capable leadership of Rajmahendra the JUG is the most mature and most active in India. The event was hosted in the Oracle Hyderabad offices. The workshop was a full house with excellent feedback throughout and afterwards (just check out the very kind comments on the event page). It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have finally polished the lab enough to accomplish this goal. My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-).

The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've now even added a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video (a great suggestion by Rajmahendra!).

I am especially grateful to Lars (featured on the top-left photo) and Rajmahendra (featured on the bottom-left photo) for helping run the lab all day! This was perhaps the largest and most successful execution of the lab that I have seen so far and I look forward to returning to the JUG again as soon as opportunity permits.

As tough as a longer multi-destination trip like this can be, one upside is the fact that one can use their personal time to explore your destination. I fully utilized my downtime between Chennai, Bangalore and Hyderabad to explore sights like the ancient UNESCO World Heritage stone temples at Mahabalipuram, Valluvar Kottam in Chennai, Tipu Sultan's palace in Bangalore as well as Golkonda Fort, Charminar and Qutab Shahi tombs in Hyderabad. This was my second time to Bangalore and Chennai but for me India will seemingly always remain the land of many wonders. To see what I mean, just check out the album below (click here if you can't see the embedded slideshow):

I must also say from the moment my plane landed to the moment it took off, India proved the land of warmhearted, kind, hospitable people. I don't mean just the good folks in the Java community but literally every one of the many people I encountered in India. Indians may still have many things that they must do without but Indians are not short of pride, hope, civility and hospitality. All in all my trip to India was a thorough pleasure and I look forward to going back again soon.

Tuesday Jul 07, 2015

Java Day Tokyo 2015 Trip Report

Java Day Tokyo 2015 was held on April 8th. 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, Simon Ritter, Cameron Purdy and Linda DeMichiel. Topics included Java SE, Java EE, IoT and cloud. Java EE always has a strong showing at the event and this year was no exception.

Cameron Purdy, Vice President of Development at Oracle responsible for Java EE and WebLogic, spoke in the keynote and provided a state of the union for Java EE 7 and Java EE 8. After the keynote Java EE specification lead Linda DeMichiel delivered a detailed status update on Java EE 8. Concurrent to technical sessions the Japanese Java EE team ran the official Java EE 7 hands-on-lab as a half-day workshop. After Linda's talk Japanese Java EE evangelist Yoshio Terada did a "Java EE 7 Recipes" talk. It is very similar to the popular talk by US based Java EE advocate Josh Juneau (the linked video is from his well received talk at JavaOne 2014). Concurrent to this talk Oracle University Japan ran a very basic tutorial session on JSF 2.

In the next session slot I delivered my very popular talk 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 (click here if you can't see the embedded slides):

The talk was packed and I got some excellent feedback from a few folks afterwards. Concurrent to my talk there were other Java EE, JSF talks delivered by Japanese speakers including a very basic JPA 2 tutorial by Oracle University Japan. Following my talk Linda offered her views for the way forward in terms of continued alignment of the CDI and EJB programming models.

I finished off the conference with one of my latest talks 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 (click here if you can't see the embedded slides):

This talk was packed and very well received - this has been true basically every time I have presented it so far. Concurrent to my talk Hirofumi Iwasaki of Rakuten delivered his excellent talk "Seven Points for Applying Java EE 7". 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. Rakuten is a key Java EE adopter in Japan and the Rakuten engineers choose to actively advocate Java EE whenever they can. They are currently gradually adopting Java EE 7 and actively tracking Java EE 8. I think every server-side Java developer out there can learn something valuable from Hirofumi Iwasaki's talk. His slide deck is embedded below (click here if you can't see the embedded slides):

Concurrent to the talk there was another talk on JBatch/Java EE 7 delivered in Japanese.

The day after Java Day, Oracle University Japan arranged for customer only workshops with I and Simon Ritter. I led a half-day workshop in the morning on Java EE 7 while Simon covered Java SE 8 after lunch. The workshop, titled "Java EE 7 in Action", is something I've successfully delivered in the past. It uses Cargo Tracker but focuses on Java EE 7 usage instead of DDD and Java EE generally. I overview Java EE 7 at a high level, go through each API change and demo some selected features using Cargo Tracker. For each demo I explain the use case for the Java EE 7 feature in use and show actual running code. The workshop was a full house and was well received.

Fortunately the trip to Japan wasn't all work and no fun. It seems to always work out that I have more extra time than I expected in Japan (it is always better to plan for more time especially with Java EE customer meetings behind the scenes during a trip). I fully utilized my downtime by making a day trip to Nikko. Easily accessible from Tokyo it is one of the most picturesque sites in Japan - virtually a travel back in time all the way to the feudal Edo period almost on the scale of an entire town! It should be easy to see what I mean from album below (click here if you can't see the embedded album):

I also had the opportunity to witness Japan's most popular and revered Martial Art form - Sumo. If you are hung up on the fat guys in diapers Western meme - you really should open your eyes especially if you have the opportunity to visit Japan. Seeing the Sumo man-mountains in action should leave no doubt they are fierce athletes in every sense of the word (take a moment to consider the fact that each of these guys carry more lean muscle and bone mass - not including body fat mind you - than Arnold Schwarzenegger in his prime). It was an especially moving experience as I got to witness these guys very up-close and personal during their morning practice session instead of from an expensive nose-bleed arena seat more typical of the Japanese Sumo experience. Believe or not you don't need a single cent to do this - just a bit of grit, a small token of appreciation for the athletes and their trainers as well as some due respect for the Sumo culture. Just find one of the many hidden-in-plain-sight Sumo training dormitories spread across Tokyo and politely show up at pre-dawn hours when training starts. Here are some photos of the big boys in action:

I also got to check out the vibrant neon-crazy Shinjuku nightlife including the famed Robot Restaurant (think cabaret meets high-tech robots meets neon meets Japan).

I have to admit it was too trite for me compared to Nikko and underground Sumo but it certainly was intriguing and drew much larger tourist crowds by comparison. The last remaining unexplored avenue for me in Tokyo remains Japanese heavy metal (yes, there is such a thing). I made some headway tracking it down after some effort this time but didn't quite have enough time to catch a live performance. I guess that's for next time :-).

All in all this was another great Java Day Tokyo and another productive as well as fun trip to Japan.

Thursday Jun 11, 2015

DevNexus 2015 Trip Report

DevNexus 2015 was held in historic Atlanta on March 10-12. For those of you not familiar with it, DevNexus is the most significant Java centric (but not Java focused) conference in the South Eastern US and now perhaps even at a national level. It was started by JBoss Java Champion Burr Sutter and organized by the Atlanta JUG (currently lead by Vincent Mayers, Gunnar Hillert, Pratik Patel, et al). I guess at this point I am somewhat of a DevNexus veteran myself :-). As usual DevNexus attracted a bevy of world class speakers including Stephen Chin, Jim Weaver, Ed Burns, Venkat Subramaniam, Yakov Fain, Kito Mann, Markus Eisele, Raju Gandhi, Freddy Guime, Max Katz, Jason Porter and so on. Topics included Java SE, NoSQL, mobile, cloud, Docker, HTML5/JavaScript and of course Java EE. Indeed I think this year Java EE made a very strong showing at DevNexus.

I started the conference by running the Java EE 7 Hands-on Lab as a whole day workshop. The workshop was a full house with excellent feedback throughout and afterwards. It has been my goal to make the lab as much of a smooth experience as possible. I must say I think I have finally polished the lab enough to accomplish this goal. In fact I confirmed this again at the Hyderabad JUG (trip report coming soon). My next challenge is to either run the lab remotely or help someone else run it entirely on their own. If you are interested in exploring either of this, I will be delighted if you reach out :-). I am very grateful to my Oracle colleagues Vijay Nair and Ed Burns for helping run the lab the whole day!

The openly available hands-on lab is actually a very good resource for getting your hands dirty with Java EE 7. The entire lab is neatly scripted into step-by-step instructions and seeded with some starter code as to be largely self-directed and self-paced. The idea is that anyone should be able to complete the lab by themselves or even lead the lab in their own organizations. I've now even added a starter guide of sorts for anyone wanting to run the lab themselves. As time permits my next step is to create a starter video (a great suggestion by Hyderabad JUG leader Rajmahendra!).

I started the next morning with our 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 :-). This talk is usually packed but this time the attendance was relatively light (it was scheduled in a smaller room so that might have had something to do with it). I did have some interesting discussions with attendees including a very solid Java EE adopter from AutoTrader. He was particularly interested in JSF so I pointed him to Ed and Kito as well as encouraging him to participate in the JSF community.

In the afternoon Ed had his HTTP 2/Servlet 4 talk in the same smaller room. I attended the session and it was packed this time. Ed is an excellent speaker and the talk went unsurprisingly very well. HTTP 2 and Servlet 4 is easily the most important part of Java EE 8. In this talk Ed covers the basics of HTTP 2 and how it may surface in Servlet 4 as well as the Java EE ecosystem generally. The slides for the talk are here:

I am considering adopting the talk as groundwork for getting the word out on HTTP 2, Servlet 4 and Java EE 8 generally.

I finished the day with a 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:

I finished off the conference with one of my latest talks 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:

This talk was packed and very well received - this has been true basically every time I have presented it so far. Concurrent to my talk, Jason Porter did a basic talk on JPA.

Overall this was another great year at DevNexus and I hope to be part of the conference next year.

About



Reza Rahman is a former independent consultant, now Java EE 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
« April 2016
SunMonTueWedThuFriSat
     
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
       
Today