What design philosophy for your projects?

2012-04-12  |   |  jboss   oss  

We had a hotted debate recently in the Hibernate Validator team on a given feature. As a result, we started to write down our design philosophy for the library. This is still a work in progress but here it is (original here):

The goal of these projects is to improve developer productivity and ease of use.

When adding a feature, we ask this pool of questions:

  1. Does it feel like the right way of doing things?
    If it is not we tend to wait till the idea matures
  2. Can it be done with an existing construct with similar or less complexity?
    Several ways of doing things is counter productive
  3. Is this feature wrong?
    Does it encourage bad practice for example?
  4. Is this a popular request?
  5. Is this feature useful?
    That is the reason for asking "What's your use case?"
  6. Is it the most readable approach?
  7. Is the feature designed consistently with the rest of the library?

None of these questions should slow down innovation but we want high quality libraries. Keeping them both useful and simple is a constant battle against the easier way of adding features ad nauseum. The team believes it is his responsibility to be the guardian of these principles. We are here to make the world a better place, not give food to guideline writers.

What do you think? And what are your design philosophies?

Book review: JBoss AS 5 Development by Francesco Marchioni

2010-03-31  |   |  book   jboss  

I've been reading JBoss AS 5 Development by Francesco Marchioni published by Packt Publishing. I must say that I quite enjoyed the book because it is complementing my knowledge perfectly.

I know Java EE 5 and 6 quite well, I've been working on it, promoting it, yada yada yada. But when it comes to details on how to configure JBoss AS beyond the standard and the EE programmatic model, my knowledge leaves a lot to be desired.

Good for:

If you want to know how to:

  • change the HTTP port
  • create two independent clusters on a single network
  • customize the thead pools of your HTTP requests, EJB 3 components etc
  • tweak the transaction manager
  • secure your JBoss AS installation
  • etc

This book is a gold mine. Using the index or the table of content, you will reach the information in a minute.

If you want to know how the JBoss Tools can help you:

  • create an application
  • deploy / undeploy apps
  • add new components, pages
  • etc

This book will give you nice how-tos that will hold your hands from tooling installation to configuration and wizard usage.

Francesco also explains the basics of the EE programmatic model. This is quite handy as it helps you to kink a configuration trick to an application behavior: all configurations are described with how they impact your application behavior and what it means if you change them.

Not good for:

If you are looking for a book that explain the Java EE programmatic model and development practice in detail, this is not the book for you. You're better off looking at Seam in Action or any other EE targeted book.

I will keep the book next to me when I develop and deploy on JBoss AS. Finding the right config or tuning will be much faster than a reckless Google search :) Reading this book, you feel that Francesco uses every bits of JBoss AS, loves it and wants to share his knowledge. Keep going :)

Disclosure: Swati from Packt Publishing sent me the book for free. I stand by what I said in this blog though.

Hit the road Jack

2009-10-13  |   |  conference   jboss  

Now that I am done with my what took a lot of my time recently, I will be on the road for pretty much the whole month of november all over Europe to spread the word.

First and foremost, I will inaugurate the new MarsJUG (in Marseille) on October 15th. I will be talking about Hibernate Search and how to implement clever full-text search engines using approximations (phonetic approximation etc).

I will also be speaking in Munich at the W-JAX conference on November 10th and 11th. This time I will cover:

  • Bean Validation (JSR-303) and Hibernate Validator 4 (just released)
  • What's new in Java Persistence 2.0. I will spend a good chunk of it to explain the new type-safe Criteria API
  • Hibernate Search and how to do full-text searches with Hibernate-based applications

Next in line is Devoxx where I will give a university talk on Hibernate Search. If you want to know everything about Hibernate Search, this is the time! This is November 17th in the afternoon. This is an interesting format (3 hours), where i will cover a bunch of what is in my book Hibernate Search in Action and do a handful of demonstrations.

Last but not least, I will be speaking at JavaEdge '09 on November 16th in Israel. This time about Bean Validation and Hibernate 4.

If you come by these cities at the right time, come and join me! Between one of these conferences is my birthday :o)

Edit: I forgot that I will be speaking at the ParisJUG on December 8th about Bean Validation. Right after a healthy debate on Spring vs EE 6 (I heard that extra medics and blood supply have been planned)

JBoss Community Asylum - a new podcast with bits of me in it

2009-09-24  |   |  jboss   podcast  

