Restaurant Man

Joe Bastianich è famoso in Italia come giudice di Master Chef. Joe è di origine triestina, e figlio d’arte, per cosí dire: suo padre e sua madre sono famosi ristoratori.

Il libro si presenta in modo molto discorsivo (sembra quasi una sboinatura di una narrazione vocale), e soffre di parecchie ripetizioni, soprattutto nella prima parte; l’editing risulta molto debole.
Il primo terzo del libro è la biografia di Joe, ed è godibile. La parte centrale è una specie di storia dei ristoranti fondati da Bastianich, ed è purtroppo noiosa. Nelle parti migliori, verso la fine, è un raconto delle idee che hanno portato alla apertura del tal ristorante.
Il libro da’ uno spaccato realistico della cultura culinaria americana durante il periodo in cui Joe ed il suo amico Mario fanno scoprire al pubblico della grande mela l’esistenza dei vini e della cultura Italiana.

Anche se Bastianich è conosciuto in italia grazie alla trasmissione Master chief, non ci troviamo di fronte ad uno Chief ma ad un ristoratore per vocazione ed  esperto di vini per passione (e abiltà).

In conclusione questo libro è animato da un seppur genuino desiderio si sponsorizzazione, piuttosto che di racconto della propria vita.



C# 4.0 in a Nutshell

My Big Company asked me to develop a small-sized application using C# and WebForms. The Customer was a big Italian Bank, and it asked for that technology: I was chosen because of my Java seniority, but I was zero on .NET knowledge

The “C# 4.0 In a Nutshell” was a real time-saver for my. The 1000-pages book written by Joseph&Ben Albahari will give you a complete look to the C# Technology.

It is not easy to find so well written and complete books: only Herbert Schmidt with the  “C++, The Complete Reference” give me the same joy of reading about twenty years ago.

The books cover all the C# Language in the first part, with a complete description of basic .NET library (ICollection-s, Strings, Date, I/O).

Some very nice insighs are

  • Chapter 12 Disposal and Garbage Collection
  • Chapter 17 Assemblies
  • Chapter 18 Reflection and Metadata
  • Chapter 19 Dynamic Programming

I was a .NET newbie before this book, because I was never able to study Microsoft libraries (even in the nice 90-ies pre-windows95 programming). I only used a bit of Turbo Pascal in the 1992-1993 and some Access 1.0 visual basic macros.

After studing this book I was able to draw the archtecture of my project and develop the entire set of layers (from web forms to database access).

My twelve years java knowledge helped me, but this book really outperformed my needs, giving all I need.

The LINQ topic is very well written, and the authors also provide LINQ PAD, a nice utility to train yourself on the LINQ C# Magic. This is very important because LINQ is unique to C#, and it is very difficult to have previous experience on this topic.

The networking chapter teach you how to use the internal Windows http server (!) you got for free inside the Microsoft operating system.

Because of its weight, the ebook edition is a good shot if you have an iPad or an eBook Reader.

Mercurial: The Definitive Guide

This entry is part 5 of 3 in the series Version Control

Mercurial, The Definitive Guide

I Love Version Control Software, as I like programming languages. So even if “Mercurial, The definitive guide” was published months ago, I asked O’Reilly to review it. The Bryan O’Sullivan book is very compact, and will explain the mercurial world in less than 250 pages.

After years of CVS and Subversion, I feel something was missed: even with subversion, doing merge was hard and time-consuming. Branching and delivery was a pain.Why so?…

The first book chapter does a brief history of the  revision control software, from SCCS (1970) to CVS (end of ’80) and Subversion (2001). Mercurial spring into life in the 2005, the same year Git come to life.

Mercurial is a python based distributed version control. In respect of Git, Mercurial is a lot easier to use, and it is very efficient also under MS-Windows. Because is based only on python (and some native extension if you want better performance), it is very compact.

Chapter 2 & 3 give you a tour of mercurial, from installation to a day by day use.

Chapter 3 is fully devoted to Merging and branching: a task which a distributed version control system make very easy to do. Even Joel Spolsky has just written a blog post about Mercurial, explaining the reason it rocks: distributed version control thinks in term of atomic change set, which give you a better isolation and integration when it comes to merging.

The book shines when it explain the internal organization of Mercurial (Chapter 4, Behind the Scene) and when deals with very advanced stuff like Mercurial Queues (Chapter 12&13, Managing Changes with Mercurial Queues).

Mercurial Queues are important if you plan to integrate third-part software you need to patch. Suppose you need to customize a complex software like a complex html parser or renderer (like Apache Cocoon). It is a bad practice, but sometimes you need it.

Mercurial Queues give you the ability to record your personal patch. But you also need to update Cocoon to the last version, for bug-fixing and performance improvements.

Mercurial Queue is able to de-apply your patch, give you the option of updating Cocoon, and then re-apply your personal customizations.

The entire procedure is quite complex, but the tool give you a clean methodology to deal with the challenge. I think this is the true value of the book, because it is not easy to find such tutorial on the internet, and the author deals a lot with this topic.

The Web interface is described on chapter 6, along with hooks-based customization (chapter 10, Handling Repository Events with Hooks).

Mercurial can be extended via plugins, and its core is conceptually smaller than Git because a lot of extra feature are managed by plugins.

On the opposite, Git has a lot of complex feature on its core.

Finally, chapter 14 deals with extension installation, and we found  a funny misprint on page 222. Under “Cherry-Picking with the transplant Extension”, we read “Need to have a long chat with Brendan about this”.

Conclusion: a nice, compact and proficient book on distributed version control. A must-have if you plan to organize your projects with Mercurial

Other resources

Mercurial Visual Tutorial

Clojure Review

This entry is part 2 of 19 in the series Programming Languages

Book review by Stefano Fago:
This book introduce one of most interesting  language of new wave of functional programming. You will find a complete overview of clojure language focusing in functional paradigm that can be the real obstacle for a standard developer. The author try to follow you on learning different subject with a lot of examples but sometimes it need more reflection and time to master some arguments and a syntax that may seems obscure. The book is a good starting point to introduce you to a new way of programming but also to learn some particulars aspect of Java. To consider a complete but not easy reading. However a book to have!