About software development for the enterprise. Focus on Java EE and more general Java platforms.
You'll read a lot about Conferences, Java User Groups, Java EE, Integration, AS7, WildFly, EAP and other technologies that hit my road.

Thursday, October 25, 2012

Java Temporary Caching API - Test-driving the Early Draft Review RI

09:15 Thursday, October 25, 2012 Posted by Markus Eisele
,
It was known as "The Neverending Story". The JSR kicked of 11 and a half year ago and passed the JSR Review Ballot on 06 Mar, 2001. If you ever wondered what it takes to get a fancy low JSR number in the hundreds: That is the secret. Unlike in the German fantasy novel by Michael Ende this was not about people's lack of imagination but about resources, political discussions and finally about licensing. But let's forget about the past and move to what is there since yesterday. Note that this material was uploaded to the JCP in February but was delayed while the legal complications of having two companies as shared spec leads got sorted out. That is done and will not be an issue going forward in the process.

What is it all about?
Caching is known for dramatically speeding up applications. Those typically use temporary data which is expensive to create but has a long lifetime during which it can be re-used. This specification standardizes caching of Java objects in a way that allows an efficient implementation, and removes from the programmer the burden of implementing cache expiration, mutual exclusion, spooling, and cache consistency.
It is designed to work with both Java SE and Java EE. For the later it still is not ensured, that it will be included in upcoming EE 7 release but the EG is working hard on it and needs your feedback.

How do I get my hands on it?
That is easy. All the needed artifacts are in maven central already. Let's build a very simple sample for you to get you started. Fire up NetBeans and create a new Maven Java Application. Name it whatever you like (e.g. cachingdemo, open the pom.xml and add the following two dependencies to it:
<dependency>
            <groupId>javax.cache</groupId>
            <artifactId>cache-api</artifactId>
            <version>0.5</version>
        </dependency>

        <dependency>
            <groupId>javax.cache.implementation</groupId>
            <artifactId>cache-ri-impl</artifactId>
            <version>0.5</version>
    </dependency>
And if you are there, change the junit version to 4.8.2.
Refactor the AppTest to utilize the new junit:
package net.eisele.samples.cachingdemo;

import org.junit.Test;

/**
 * Simple Cache Test
 */
public class AppTest {

    @Test
    public void testApp() {
    }
}
All set. To make this simple, I'm going to add some caching features in the test-case.

The Basic Concepts
From a design point of view, the basic concepts are a CacheManager that holds and controls a collection of Caches. Caches have entries. The basic API can be thought of map-­like. Like a map, data is stored as values by key. You can put values, get values and remove values. But it does not have high network cost map-like methods such as keySet() and values(). And generally it prefers zero or low cost return types. So while Map has V put(K key, V value) javax.cache.Cache has void put(K key, V value).
 
 // Name for the cache
        String cacheName = "myfearsCache";
        // Create a cache using a CacheBuilder
        Cache<Integer, String> cache = Caching.getCacheManager().<Integer, String>createCacheBuilder(cacheName).build();
        // define a value
        String value1 = "Markus";
        // define a key
        Integer key = 1;
        //put to the cache
        cache.put(key, value1);
        // get from the cache
        String value2 = cache.get(key);
        //compare values
        assertEquals(value1, value2);
// remove from the cache
        cache.remove(key);
        // ceck if removed
        assertNull(cache.get(key));

Things to come
This basically is all that is possible at the moment. Going down the road with subsequent releases you should be able to:
- Integrate with Spring and CDI via @Annotations
- Use CacheEventListener
- Work with Transactions
The EG is actively searching for feedback on the available stuff. So, if you can get your hands on it, give it a try and let the EG know what you think!

Links and Reading
JCP page: JSR 107: JCACHE - Java Temporary Caching API
Group Mailing List http://groups.google.com/group/jsr107
Log issues in the Issue Tracker https://github.com/jsr107/jsr107spec/issues
A very simple demo https://github.com/jsr107/demo
ehcache-jcache - an implementation of the 0.5 specification https://github.com/jsr107/ehcache-jcache

Tuesday, October 23, 2012

The Heroes of Java: Angelika Langer

