Skip navigation
1 2 3 Previous Next

edburns

182 posts

Webinar Notes: Typesafe William Hill Omnia Patrick Di Loreto

My friend Oliver White is doing his usual bang-up job in his new gig at TypeSafe. One aspect is the humble webinar. Here are my notes for one that caught my eye, Using Spark, Kafka, Cassandra and Akka on Mesos for Real-Time Personalization. This is a very dense but well delivered presentation by Patrick Di Loreto who helped develop a new platform for his employer, the online gambling service, William Hill.

Morally, I am sensitive to the real damage done to real lives and families that is caused by gambling, so I will include a link to an organization that offers help: 1-800-GAMBLER. That said, this is just another instance of the ancient tradition of technology development being driven by something that traditionally is seen as vice. (For a humorous, NSFW and prophetic Onion article, search google for “theonion internet andreessen viewing device”. I’m old enough to have first read that on an actual physical newspaper!)

Now, on to the raw notes. YMMV of course, but if nothing else this will help you overcome the annoying problem of the slide advancing not being synched to the audio.

 Context: presentation by Patrick Di Loreto (@patricknoir) R&D Engineering lead for William Hill online betting. The presenation was done for Typesafe as a Webinar on 14 June 2015. They have a new betting platform they call Omnia. - Need to handle massive amount of data - Based on Lambda Architecture from Nathan Marz <http://lambda-architecture.net/>. - Omnia is a platform that includes four different components * Chronos - Data Source * Fates - Batch Layer * NeoCortex - Speed layer * Hermes - Serving layer 03:47 definition of Lambda Architecture “All the data must come from a unique place (data source) They separate access to the data source into two different modes based on timeliness requirements. NeoCortex (Speed Layer) is to access the data in real time, but without some consistency and correctness guarantees. Optimized for speed. It has only recent data. Fates (Batch Layer) is to access the data not in real time, but with more (complete?) consistency. 05:00 Reactive Manifesto slide 06:15 importance of elasticty for them 06:47 Chronos Data Source: “It’s nothing else than a container for active streams” “Chronos is a sort of middleware. It can talk to the outside world and bring the data into their system.” Organize the data into a stream of observable events, called “incidents”. Can have different viewpoints for different concerns * Internal (stuff they need to implement the system itself) * Product centric (which of the WH products such as “sports” “tweets” “news”. * External (“social media sharing”) * Customer centric 10:12 Chronos streams connect to the external system and bring it into Chronos Adapter: Understand all the possible protocols that other systems implement. Connect to the other system. Converter: Transform the incoming data into their internal format Persistence Manager: Make the converted data durable. 11:22 Chronos clustering Benefits from the Akka Framework. Distributes the streams across the cluster. When failover happens, stream connection to outside source is migrated to another node via Akka. Keeps referential transparency. Each stream is an Actor which “supervises” its children: adapter, converter, persistence manager. 12:41 Supervising (Slides diverged from audio) (Slide 12) Supervision is key to allowing “error kernel pattern”. <http://danielwestheide.com/blog/2013/03/20/the-neophytes-guide-to-scala-part-15-dealing-with-failure-in-actor-systems.html> Basically, it is just a simple guideline you should always try to follow, stating that if an actor carries important internal state, then it should delegate dangerous tasks to child actors, so as to prevent the state-carrying actor from crashing. Sometimes, it may make sense to spawn a new child actor for each such task, but that

GeekOut 2015 Summary

I last had the pleasure of visiting the lovely Baltic city of Tallinn in 2012, when I presented JSF 2.2 and the Rockstar talk at GeekOut 2012. Now that I've got something new (for me anyway) to talk about I made the cut and was invited back to present Servlet 4.0 at GeekOut 2015. Attendence was capped at 400, giving this conference a very exclusive feel. Indeed, 99% of those that registered for the conference actually did attend. This was the 5th installment of the GeekOut conference, hosted by ZeroTurnaround. This was the first time the conference had two tracks, so my report here only covers the sessions I actually attended. All of the sessions were video recorded, and I expect the sessions will be made available soon.

Day One

Day one started with back-to-back plenary sessions offering two different perspectives on the #java20 theme. Stephen Chin gave a historically rich but technically light session featuring lots of freshly recorded video clips with Java luminaries. Of course there was ample content from James Gosling, who I would like to congratulate for winning the 2015 IEEE John von Neumann Medal. This puts James in the company of such titans as Leslie Lamport, Donald Knuth, Ivan Sutherland, and Fred Brooks. I was happy to see that Stephen dove deeper and offered the perspectives of John Rose and Georges Saab on more fundamental aspects of the history of Java. Martin Thompson followed Steven with a very complimentary session. The session was so complimentary I'd almost say they coordinated. Martin's session gave his personal perspective on Java over the years, with some very interesting stories from his work on making Java perform well. I liked his perspective on the causes and challenges of bloat in a long-lived software ecosystem. Another very interesting perspective was the extent to which high frequency trading drives advances in performance (in Java and in the entire industry). Martin's talk piqued my desire for a #java20 talk about all the companies that have been spawned directly or indirectly by the Java ecosystem. I'm thinking Interface21, Tangosol, JBoss, NoFluffJustStuff, ZeroTurnaround, Atlassian, Parleys and there are many others. Hey, I'm pretty sure there's an interesting talk in there somewhere.

After the plenary sessions, we broke out into the two tracks, starting with my session on Servlet 4.0 and a session on Cassandra. My session was quite well attended, and it went pretty smoothly. We'll see how the feedback shows up, however! After my session, I went down to see Markus Eisele talk about Apache Camel. I hadn't followed the progress in the Camel community and I'm happy to see it is doing well since. Also nice to see my old pal Gregor Hohpe represented virtually, as his book is represented in spirit in Camel itself.