Remember my French podcast Les Cast Codeurs? (Doing well, thank you for asking) Well apparently, I did not have enough and started a new one. In English this time.

JBoss Community Asylum. A podcast on, by and about the JBoss Community and its gazilllllllion projects and ideas. It's available here and the iTunes link is here. Basically, instead of blaming people about the lack of podcasts on the great tech at jboss.org, Max R. Andersen (JBoss Tools), Michael Neale (Drools + cloud thingies) and me have decided to give it a shot. You will get the latest news on from the JBoss sphere and we will likely interview folks about their projects.

Let us know what you think and how you would like it to evolve. It's a low-key bottom-up approach so anything's possible.

PS: I made progress, I am not the sound engineer this time, yeah!

Lies, damned lies, and statistics: EE edition

2009-07-07  |   |  java   jboss  

I came across some figures regarding downloads of Glassfish and JBoss AS that really puzzled me. Basically Glassfish was downloaded 700.000 times a month (end of '08) while JBoss AS was only downloaded around 115.000 times a month at the same. My first reaction was "Well done to you, Sun!" and then I realized that the gap was too good to be true. Let's have a look at these numbers.

For JBoss AS, the Sun team has only counted the direct number of downloads out of SourceForge. That's public knowledge by the way, go there for the JBoss stats.

For Glassfish (according to this), downloads numbers (not public BTW) come from:

Surprisingly, no stats on the direct number of downloads from the Glassfish project page. Let's analyze that a bit.

JDK bundles is the thing downloaded even by my grand'ma by accident. I can tell you right there, she has never ever used Glassfish ( nor JBoss ;) ). How many times, did I download the whole enchilada while I just wanted the plain old JDK!

Java EE SDK. This one is hard. Of course, people interested in EE will go download this package. Are they interested in GF? Hard to say. On the other hand providing a SDK without runtime will do no good.

NetBeans. I'm surprised at the popularity of NB, but there it is. Are all NB users actually GF users? BTW NB also comes with a JDK bundle but I don't know if this bundle also bundle GF :)

Let's call this strategy the Russian doll statistic generation strategy. Frankly, that's not very honest for your users and customers to use this strategy and then compare apple to oranges with your competition. When someone downloads JBoss AS, for sure he did not do it by accident (thanks to SourceForce's sense of UI :) )

So we have two strategies here, JBoss could start playing the Russian doll statistics generation strategy and we can be pretty good at it:

  • include JBoss AS in Fedora and count it
  • include JBoss AS in RHEL and count it (Dell, IBM and the like are pretty good at delivering RHEL on their hardware)
  • include JBoss AS in IcedTea and count it
  • include JBoss AS in JBoss Tools and count it
  • include JBoss AS Core in JBoss ESB, Portal etc etc and count it
  • include the number of downloads from our maven repository (with the number of times you have to nuke your local repo that will be a big hit :) )
  • I've only added a few ideas but for sure our marketing guys can be more productive

Of course we won't do that. An alternative strategy would be for the Glassfish team to only display their direct download numbers (the one they fail to display) and stop using bogus charts in their public and private slides.

On a side note, I find it disappointing that open source projects don't keep their stats open and preferably via a third party provider like SourceForge. Granted the SF stats are somewhat flaky but it keeps everyone honest with their own (lack of) success.

Disclaimer: I am not saying Glassfish is not a success, I am quite happy to have them as coopetitors on the server market in general and Java EE in particular.

Les Cast Codeurs Podcast is born

2009-04-14  |   |  java   jboss   podcast  

I have just started a new podcast with a few French open source activists. All about Java, all in French. If you know French, read on ; otherwise, well... learn :)

Les Cast Codeurs Podcast est dans les bacs!

Le podcast en français dans le code sur Java par Emmanuel Bernard (JBoss, Hibernate), Guillaume Laforge (SpringSource, Groovy), Antonio Goncalves (freelance, auteur), Vincent Massol (XWiki, Maven).

Restez informés sur les sujets brûlants de l'industrie Java. Plongez sur un sujet précis avec l'interview de l'épisode. Supportez les radotages de vos hôtes.

Ecoutez-nous et faites passer le message autour de vous !