18:00 Tuesday, October 23, 2012 Posted by Markus Eisele
, , ,
It is conference season for the "Heroes of Java" and this is a good time to publish another entry. This time I am celebrating the 20th edition of the series with Angelika Langer. Thanks for taking the time answering my questions!

Angelika Langer
© Angelika Langer, All Rights Reserved
is an independent instructor, coach, and author on C++ and Java. She is working worldwide, mainly in Europe and North America. Her areas of expertise include advanced C++ and Java programming, concurrent programming and performance issues.
She is the author of the Java Generics FAQ and co-author with Klaus Kreft of the books " C++ Standard IOStreams and Locales " (Addison Wesley, 2000) and " Java Core Programmierung " (Entwickler Press 2011). She is a Java Champion and enjoys speaking at conferences all over the world. Further on she is an observing member of the ISO/ANSI C++ standards committee and the Java Community Process JCP.

General
Who are you? (Describe yourself in max three sentences)
I'm a freelance trainer and author teaching Java and C++. I'm based in Munich, Germany, but teaching wherever there is demand.

Your official job title at your company?
Since I am self-employed there is no company that could provide me with a job title.  If I wanted a job title I could simply invent one.

Do you care about it?
No, I couldn't care less.  Does anybody care?  It always baffles me when people demand that I provide a job title. Like, for instance, each time I open a bank account or file a tax report I must invent a job title.  So, I'm usually saying "trainer", which at one bank was filed as a sports-related profession, like I were a soccer trainer or something.  I doubt that the bank had any serious interest in my job title; it is just a silly formality.

Do you speak foreign languages? Which ones?
German is my native language and I am able to read, write, and talk in English, but beyond that ... nothing I would dare to use in a business context. Just some rudimentary knowledge of French and Italian.

How long is your daily "bootstrap" process? (Coffee, news, email)
It depends on where I am on a given morning.

When I'm in Munich I brew a cup of coffee, nestle myself into one corner of the couch in my home office, and enjoy the morning sun, if any.  No further bootstrap.  It takes half an hour at most.

There were times when I rushed to the computer first thing in the morning and started reading and answering email even before my coffee had been brewn.  I don't do this any more; it's not healthy.  These days I take care of email and news in the afternoon or evening. My prime time, i.e. the morning hours, are devoted to work that requires substantial amounts of concentration and creativity such as coding, developing concepts, working on course materials, writing articles, etc.  The chores such as email, tax declarations, business correspondence, etc. is routine and done later in the day.

But, most of the time I wake up in a hotel room somewhere, take the usual hotel breakfast, grab my notebook, and walk to the customer site where I'll be running my seminar.  No bootstrap at all.  Email has to wait until evening hours - sometimes even until I return to the office if the seminar is exhausting.

Twitter
You have a twitter handle? Why?
No, I don't use Twitter.  Just the bare idea of reading and writing tweets in addition to what I'm already doing turns me off.  I'm too busy and don't need any additional chores.

Also, I don't like the concept of Twitter.  I studied their terms and conditions and learnt that Twitter claims full ownership of all tweets.  Seemingly, I as the originator of a tweet would not have the right to modify or delete any of my tweets any time I desire to do so.  It's an "interesting" concept that I personally do not feel comfortable with.

I guess, in general, I lack the exhibitionist gene that is needed for exposing one's private parts in social networks.  I do maintain a webpage whose content I own and fully control.  I did create profiles at Linkedin and Xing many years ago out of curiosity, but I haven't used them much.   But nothing beyond that. No Twitter, no Facebook, no nothing.

Work
What's your daily development setup? (OS/IDE/VC/other Tools)
Nothing fancy.  Windows7-64, the latest versions of either Java or C++, an editor, a text processor, a presentation tool for the seminar materials, and that's basically it.

For teaching and writing purposes I'm interested in understanding and evaluating tools and deliberately do not restrict myself to anything in particular.  In general, I prefer open source or free tools (e.g. Eclipse, gnu, OpenJDK, LibreOffice) over commercial tools.  Whatever I present is more helpful to the audience if they can actually and easily use and apply it.  Where is the point in talking about a commercial tool that only few people in the audience will ever get a chance to use?  Also, there are very mundane and practical reasons for not tying myself to anything in particular: I need to stay flexible and must adapt to the customer's toolset, for instance, each time I bring programs for the hands-on part of an in-house workshop.