I was very keen to see the Vaadin talk from Peter Lehto. I had long been perplexed at Vaadin's ability to decouple itself from GWT, particularly as GWT's popularity has dwindled. This talk, at last, promised to lay bare the secret at the heart of Vaadin: its runtime is dependent on GWT. I was not disappointed, but I was also very pleasantly surprised. Mr. Lehto directly addressed the question of the relevance of server side UI frameworks, including Vaadin (and JSF, though he didn't name it specifically) in an HTML5 JavaScript framework world. He did so by pointing out the importance of abstraction, which I've long been pointing out when presenting on JSF. In the case of Vaadin and JSF, their core value add is the authoring experience. With Vaadin, it's Java programmers who want to treat the world like Swing. With JSF it's "page developers" who want to treat the world like some form of VisualBasic environment. For Vaadin, its existing abstraction allows their underlying runtime to leverage W3C Web Components (or the polymer implementation of the same) for some Vaadin components while relying on GWT for others. Peter put a strong stake in the ground and predicted that W3C Web Components are the future for web development. I don't disagree, but JSF is well positioned to leverage W3C Web Components because it fits in nicely with the JSF abstraction.

Day Two

Day two started out with Attila Szegedi's highly technical Rhino talk. This was the first talk of the day, after the party night, so it was a little lightly attended. However, those that made it there were rewarded with an in-depth understanding of the rationale for some performance related design decisions in the implementation of Nashorn.

The 10:30 slot was another effectively plenary session, but out in the demo area. Stephen Chin's highly effective NIGHTHACKING brand came to GeekOut with a panel discussion on the #java20 theme. The video is on the NIGHTHACKING website. This was a lot of fun, and I got to put my Javagator old-timer test out there. I also had the pleasure of a brief chat with Stephen regarding JSF 2.3 and Servlet 4.0.

I was really looking forward to Tomasz Nurkiewicz's session about CompletableFuture, particularly because of its use in the Java SE9 HTTP/2 client. Thomas managed to pack a whole lot into a short, well constructed, code powered session. It's not easy to explain the differences between thenApply(), thenCombine(), thenCompose() and many other methods in the API, but Tomasz succeeded. He even surfaced an important naming inconsistency between the CompletableFuture API and the java.util.Optional API: thenCompose() == flatMap(). For more on this topic from Tomasz, check out his blog entry The Definitive Guide to Completable Future. Personally, I think it's a bit bold to give a single blog entry such a lofty title, but you can't argue that it does indeed cover the topic very well. I meant to ask Tomasz if his code samples from the talk were taken from an upcoming book. Tomasz, if you happen to see this little blog entry, please plug the book if there is one.

I had high hopes for the next talk, Gleb Smirnov's concurrency talk. It was probably a great talk, but sadly this is when my jetlag hit hard and I was struggling to keep up. I'll look for the video!

I took a pass for the 15:00 slot due to the afore mentioned jetlag and opted to save my energy for one final session, Andrzej Grzesik's Go. I'd taken a quick look at Go before the session, so I was in a good position to enjoy it. This session made no excuses about having nothing to do with Java and instead just tried to give a quick tour of the Go language and programming environment, with a view towards lowering the barriers to entry to give it a try. Go succeeds because it rules several fundamental things as simply out of scope. There is no dynamic linking. There is no UI. There is no API to the threading model. There is no inheritance. I'm glad Go is out there because sometimes you don't need that stuff. For what it's worth, here's a nice post on Go from the Docker guy.

Finally, there were some brief and tasteful closing remarks from ZeroTurnaround founders and my good friends Jevgeni Kabanov and Toomas Römer. I'm glad to see these guys doing well.

Recent Ripple of JSF Extensions

 

My colleague Manfred Riem tipped me off to a new framework built on JSF, ButterFaces.  This whimsical name started an amusing Twitter thread, but also, and much more importantly brought several other new JSF extensions to light. This is the sort of thing that I used to look to Kito Mann's JSF Central Frameworks Page for, but it seems that needs an update.  So, in addition to ButterFaces, here are several other JSF extensions that are definitely worth a look.

 

BootsFaces focuses on Twitter Bootstrap 3 and jQuery UI.

 

Material Prime is a PrimeFaces extension that lets you build web apps that conform to Google's "Material" design language.

 

Generjee is a Java EE application generator that outputs JSF+JavaEE 7+CDI code.  FWIW, I would be remiss if I didn't point out that there is nothing named JEE.  So, I suggest this project rename itself to generee.  I think that's snappier anyway.

 

This recent flurry of activity shows two things.  First, the continuing vitality of the JSF ecosystem.  By now I think we all know that the ecosystem around the technology is just as important as the technology itself.  It's like this.  A technology has to be "good enough" to get the job done.  That's a given.  Heck, it could even be excellent technology.  But without an ecosystem around it, even the best technologies will not survive.  Second, there is still interest and value in server side state UI frameworks.  My recent work with HTTP/2 in Servlet 4 has shown me that such frameworks are very well positioned to take advantage of the optimizations in the HTTP/2 protocol, as well as other performance optimizations shown in Ilya Grigorik's excellent High Performance Browser Networking.

 

So, check out these new frameworks and don't be afraid to question conventional wisdom.

ConFESS 2015 Wrap Up

Hard on the heels of JavaLand was ConFESS. This was the eighth installment of the conference that started life in 2008 as JSF Days, switching to the name "ConFESS" in 2011. The name stands for the "Conference for Enterprise Software Solutions". Last year, ConFESS was held as a partnership with JavaLand in Brühl Germany. Neither party was satisfied with how that turned out and in 2015 ConFESS returned to its home in Vienna, where it will stay. It was a relatively small event, with just over 200 participants. It nicely filled out the venue, the C3 event center in the 3rd district. In my opinion, its small size is a large asset. The ability to have the entire event schedule on two sides of a 4x5 inch card is very convenient.

My overall impression of the conference was very positive. There was a wide variety of talks from speakers I hadn't seen before on the conference circuit. There was a good breadth of coverage in diverse tracks ranging from agile/methods to Java EE to tools to client side technologies, and there was an excellent band on Tuesday night, Florian Braun and FSG Company. There was also a Lego Mindstorms EV3 competition that got rave reviews, but I didn't attend that portion of the event.

The full set of abstracts from the conference are available at the regonline site for the event. You can use that site to learn more about the sessions for which I will give my brief impressions in the remainder of this blog entry.

Tuesday

The Tuesday Keynote was from Oracle Labs's Thomas Wuerthinger. Thomas presented his exciting work on the Graal VM. First off, I'm glad to see that Oracle has continued Sun's tradition of funding long-term research in the spirit of Sun Labs, founded by computing pioneer Ivan Sutherland (yep, just checked, he still works for Oracle). The basic idea of Graal appears to be: take the abstract syntax tree concept from compiler design and make it a first class part of the JIT process, allowing the runtime to rewrite itself as the program runs to achieve greater performance without sacrificing agility. Cool stuff, and great for a keynote.

Sticking with the JSF heritage of the conference, next up was Cagatay Civici's talk about PrimeFaces. Cagatay introduced the new "layouts" concept, built on JSF 2.2 Resource Library Contracts. The base offering consists of two new layouts, Sentinel and Spark. One thing I've always liked about PrimeFaces is how they take the base concepts of the core JSF specification and use them to maximum effect, taking full advantage of new features, large and small.

Diving down a level, Johannes Tuchscherer from CloudFoundry talked about Docker and how it relates to offerings from Pivotal. Johannes put the hype into perspective, showing how you still need other technologies to actually create value with Docker.

Sticking in the Pivotal realm, Jürgen Höller gave the Spring 4.1 overview talk. It was nice to see that they were able to leverage Java SE 8 features while producing a binary that runs on Java SE 6. I was happy to have the opportunity to ask Juergen how pulled that trick off and the answer is basically build-time static code analysis. They compile with Java SE 8 with -source and -target 1.6, and have a build-time tool that looks for usages of Java SE 8 only idioms and APIs, and flags them as failures.

The next talk I attended was a really practical hands on session about Java Flight Recorder from Johan Janssen. I'm a big fan of learning to get more out of tools I already have. JFR has been a part of the JDK for quite some time.

Wednesday

I was happy to see my good friend and fellow Oracle employee Mike Keith given the Wednesday keynote slot. Mike is a veteran of the conference trail, author of Pro JPA2 and former JPA spec lead. Mike was talking about an exciting new product from Oracle: Mobile Back End As A Service (MBaaS). In a nutshell, this product packages up everything enterprises need to deploy mobile based applications that are built on their existing infrastructure. Mike's slides are available for download.

My own session was up next, at which I gave a status update on JSF 2.3. Briefly, it's a community driven release aimed at preserving your existing investment in JSF. I've uploaded my slides to slideshare.

As a counterpart to Johan Janssen's session yesterday I attended Anton Arhipov's session about ZeroTurnaround's XRebel product. I liked his straightforward pitch: most applications receive very little profiling attention, let's make a super simple product that lets you get the low hanging fruit with maximum performance gain. Indeed, the slick browser based UI is very easy to use. When asked about various corner cases, Anton was honest and answered the current state of the product is very narrowly focused on where the most value can be easily extracted. This focus is a key success factor for ZT, in my opinion.

I've always talked up the importance of maintainability, and sold that as a strong suit of the Java EE stack, so it was with great interest that I attended Bernhard Keprt's session about maintenance. One reason I like attending conferences is to remove my 3rd order ignorance by exposing me to technologies I otherwise would not encounter. During Bernhard's talk, he introduced me to VersionEye. The value-add of this tool is easy to perceive: given that you have lots of dependencies, let's have a tool that keeps an eye on them and lets you know when they update.

Stefan Schuster gave a session from his experiences in developing apps for the three big flavors of mobile deployment platforms: native, Apache Cordova, and mobile web app. I liked this session for its first-hand perspective.

To close out my 2015 ConFESS session attendance I viewed Alex Göschl's session on AngularJS. Alex shared his experiences in deployng Angular 1 for the jobs portal for conference sponsor Willhaben. FWIW, I found nine job postings for JSF on the site and four for Angular. This was an enjoyable talk and Alex did a great job explaining the extremely heterogeneous set of tools and technologies used in the project. Prior to switching the jobs portal to Angular 1, they were using GWT. It was pretty much a complete rewrite. The most useful aspect of the talk to me was the ease with which such an apparently complex tool chain is now accepted and leveraged by your average front end team. For example, the following nine step dev time build process was rattled off as if it were no big deal.

  1. clean build targets

  2. compile less to css

  3. copy vendor libraries

  4. copy assets

  5. compile and optimize angular templates

  6. compile and check typescript

  7. copy to tomcat

  8. inject velocity templates

It must just be my Java EE roots that makes me feel that the preceding list is a lot more complex than a similar build process in a Java EE stack. I need to spend more time getting to know the workflow in current front end shops. Can anyone recommend a user group or meetup in Orlando, FL?

Following the two day conference was my full day of workshops. I had a small but dedicated room of students and I hope they enjoyed the sessions.

JavaLand 2015 Wrap Up

After months of preparation, it all came down to three days of intense execution, and I was just one speaker. I can only marvel at the logistical acumen that was on display from the JavaLand and DOAG team. I had an action , capably coodinated by Andreas Badelt. Because of the high level of activity on my personal agenda, I was not able to attend as many sessions as I would have liked. In any case, this blog entry is my place to share my overall impressions of the conference, and of the sessions I did get a chance to attend.

Day One

Right off the bat, I want to tip my cap to Marcus Lagergren for remaining calm in the face of some AV problems. Even with all that, and the 45 minute session duration, Marcus managed to give a compelling whirlwind tour of his personal experience with Java from the beginning. More photos like the one on the right are available from Stefan Hildebrandt's flickr photo stream. I think there is a lot more room in the "20 year's of Java meme", however, and I applaud Marcus for wisely not attempting to speak for all of it and drawing from his own experiences. That's one great thing about the #java20 meme, everyone has their own story. Maybe at JavaOne 2015 they will have some sort of Story Corps type thing where people can give their stories. Come to think of it, if someone wants to build Story Corps as a Service (SCAAS), perpahs they can sell it to Oracle for use at the show.

Shortly after Marcus's session, I presented with my good friend Oliver Szymanzki a 45 minute capsule of our full day training session about Java EE 7 from an HTML5 Perspective. It was tough to make a meaningful abstraction from a full day session to just 45 minutes, but I hope at least people could take something useful away from it.

Then came my first exposure to the EAA, which was my only chance to present JSF content here at JavaLand. I gave a quick presentation and had an informal meeting with several JSF EG members who were at JavaLand. We covered f:socket, multi-component validation, and URL mapping.

The evening community event was really not to be missed. If you ever have a chance to attend JavaLand, I really recommend you participate.

Day Two

I started out the day by presenting a modified version of my DevNexus session about Servlet 4.0 and HTTP/2. I basically dropped the demo and moved the Java SE 9 content to an EAA session in order to fit into the 45 minute window.

Following my session I was able to enjoy Mark Little's keynote about Java Enterprise and Internet of Things. This session put out some hard-won truths of problems we have solved in Java as cautionary tales for newer stacks that seem intent on re-inventing wheels rather than standing on the shoulders of others. I must admit it was a feel-good session, but still realistic and largely kool aid free.

In the afternoon, I supported David Blevins during his session about the new Security JSR. This was a very informative session that got a whole lot done in only 45 minutes. I hope it encouraged some people to get involved in JSR-375.

Running back to the EAA, I presented the exciting work being done by Michael McMahon to bring a new Http Client to Java SE 9, including HTTP/2 support. I can't post the slides, but I'm sure we'll have something on this at JavaOne.

My last engagment of the conference proper was to participate in a joint vJUG/NightHacking session regarding Adopt-a-JSR. This was lots of fun, and I thank Stephen Chin and Simon Maple for providing a vehicle for it.

As a nice wind-down from the conference, and a bit of chill before the training day, I was invited by DOAG boss Fried Saacke to attend the 5 year celebration dinner for Java Aktuell magazine. I didn't know it at the time, but the invitation included an opportunity to give a short speech, in German, on the importance of JCP to the Java Community. I hope I didn't mangle my words too badly.

After being blessed with many years of German conference opportunities at which I invariably bring home lots of chocolate, I felt it was time to give the Germans a taste of American-style sweets along with their pre-loaded VM usb sticks. These Tasty Kakes or a specialty of my home-town of Philadelphia, and each attendee of the session Java EE aus einer HTML5-Perspektive received some along with a full day of instruction and a USB stick with a VM containing the workshop materials.

In summary, JavaLand has lots to recommend it. Come for the content, stay for the fun.

JavaLand 2015 Early Adopter's Area

With only 25 business days to go until JavaLand 2015, now's a good time to share the plans for the Early Adopter's area and Hackergarten. As at many other Java community conferences, this is a space where anyone can visit and meet with leaders of different parts of the Java ecosystem to see first hand what's new in their own little patch of the Java world. The detail page for this space on the JavaLand website: < http://www.javaland.eu/index.php?id=1786 > lists the individuals who have committed to spend some time in the space. I've been participating in these kinds of spaces for nearly ten years now and it's always very worthwhile for me to interact with the community in this way.

The schedule of mini-presentations is still not yet finalized, but the detail page will have the final schedule when it is. In the meantime, I can share an alphabetical snapshot of the current set of individuals and their topics. If I have any commentary to add for each entry, I'll add it. As I prepared the commentary, a theme emerged. Every one of these individuals is passionately advocating for their ideas in the face of some form of challenge. I see individuals who are trying to displace an incumbent technology, trying to overcome some part of the community "not getting" their idea, and fighting the old bugbear of complexity/indifference. This passion makes it worth your time to stop by the early adopter's area.

Alex Snaps, Peter Lawrey

Alex and Peter are talking about JCache and Data Grids

 

Anatole Tresch

Apache Tamaya, Java Configuration, and Money and Currency

Anatole has been super determined to make progress on the configuration for Java effort. This effort started out as an Oracle-lead JSR proposal, was transferred to Anatole's employer, Credit Suisse, was declined for consideration in both EE and SE JCP executive committees, and Anatole finally decided to make progress as an Apache Incubator Project. I applaud his tenacity.

Andres Almiray

Andres is most famous for his involvement in the Griffon desktop application framework, but his passion for this space has lead him to propose JSR-377: A Desktop Application API. Now, I've been around long enough to know that this is a difficult space to occupy, with several attempts at standardization having come and gone (see JSR-295, and JSR-296, and JSR-143). I wish you the best of success with this one, Andres, but it's obviously a tough nut to crack.

Dan Allen

I know Dan from his productive involvement in JSF 2.0. These days I see him frequently tweeting about Asciidoctor. After having just made a trivial pull request to the HTTP/2 spec and using xml2rfc to do it, I can say there is room for improvement in this space, and I know that Dan can tell you all about it.

Ed Burns

I'll be here talking about JSF, Servlet, and HTTP/2.

Heather Vancura

Heather is the heart of the JCP, and therefore has her finger on the pulse of what is happening across the evolution of the entire Java platform.

Ivar Grimnstad

I don't know Ivar, but he is on the MVC Expert Group, and is thus a great conduit to the development efforts of one of only two new JSRs in Java EE 8.

Mani Sarkar, Daniel Bryant

I've seen Mani at several conferences over the past couple years, and he epitomizes the passionate Java developer. As the late night tech conversations would dwindle off, he'd always be one of the last ones still talking hard core tech. Mani's the real deal. Mani is talking about OpenJDK, among other things.

Roland Huss

Roland is talking about JMX and Java EE Management.

Please drop by the Early Adopter's Area to catch up with these and other Java community leaders!

JavaLand 2015 Conference Picks

With only 44 business days to go until JavaLand 2015, I’d like to share my conference picks. I’m including my sessions for completeness, and naturally I recommend you attend them, but I’ll also include an alternate that I’d attend ]]>

