Recognition for my work (NBDT, GAP, DZone MVB)
Posted on Sep 29, 2008 at 7:21 PM
by Ryan de Laplante · Filed under Java
I have been meaning to blog about my recent accomplishments in the Java community for a couple of months now but other things kept coming up. Today a cheque arrived in the mail so I figure it's time to write about it. In August I was invited to join the NetBeans Dream Team. Below is a brief description from the NetBeans Dream Team wiki:
The NetBeans Dream Team is a community-driven group of highly skilled NetBeans users and contributors. They participate at NetBeans developer events, on mailing lists and developer forums, providing new, interesting and informative content as well as developing new and creative ways to promote NetBeans.
I accepted the invitation and one of my first official volunteer tasks was to be on a panel of judges evaluating plugins written by community members for the NetBeans Innovators Grant Contest. You can see my quote about one of the plugins I evaluated at the bottom of the page (Cube°n). The lucky bugger got something like $12,000 US for his work, then an additional $10,000 US for coming out at the top of the list (Gold Award). I'm really happy to be a member because there are a lot of very talented people in this group including book authors, JCP expert group members, accomplished consultants and public speakers, etc.
Soon after, the Sun GlassFish people contacted me about my contributions to their community. I am one of many winners in the GlassFish Awards Program. I won't say how much money I won, but I am very pleased with it! Thank you Sun! The picture on the right is my GlassFish Awards Program happy dance. Well, ok, that isn't really me :) My contributions were: SSL and HTTP BASIC authentication with Glassfish and JAX-WS, Creating a Windows service for GlassFish V2, re-published Windows service information in GlassFish wiki, a bunch of bug reports and enhancement requests, and general activity in the mailing list.
Last week I was contacted by DZone asking if I would like to become a Most Valued Blogger (MVB) because they have "re-printed" several of my blog entries and wanted to be able to do it as much as they want without having to ask me every time. I accepted and am now listed on their MVB page. They sent me a T-Shirt, a bunch of ref-cards, and a nice notebook (paper :). The first blog entry they re-posted since I became an MVB was The Cost of SpringSource Enterprise Support which got a lot of reads the first few days.
Ten Years at IJWS!
Posted on Sep 26, 2008 at 9:00 PM
by Ryan de Laplante · Filed under Status
Today is my tenth anniversary working for It Just Works Software Corporation! I never imagined that I'd still be working here ten years later since many programmers seem to change employers every few years. At least the ones I've met. Anyway, I've been loyal to IJWS because they have been so good to me over the years. Thanks Doug for keeping me around and for being such a great boss!
Here is an interesting fact: every year on Sept 26th there is announcement about Google's anniversary. Google was founded the same day I was hired at IJWS! I remember when they were nobodies :)
The Cost of SpringSource Enterprise Support
Posted on Sep 25, 2008 at 5:39 PM
by Ryan de Laplante · Filed under Java
I'm in the early stages of combining several Java EE 5 projects into a single project (WAR, EJB, EAR, JARs, etc). To do that I needed to swap out EJB 3.0 for Spring 2.5. I'm trying really hard not to replace anything else by keeping the JNDI DataSources, JTA and JPA implementations provided by GlassFish V2. I'm using annotations such as @PersistenceContext and @Transactional to keep the code clean and lean like it was in EJB 3.0. I've encountered several challenges and found the Spring Forums helpful. There seems to be paid SpringSource staff on the forums helping people. From what I can tell, my most recent issue appears to be deficiencies in the design of Spring. Nobody has replied in a few days so I thought about purchasing per-incident support from SpringSource. I've done this with other products before and was hoping that they would offer the same.
I went to SpringSource's website and looked up the pricing. I had to fill out information about my company so that a sales rep could phone me back. A while later they phoned to ask a few more questions. My answers were:
- We're using Spring DI + transactions + JPA + unit testing features. Nothing else.
- Deploying to a single GlassFish V2 server with two CPUs
- The application that uses the Spring Framework is a custom application for a single customer
- The customer owns and maintains the server. We only install our application onto it and do upgrades.
- Our company has around 12 employees
He plugged all of this information into his computer and came up with a total: $22,500 per year. I must have sounded like an idiot because I had to ask him the same question three or four times: "You said twenty two thousand dollars, not two thousand five hundred, right?" Many things were going through my mind so his responses didn't register the first few times. I told him that we don't use the whole Spring Portfolio, and do not deploy on their application server. I'm only using a few jar files that probably add up to less than 1 MB and only want one support incident. The best he could offer is the Spring Forums which he said is staffed by the developers who maintain the actual source code. He also said that the level of support they will offer in the forums will deminish because of the new commercial support offering.
At first I wondered how they could come up with such a price. Then I realized they are positioning themselves up there with IBM WebSphere, BEA WebLogic, and Oracle Fusion. Those products cost around $20,000 - $30,000 per year as well, or more. SpringSource's support is for the entire portfolio, just like support for a Java EE application server covers all of the Java EE APIs. We purchased a GlassFish V2 support contract for $4,500 per year, and we get unlimited incidents for everything in Java EE 5. We've already had to use it once and they were helpful to find the solution.
When I think back to the original allure of Spring [to me], it was to have EJB like container managed transactions and dependency injection but in the .war file and in unit tests. When EJB 3.1 and WebBeans 1.0 come out I will be able to swap out Spring and can get the support I need from Sun since we're already paying for it.
NetBeans usage statistics will surprise you
Posted on Sep 13, 2008 at 12:49 PM
by Ryan de Laplante · Filed under Java
The NetBeans IDE "phones home" weekly to check for updates. Sun captures statistics to determine the number of active users and where they are coming from. Below are statistics for the top twenty countries over the past twelve months regardless of product version:
# Country Count Ratio
1. United States 373,252 16.1%
2. Brazil 204,470 8.8%
3. India 142,460 6.1%
4. Germany 120,482 5.2%
5. China 117,489 5.1%
6. Mexico 88,320 3.8%
7. United Kingdom 79,847 3.4%
8. Spain 78,408 3.4%
9. Italy 65,798 2.8%
10. France 59,191 2.5%
11. Poland 57,076 2.5%
12. Canada 49,666 2.1%
13. Colombia 42,970 1.8%
14. Japan 40,883 1.8%
15. Peru 37,230 1.6%
16. Czech Republic 32,763 1.4%
17. Russian Federation 29,765 1.3%
18. Australia 27,992 1.2%
19. Thailand 27,975 1.2%
20. Netherlands 24,551 1.1%
(source: NetBeans DreamTeam mailing list Sep 9 2008)
I remember Sun proudly announcing that there are over 300,000 active NetBeans users at JavaOne 2007. Since then versions 6.0 and 6.1 were released, and obviously the user base has grown significantly. I recently discovered that a senior developer I know who works for a major bank is using NetBeans 6.1. He is a recent Eclipse convert and really really loves NetBeans.
It's time for all of you commercial and open source plugin developers to target the massive and ever expanding NetBeans IDE user base. Sometimes I find a great IDE plugin that is only available for Eclipse and IntelliJ IDEA. There is a market for NetBeans plugins.
I see Canada has quite a few NetBeans users. If you are in the Toronto or GTA area and use NetBeans I'd love to hear from you!
End of Spring vs EJB wars in sight?
Posted on Sep 11, 2008 at 9:22 PM
by Ryan de Laplante · Filed under Java
Tonight I watched a video of Rod Johnson doing a presentation on Spring 2.5 at Google. He said that Spring 3.0 will be an EJB 3.1 Lite compatible container so that the Spring Application Platform can get the Java EE 6 Web Profile certification if the expert group chooses to include it in Web Profile. Spring will also be a full featured EJB 3.1 implementation for use in the WebLogic application server. The Java EE 6 expert group has polled the community and it seems that most developers want the larger Web Profile which includes EE 6 technologies intended for the web. I wonder if the expert group has decided which Web Profile proposal to use, and whether or not JSF + Web Beans will be included? In Rod's video he mentioned that the design of Spring 2.5's dependency injection annotations are based on lessons learned from EJB 3.0's @Resource and Google's Guice. I am interested in knowing his thoughts on Web Beans annotations which is also third generation, and if Spring will become an implementation of it.
Anyway, I think this news is a BIG DEAL for EJB, as much as JPA was. If Java EE 6 Web Profile includes EJB 3.1 Lite and Spring is an EJB 3.1 container without requiring addons, then developers might choose to use the JSR standard annotations and XML over implementation specific ones for all of their work. This will be even more desirable if Java EE 6 Web Profile includes Web Beans and Spring has built-in support for that too. In the video Rod encouraged developers to use EJB's @PostConstruct and @PreDestroy annotations because they are standardized and Spring has built-in support for them. This could be the end of Spring vs EJB wars.
Look at what JPA (from EJB 3.0 expert group) did to the industry. Today many developers prefer to code using JPA standardized annotations and XML configuration by default, and only use implementation specific features where JPA is lacking until the next revision of the standard comes out.
To learn about the many new features in EJB 3.1, read Reza Rahman's series: Part 1, Part 2, Part 3, Part 4.
UPDATE (Sep 20 2008): SpringSource recently announced its new commercial support policy and how it relates to the open source community. There is a lot of harsh criticism and already people talking about moving to JCP standards:
It is sad but well I have to stop believing and dreaming and go back to the real thing the standards, anyway are not bad they are based on Spring idea, thanks god.
I will not pay a dime just for the DI container, If I need all the stack and portfolio of SpringSource ok I will think about it but just for the DI Container I will have to pay?, nope, better I wait for EJB3.1 the "STANDARD" or I could use Guice or even Tapestry 5 DI container.
As someone said Spring DI container is not rocket science perhaps we could use already Guice or soon EJB3.1.
Welcome EJB3.1 and the standard, I think I have to take a serious look at Seam or another alternative maybe Guice?.
Moreover - before spring beat everything because of price/value ratio. Now, it's not so obvious - maybe WebSphere or Bea will win in the next run. I should rethink my EJB 3.0 standpoint.
Fu** SpringSource!!, That is all I will say. We the community helped and contributed to grow Spring Framework and with this is like a stab on the back.Welcome EJB3.1 and the standard, I think I have to take a serious look at Seam or another alternative maybe Guice?. Spring Source just ruined it self. Mr.Rod I hoped more from you, Really, I hoped you ware our savior but it resulted with the same sh** as everything in the Open Source.
The unfounded, marketing-driven ("the de facto standard in enterprise Java") Spring hype is definitely over. Great!
I was ambivalent for a long time, even though its strengths were clear, because I thought (and continue to think) their stance towards Java EE is political rather than real, and I wasn't sure that configuration in XML (the Spring way, back in 1.0, 2.0) was really that much better than configuration in XML (the J2EE way.) ... now I feel like I was right for listening to my gut feelings.