Which is the tool providing most productivity to your work?
The advent of IDEs was an immense productivity boost.  I still remember the stone age of software development on mainframes when as a developer I had to generate a cross reference of my source code, kindly asked for a printout from the computer centre services, and then flipped pages in a pile of paper at least 20 cm thick in order to figure out which variable or method was used or defined where in the source code.  Crazy!  What a poor use of precious time ...

So, I do very much appreciate the tools we have available these days.  IDEs, browsers, JavaDoc, profilers, monitors, etc.

And the internet, of course.  The possibility to work remotely and easily share information with other people.  The availability of information.  Can anybody remember that entire teams had to share one hardcopy of a manual for information about protocols, APIs, and the like?

Your prefered way of interacting with co-workers?
Email. It's independent of time zones.  I can read and write them whenever I see fit. I can archive them and search them if I can't remember their precise content.  I can't keep all details in mind as I'm almost always handling a dozen threads in parallel.  I need a means to remind myself what I discussed with whom.

Consequently, I hate phone calls; they interrupt my flow of thought and work. Plus, they are more work than an email, because  I need to take notes of what was discussed on the phone so that I can later look it up.

What's your favorite way of managing your todo's?
A piece of paper and hand written notes that I can cross out when done or throw away when obsolete.  I need a visual and physical manifestation of my chores. Same for my schedule. It's a calendar with color-coded entries sitting on my desk.  Everything that I consider important must sit on my desk.  I even explicitly print documents just for the purpose of putting them onto my desk to remind myself that I still must take care of it.

It's similar to the decision between a hardcopy of a book and an e-book.  Both forms have their merit.  I prefer the hardcopy for reading the book and the electronic version as a reference for subsequent lookup.

If you could make a wish for a job at your favourite company: What would that be?
I enjoy being self-employed and already have the job I desire.

Java
You're programming in Java. Why?
Because it is a successful and popular programming language used by many companies and millions of developers.  It would be difficult to make a living by teaching a programming language that hardly anybody is interested in.

What's least fun with Java?
Lack of diagnostics from compiler and virtual machine. I miss a convenient and systematic way of retrieving information regarding compilation, optimization, garbage collection, thread management, and further compiler/JVM internals. But then, it's a property of the respective virtual machine implementation and not of Java, the programming language, itself.  Regarding a programming language such as Java I don't think in terms of "fun".  A programming language is a tool; I simply use it.

If you could change one thing with Java, what would that be?
Let me quote Nick Cave: "I don't believe in an interventionist God."  All decisions regarding Java were made for a reason that appeared good at the time when the decision was made. I respect that.

One could argue that Generics could have been added much earlier, e.g. in Java 1.2 instead of Java 5.  No need for type erasure at that early point in time; generics were much easier to understand and use.  However, given the circumstances, type erasure makes sense to me. That does not mean that I like type erasure or would suggest to change it.

What's your personal favorite in dynamic languages?
Dynamic language?  I strongly prefer statically typed languages.  I feel uncomfortable if both the compiler and the runtime system do lots of stuff for me without telling me what is going on.

Just as an anecdote:  I gave a talk on lambda expressions in Java 8 recently and mentioned that variables from an enclosing context used inside a lambda expression are treated by the compiler as though they were declared final in the enclosing context - regardless of an explicit final declaration being present in the source code or not.  These variables are "implicitly" final.  How on earth would that be helpful?  I would definitely prefer typing those five additional "final" characters to have a visible clue that the variable is final rather than
having the compiler making it final silently behind my back.  It is much clearer and more understandable if the source says what it means.  I'm not entirely against type inference; it definitely has its merits in many situations, but Java was deliberately designed as a verbose language and nowadays this concept is no longer appreciated.

Which programming technique has moved you forwards most and why?
Templates in C++.  Eventually I could get rid of code replication by means of intelligent use of templates.

What was the biggest project you've ever worked on?
I'm not sure.  I guess, the biggest one probably was the compiler family that included the C++ compiler to which I contributed.  So, it was compiler construction, which explains my sustained interest in language and library evolution.