Tuesday, 24 March 2015

0900, Wintergarden, Welcome Keynote: 20 Years of Java

I like to attend the plenary sessions of a conference if they are at all interesting, and Oracle Java engineer Marcus Lagergren’s looks great. It will be on the big stage. This year I’m celebrating my own 20 year anniversary with Java, since I was present at the German debut of Java at the The Third International World-Wide Web Conference in Darmstadt, Germany in April 1995. I vividly remember someone (Arthur van Hoff I think) typing, as root rm -rf /*, at the end of the demo on a Sun UNIX workstation. What flair!

1000, Schauspielhaus, Praktisches API-Design

Dieser Vortrag wird auf Deutsch gegeben, aber trotzdem empfehle sie ich weil das Thema nebem meinem Hertz liegt. Hopefully I’ll get some tips for design in JSF and Servlet.

1200, Quantum 1, Java EE 7 from an HTML5 Perspective: WebSocket, JSON, & JSF

This is my first session, and it is an overview of JavaEE 7 from the perspective of technologies useful to those developing JavaEE 7 backed apps with HTML5 user interfaces.

If I wasn’t speaking myself, I’d attend my pal Anton Epple’s 1200, Quantum 2, Wie programmiert man JavaScript in Java.

1300, Schauspielhaus, The (not so) Dark Art of Performance Tuning

My good friend Kirk Pepperdine is a global expert in this topic, and a great and entertaining speaker as well.

1400, Wintergarden, JBatch mit Apache BatchEE

Batch is one of those unglamorous yet essential technologies, and also one with a very vibrant JCP community. I remember meeting Michael Minella of Spring Batch at DevNexus 2014 and he was so excited about passing the TCK. The session speaker, Mark Struberg, is a tech titan and one of the sharpest guys I’ve had the pleasure of working with. He’s also a great speaker.

1500, Wintergarden, Where Are We At with MVC in Java EE 8

I work very closely with my co-spec lead on JSF, Manfred Riem, so I’m biased, but this session is sure to be great. MVC is one of the most talked about technologies in Java EE 8.

1600, Quantum 4, Confessions of an Automation Addict

I’m a bit of an automation addict myself, but the horse I picked to ride has fallen out of favor. Nonetheless, I still use it heavily.

1700, Schauspielhaus, Speed up Your Java by Turning it into Binary

John is a great speaker and industry veteran, and this talk has a provocative topic, so it is sure to be worthwhile.

 

One unique aspect of this conference is its location: a top-tier amusmement park. Think of it as a smaller mashup of Disney’s Epcot and Magic Kingdom, with German sensibilities. After the first day of the conference, some of the rides will be open to conference attendees. My favorite was Winja’s force. This is a relatively mellow roller coaster with a twist, literally. The car you sit in can rotate as it glides along the rails.

Wednesday, 25 March 2015

0900, Quantum 3, Developing Native Mobile Apps Using JavaScript

This is a bit outside of my bailiwick, but my friend Hazem Saleh is a great speaker and strong proponent of Open Source. He’s also a JSF Expert Group member.

1000, Schauspielhaus, HTTP 2.0 Comes to Java EE

This is my second session, and I’ll explain what’s in store for Servlet 4.0, with a special view towards HTTP/2.

If I wasn’t speaking, I’d definitely attend Sven Peters’s Coding Culture session in Wintergarden. First off, Atlassian makes much better products than GitHub. Second, Sven is an excellent speaker, and third the talk is likely to be keynote worthy. I’m not glad to be up against him in the schedule.

1100, Wintergarden, Enterprise and Internet of Things

The Tuesday plenary is by Dr. Mark Little, who is doing a great job driving Java EE forward at JBoss. I normally don’t go in for IoT sessions, but Mark is sure to make it interesting.

1300, Schauspielhaus, Java EE Security: Let’s Make Something Useful

David Blevins is a strong community voice for improving Java EE, and security is one of the most challenging areas to improve. You can tell it’s hard just by how long it’s taken for the community to get up enough steam to tackle it in a proper JSR. Well, we have one now: JSR-375, and David will tell us how we can make the most of it.

1400, Quantum 4, Productive, Effective Development? You Weak Minded fool!

Simon Maple has done a great job building the Virtual JUG into a force for good in the Java Community. He is well positioned to deliver this kind of talk thanks to his role at ZeroTurnaround.

1500, Quantum 1, Softwarequalität steigern

This appears to be a survey talk about how to effectively use some popular tools in practice to improve software quality. I’ve never seen Andreas G¨nzel talk, but the topic is interesting to me.

1600, Quantum 4, Puppet für Entwickler

Now that Docker is all the rage, I’ll be interested to see what’s new with Puppet, or at least learn how these two popular sysadmin technologies relate to eachother. As with the previous talk, I’ve not seen Sebastian Hempel speak before this.

Thursday, 26 March 2015

As mentioned in my previous entry, Oliver Szymanski and I are presenting an entry in the training day: Java EE 7 from an HTML5 Perspective.

JavaLand was great fun and very professionally enriching last year. This year promises to be even more so. I hope to see you there!

JavaLand Training Day Teaser

With only 61 days to go until JavaLand 2015, it's high time for a preview of the Training Day session I am pleased to offer with my friend Oliver Szymanksi. Briefly, this session is a full day treatment of the parts of Java EE 7 that intersect with the world of HTML5 web development.

While the session is an update of the successful class we offered at JavaOne San Francisco 2014, it is not a simple repeat. Some major things have happened in the world of HTML5 since JavaOne 2014. Most notably, HTML5 has gone final. In case you missed it, many things that were slated for inclusion in HTML5 have been descoped, as detailed in the Plan 2014 document from W3C. The idea is to reduce HTML5 spec size by splitting things into seperate specification efforts. Formerly core ideas such as the 2D Canvas, Web Storafe, WebSocket, Server Sent Events and WebRTC either already had their own specification effort or now have one. The Plan 2014 document justifes this move with some compelling anecdotal data, summing it up with this defensive statement, “The evidence shows that placing technologies in their own extension specifications, while initially controversial in some cases, has proven to be a long-term benefit for peace and harmony in the end.” Peace and harmony? I hope so. In any case, Oliver and I will break this down and show you what it means for developers using Java EE 7.

Here is the basic outline of the session.

Morning session WebSocket, JSON, JSF

  • JSON
    - Why is this important? JSON is to HTML5 what XML was to web services
    - JSON-P is for parsing
    - What about binding to Java Objects?
  • WebSocket
    - Three specs: JavaScript API, IETF transport protocol, Java API
    - Java API details: Usage from a browser, Usage from standalone client
  • JSF: The good parts
    - Composite components
    - HTML 5–friendly markup

Afternoon session: HTML 5 Deep Dive

  • HTML 5: Why all the fuss?
    - What's in a name?
    - Is it really a big deal?
  • HTML 5: High-level perspective
    - Design goals
    - How does it differ from HTML 4
  • HTML 5: Subspecifications
    - Browser contexts
    - Microdata
    - Canvas context
    - Offline apps
    - Messaging
    - Events
    - Cross-document messaging
    - Server-sent events
    - WebSocket
    - Drag and drop
    - Web storage

JavaLand 2015 has much to offer aside from just this training day, so please consider attending!

With all of my formal JavaOne conference obligations satisfied, day four was dedicated to listening. Another day, another hotel. The community keynote had a little bit of everything and was in the San Francisco Marriott, bringing to four the total number of separate buildings I had to visit for ]]>is available at Oracle. The room was full, and Intel VP Michael Greene had an attentive audience for his portion of the keynote. The keynote quickly moved on to showcasing some highlights from the Java community over the last year. There was a great selection of awards, demos, and product announcements. I was happy to see Scratch style programming return to the Java platform in the form of SnapCode, demonstrated by its creator Jeff Martin. I feel that Scratch is the gold standard in this sort of environment, and I was very disappointed when they dropped Java in favor of Flash (as part of a broader move to an entirely cloud-based development environment, which I also didn't appreciate). If you had some of the same reservations, consider giving SnapCode a try. There were some other nifty demos all of which combined to give the attendees a positive impression about how fun and cool it is to develop on the Java Platform.

Mark Reinhold re-appeared and gave the rest of the technical keynote, allowing Brian Goetz to finish his interrupted content from Sunday. Oracle has helpfully produced a single streaming file with the content from both days. Mark and Brian's presentation was followed by a question and answer panel, facilitated by the twitter hashtag #j1qa and adding James Gosling, Brian Oliver and Charles Nutter as panelists. Perhaps we should have done this approach during the web framework smackdown. The most humorous question was regarding a suggestion to move OpenJDK to GitHub. Mark's satisfyingly definitive answer was "no". As usual with large-scale Q&A panels, there was not much depth and the questions bounced around a lot. It's always great to have James Gosling on hand for some part of JavaOne, and this year he pointed out that Java has come full circle, having been intended for "Internet of Things" from the start. I'll point out that Sun had a mass-market IoT device ten years ago in theform of the SunSPOT. Did you know that Oracle Labs continues the work on SunSPOT and you can still buy them for $399? The panel closed out with the traditional t-shirt cannon distribution. I give a special thanks to my old pal Vinicius Senger for catching one for me. In a nod to a more TED-style talk, (but a mere shadow of the glory days of Douglas Adams' JavaOne keynote) Andra Keay gave a nice talk about the dynamics of robot/human interactions. Sadly missing from the talk was any mention about my pet peeve in the whole robot revolution: the need to change how society values the output of human work in a world where robots do most of the work.

The conference orgnizers thoughtfully delayed the start of the rest of the sessions by 30 minutes to accomodate the lengthened keynote. This gave me time to get back over to Parc55 for CON2131: Java EE Community Update and Panel. Bruno Borges moderated. On the panel were my (skiplevels) boss Cameron Purdy, John Clingan, GlassFish Product Manager at Oracle, Kevin Sutter, Java EE Architect at IBM, Mark Little, RedHat VP, Adam Bien, famous Java EE consultant, and David Blevins founder of Tomitribe. Sadly missing from this year's panel was any representative from Pivotal. Bruno lead off the session with some slides and allowed the panelists to introduce themselves. Interestingly, the slides in the content catalog for this session are Mark Little's, not Bruno's. Nonetheless, Mark's slides are very informative, do check them out. The discussion rapidly focused on some current trends in enterprise Java software and how Java EE has responded to and will respond to these trends. Mark Little, in typical dry British fashion, observed that what we now call microservices is really just the latest name for SOA. This observation lead to an acknowledgement that the idea of a WAR file being deployed in a container is starting to give way to the idea of a deployable application that contains an executable runtime. I hope they post the audio for this session because there was a lot more that I'm not recalling.

It turned out that the next session I attended was the only purely technical Java EE based session I could make, but it was a good one. It was CON3389: Migrating a JSF-Based Web application from Spring 3 to Java EE 7 and CDI. The slides are in the content catalog. This session by Leander Reimer was an excellent case-study of how an existing JSF based web application that was built on Spring was migrated to a pure Java EE stack. It is common knowledge that Spring has risen to prominence by positioning itself as an alternative to Java EE. What is not so common knowledge is that there has always been significant interplay and cross-polination of ideas between Spring and Java EE. For example, did you know that JSF 1.0 had its own, XML based dependency injection mechanism way back in 2004, right around the time that Spring 1.0 was released? This sort of thing is not surprising since both stacks have been trying to solve the same kinds of problems, for the same kinds of developers, and there are only so many ways to skin a cat. This fact enabled Mr. Reimer and his team to successfully and quickly complete the migration. The main idea of the talk was to show that for every thing they had in their app using Spring, there was a corresponding way to do it in Java EE. This traversal of migration tasks served as a vehicle for pointing out several pitfalls they had to safely navigate to get to production. During the Q&A I asked Mr. Reimer a two part question. First, I asked why did they use JSF in the first place when many Spring shops just go with the built-in Spring MVC? His answer: PrimeFaces. Next, I asked him to speculate how much harder would the task have been had the UI been in Spring MVC instead of JSF. I was hoping the discussion might give my colleague Manfred Riem, also in the audience, a chance to bring up MVC 1.0. Instead, Mr. Reimer observed it wouldn't be that hard to write an integration layer on top of JSF that allows its use in an action-oriented manner. This was a skillfully executed talk with a compelling topic given from an in-the-trenches perspective. Bravo.

Way back in March when I attended JavaLand I saw an excellent session from my old pals Manfred Geiler and Thomas Spiegl from Irian. The session was about their new UI technology called Ankor. I requested they submit this session to JavaOne, and thankfully it was accepted as CON2403 - Reactive UIs with the MVVM Pattern. Ed Burns and Manfred GeilerEd Burns and Manfred GeilerI was unable to attend the talk as it conflicted with Mr. Reimer's but I did catch up with Manfred and Thomas after their session for a beer in Duke's cafe. This was a special anniversary for Manfred and I. Ten years ago, at JavaOne 2004, Manfred and I met when he attended my session on JSF 1.0. Manfred approached me and said, "Hey, I have an independent implementation of JSF," and I was thrilled. This, of course, was MyFaces. To commemorate these two meetings separated by ten years, at left you see Manfred and I at JavaOne 2004, and at right, with Thomas Spiegl, at JavaOne 2014.

My final session, in the final slot, was Mike Duigou's excellent CON6309 New Tricks for Old Dogs: Collections in Java 8. The slides haven't been posted yet, but do get them when they become available. Talks like this are really useful to expose you to the new features you really need in practice. Mike's session was really useful because he gave the perspective behind the design choices in these fundamental library classes that have contributed so much to the success of Java over the years. Sadly, I see that Mike has recently left Oracle but he's now working with James Gosling directly at his Liquid Robotics outfit. I wish you the best, Mike, but I'm sure we'll see you at JavaOne next year. I ran into Stuart Marks after Mike's session and he gave me a checkup on the knowledge I had absorbed, as seen at left.

To sum up JavaOne 2014, Oracle's consistent investment in promoting the Java Developer community is very evident. Though firmly in legacy territory, Java is still very vibrant and very new. The priorities behind the design choices in Java itself (innovation packaged in an enterprise ready programming environment) are on display in the community as well.

Day three was definitely the high point of the conference for me.  As anyone who has spoken at tech conferences knows, the point in time when all of one's sessions have been given is the turning point between tempered enjoyment and pure enjoyment of the conference.  I was blessed with the scheduling this year; I was all done after Wednesday.  This put me in a great frame of mind to enjoy the Oracle Appreciation Event.  Day three also saw the culmination of a long running project: the Web Framework Smackdown 2014 edition.

 

My friend and colleague Reza Rahman asked me to keep the web framework smackdown meme going for another year.  This year I called in quite a few favors to pull together a diverse group of celebrity panelists: Miško Hevery, creator of AngularJS at Google, Pete Hunt creator of ReactJS at Facebook, panelists preparing and Joonas Lehtinen, creator of Vaadin.  The panel was moderated by Neal Ford of ThoughtWorks.  I rounded out the panel representing JSF.  I've learned from previous smackdowns that a confident and comfortable moderator combined with a little prep time just before the panel are the keys to success.  We met at 11am for this purpose over Patxi's pizza. From the left you can see Neal Ford, Miško Hevery, myself, Joonas Lehtinen, and Pete Hunt.  I don't think Pete and Miško had met before, and it was interesting hearing them trade notes about their approaches to the performance of handling the model update side of their frameworks.  From what I gathered, they both see that feature as the most valuable aspect of their frameworks, and they both have spent significant time optimizing that part.  When it came time to take it on stage, we started by introducing our different approaches to the task of building a stateful and responsive user interface delivered in a web browser.  Angular and React are entirely client side, while JSF and Vaadin are entirely server side.  In spite of Neal's earlier recommendation that client side is the way of the future, Joonas and I made the case for where server side makes sense.  Briefly, reasons for favoring server side over client side include simplicity, security, integratability (such as mashups), and maintainability.  Client side is better when Facebook-sized scale is important, when JavaScript fluency is a non-issue, and when "modern" browsers are a given.  You'll have to check out the audio to get the full details.  My only complaint with the panel is that it really didn't get smackdown-ish at all.  I welcome comments about the client/server UI debate.  Perhaps we can get some smackdown action in the comments.

 

My last official obligation of the conference was my final booth duty in the Java EE both.  This session closed out the JavaOne exhibition, and as such the traffic was a bit light.  I was able to take a tour around the exhibition to obtain some schwag for my kids.  This year it was novel to see Target with a booth.  I've long been a fan (and shareholder) of Target, avoiding Wal*mart at all (unfortunately frequently too high) costs.  They were recruiting.  JavaOne is not a job fair, but it was still nice to see them representing Minneapolis, home of Facelets creator Jakob Hookom.

  

Geert and the NullPointers   Freddy, Frank, and Ed Booth duty done, it was on to a bit of fun in Duke's Cafe.  As I mentioned in my JavaOne 2014 Day One blog entry, Chicago JUG leader Freddy Guime had put together a band of musician Java enthusiasts called the NullPointers. They allowed me to sit in with them for some songs during their set at 5pm Wednesday.  This was a real honor and a great blast.  At left, from the left you see Zoran Severac, Mattias Karlsson, of JFokus, Geert Bevin of ZeroTurnaround, and Jim Weaver, Java Developer Advocate for Oracle.  At right, from the right, you see Freddy, Frank Greco of the New York Java Users Group and myself.  I think my keyboard stand was formerly in the Hackergarten.

 

The fun kept on rolling, with the Oracle Appreciation Event.  This used to be called the Customer Appreciation Event.  I'm not sure why they renamed it.  I would probably have given it a pass this year but for my 11 year old who is a big Macklemore fan.  I'm glad I went because Macklemore was very entertaining, and Aerosmith put on a great show as well.

The flow of my JavaOne 2014 experience had each day getting progressively less demanding. Day zero was an eight hour class. Day one was booth duty, a session , EG meeting, and a BOF. By day two, Tuesday, my involvement had reduced to presenting one session, participating in the Hackergarten and meet the experts areas, and a panel discussion.

The day began by co-presenting a session with Heather VanCura, Mohamed Taman and Reza Rahman about the Adopt-a-JSR program. This session, CON6289: Adopt-a-JSR for Java EE 7 and Java EE 8 was a lot of fun to prepare and present. We examined how the community has been involved with the JCP specifications that make up Java EE in the past few years, pointing to some sucessess and lessons learned. We looked at the topic from several perspectives. Heather presented the overview, Mohamed presented the Adoptor perspective, I presented the Adoptee perspective, and Reza presented the beneficiary perspective. With all these viewpoints on the problem, I think we had it covered pretty well. The slides have already been posted to the JavaOne content catalog.

As with yesterday's servlet session, we lead a parade from the conference room over to the Hilton, this time to the Hackergarten. The idea with the Hackergarten is to give attendees a zero-commitment opportunity to experiment with some new technology, in this case JCP specifications. As with Adopt-a-JSR, the Hackergarten is an opportunity for spec leads to leverage the excitement of the community to the benefit of their specification. I saw Anatole Tresch using the Hackergarten to advance the state of his Config JSR. During my time in the Hackergarten, I met with several people who were interested in Servlet and HTTP2, as well as meeting the JCP EC representive from ARM, who was very excited about recent developments in Java ME.

It was a short hop from the Hackergarten to the Meet the Java EE Experts table. While there, I had a nice conversation with Yara Senger (the heart of Java in Brazil), and a gentleman from the US Department of Education. He mentioned that ed.gov uses JSF for a large number of different siloed applications and were interested in using the Resource Library Contracts and Faces Flows features of JSF 2.2 to separate the appearance of an application from its behavior.

Rounding out the technical content of the day, was the late addition to the Java EE schedule of my colleague Manfred Riem. Manfred presented a BOF about MVC 1.0, one of only two brand new JSRs in Java EE 8. Manfred presenting MVC 1.0 Manfred has uploaded the slides to the JavaOne content catalog. My take on this JSR, and I'm going to get admitedly biased here, is that with the addition of MVC and the soon to be filed Security 1.0 JSR Java EE will really be a complete stack for enterprise software development on the Java platform. I think of security and MVC as the last two missing pieces in the Java EE puzzle.

My last session obligation of the day was participation in BOF3031 Meet the Java EE Specification Leads. This BOF was schedule challeged, with an 8pm start time. At the start of the session we had more people on stage (13 spec leads) than in the audience, but thankfully a few more people trickled in, tipping the balance in favor of the audience. Even with the light attendence, there was useful dialog, on topics such as security, database migration during development, and testability. I was happy to have the involvement of Emmanual Bernard and Antoine Sabot-Durand on the panel. Without non-Oracle vendors, there is no JCP, so RedHat is a very important partner.

Update 1: added content about Greg Wilkin's Async IO session.

 

The first real day of the conference began with session one of two obligatory Oracle booth duty assignments.  Our booth had two foci: showing off Java EE 7 using the Cargo Tracker Blueprints Application and providing insight into our plans for Java EE 8.  To spice things up a bit and perhaps draw some people in, I brought along my kit-built homebrew Theremin, pictured here. Homebrew Theremin In my opinion, Java EE 8 is all about solidifying the platform by increasing cohesion between the already loosely copuled parts, while making incremental improvements to the parts of the platform that relate directly to building HTML5 delivered web applications and hosting them on the cloud. I've taken the liberty of uploading David Delabassee's excellent Java EE 8 slides to slideshare (Congrats on the $118 million payout, by the way.)  I always enjoy doing booth duty.  I look at it like I'm a TA doing office hours: if people want to catch me at JavaOne, this is the best time for it.

 

Another fun aspect of JavaOne is how it all blends together.  Towards the end of my booth duty session, my colleague and Servlet co-spec lead Shing Wai Chan stopped by and we put the finishing touches on our slides for "CON5898 - What Servlet 4.0 Means to You".  Of all the JavaOne conference sessions and BOFs in which I played a role this year, this was to be the most technical.  I've uploaded the slides to slideshareDavid Delabassee tells me this one will be in the first or second group to be uploaded to Parleys.  There were 162 pre-registrations for the session and I'd estimate there were about 200 in the room.  The session was notable for being the only Java EE session that featured Java SE 9 technical content.  After explaining the why and how of HTTP2, as well as how it may be exposed in the Servlet 4.0 API, I included some content on JEP110, the HTTP2 client for Java SE 9.  Both the client and server side are still very undefined at this point, but it's good to give people an insight into where we're going.

 

Directly after the Servlet 4.0 session, we lead a parade over to the Sutter conference room in the Hilton for the combined JSF 2.3/Servlet 4.0 EG kick-off meeting.  While a pale shadow of its former self, it was still a useful meeting.  The full audio has been uploaded to the project area on java.net for both Servlet and JSF.  My intention for the meeting was to establish the scope for these two specs and decide on next steps.  One big take-away, suggested by Greg Wilkins, is the need for additional use cases for HTTP2 server push, aside from the obvious and important one of a web framework that has a-priori knowledge of the resources that are associated with a given web page. We all took the action item to look for such cases and share them with the EG.  Another notable item for the kick-off meeting was an interesting idea from Neil Griffin.  Neil suggested we might investigate using our announced dependency on Java SE 8 and its built-in JavaScript engine, to increase the dynamism of JSF apps.  Briefly, Neil's idea is to introduce a lifecycle phase after render-response that would do some processing on the rendered view to prepare it for quick display in the browser DOM, delivering a direct-to-DOM view of the page.  I asked Neil to think about it some more and consider sharing the idea on the EG list.

 

As a general rule, I like to listen at more than I talk, but today the only session I was able to attend was Greg Wilkins's CON2236 Async IO session.  The slides have already been posted at the JavaOne website.  Greg is an excellent speaker, do make a point of seeing this session when it comes up on Parleys.  Greg did an excellent job of explaining the gotchas of async IO programming, without any Responsive Manifesto hype.  Very interestingly, he did admit that the his original objections to some of the Async Servlet API during the JSR-340 expert group discussion proved to be unfounded and that he rather liked how the API turned out in the end.

 

JCP Party Picture Next on the agenda was the Annual JCP Awards Party.  The nominees and award winners are documented at < https://jcp.org/en/press/news/awards/2014award_nominees >.  There was some real competition in the events this year, but I'm happy to announce that Heather VanCura won the JCP Member/Participant of the year award.  Speaking as a fellow Oracle employee, we all owe a debt of gratitude to Heather and her colleagues for continuing to demonstrate the value of the Java Community Process within a very shareholder-value (that is, short-term value) focused company.  Standards pay dividends, but they tend to be long-term rather than short term.

 

This year continues the tradition started last year of hosting the event at the Cityscape area on the top floor of the San Francisco Hilton.  In the image at left you'll see Heather announcing the awards. You'll also notice some musical instruments.  These were furnished courtesy of JFrog and played by a group fronted by Geert Bevin. The group was a pick-up band composed of members of the Java Community and went by the name of, "The NullPointers".  In addition to Geert, the band included Freddy Guime of the Chicago Java Users Group, Frank Greco of the New York Java Users Group, Jim Weaver, Java Developer Advocate for Oracle, Zoran Severac, Cesar Hernandez, and Mattias Karlsson, of JFokus.  I was going to sit-in on keyboard, but, as mentioned above, things blend together at JavaOne, and I had to leave the party early to present my JSF 2.3 BOF over at Moscone.  Thankfully the band gave me another chance to sit in during their 2nd performance on Wednesday.  It was sub-optimal to have to leave such a great event, but the community is more important than the community, in this case, so off to Moscone I went.

 

This was the first year since the Oracle acquisition that any part of JavaOne has been held in Moscone.  This year only the Mondy night BOFs were held there, but I'm hoping it's the beginning of a trend.  This being a BOF, rather than a technical session, I incorporated content from two JSF Expert Group Members, Kito Mann and Ian Hlavats.  My slides are at slideshare, as well as Ian's. The basic idea for JSF 2.3 is to provide a vehicle to attend to the fit and finish of the JSF spec, addressing JSF customer issues that have accrued over the years, and give the community a vehicle to propose, drive, and implement features that they feel are important, subject to final-cut from Manfred and I.  The former category will include things like multi-component validation, Ajax method invocation, and better CDI integration.  The latter category may include things like Kito's proposed JSON component rendering and Ian's proposed Twitter Bootstrap integration.  Again, the emphasis in the latter category is for the community to do the heavy lifting, with oversight, veto authority and integration help from Oracle.

 

That's not a bad first day!  Booth duty, technical session, EG meeting, JCP Party, and BOF.

I estimate that this is my 15th or 16th JavaOne.  I started in 1998 or 1999 and missed 2003 due to the birth of my first son.  Aside from that, I haven't missed one since.  I consider myself very blessed to have taken a small part in such a long and fun ride.  To add blessing on top of blessing, this is the fourh JavaOne at which I have had the honor to teach a class at Java University.  My good friend Oliver Szymanski and I repeated our class from last year, updated with new content.  We had 16 students, and they were fully engaged, learning about JSON, WebSocket, JSF and HTML5.  After the class, which ran from 09:00 - 16:00, Ollie and I took in the Oracle OpenWorld Keynote and then headed over to the GlassFish party at ThirstyBear.  This event has stood the test of time, becoming the one time of the year when the leading lights of the Java Community come together to compare notes and set plans for the big week ahead.  The real action starts tomorrow.  My agenda includes giving my Servlet 4.0 talk with Shing-Wai Chan and my JSF 2.3 talk with Manfred Riem, Ian Hlavats and Kito Mann, in addition to the requsite booth duty from 09:30 - 12:00.

I meant to mark this anniversary when it came up, but missed doing so.  It's been ten years, so what's an additional five weeks going to mean.  On 28 June 2004 I announced, with my first entry on this blog, the first part of Java to be released into open-source.  That initial release of the JavaServer Faces reference implementation was the first step in the journey towards opening Java that completed in April 2009 with the removal of the last binary plug from the OpenJDK.  For my part, I've been blessed to work on open source technology all these years and have enjoyed many collaborations with the best software development community in the world, the Java community.  I hope we all can continue to create the future of Java in the coming years.

javaserverfowner

HTTP/2 and Java Blog

Posted by javaserverfowner Jul 29, 2014

Filter Blog

By date: