What a wild ride – My journey through OpenSource / JSF
It was about one year prior to this article that I wrote “JSF2 is in good hands”, in which I spoke about the upcoming release of JavaServer™ Faces 2, and how the community had changed immensely in the few years I’d been using the tool. There were changes I wanted to make, and started making them by publishing an open source extension called PrettyFaces. PrettyFaces lets you map Pretty URLs to any resource within a JSF-based web-application (eg: /example -> /faces/examples/page.xhtml). While this is stuff that other web-frameworks have been doing for years, (WordPress, Rails/Grails, etc) it’s stuff that has traditionally been hard using JavaServer Faces – until around November 2008, when the first release was published. Now, I’m relatively new to this arena – I entered the open source community for the first time about four years ago, working on PHP and Perl modules. I’ve been using it, and appreciating it, for almost my entire life in the industry, but never giving back. I suppose one question that many people ask is, “Will working on open source software get me anywhere in my career?”
My answer is really a simple one, and may not be unique, but for me “it just doesn’t matter.” I do this because I enjoy it. It turns out, however, that working on open source software is not only extremely rewarding for me, but it is also having a big impact on my career. I do what I’m doing because I have a passion for it, and I think good things happen whenever you follow your passion.
Prove it? Well… during the first week of December 2009, I attended my first professional conference as a speaker, JSFSummit 2009 by NFJS, and presented PrettyFaces – coming nearly one year ago to the day, when I released version 1.0 (now used on production servers around the world!) I consider that having an impact. In a few months I’ll be presenting again at the Philadelphia Emerging Tech conference (April 8-9, 2010.) These are opportunities I never would have had, if not for my involvement in open source.
I can only imagine what begins to happen as ScrumShark(open source agile project management tools) starts to gain footing. PrettyFaces is one small extension for JSF; with something bigger, more powerful, the sky is the limit.
For JSFSummit, I was flown to Orlando, stayed at the Loews Portofino Bay Hotel across the street from Universal MGM, and met some of not only the most interested developers, but also the most prominent figures in Java web-technology today. I met folks from Red Hat, SUN, Oracle, Scotia Bank, Children’s Hospital at Harvard, and more. Even more interestingly, I met a few people like myself: young, entrepreneurial, full time developers with a passion for creativity, and producing something for the world.
Cagatay Civici was someone I closely related to. He’s from Turkey, now living in London, only a year older than myself, and has created one of the simplest, most elegant component libraries – PrimeFaces – for JSF and JSF2. Like me, he works in his spare time to create something not just worthwhile, but something nobody else has done before. He does it well, and because he loves it.
The satin hotel greeted me with appeal of a little faux-Italian Portofino, “how did I get here?” I raced, as my black cap-toe shoe swung open the door to a double queen room with a bathroom big enough for a party. “Wow…”
I had worked – hard – for this, sometimes working as many as 8 hours a night after coming home from my full time job. I have to admit that part of me felt like pushing those double-queen beds together and jumping up and down on them. (There was no jumping, that would be highly unprofessional) After a night of food and conversation with Dan Allen – the man who really got me involved in JSF2) and his lovely wife Sarah, I was ready to go for the day-one of the conference. This was the first time we’d ever met, and I was pumped!
My first presentation was on the first full day of the conference: “Seam and RestEasy – You haven’t seen REST yet,” and let me tell you, before preparing this presentation, I certainly hadn’t. Seam handles REST in a way that I’d never thought Java would provide. Dynamic, automatic, CRUD. I gave the first half – on REST principles, and Dan finished up with the Seam stuff – making Seam/REST look like a two-piece, tailored suit. I was amazed, actually, that the presentation went so well, given that we had just met and put it together in a few hours the previous night. (We did work on the slides and demos in advance, though.)
Talk about a rush – my first professional conference, and I was getting to meet people I’ve been hearing about in the industry for years: Ed Burns, Jim Driscoll, David Geary, Kito Mann, Andy Schwartz, and so many more.
I was caught in a summer storm of information, wild, over before I knew it: Holistic testing of JSF applications with Stan Silvert, my first presentation with Dan Allen, Polyglot JavaServer Faces with Kito Mann, Component Framework Primer for JSF with Andy Schwartz, CDI JSR-299/Weld and the future of Seam with Dan Allen.
I’ll mention the points that “blew my mind,” and really I have to say that while all the speakers were excellent, the emerging technology that “took my cake” on day one was CDI. This is a place where Java EE is finally competing with Spring, by providing powerful contexts and dependency injection to the core Java container, even J2SE with Weld. I’m telling you, Spring is great, but CDI/Weld is serious competition. I plan on switching ScrumShark over from Spring to CDI. Weld took the best parts of Spring and Guice and put them together with the J2EE platform… wow!
Another night of drinks, this time with more of the J2EE community out on the patio of the hotel. Time for bed again.
This was my day, and I was up bright at early – still, only six hours of sleep. Let me tell you, Jay Zimmerman, owner of the No Fluff Just Stuff conference tour, truly knows how to put on a conference. All meals were provided, incredibly balanced, and equaled only by some of the best restaurants I’ve been to.
I started the day off with an egg and sausage wrap, a bowl of fresh fruit, and a cup of coffee. The first session was David Geary – Killer Web apps with JSF2.0 Ajax. “Wow,” I thought, “this guy knows how to present!” I think every other line was a joke, but I wasn’t sure because he was so clearly explaining all of the topics; I’d hire him to train at my company any day.
My presentation was the last of the day (read the slides,) and let me tell you, I was prepared. For the last two weeks I had rehearsed (or read through my slides) almost every night, and with the Seam & RestEasy presentation under my belt, any nervousness I thought I might have had was long gone. It was ON NOW.
With good questions from Conference Attendees and JSF Expert Group members alike, discussion was not lacking at any point. People were interested, moreso than I had expected, and I was impressed that several attendees had already been using PrettyFaces in their applications!
I felt truly rewarded to hear how PrettyFaces had helped solve business problems, and how much people loved using it. I heard, “It’s perfectly simple,” “It does what I expect,” and other great feedback.
The last day held only three sessions, and I chose “Rapid RIA Development with PrimeFaces,” presented by Cagatay Civici. This was truly a treat – as I mentioed before, Cagatay has started something amazing. Simple components with poweful functionality. A schedule component (that looks GOOD), an entire mock Mac OSX, and over 70 components: a shell console, charts, sliders, pickers, pluggable Ajax Drag & Drop – all so easy that I felt like I could go write an app in minutes. This was my “wow” of the day; I think everyone was impressed.
Overall, I don’t think I’ve had a more exciting week in my career. This conference was almost a total surprise to me. I pushed to get myself in, and I had help, but let me tell you, “I’m glad I did it.” I’ve been struggling with the idea of, “Can I really do what I want, professionally,” and, “How do I get there?” And for me, the answers are simple: “Just do it.” Do what you love and good things will happen; share your ideas; don’t give up; make sure you take time to be human; go outside, meet people, make friends. We don’t have long to make a difference in the world (of ideas, love, music, charity, technology, …) so it’s best not to stop for one single moment.
If there’s one sentiment I can leave you, reading this far, it would be – Chase your passion.
My plans for the future involve taking Java EE, and turning it into a platform that is simple and intuitive enough to compete with PHP and Ruby for startup businesses. There’s so much power in Java EE, and I want people to know about it. Among my initiatives, since I’m already involved in JSF, was to give the new Java standard web-framework a home on the internet, a place where people can go for any information about JSF2: www.javaserverfaces.org, and the expert group members have really stepped up behind this site to make it successful.
Java EE 6 is a revolutionary release of the J2EE platform, and with Bean Validations, JavaServer Faces 2, Contexts and Dependency Injection, and JAX-RS (REST web services,) it’s never been so powerful. It’s time to take another look. We are already using everything but CDI in ScrumShark, but that will be changing soon.