Which was the worst programming mistake you did?
Not testing my programs diligently enough in order to make sure that I detect the mistakes before the client does.

Review: "Java EE 6 Cookbook for Securing, Tuning, and Extending Enterprise Applications" by Mick Knutson

07:55 Tuesday, October 23, 2012 Posted by Markus Eisele
, , ,
This has been in the inbox for far too long. I apologize for not being able to bring this out more timely but beside my "night-job" I also do have a day-job and a family. But this post shouldn't be about complaining but about a new book. Packt shipped it in June this year and I was curious what it will look like. The title is promising an here is my review.

Abstract
This book covers exciting recipes on securing, tuning, and extending Enterprise Applications using a Java EE 6 implementation. The book starts with the essential changes in Java EE 6. Then we will dive into the implementation of some of the new features of the JPA 2.0 specification, and look at implementing auditing for relational data stores. There are several additional sections that describe some of the subtle issues encountered, tips, and extension points for starting your own JPA application, or extending an existing application.
We will then look into how we can enable security for our software system using Java EE built-in features as well as using the well-known Spring Security framework. We will then look at recipes on testing various Java EE technologies including JPA, EJB, JSF, and web services.
Next we will explore various ways to extend a Java EE environment with the use of additional dynamic languages as well as frameworks. The book then covers recipes that touch on the issues, considerations, and options related to extending enterprise development efforts into mobile application development. At the end of the book, we will cover managing Enterprise Application deployment and configuration, and recipes that will help you debug problems and enhance the performance
of your applications.

Book: Java EE 6 Cookbook for Securing, Tuning, and Extending Enterprise Applications
Language : English
Paperback : 356 pages [ 9.2 x 7.6 x 0.9 inches ]
Release Date : June 25, 2012
ISBN-10: 1849683166
ISBN-13: 978-1849683166

About the Author
Mick Knutson (@mickknutson) has nearly two decades of experience working in the IT industry in various roles as Enterprise technology consultant, Java Architect, project leader, Engineer, Designer and Developer and he gained a wide variety of experience in disciplines including Java EE, Web Services, Mobile Computing and Enterprise Integration Solutions. He has also is a frequent conference speaker, does trainings and seminars, publishes white papers and books. Find his blog at http://www.baselogic.com/blog/

The Content
The book has 356 pages. If you take away all the preface and index stuff you end up with roughly 300 pages of content and examples. That is a good number.

Chapter 1 gives a high-level summary of the key changes in the Java EE 6 release. The focus is directed on how these new features will simplify your development, as well as how to improve your application performance.
Chapter 2 covers persistence. In this chapter, we will dive into the implementation of some of the new features of the JPA 2.0 specification, and look at implementing auditing for relational data stores. There are also several additional sections that describe some typical issues encountered, further tips, and extension points for starting your own JPA application, or extending an existing application.
Chapter 3 dives into Security. It looks at the Java EE built-in features as well as into the well-known Spring
Security framework, which is a widely accepted framework for more fine-grained security implementations.
Chapter 4 covers testing strategies: It includes testing-related recipes for testing various Java EE technologies, including JPA, EJB, JSF, and web services.
Chapter 5 finally is about extending your applications. It explore various ways to extend a Java EE environment with the use of additional dynamic languages as well as frameworks (Groovy, Scala, AspectJ).
Chapter 6 calls on mobile device integration. It looks into mobile application development frameworks, talks about native app considerations, testing and environments.
Chapter 7 covers deployment and configuration. It dives into issues and solutions to application configuration. Covering standard Java EE APIs to access external properties files, as well as Groovy-based configuration scripts. Advanced configuration topics include Java Management Extensions (JMX).
Chapter 8 tells you about performance and debugging. It describes the basics needed for understanding performance-related issues in a Java EE application and ways to identify the cause. Performance topics that will be covered include profiling application memory, TCP connections, server sockets, and threading-related problems. It also covers tools and how to extend their capabilities (Netstat, TCPMon, Munin).

