Thursday, April 24, 2008

Why would you pay for JBoss products?

Andy posted some of the reasons why you would want to use the JBoss subscription based platforms rather than the .org projects. During this exercise, he hinted some of the reasons why JBoss moved from a model where the community version was supported to a model where an enterprise platform is supported. He did not go far enough in his explication for my taste.

One of the fundamental reason (other than the financial one) for such a split is that supporting all the community releases do not work in the long run. Some customers want 5+ years of support on a product line and it is simply impossible to support every single community release for 5 years.

There are two main strategies from here:
  • slow down the release cycle and freeze innovation to match the 5 years customers
  • leave the community projects release early, release often, innovate like crazy and fork them to do an Enterprise pace version
The first model is not viable: it can work great for proprietary software but is fatal for open source software.
In the second model, an enterprise version is created every n community versions. This is where the support, packaging, service and advanced QA is provided. Packaging and QA are the ice on the cake, the five year support is really the meat (assuming a meat cake with ice is good :) )

Speaking of QA, yes deep internal QA is important and leverage bugs upfront but I trust the community QA more than any internal QA (more hands, more eyes, more time). I wish good luck to MySQL on their enterprise only features (semi-closed or closed source) but I think that will lower the quality of these particular features (less eyes, less hands, less time): my bet would simply to use the MySQL Enterprise version but not the "select" features. As Sacha like to say, in the JBoss Entreprise versions we remove features, we don't add them: unstable or experimental features are removed from the enterprise version. It's about less not more.

Generally speaking the support problem is interesting and usually kicks a company around its 5th birthday. The wannabee Platform as a Service contenders will face the same problem... in 5 years. "What do you mean the cloud where my data lives is too old??? Which version of the Cloud are you at?"

Productivity tools

With my regular job(s), the Hibernate Search book and a life going on at the same time, I had to find ways to boost my productivity.

Here is a list of some tools I am using in no particular order:
  • ThinkingRock (ad the GTD methodology): I am reading Getting Things Done by David Allen and ThinkingRock is the best tool I have found to help you follow the methodology. GTD is all about putting all your thoughts somewhere, organize them and decide what will be the next action on each of them. Some sort of superpower todo list, but one you actually use.
  • FreeMind: it's a software implementing the concept of Mind Mapping. It's a fantastic tool to organize your ideas on a given subject. Despite it's clumsy interface, I use it extensively to organize each chapter of the book. I also use it to build presentations.
  • OmniOutliner: a fantastic outliner tool. It somewhat competes with FreeMind but keep things a bit more organized and the interface is very efficient.
  • OmniGraffle: every diagram in the book is done with OmniGraffle. Fantastic tool, very productive and makes very nice diagrams without effort. Microsoft Visio but done well.
  • IntelliJ IDEA: I switched from Eclipse back in the dark days of annotations. I tried to come abck a couple of times, but I am too much of a happy user to jump back.
  • Keynote: Powerpoint without the useful features and annoying glitches.
  • no email: I try to avoid unread emails, when I open my inbox, I process all emails and put some todos if needed in ThinkingRock. If I read an email and keep it unread, I will process it over and over. annoying
  • KeepassX: Some people keep all your passwords in a text file. This is efficient and cross-platform. I keep mine in KeepassX: it's a bit more secure, it has a search box and open the websites for you. There is a Windows version as well (the original version indeed). The file is readable by both versions AFAIR.
  • Mac OS X: a ton of tiny little details
  • Time Machine + Time Capsule: A software + hardware solution to seamlessly backup your data on a Mac. Not so much a productivity tool as no major catastrophe has happened so far but that's the first time I do backup my data consistently. I don't even have to think about it.
  • XMLEditor XMLMind: my part of the book is written in docbook as I find it more productive and easier to focus on the content rather than the style. XMLMind is the best Wysiwyg editor for Docbook (could be better but the best I've found so far). I use the pro version simply because it has on the fly autocorrect feature. It's expensive for a tiny little feature but it is worth the time it saves me.
  • Hg (Mercurial): I am not using this tool yet but I am very curious about Distributed SCM. I wonder if it would help me integrate patches quicker and make the contributor's life easier (it's for another post I guess)
  • No TV: pretty obvious. I check the news on Google News and Le Monde ; I rent DVDs when I feel like it.
  • Google Reader: I don't run after the tech news, they are waiting for me on Google Reader. so when I have some spare time, I go read a couple of entries.
