My ramblings on Java EE, Java SE and the crazy World of technology in general.
Microsoft Comes to the Philadelphia JUG!
On March 22 Microsoft's Brian Benz spoke at the Philadelphia JUG. This was the first meeting after the leadership switch at the JUG and all considering the meeting went pretty well. Brian spoke to us about using Java on Microsoft's Azure cloud computing platform.
Martin Snyder - current president of the Philadelphia JUG - could not attend due to personal reasons and sent his regrets. We did however have good representation from the board. I served as site coordinator this time and Paul Barton as well as Paul Snyder also attended. We introduced ourselves to the attendees before Brian's talk. Brian's talk was very well received including good Q + A. The slides for his talk are embedded below (click here
is you can't see the slides).
Below are some cool photos from the meeting (the photos are also linked here
). It's worth noting how remarkable it is for Microsoft to be coming to speak at a Java user group. It was unthinkable a mere few years ago but Microsoft is making genuine attempts to court Java developers to Azure. More than anything else this speaks to the continued strength of Java. Whatever one thinks about Microsoft the reality is that the company has always made strong efforts to engage developers. Some sections of Oracle could learn a thing or two about how to engage developers. Indeed I think Microsoft could make a big difference by contributing directly to the JCP. I asked Brian about this during Q + A - he chuckled and suggested this was not the first time he was asked the question. Microsoft's interest in Java is such that my former colleague Yoshio Terada - a long-time Japanese Java EE evangelist with Sun/Oracle - is now working in the Azure team with Brian to engage the Java community.
Besides coming to speak at the JUG, Microsoft very generously also sponsored dinner for attendees and brought some very cool T-shirts highlighting their support of the Java community (the shirts are pictured below). Brian left behind plenty of T-shirts for us to give away in subsequent meetings. Make sure to pick one up if you come to the JUG meetings the next few months.
Our next monthly meeting is going to be on the currently white hot Apache Spark. The month after that we will have two separate meetings - my former colleague Heather VanCura talk about the JCP and we will have Java powered NAO robots (demoed at JavaOne)! I will finish off the season with a talk myself before the JUG goes on brief Summer break.
I hope to see you at a Philadelphia JUG meeting soon!
Recharging the Philadelphia JUG
This might come as a surprise to some - the Philadelphia JUG is one of the oldest, most active and largest Java User Groups in the world. Since early 2000 the JUG has had regular meetings with many local and world-class speakers (I have had the honor to speak at the JUG myself in years past). The JUG membership is well over 1200 and meetings easily see 70-100 developers attending regularly. Believe it or not this is largely thanks to one man - Dave Fecak. After fifteen odd years of remarkable service last year it was quite understandably time for Dave to move on. Unfortunately this meant that the Philadelphia JUG had been struggling to keep it's footing the past few months - until now.
It is simply unacceptable for a JUG with the size and scope of the Philadelphia JUG to be on a downward trajectory. It would be unprecedented for the Java ecosystem and a great loss for the local community. Thankfully a number of us - including myself - stepped up to the task of moving the JUG forward in absence of Dave. In the process the Philadelphia JUG is moving to a collaborative team based leadership model now common to most larger JUGs. We now have setup a leadership board with a president serving Dave's informal designation of JUGMaster. Myself, Jason Young, Paul Burton and Paul Snyder (in no particular order) are board members while Martin Snyder has graciously agreed to accept the JUGMaster role. Brief bios for Martin, Jason, Paul B. and Paul S. are at the end of this post. Beyond the obvious benefits of teamwork the leadership format will allow the JUG to become a legal non-profit entity down the road. As has been the case for other JUGs this may prove to be invaluable in making the JUG not just locally successful but globally influential and we hope a model for up-and-coming JUGs around the world to follow. We also aspire to fully engage Philly JUG members through an open governance model.
As a solid initial step we have lined up some great sessions for the rest of the season ending in Summer - including from Microsoft on using Java on Azure, uber cool NAO robots demoed at JavaOne as well as a very important talk on the Java Community Process from my former colleague Heather VanCura. Indeed we had our first meeting under the new leadership yesterday - I will blog in detail on that meeting in the next few days. I will have the honor of giving the finishing talk for the season in June. During our brief Summer break the leadership will try to plot a course for the future to move the Philadelphia JUG onward and upward.
In doing all of this we need your help. We need all the local volunteers, great speakers, generous event hosts and strong sponsors we can get. If you can help us, please don't hesitate to reach out. I will personally be reaching out to folks in the Java community including star speakers and regional JUG leaders for their support shortly. Together, let's make the Philadelphia JUG another valuable part of Java's ongoing success!
is the CTO of Wingspan Technology. He brings over 20 years of experience as an executive and architect for enterprise applications, integration, and document management for global enterprise applications. Prior to Wingspan Martin founded and operated Ethermoon Entertainment, a video game development company. He has held leadership positions in Philadelphia, Boston, and Silicon Valley. Martin has also published and presented on a variety of topics over the years, most recently on the Scala programming language and Functional Programming. Martin is very active in the Philadelphia software development community serving as an organizer for Philly JUG, PHASE, Philly ETE and the Northeast Scala Symposium.
is the Technology Director for the Investment Management Unit at SEI Investments. He has been in the Software Industry for over 25 years, working in many positions from Apprentice through Architect to CTO. He is serving as Chair for the British Computer Society's USA Section, a fellow of the society, and a member of their Council. Paul has attended Philly JUG meetings for seven years and wishes to help the group thrive.
currently works for the consulting arm for FIS (formerly
SunGard). He's been working with Java and JVM languages for over twelve years including Scala, Clojure, and Groovy. He has been involved in the Philly tech scene since 2001, with the Philadelphia Linux Users Group. He founded the first suburban chapter of that group, PLUG West, and is currently a PLUG organizer. He's also a co-organizer for Clojadelphia (the Philadelphia Clojure meetup), the Philly Lambda functional programming group.
has been a Java developer since Java 1.0 and has contributed to the success of a range of software projects from modeling/simulation of space systems at Lockheed Martin, to web analytics for Toys R Us, to the Integration Platform as a Service offered by Dell Boomi, to healthcare software for GSI Health. Recently he started a consulting company. Active in the technology community as part of Philly Startup Leaders, he also enjoys helping people on Github and running a technology blog.
CFP Opens for Oredev, the Little Scandinavian Conference with a Big Heart
Oredev is set to take place November 7-11 in Malmo, Sweden. The CFP for Oredev
started just a few days ago and will run until March 31.
Although I regularly speak at much larger conferences Oredev has a special place in my heart and this year I've joined the Java track of the program committee for Oredev
. There are a few reasons for this. Along with Java2Days, Bulgaria and TDC, Brazil this conference was one of the first to invite me as an international speaker some years ago. Since then I have spoken there quite a few times and every time time it is simply an outstanding experience. In fact one of my most popular talks - Reactive Java EE, Let Me Count the Ways
- was born there through brainstorming with an ordinary Oredev attendee with extraordinary ideas. The conference itself is very unique. Although it has roots in .NET, it tries very hard to appeal to a broad audience most certainly including Java developers (the content itself really spans all of IT today). It is one of the few conferences that relies heavily on inviting deserving speakers and paying expenses for all speakers (in Oredev tradition I will be shortly inviting a few folks in the Java community). As a result the conference inevitably curates some of the best speaking talent on the planet. The conference has a strong focus on diversity and social responsibility so you know you are supporting a good cause whether you are speaking or attending. Another very unique thing about the conference is that it is strongly supported by the town of Malmo itself - indeed the speaker dinner is hosted at the Malmo Town Hall with local (nontechnical) dignitaries attending.
The location of Oredev is actually unique too. Malmo sits right at the southern most corner of Sweden literally a channel across from Denmark. The city is small but very cosmopolitan with local tourist attractions and a vibrant nightlife. Very nearby (literally within an hour) you also have Copenhagen, Denmark as well as breathtaking viking artifacts littering a beautiful country side (look at the photos I took from my visit last year). To top all that off the conference itself has regularly organized tours of the city and a party that features a hot Swedish sauna and a naked dip in the freezing cold ocean waters for both speakers and attendees (the naked freezing cold water dip is completely optional of course).
Why I Left Oracle - A Confession
I will have the moral courage to make my actions consistent with my knowledge of right and wrong.
(See Job 27:5)
I left my job as Java EE evangelist at Oracle on March 4, 2016. If you take a look at my blog post announcing my joining Oracle
a few years ago, it won't be hard to spot my skepticism of the role of a professional evangelist and my skepticism of Oracle as a responsible steward of Java. One of the reasons I accepted the job was because of Cameron Purdy amongst a few other key folks at Sun and Oracle. I have followed Cameron's career for a long time. He is clearly a gem in the executive ranks of our industry. He helped pioneer one of the most successful pieces of enterprise infrastructure that has stood the test of time. Yet he is humble enough to still code even in front of a keynote audience. My faith in Cameron was not unfounded. Things have been good for a while certainly in the Java EE community and most importantly inside Oracle. Then Cameron was made to leave Oracle...
The surroundings around Cameron's departure saw my skepticism of Oracle grow exponentially. Make no mistake - this skepticism is not merely around Java standard APIs for the enterprise. It extends to Java on the desktop, browser, client, mobile, embedded and yes, even the core language runtime (this last one being the one most people get distracted focusing far too much on). Indeed the skepticism extends to Sun's entire promising open, collaborative technology portfolio largely centered around the JCP. Whatever your actual or perceived usage and dependency on any part of this portfolio, you shouldn't think for a moment that this doesn't concern you (the sheer number of near-sighted, unbelievably apathetic people in our industry never ceases to amaze and confound me). This is the portfolio that has helped make us all successful for the past two decades. You can be rest assured that if this portfolio does not remain robust we probably won't be celebrating Java's thirty year anniversary like we celebrated it's twenty year anniversary a few months ago.
My growing skepticism is of course independently shared by the ever vigilant Java EE community outside Oracle I have had the honor to serve. They have started to coalesce around these concerns quietly for months now. These are courageous folks I have the greatest regard for. The time is well past due I rejoined these folks in the community to help safeguard the well being of millions of Java developers worldwide and perhaps the well being of global IT itself.
Many people seem to have an impression of Oracle as a company full of corporate drones. This is far from the truth. I wasn't, Cameron wasn't and we are very far from being alone. This entry would not be complete without a respectful salute to these courageous folks. They will need our continued total support no matter what and they do what few others would dare or care to (now including myself). I wish the corporate drones and their masters lots of luck - they are going to need it more than ever.
As for my skepticism of professional evangelists and professional evangelism I am afraid that too remains intact but has decreased slightly over the past few years. One upshot of all of this is that I get to return to what I have found fulfilling for so many years - down-to-earth consulting in the enterprise. Having worn so many different hats now in our ever colorful industry it is the role in which I still find it the easiest to do the right thing for the right people at all times.
Home sweet home.
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.