Writing and Style
I am probably the worst case reviewer. I'm struggling with my own not native English and try to find good examples to improve my own skills. Measured with that in mind I must say that it wasn't the easiest book I have read. And I don't feel like I could use it as a good example for my own skills. The writing is very precise but the formatting with the "How to do it ..." sections and the many source-code lines in-between makes reading and following harder than it should be. Further on text and lists are cluttered with screenshots, drawings and diagrams. Especially the class diagrams are very fine grained and I was happy to have the digital edition to zoom in. Couldn't compare how the printed version looks like but might be too small. I'm glad there is no list of figures. It would have added another 10 pages to the book. Overall it mostly felt like a transcript of a screen cast.

Conclusion and recommendation
I'm very split here. I first thought this might be a good general introduction. But this isn't always the case. The JPA chapter for example starts with introducing you to the new 2.0 features. So beginners don't get a hint where to start. It simply builds on what you should already know about Java EE 5. I assume that someone who already has a decent background here would be able to use a profiler and install it to an ide without screenshots.
The book mostly covers GlassFish and Tomcat and gives many many examples in both code and visuals. If you are looking for some more comprehensive dictionary this might be the wrong book for you. Even if the title is appealing and stressing the word "Enterprise" it doesn't really cover "Enterprise grade" topics but Java Enterprise Edition applications. This could lead you into the wrong direction if you are buying your books by the title. If you feel like you are missing the link between theory and practice and you believe you need to measure your knowledge, give it a try. It might be the right book for you. I wouldn't recommend it to beginners.

Monday, October 22, 2012

I'm speaking at Jayday 2012, 3 Dec in Munich, Germany

08:57 Monday, October 22, 2012 Posted by Markus Eisele
, , ,
The year is nearing it's end and there are new speaking opportunities coming up still. Next chance for you to see me speak is at the Jayday which will happen on the 3rd of December in Munich in the Kongressgarten, Munich Germany.

The JayDay Munich is a brand new event! They invited the best Experts: JavaOne Rockstars, Oracle Aces, Java Champions – it’s the quality of the content that counts! JayDay will be a whole day for Java developers, packed with talks and workshops about the Java universe. There’s Web, Desktop, Performance, Concurrency, Tools, Languages and many more topics. Register if you are around.

Java EE Cloud Smackdown
Speaker: Markus Eisele, msg systems ag.

With Java EE 7 cloud should have been added to the specification. Allowing for a broad ecosystem of PaaS providers to jump on the train. Because of the missing maturity and field experiences this has been delayed to EE 8. However there are some offerings on the market already. This talk throws light onto how they differentiate from each other and which ones are the right ones for Java EE. Featuring: CloudBees, OpenShift, Elastic Beanstalk, Jelastic and Oracle Java Service.

Tuesday, October 16, 2012

Trip-Report Oracle OpenWorld and JavaOne 2012

21:06 Tuesday, October 16, 2012 Posted by Markus Eisele
, ,
It always ends different than thought. I aimed at doing a blog-post per day for my recent San Francisco trip. But it simply wasn't doable. Far too many things going on in parallel and I didn't had a minute to spare during the week. Being back in Germany with an additional week of vacation which should be dedicated to family and overall recovery I found my few minutes to write at least a little write-up. Beware, this is going to be a lengthy post.

Travel with KLM not Lufthansa
My favorite airline is Lufthansa. Due to their outrageous price for the trip I had to take KLM for the 9512 nm (17616 km). This was disappointing from a frequent flyer miles point of view but also interesting to compare the services of the two airlines. I was surprised to see, that KLM has a decent website and after registering I could register everything needed for the immigration procedures with the US. Some hiccups made this experience a little unpleasant. Lufthansa is a little more professional here. Bottom line: I could do everything I needed to do. Travel from Germany to Amsterdam and further on to San Francisco was also good. The Fokker 70 (Cityhopper) is a fast but comparable old machine. Long distance is done with a Boing 747-400. Another elderly machine which has exactly nothing to offer compared with Lufthansa's A380. The good news are: KLM has nice attendant teams on their flights and they did a professional job. A little embarrassing was the fact, that they didn't manage to get coffee on a 6am flight.