web: http://lescastcodeurs.com
itunes: http://itunes.apple.com/WebObjects/MZStore.woa/wa/viewPodcast?id=312239675
podcast syndication: http://lescastcodeurs.com/podcast-rss
blog feed: http://lescastcodeurs.com/feed/
feedback: commentaire@lescastcodeurs.com

Podcast on Bean Validation lastest PFD

2009-04-03  |   |  java   jboss   JSR-303  

I have recently been interviewed by Kenneth Rimple for the Chariot TechCast.

In this podcast, we speak to JBoss's Emmanuel Bernard on the future of validation using JSR-303, the Bean Validation framework. JSR-303 aims to provide an annotation-driven mechanism to mark plain old java beans with annotations, such as @NotNull, @Min, @Max, and can support custom validation annotations as well.

JSR-303 is part of the Java EE 6 suite of JSRs and will be used automatically out of the box by frameworks such as JSF 2.0. Emmanuel also goes into some detail about the current state of Hibernate Search.

You can listen to it here or register to iTunes.

Go us

2009-02-02  |   |  jboss  

I am usually not the kind of person that likes patting one another on the back. I am always prompt to point out what's left to be done rather that what has been done. But reading Sacha's newsletter to our customer made me proud.

JBoss AS 5 has had record downloads. People were eager to get AS 5 out, so were we.

A fully TCK compliant OpenJDK based Java SE 6 made it into Red Hat Enterprise Linux 5.3. As far as I know, this is the first fully Open Source Java SE implementation certified against the TCK (might be wrong, so don't quote me on that).

JSR 299 (ex Web Beans, newly named Java Contexts and Dependency Injection) is now in its latest public draft review. Gavin and the EG have worked *very* hard to address the EE 6 expert group concerns and pave the road to include this technology in Java EE 6.

The JSR-299 reference implementation is in pretty good shape and releases steadily. I am personally impressed by the quality of the reference guide (alpha 2 here).

RESTEasy, the JBoss JAX-RS implementation is now fully certified and has reached 1.0. I know Bill Burke has been waiting to grab and pass the TCK for a long time.

Bean Validation public draft is out. I also worked very hard too, damn it! ;) We had a lot of positive feedbacks from you guys in our forum. If you want to look at the cutting edge, I release spec snapshots quite regularly on the hibernate-dev mailing list. The latest work includes finalized JPA and JSF integration, type-safe constraint validators, XML support and clearer names.

Also the reference implementation is developped in the open. We hope to get a first milestone release this week or the next one: we did add cool new features you requested in the spec recently (like type-safe validators) and we want to have them in the RI.

A little while ago, Navin released JBoss Cache Searchable 1.0 GA which is based on Hibernate Search. Good stuff: a full-text searchable distributed object cache.

A cool project named JBoss Negociation brings desktop Single Sign On to web apps. Basically, by login to your Windows 2000/XP machine that is secured by an Active Directory and then go to any of the kerberos aware web applications that are hosted by your company in the network, you will have seamless SSO. Their latest GA is here.

That's just my selection of January news. Who said JBoss was sleeping ;) Alright, enough self congratulation and back to work.

JBUG Munich: Java Persistence 2 and Bean Validation

2009-01-26  |   |  jboss   jug  

Next week, I will be at the JBug in Munich presenting Java Persistence 2 and Bean Validation. If you are around Monday 2nd, come swing by. The JBug Munich website is here for details.

DevNexus: human friendly conference March 10-11 in Atlanta

2009-01-24  |   |  conference   java   jboss  

I will be speaking at DevNexus. This small conference is a spin off the Atlanta Java User Group.

Here are a few things I like about the conference personally:

  • There is around 10 presentations over two days, so you will be able to see all / most of them.
  • The price is very reasonable ($150 for early birds), $185 regular price.
  • The size is reasonable, so interacting with speakers is natural.
  • Atlanta in March is very nice.
  • ahem, I will be speaking there, ahem.

I will personally speak about our experience in scaling Hibernate in big environments and how SaaS vendors can face the challenge. I will also discuss Hibernate Shards and Hibernate Search with regard to scalability. And there are nine other speakers at the conference, so check their website.

Name: Emmanuel Bernard
Bio tags: French, Open Source actor, Hibernate, (No)SQL, JCP, JBoss, Snowboard, Economy
Employer: JBoss by Red Hat
Resume: LinkedIn
Team blog: in.relation.to
Personal blog: No relation to
Microblog: Twitter, Google+
Geoloc: Paris, France