No Relation To Blog
Subscribe to the personal musing of Emmanuel Bernard
I have been a rather early adopter of ebook readers. The Sony PRS-505. But I gave it to my wife and moved on to read on my iPad instead: The whole buying books and moving them to the device was quite cumbersome and the iPad was good enough especially with the awesome Kindle app.
I physically met my colleagues a few month ago - no it does not happen very often - and two of them told me how they loved their physical Kindle device. I've been pondering the usefulness of yet another device in my life and finally decided to give it a go.
I bought the Amazon Kindle Paperwhite. Why? Well the price was not prohibitive. Why the Paperwhite? I'm a nocturnal beast, more than my wife an any rate. Why a Kindle? Now that gets interesting.
The reason this ebook reader changed my life can be summed up by:
- I can read and only read on that thing
- I can get my books instantly and wirelessly
- I can read my books on multiple devices and they sync with each other
- I can push non book content to the device wirelessly
Reading without interruption
That's a huge deal and that did bring back my pleasure of reading. An iPad is awesome but you get notified of tweets, facebook zombi parties, emails and all this chatter breaks your reading flow. I know you can disable notifications and put the device in Do Not Disturb.
But it is still oh so easy to jump in your emails for a quick check... and come back to reading 30 mins later having wasted your time. Same for twitter or the internet temptations. Now with the Kindle, you can go to the web but the experience is horrible enough to be a deterrent.
Frictionless book reading
I love DRM free formats. And I make a point of honor to free my encumbered digital assets if I can. And you can on Amazon books.
Still, it is undeniable that Amazon's experience with the Kindle devices, Kindle apps and Kindle shop ecosystem is just too good. No need to plug your device to a computer to get your books. And more importantly, I can stop reading a book on my Kindle, resume it on my iPhone while in the subway and go back to the Kindle in the evening. And the devices put me right where I stopped.
But wait there is more.
Selecting vs consuming
While I browse your twitter feed or whereever, I often see an interesting article that I want to read. But reading it now and stopping what I do long enough to read the article is extremely disruptive.
What I do instead is send to Instapaper articles I want to read. And ask Instapaper to send me a compiled list of unread articles to my Kindle device every day at 19:00 (that's 7:00 PM to our imperial friends). Instapaper integrates with a lot of apps including Twitter and you can use a Bookmarklet to push a page when browsing the web.
Tadaaaa! I have separated the selection process from the consumption process and I can be 100% into what I am doing and not sidetracked by the latest awesomeness the internet produces daily. I have this 20-30 mins of time in the evening (or most evenings at anyrate) when I read my pre-selected articles. The nice thing is that Instapaper inserts links you can use to mark an article as read (they call it archived). If you have not read all articles, they will simply come back the next day in the next compilation.
I'm super happy with my experience and can't recommend it enough. Even the basic WiFi-only will do you good. I had a defect on mine: the lighting was casting visible shadows (1cm by 1.5cm). That is not normal, just ask for a replacement, they are friendly about it.
By the way, I don't need to, but I do pay for the Instapaper service. They are both cheap and awesome.
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 :)