ACE Director Briefing
Maiko Rocha - Oracle A-Team
I arrived Wednesday noon in San Francisco. Together with a bunch of Dutch ACED I was transferred to the Sofitel next to the Oracle Head-Quarter. The next two days were dedicated to the annual ACED Briefing which gives a good and comprehensive overview about the important things to come during the next few days. This briefing strongly focuses on Oracle products and announcements. Get some impressions from my blog-post of my first day. This is an awesome event. The two days allow for great networking and meeting peers which I usually only meet once a year. Being next to the HQ also makes it possible to jump over for a quick hello with local friends (thanks @maiko_rocha for the walk around and the coffee!) Also the other way round is possible. I meet Mike Lehmann and Jeffrey West for a beer at the Sofitel and we had a great chat about WebLogic, GlassFish and community in general. Some very exciting things to come. Even if the impact on WebLogic from the complete Fusion Middleware Stack makes quick moves difficult. Another important topic for the briefing is networking. Sometimes over a beer or two.
A big thank you to Lillian for the nice birthday surprise!
A combined birthday cake with Vikki!
It has become a nice tradition to have a final one during the dinner before moving on to the Hilton Union-Square in San Francisco. During the 40 minutes ride we had wifi on the bus and it was a good time to relax a bit before all the excitement finally starts. Vikki and Lillian run the Oracle community programs and both found the time to give a nice little interview to Todd during our stay at the Sofitel. If you are brave enough to watch this through (bad sound quality) you see some fellow ACE Directors talking about what they like. I'm giving the last statement before the closing curtain.



JavaOne Saturday - Geek Bike Ride
Normally the Saturday is the "day-off". For sightseeing and stuff like this. This year it was bike-ride-time. Fabiene organized a follow up from the famous Brazilian Geek-Bikeride and somehow I decided to attend. Short version: It was awesome. In two ways: Many great people and lots of fun. And it was unbelievably exhausting. At least for me. Starting at Blazing Saddles around 11am we went all the way down to the bridge.
 
View Larger Map
This probably isn't the exact route but it should be close to what we did. Roughly 10 miles with some photo-stops on the way. We had a great dinner in Sausalitos and it was a pleasure to meet Alexis again. Thanks again to Simon and Dave who also joined us. Steven Chin and family made this complete.
Dinner in Sausalitos
All the bikes :)

Fog over the bridge
I was completely worn out afterwards and I was glad, we made it to the last ferry which would eventually bring us back timely to join the Java Leads Dinner. We meet Debra and Alex on the ferry (compare debra's blogpost she has a nice picture of me and Simon Haslam). After a quick shower I joined the java.net community leaders for their dinner. Thanks to Sonya for organizing it.

Sonya and Frank in action
I meet soo many new faces these days. Heather van Cura is only one example. Beside this many fellows from the online world which you meet once a year on a conference far away from home. John Yeary is one of those guys.

John and Cagatay
After the official part was over he took me over to the NetBeans party. This is where I first meet Cagatay Civici the PrimeFaces lead. A nice guy. We had some very interesting discussions and I believe we buried all our disputes finally. Thanks for some good discussions to both! And this actually was also the time for the annual Munich get-together. I ran into Adam Bien. Even if we know each other since an unbelievable long time now, we meet exclusively at conferences. Most often at JavaOne. Paul Bakker and Bert Ertmann also have been around the corner in the pub and this was a  very nice community evening. Thanks for the invitation! The evening ended like everyone of the following in my hotel room. One sentence about jetlag and sleep: No matter what you do you feel like running on 90% until you aren't completely adjusted to the timezone. So this was an issue for the complete week. Even if I managed to get around like a normal person and not like a zombie.

Sunday - Breakfast, GlassFish, ACE and Keynote Day
Starting with the annual  DOAG breakfast in the Marriott the JUG and Java Champion Breakfast made this morning perfect. Sharat introduced the speaker of the day and everybody was listening carefully to the upcoming announcements to be made.
Most of them have been disclosed during the week and I believe the details got enough coverage. It was great to meet all the Java Champions and JUG leaders again. Thanks to Martijn, Stephan, Regina, Donald, Dalibor, Tori, Mattias, Kirk, Arun, Fabiene. Can't name them all. one breakfast isn't enough to catch up with everybody. A big thank you to Oracle for bringing all the relevant leads there. Simon Ritter, Mark Reinhold, Mike Lehmann, Cameron Purdy, Georges Saab, Nandini Ramani, Henrik Stahl to name but a few.
After the breakfast I walked down to the Moscone area to attend the GlassFish Community event. Arun gave a nice introduction to all the happenings and roadmap of GlassFish. He introduced the new Java EE evangelists (welcome Reza Rahman and Bruno Borges to the team). John moderated the executives QA which was well attended and the new GlassFish t-shirt was given away! Great day!

Unlike the years before this Sunday was also the official starting point for JavaOne this year. Somebody decided to move the keynotes from Monday to Sunday to free some additional rooms and give meaning to the day. This probably wasn't too bad. Except the fact, that they were held far away from the Hilton in the Nob Hill Masonic Center. Far away is not the right description. This are actually less than 7 blocks. But all uphill. After I made my peace with hills after the bike-ride this was a $5 ride with a cab to get there. There has been good coverage about the keynote already, so I am not going to repeat this here. My personal highlight was Cameron Purdy reflecting about Java EE and the shift towards cloud for EE 8. And yes, this was only because of my avatar on the slides ;)


And of course Arun wearing the new GlassFish T-Shirt! Believe it or not: I like it! Great shirt! Already looking forward to next years contest :)