I hope you will find some interesting gems, feel free to share your favorite productivity tool as well. In a future blog entry, I will talk about how I waste the time I hardly gained :)

Tuesday, March 18, 2008

Mac OS X Leopard and internet downloads

If Leopard asks you if "you are sure you want to open this application which was downloaded from the web" every single time, read further.

I installed Mac OS X Leopard yesterday. Leopard started to warn me about applications downloaded from the Internet. Every single time I open them (not only the first time) I have to confirm it's a safe app.

I first thought Apple believed I was both stupid (can't take care of my security) and with huge memory issues (yes I am trying to open this troyan app 8 times in a row, thank you for reminding me I forgot).

Apparently, this is a small bug. If you download an application with one user account but do not open it with the same account, the security flag is never lift up. To work around that, log on your original account, open all you downloaded apps (27 for me, the dock was a nice christmas tree :) ), accept the security warning for all of them. Next time you open one of them, the security warning will not appear, pfffeu!

Another tip for free. If, like me, you want your old iLife applications back after a clean OS install, go download Pacifist, extract the iThing packages from the Tiger CDs and install them.

It was nevertheless the smoothest clean reinstall experience I've ever had (Carbon Copy Cloner and the Migration Assistant are fantastic).

Wednesday, March 12, 2008

Philly's search

I will be at the Philadelphia's Emerging Technologies for the Enterprise conference speaking about Hibernate Search on March 27th (Thursday).
The conference has some interesting talks around the new wave of development frameworks (Seam, Rails and so on). There is even a Battle of the frameworks! a Rountable Debate which sounds very promising. I will definitely try to sneak into it ;)
Come by and say hi. If people are interested we could have a chat about the future of Hibernate Search as we are shaping it as we speak (or you can show up on the hibernate dev list if you don't like Philly ;) ).

Thursday, March 6, 2008

Hibernate Annotations and EntityManager fix-athlon

Hibernate Annotations 3.3.1.CR1 and Hibernate EntityManager 3.3.2.CR1 are available for download here. I have done a fix-athlon in the last few days to ready them for JBoss AS 5.
There is a ton of bug fixes especially in the Java Persistence scanning area and in edge mapping supports.
Some minor new features have been added as well (transparent integration with the latest Hibernate Search collection events, @Any, @NaturalId).

Check the changelogs here and here.

Unless huge bugs are discovered, these versions will be embedded in the next JBoss AS 5 release.

Go try them.

Wednesday, February 27, 2008

Lucene users (2.3): migrate to Lucene 2.3.1

In some specific cases, Lucene 2.3.0 can corrupt your index. It happens in very specific cases:
  • you use autoCommit=false on IndexWriter
  • or multiple threads are adding documents where some have term-vector enabled fields and some don't
These particular situations do not occur in the regular use of Hibernate Search, but upgrading to Lucene 2.3.1 works fine, so go upgrade, you won't be bitten later. Native Lucene users should upgrade as well.

Here is the official Lucene team announcement

Lucene Java 2.3.1 available

This release contains fixes for serious bugs in 2.3.0 that could cause index corruptions in autoCommit=false mode or in cases where multiple threads are adding documents where some have term-vector enabled fields and some don't. The autoCommit option was added to IndexWriter with release 2.2.0. If not explicitly set to false, the IndexWriter runs in autoCommit=true mode.

See CHANGES.txt for a detailed listing of changes.

2.3.1 does not contain any new features, API or file format changes, which makes it fully compatible to 2.3.0.

We would like to encourage everyone who is currently using Lucene Java 2.3.0 to upgrade to 2.3.1 to prevent possible index corruptions!



Lucene is available at apache.org.

Tuesday, February 26, 2008

Hibernate Search in Action book

I am very please to announce that a book on Hibernate Search is on its way. John Griffin and I are co-authoring Hibernate Search in Action from Manning.

The goal of this book is to give a good practical understanding of Hibernate Search and guide people through the steps of adding full text search capability into their Hibernate based application. The book also covers the necessary Lucene knowledge you need to use Hibernate Search on a daily basis.

An early version of the book is already available through the MEAP program. Five chapters are already out there. If you are interested, give it a try, we welcome your feedback!