My ramblings on Java EE, Java SE and the crazy World of technology in general.
After Ferguson: A Perspective from a Minority in America
...indivisible, with liberty and justice for all.
- Pledge of Allegiance of the United States
Trayvon Martin. Unarmed teen shot to death. No conviction. Michael Brown. Unarmed teen shot six times to death. No indictment. Eric Garner. Forty three year old father of five suffocated to death. No indictment. Miyekko Durden-Bosley. Handcuffed woman punched so hard it broke her eye socket. No charges. Tamir Rice. Twelve year old boy shot on sight. Probably no charges, no indictment or no conviction. Oscar Grant. John Crawford. Jonathan Ferrell. Far too many more to count for far too long.
If you are any minority in America and this does not make you wonder if the law and government of this country is capable of basic fairness for you, you are being naive. I am certainly not black. My heritage belongs to Islam in South Asia. Sadly my myriad experiences with the power structure in this country over many years - at school, at work, out shopping, on a date, at leisure, while travelling, online, pulled over by the side of the road, at the police station, on the train, on the bus, on the plane, at the airport - has made sure I know exactly how black America feels.
We've talked, tweeted, posted, walked out, died in and protested - nothing much changed. The problem is all of this is far too easy to ignore since it does not affect the power structure in any fundamental way. So what now?
The best hope you have to be heard in a democracy is by making full use of your voting ballot. There's increasingly more of us in this country that do not fit in with the power structure, there's candidates that at least pretend to listen and sadly inadequate voter turnout actually means your vote's effect is magnified. That's the easy part. The much harder part is resolving to ask more of yourself and the people around you, never suffering alone and in silence and standing up for all who are oppressed much like you. As you celebrate the small victories in life don't forget to silently thank your oppressors for compelling you to reach higher. If you are very lucky maybe you'll even get to thank the good people that helped you on the way.
For those that do enjoy the privileges of the power structure in this country, there's no need to see any of this as a wholesale indictment of you. Most of us have been forced to shoulder someone else's cross and know better than that. In my case the cross I have to carry on my shoulders was placed there by people that far too often deny their own culpability in the making of that cross. Like me you can choose to own your burden. You can choose to try your best to seek out, call out and help erase the root causes of the burden you must now bear.
EJB 3 in Action: A Personal Journey
A journey of a thousand miles begins
with a single step.
I am very proud to say the second edition of EJB 3 in Action
is now published. In addition to covering EJB 3.2, we've also covered JPA 2.1, CDI 1.1, JAX-RS, WebSocket and so on. The goal is to try to cover as much of the Java EE 7 "backend" technologies as possible. As with the first edition, we've tried hard to make the book as approachable as possible and the idea is that an absolute Java EE beginner should be able to readily use the book. You can buy the book directly from Manning
. If you are not too worried about Amazon becoming the electronic version of Wal-Mart, you can also buy the book there
When I decided to take on writing the first edition of the book
so many moons ago, I
don't think any of the authors were certain what the success of
the book was going to be or where it might take us personally.
Today I have the luxury of hindsight in saying the book has been a
resounding success and that writing the book was a first step to a
whirlwind journey the past few years that I could have never
foreseen. Though there are always some nasty bumps on the road, I must confess I continue to enjoy the journey, arduous as it may be.
Since finishing the first edition, I've been increasingly more
engaged with the Java community, I found myself contributing to
various Java EE expert groups including the EJB expert group, I
got the once-in-a-lifetime opportunity to write an open source EJB
container almost from scratch and I now find myself at the
forefront of the Java EE evangelism team at SunOracle.
One casualty of all of this has been my own personal bandwidth,
which had been fairly abundant when I wrote the first edition.
This is a large part of why we had to skip a Java EE 6 and EJB 3.1
edition of this book. I do think it's all for the best since Java
EE 7 is an even stronger and more compelling platform as this
edition will demonstrate. I am extremely grateful to Michael and
Ryan for taking ownership of the book and being instrumental in
producing a worthy second edition. I am also grateful to the many
folks like you in the Java EE community I have had the privilege
to try my best to serve and work with. Lastly, I am ever thankful to my
wife Nicole and daughter Zehra for allowing me to pursue my
passion without reservation.
And so the journey continues...
This entry and the book was written entirely on my own personal time. All views voiced here are my own, not necessarily Oracle's.
Oracle, GlassFish and the Nature of Open Source
One of the not so small things I've come to appreciate about Oracle as an employee is it's stability. Unlike many other companies I've seen in my fairly non-trivial career, pretty much no one is worried about their next paycheck. This is no accident. It is a direct result of Oracle leadership's focus on maintaining a strong, profitable, resilient business. This fact is probably the clearest in the minds of my colleagues that lived through the mess that was Sun.
While a large part of the reason I joined Oracle was GlassFish (and Java EE), I realize GlassFish is subject to that same focus that helps pay my bills and put food on the table. Open Source or not, GlassFish commercial was discontinued in favor of WebLogic for good, sound reasons by rational, informed people. Get over it (and maybe your self-entitled self).
It's also been made amply clear GlassFish open source is still critical to Oracle also for good, sound reasons. Open Source is the best way of producing a high quality reference implementation that makes Java EE real for most developers as quickly as possible. Open Source is also the best way to encourage rapid innovation through community contribution and collaboration - some of which is hopefully good enough to make it into the standard and WebLogic. I also know that I personally would have been less than enthused as an independent to spend my own time writing or talking about something that is directly tied to the commercial success of any company. I would feel much more comfortable with a vendor agnostic standard and a piece of software who's primary goal is to teach and advance such a standard.
To those that don't care about any of the above - here's what's in it for you: you now have the opportunity to prove Oracle wrong if you really think you have what it takes. Nothing is stopping you from building a business around the GlassFish open source code base - you can even take advantage of the work Oracle employees are still going to put into it. That's what open source today is really about, not charity.
No one at Oracle prompted me to write this and it's written on my own personal time. I am writing it because I believe it needed to be written and I see it as the truth.
All views voiced are my own, not necessarily Oracle's.
JBoss AS Now WildFly
Since it first started as a small grassroots open source project in the late nineties, JBoss AS has come a long way. It is now one of the foremost open source Java EE application servers, if not one of the leading application servers outright. JBoss AS has always been vital to fulfilling the Java EE promise of choice, vendor neutrality and portability alongside the likes of Java steward Oracle's own GlassFish and WebLogic. Throughout the years, the JBoss community has had strong contributions to Java EE itself, including to the EJB 3, JPA, CDI, Bean Validation, JAX-RS and JSF specifications.
Now JBoss AS is being renamed to WildFly. The renaming is essentially an effort to distinguish the open source, community version of JBoss AS from JBoss EAP (JBoss Enterprise Application Platform/JBoss Enterprise Middleware), the commercial offering from Red Hat.
The renamed application server already has its' own launch page
. The project retains the JBoss AS focus on Java EE (WildFly 8 is aimed at Java EE 7), lightweight development, innovation and community. We can all wish WildFly all the best and hope it continues to be a driving force behind the Java EE community.
All views voiced are my own, not necessarily Oracle's.
Reflections on the Boston Bombings
I feel profoundly sad for the victims of the Boston bombings. As always, I really wonder what people like the bombers had hoped to accomplish. If there was indeed a legitimate cause that motivated them, they have simply managed to undermine it by tarnishing it with the blood of the innocent - perhaps forever.
On their path of senseless destruction they also deeply embarrass and endanger billions of people that have nothing to do with this if it was done in the name of Islam - perhaps even someone like me who is a Secular Humanist with an Islamic heritage...
I urge everyone that I can not to revert to their baser instincts and return hate with hate. The difficult road to lasting peace starts with the sublime human capacity to empathize and to see the world through eyes not necessarily your own. I also urge anyone with an Islamic heritage to speak up against this horror, whatever your religious stripes. It is our obligation as a civilized people to try to make right what has gone terribly wrong, whatever our grievances.
JavaOne 2012/Joining Oracle
I had two sessions at JavaOne this year. One was a solo talk on the CDI ecosystem. It was well-attended and I got excellent feedback on it. The other was a joint talk with my fellow co-author Ryan Cuprak on Java EE tooling support. The talk went very well as well considering we had stiff competition from other very good Java EE talks.
JavaOne this year was different for me in a very significant way -- I did not present as an indepenent this year but as an Oracle employee! In fact, the first day of JavaOne was my first day as an Oracle employee. I was invited to join Oracle as Java EE/GlassFish evangelist alongside the likes of Arun Gupta (Arun introduced me to the community at the Sunday GlassFish community event).
The decision to join was by no means an easy one as I've always seen myself as an engineer and a consultant. And the truth is that some of the connotations of the evangelist title has always made me cringe a little even with shining examples like Apple's Steve Jobs/Guy Kawasaki, Googles' Vint Cerf and Microsoft's Vinod Kumar who bear little resemblance to either religious zealots or mercenary salesmen. I also cannot honestly say I have no reservations about Oracle as a company.
I took on the opportunity because I believe I can really make a difference for the community in this role and help advance Java as an insider in the truest sense. As Oracle seems to understand, as the new stewards of Java, Oracle needs more people from the community like me working inside their walls. As a very nice side effect, this also helps me reclaim some of my personal time by essentially turning what I had been doing for some years on my own time into my actual job...
In the spirit of merging ones hobby/adopted cause/personal time with one's profession, I likely won't be maintaining this blog going forward much. Instead, I'll be reaching out to the community via my official Oracle blog here as well as the the Aquarium blog.
All views voiced are my own, not necessarily Oracle's.
Arquillian Talk at the Atlanta JUG
On August 19th I spoke at the Atlanta JUG -- one of the biggest JUGs in the east coast and the sponsors of the popular DevNexus conference. I gave my Arquillian/Java EE 6 testing talk. The attendance was great as was the participation. I am hoping I'll get to come back to Altanta again for DevNexus. I've been to Atlanta before, but it always amazes me what a sprawling metropolis Atlanta is!
Arquillian Talk at Twin Cities JUG
I did a talk on Arquillian/Java EE 6 testing at the Twin Cities JUG on May 14th. The attendance was moderate but I had some pretty good discussions afterwards. This was my first JUG talk in the mid-West so it was interesting. While I was there, I got to check out the iconic Mall of America.
JCP Talk at Marylad JUG
On January 18th, I went back to speak at the Maryland JUG once again -- this time talking about the JCP. Even despite the fact that this wasn't a technical talk per se, the atttenance was great as was the participation. I really enjoy speaking at this JUG and the JUG leaders are doing a great job growing this JUG.
CDI Talk at Dallas JUG
On January 11, I spoke at the Dallas JUG -- I gave my CDI demo/tour. This was my first talk so far down South so it was exciting. The talk went great and the crowd was fantastic.
I got a chance to look around Dallas a bit. I never realized exactly how metropolitan this part of Texas has become! I look forward to speaking at the JUG again some time...
Seam 3 Talk at Maryland JUG
I did my CDI/Seam 3 talk at the Maryland JUG on 17th August, 2011. The JUG was great and it had excellent active participation. I hope to speak there again soon.
JavaOne 2011 Round-Up
JavaOne 2011 was very busy this year for me but also very fruitful. Although this year I did not get a chance to attend a single session other than my own (I spoke seven times in four days so it was very hard), I think the conference overall went well. It is still unfortunate that Oracle continues to ignore the obvious fact that JavaOne needs a much bigger venue and it needs to take place on a time separate from OracleWorld...
On Monday, I started with the panel on the JCP titled "JCP and the Developer Community". Considering that this was pretty much a non-technical topic, it was good to see that the attendance/participation was decent, although I had expected the discussion to be a bit more lively. Regardless, it seems that Oracle is taking JCP reforms very seriously and giving real funds to the JCP organization (which Sun did not or could not). In the afternoon, I attended the technical session that Marina Vatkina of Oracle was giving on the progress of EJB 3.2. Not surprisingly, it looked to be a very short talk because of the worrisome lack of progress in the EJB 3.2 EG. Somewhat disappointingly, the audience participation was not that good -- it seemed most of the attendees either did not have an opinion or did not voice them. I and JMS 2 spec lead Nigel Deakin of Oracle tried to liven things up a little but trying to directly engage the audience, with some success. That evening, we repeated some of the same discussions in the BOF titled "Meet the Experts: EJB 3.2 Expert Group". Given the lackluster technical talk, it was not entirely surprising that the BOF attendance was sparse. After the BOF I had a long conversation with David Blevins of Apache and Andrew Rubinger of JBoss/Red Hat about my concerns around EJB 3.2.
Tuesday morning I and Ryan worked together to put the finishing touches/rehearse our CDI talk. The speaker resources were paltry so we wound up going to the lounge of a nearby hotel to work. In the afternoon, Nigel, I and Clebert did the JMS 2 BOF titled "JSR 343: What's Coming in Java Message Service 2.0". Although this was technically a BOF, it was really more like a full conference session and we actually had a slide deck. They gave us a very big room and it was almost a full house. We didn't have much time left for Q & A, but we had a number of interesting follow-up discussions with attendees in the hallway after the talk. Tuesday evening I went to the JBoss party to talk about CDI 1.1, EJB 3.2 and Java EE 7 with Pete Muir, Dan Allen, Andrew Rubinger, et al. The discussion went well and it seems we are all on the same page.
Wednesday morning Nigel, Pete and I brainstormed about the dependency injection based changes in JMS 2. I did not expect to have all the outstanding issues resolved but I think we made good progress. At noon, I did the panel on Java EE 7 titled "The Road to Java EE 7: Is It All About the Cloud?". The panel was very well attended and the discussion was very good. I briefly chatted with Linda DeMicheal and Mike Keith of Oracle about Java EE 7 afterwards. In the afternoon, Ryan and I did the CDI talk titled "Patterns and Best Practices for CDI". Considering the fact that Ryan and I have never co-presented together before, the talk went very well. We had a full house and had a very good Q & A session. In the evening, Rohit Kelapure of IBM and I worked on our Spring/Java EE comparison talk. Since this talk was so last minute, we had to scramble to get the slide deck ready and wound up pulling an all-nighter. Rohit and I briefly showed up at the JCP hosted party (always rightfully rumored to be the "most lavish party at JavaOne").
On Thursday noon, I barely made it to the CDI panel titled "CDI Today and Tomorrow". The panel was very well attended and the discussion was very good. In the afternoon, Rohit and I had our talk titled "Java EE and Spring/MVC Shoot-out" (it was the last session of the conference). Despite the ordeal, doing the talk wound up being well worth it. It was an enthusiastic, overflow crowd. JMS 2 spec lead Ed Burns showed up as an attendee. The Q & A was great and a lot of people seemed to really appreciate the talk. It felt like one of the best talks I've done at JavaOne to date and a solid finish to an eventful week at JavaOne 2011.
A number of folks asked for the slides for the two tech talks, so the materials for the talks is posted here