Arun wearing the GlassFish T-Shirt of 2012
The one thing I didn't like was, that I had to leave early because of the annual ACE dinner. It was held in the St. Francis Yacht Club. An awesome location. Next to the shore with a free and direct view to the Golden Gate Bridge. Overwhelming is not the right word to describe it.

View from the Yacht Club to the Golden Gate Bridge
I only had a few red whine because I had to give my three sessions tomorrow and I don't want to pay for that. And there was another problem: The GlassFish party. This was a day made of colliding appointments. After we managed to get a cab Todd and Bjoern joined me for a ride to the Thirsty Bear. We managed to get in for a last few drinks and saying hello to a couple of people which I didn't bump into before. Only this day would have been good for three separate days. But this is how conferences go, right? Off to bed far too late.
Shaun Smith (EclipseLink) guarding the door ;)
Monday - My Day!
Believe it or not: I was a little bit excited. Not as much as I should have been probably but enough to make this kind of an adventure. I have spoken on different conferences before and even English wasn't a problem anymore after spending a few days with native speakers already. I can't remember if I had breakfast. The whole morning was dedicated to polish the slides and walk around the Zone for a coffee or two and prepare my 11am slot with Masoud.
Thank you IBM for all the #Coffee+++
Staying at the Hilton with most of the buzz happening there it is still a challenge to reach out to Nikko and Park55 for the other sessions. We have been put to the Park55 with our session and it took me quite some time to find the room. The on-site direction-guys did send me from one to the other and I managed to get there more or less in time. After some preparations with the A/V guy, we started timely and had more than 40 attendees listening to what we had to say about security, OWASP and GlassFish. It was my second run through the first part but I managed to polish some of the rough edges and could hand over the second half to Masoud. After all I was happy with the show and hope that the attendee feedback will mirror this to a certain extend. Thanks everybody for listening. You can download the slides and audio recording from the session on the conference website.

The next presentation was scheduled for 13:15. This was an Oracle Open World break out session for which I had to prepare my experiences with the Oracle Java Cloud Service from a customers perspective. Oracle's Sandeep Banerjie lead the session and gave a more general introduction into Oracle's new offerings. Followed by Matt Terry (Kony) who gave an overview about their product and how they run it on the Oracle cloud. After that I had my 8 minutes to talk about Java EE capabilities and influences by the cloud offering for projects in general.
The session went well but we didn't had too many attendees. Which wasn't surprising after all because it was more like a marketing session. I don't want to judge here, it is also possible that there are far too many parallel sessions at OpenWorld which makes it very very hard for everybody to get a working schedule with all the right interests. A big "Thank you" goes to Björn who was sitting in the audience and showing his support! :)

