No Relation To Blog
Subscribe to the personal musing of Emmanuel Bernard
Le samedi 23 octobre à partir de 15h et jusqu'à 18h, Antonio Goncalves, Arnaud Héritier et moi allons faire une après-midi dédicace au Monde En Tique à Paris, la librairie spécialisée (dans l'informatique notamment).
[caption id="" align="alignnone" width="416" caption="Vu dans les cast codeurs !!!!"][/caption]
L'idée est de faire une petite après midi entre geek tendance Java. Que vous achetiez un livre ou pas, venez nous rendre visite histoire de papoter. Il parait qu'il y aura peut être à boire.
On ne fait pas exactement ça pour l'argent. A part Antonio qui va se payer une nouvelle Ferrari, Arnaud et moi espérons pouvoir rembourser notre ticket aller-retour sur Paris (va falloir vendre au moins 4 à 10 livres ;) ). Les livres* en dédicace** seront:
- Java EE 6 seconde edition (Antonio, Apress)
- Hibernate Search in Action (Emmanuel, Manning)
- Maven (Arnaud, Pearson) - le seul en Français
Bref, passez nous voir.
(*) Le livre dédicacé est très tendance pour la saison de Noël 2010, profitez-en!
(**) Une dédicace offerte pour un livre acheté.
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
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
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.
Summary first: very easy to read, a gold mine of knowledge and tips on a subject that is essential to the life of today's Java developers. Go buy it and keep it around your desk.
Let's quickly talk about the book structure. The book walks you gently through the DI (Dependency Injection) subject:
- why do you need DI, what does it solves concretely in application developments
- what is injection, what are the main concepts
- using DI to improve application modularity
- object scoping and how to approach that with DI solutions
- best practices learnt with tears and blood
- and a small concrete application showing how to use Guice as your DI container
If you are a beginner, this book will explain to you how and why using DI. If you are an expert and use DI on a daily basis, this book will help you rethink what you have taken for granted in DI-land and learn a handful of new tricks and design patterns.
I consider DI and the notion of scope (aka context) to be an essential knowledge to any Java developers. This will become even more pressing with the soon arrival of JSR-330 (Dependency Injection for Java) and JSR-299 (Context and Dependency Injection for the EE platform aka Web Beans) and their inclusion in Java EE 6.
Just like you had to learn polymorphism, you need to learn DI and context management as this is an essential tool for proper component design and application modularization.
The only gotcha is that this book comes right before the finalization of the two JSRs and hence does not cover them. Don't be too afraid though, all the core concepts covered by these specifications are thoroughly explained in this book. The problem / solution approach used by Dhanji will perfectly complement your knowledge of the DI JSRs.
My advice is to keep this book on your desk when you develop (next to Hibernate Search in Action mine of course ;) ), you will save yourself the burden of learning the best design approaches the hard way.
I am doing a session on Hibernate Search all this week at JavaRanch. Manning will give away free books of Hibernate Search in Action for the occasion.
If you have questions on Hibernate Search, express yourself :)
Great news this week:
- JBoss AS 5 is out. Congratulations to Dimitris and the many people in and out of JBoss who contributed to it.
- Hibernate Search 3.1 is out. A lot of good stuffs like performance improvements at indexing and querying time and some cool new features like the analyzer declaration framework (allowing declarative phonetic, synonym, n-gram indexing and searches)
- Devoxx is very close. Come see the JBoss folks and topics and come to the Seam meetup after the BOF of course :)
Also, on the Bean Validation (JSR 303) side, I am finalizing the last changes in the spec for the public draft. We made a lot of progress in the last two weeks on various subjects including type-safe groups and JPA / JSF / EE integration (with the finalized draft, I will officially contact the EE expert group). Stay tuned, hopefully the draft should be out in a week or two.
Finally, Hibernate Search in Action is supposed to be released in final PDF monday (still not believing in it till I see that one ;) ).
Great week on my side. See you at Devoxx for a drink or two.
DZone has a nice Hibernate Search 3.1 6-pages ref card. It is packed with:
- The list of annotations and their descriptions
- Hibernate Search's main APIs
- Lucene's most useful query types
- Quick examples involving mappings and API usage (including the new analyzer declaration framework)
It's free but you need to register.
Speaking of the devil. John and I have given back our last edits for Hibernate Search in Action. So we are still on target for releasing the book in december. I personally still can't believe I am done, so I will play the St Thomas and will wait till I can touch the paper :)
By the way, Ayende has ported Hibernate Search to .net : NHibernate.Search. I don't think there is documentation specific to the project but the Hibernate Search documentation is just as useful.
I don't know Ayende personally, but I can only admire someone that blogs more that I can tweet and still have a full time job :)
We just had our third review of Hibernate Search in Action. Receiving this feedback has been a humble experience. Lot's of good reviews (good) and some critical ones (even better). Every imperfection we left aside came back in the spot lights of our reviewers.
Based on this feedback, we have been working hard the last two weeks to improve a lot the manuscript:
- clearer code transcripts with more inline annotations
- better separation between different parts of the same example (Hibernate API versus Java Persistence API)
- the code has been updated to the latest Hibernate Search version and cleaned up a lot (no more warning, same comments as in the book)
- the code now contains README files for easier navigation, ant scripts, Eclipse and IntelliJ descriptors
- a nice appendix summarizing all annotations, Hibernate Search APIs and Lucene Query classes
- added an index: I wish I could plug Hibernate Search on the book, that one was painful
- added a section on testing (mocking, in-memory integration testing, performance testing)
- better explanation on how query and analyzer are interwoven
- add the Explanation API description
- clearer introduction for each chapter
- much more references than before making book navigation easier
- all references in the book are up to date. No more Chapter XX ;)
- improvements on the clustering chapter
The code is almost ready for prime time, we will publish it as soon as we find the right vehicle for it.
Thanks to all our reviewers. While I am not sure I appreciate the recent sleep depravation, this definitely improved the book a lot.
As usual, you can get the preview version electronically at Manning, it has all the chapters and I hope to get the latest changes uploaded soon.
That's now official, I handed over the last chapter to the publisher yesterday. All chapters will be available to the early access program in the next few days. The journey is not finished yet. A lot of reviewing and correction are at sight. If you have feedback, now is the time :)
The last last few chapters out cover:
- Hibernate Search filters
- Cluster and scalability
Filters are a neat feature allowing to apply cross cutting restrictions on Lucene queries: you might want to filter to the latest month item creations or filter according to the security level the user is granted. Filters do just that in a declarative fashion: enable one or more of them by their names.
The chapter of performance is a mix of existing content and new content focused around performance at various stages: indexing and searching. It also includes an explanation about index sharding.
The last chapter describes problems that arise when you try to cluster Lucene and how Hibernate Search addresses them. We primarily describe the asynchronous clustering approach implemented out of the box in Hibernate Search (using JMS). The chapter also describes how to customize Hibernate Search to your own clustering strategy to meet your architectural needs.
Now off to the correction marathon :)
We have just pushed another set of chapters for Hibernate Search in Action and reached the symbolic limit of 2/3. Yoohoo! We have also enhanced some of the existing chapters based on the feedbacks we received and the perseverance of our editor. They have just shipped as part of the early access program available in ebook format. I am very happy with the new chapters especially the description of analyzers in chapter 5.
I describe the use of Hibernate Search and the new Solr integration (coming up in Hibernate Search 3.1) to enable synonym, phonetic, n-gram and snowball search. Snowball is an algorithm that deduces the root of a word enabling searches for words of the same family: work, working, worker will all be reduced to the same root (called stemmer). The chapter both aims at demystifying analyzers and providing a concrete approach on how to use them. I really enjoyed writing it, I hope you will like reading it.
Beyond analyzers, here is a small list of the subjects I am personally happy with in the book:
- the introduction gives you a nice picture of what search is, why it matters nowadays and how it can be implemented in todays applications
- custom bridges: chapter 4 gives some nice examples of custom bridges including how to write one for composite identifiers
- mapping associations has always been a confusing subject for beginners. Chapter 4 comes with some nice diagrams that should clarify this topic
- chapter 5 explores when and how to use synchronous indexing, asynchronous indexing and clustered indexing (through JMS) and describes what is going on under the hood
We (and by we, I mean John) also have finished the Lucene dedicated content. While Hibernate Search hides the gory details of indexing and searching, its let you use all the flexibility of Lucene queries. Understanding Lucene is key and we have added the necessary knowledge you need for your daily work with Hibernate Search.
Let us know what you think and, of course, go buy the e-book :)