My ramblings on Java EE, Java SE and the crazy World of technology in general.
Professional Java EE Design Patterns: A Great Addition to the Java EE Practitioner's Bookshelf
Ignorant men raise questions that wise men answered a thousand years ago
- Johann Wolfgang von Goethe
I am very happy to report that my friend Murat Yener and co-author Alex Theedom have finished an important book that I hope will become a part of every good Java EE developer’s bookshelf - the first edition of Professional Java EE Design Patterns
. I helped review the book and wrote it's foreword. It is the first book of it's kind for Java EE 7. Instead of detailing APIs, features and best-practices the book covers the design patterns that you should know about as an effective Java EE practitioner. The book is available for purchase through Amazon
among other outlets.
Design patterns are our link to the past and the future. They make up a foundational language that represents well understood solutions to common problems talented engineers before us have added to our collective knowledge base. Design patterns or blue prints exist in every engineering field in one way or the other. Software development is no different.
The art and science of design patterns was brought to the world of software engineering - and more specifically to enterprise Java - by the seminal Gang of Four (GoF) book. They have been with us ever since through our adventures in J2EE, Spring and now modern Java EE. This is for very good reasons. Server-side Java developers tend to write the type of mission critical applications that need to stand the test of time and hence benefit the most from the discipline that design patterns represent.
It really takes a special kind of person to write a book on design patterns let alone a book on how to utilize design patterns in Java EE applications. You require not only basic knowledge of APIs and the patterns themselves but deep insight that can only come with hard earned experience as well as an innate ability to explain complex concepts elegantly. I am glad Java EE now has Murat and Alex to accomplish the mighty feat.
This book fulfills a much needed gap and fills it well. It is also very good that the book is on the cutting edge and covers Java EE 7 and not just Java EE 6 or Java EE 5. In fact many of the design patterns covered like Singleton, Factory, Model-View-Controller (MVC), Decorator and Observer are now incorporated right into the Java EE platform. Others like Facade, Data Access Object (DAO) and Data Transfer Object (DTO) fit elegantly on top. Besides the classical design patterns some others worth adding to your repertoire are slightly newer formulations like Entities, Value Objects, Aggregates, Domain Services, Application Services and Repositories - these come from the world of Domain-Driven Design (DDD). Murat and Alex tackle each pattern, explain its pragmatic motivation and discuss how it fits into Java EE.
I hope you enjoy the book and it helps you write better, more satisfying enterprise Java applications.
This entry and contributions to the book were done entirely on my own personal time. All views voiced here are my own, not necessarily Oracle's.
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.