A hurry back to "The Zone" to the pre-briefing of the Webframework Smackdown BOF later the day. It was a pleasure to meet James Ward and Graeme Rocher. Ed and Santiago didn't manage to meet us but we synced earlier to talk about the stuff to come and how I want to do this. The following few hours were dedicated to walking around the exhibition hall and checking back with distant friends from different companies. The exhibition halls were located at last years keynote location and looked very good. Condensed information by the usual suspects. But also some (at least to me) more unknown companies. Thanks to the Cloudbees guys for some nice t-shirts and great chats with Steven and Mark, thanks to the JRebel guys for some awesome games and entertaining demos. RedHat was doing the annual booth conference thing. To me this didn't work this year. To less space, too much distracting things happening around. The whole thing taken to a next level happened at Moscone West. The Oracle OpenWorld exhibition hall was packed and all the major companies attending JavaOne had a double to tenth the size booth over there. But back to my Monday. 20:30 was smackdown time. The latest BOF I ever attended. But, believe it or not between 350 and 400 attendees made this a great event. Missing a panorama feature in my stupid BlackBerry I can only show you the right half of the room minutes prior to the start. And people were still flowing in. Awesome! Thanks to all the panelists and the great audience who made my job as a moderator easy. The Audio recording has been posted to the conference website.


What is left after such a successful day? A great party! First the JUG and Java Champions get-together which was nearly over as I arrived and afterwards the legendary JRebel guys which gave a nice little party in the presidential suite of the Hilton. The "RebelHideout VIP party" was a success. Great people, great drinks, great discussions. A little noisy ... and we had to leave early :)

JRebel meets Jelastic :)
Tuesday Technical Keynote
Tuesday started relaxed. A nice breakfast and nothing exciting beside some sessions and some personal appointments. Followed by the OpenWorld technical keynote about  Oracle's Cloud Platform and Applications Strategy given by Thomas Kurian, Executive Vice President, Product Development. Normally I wouldn't count this as too exciting but this time I had to play a tiny little role in there. As a customer reference. The recording took place a week before OpenWorld in Munich and I was excited to see my face on the big screens. You probably know what it feels like watching a recording of yourself. It was the same with this one. But it was huge :) Thanks again to Björn for taking this short video. If you are interested in the complete keynote get it from Oracle On Demand.



The "meet the Java EE 7 Spec-Leads BOF" lead by Linda and Bill was the next highlight on the schedule. Most of the Java EE spec leads attended a great panel discussion and received plenty of feedback from the audience.

Directly afterwards we moved to the JCP annual gathering which was combined with the JCP awards ceremony. I had a nice chat with Mark Little and Pete Muir over a beer and together with Alex we moved over to the RedHat party which should be the final point for the evening. It was good to join Aslak, Lincoln and all the other RedHat guys for a beer or two. I wish I have had more time talking to Jevgeni and Martijn and Ben and Trisha. And the RedHat community guys Rayme and Ray. But we all have the same problem during those events. Too many people to say hello to and too less time for a longer talk. Anyway, thanks for hosting the party RedHat! It was great!


Wednesday - Appreciation Event
The Wednesday was all about personal meetings and some sessions. Running into people everywhere. The most exciting aspect of JavaOne. I had nice discussions with strangers about the right web framework, about the future direction of Java EE (why cloud?) about JSF and ADF and last but not least with some of the nicest persons in the universe: The WebLogic PMs! Thank you sooo much Frances! It was great meeting you! After a day of walking between Moscone and Hilton I was worn out and the party didn't even start over. I meet David Blevins for a beer in "The Zone" and we had a great chat which ended by teaming up with his wife Amelia and Bruno Borges. Together we headed over to the big party on the little Island.



Bruno, Markus, David
A marvelous evening! We had a great time with a couple of red wines and beer and great music! You guys rock! Thanks for that night! If you ever need someone to party with, give me a call!

The rest of the week
JavaOne was basically over for me after that. The following days were reserved for sightseeing and some DOAG internal discussions and preparations. Thanks for your fellowship Björn! OpenWorld and JavaOne wouldn't be the same without you! I'll leave you with some impressions from a city which get's turned upside down during a few days in September!

Wonderful view on the skyline

A nice car plate

Oracle Music Festival on Union Square

The Blue Angels flying over SF