Archive for the ‘Books’ Category

Amazon’s Kindle, after more than a year

Using the Amazon Kindle (2nd generation) now for over a year I must say it was worth the high international shipment price. What’s great:

  • Its great paperback replacement. You read slightly slower than with a real book but it is definitely easier to handle.
  • It’s weight and operation time. This is one of the only electronic devices which need only to be recharged once a week after moderate usage.
  • WhisperNet and the online shop works flawless.
  • The always present dictionary is one of the best ideas so far for eBook readers
  • Text-to-Speech works well and is sometimes useful (if you are too tired to read ;-))

So as replacement for paperbacks, the Kindle is perfect. Yes, the E Ink Display can be better (it is, with the 3rd generation). But the Kindle has also some flaws:

  • The platform remains closed without any good reason (and open it for simple games makes no sense so far)
  • Direct ePub rendering would be fine (but you can always convert any book to the MOBI format with good results, DRM is not an issue any more)
  • The not so good typographic rendering: not the worst for reading, but if you take a higher quality book, you see the difference. Maybe this is a second chance for TeX 😉

This flaws can be solved easily by Amazon but the real problem for all eBook readers are currently the publishers who try to block any success of the platform, especially in Europe:

  • A lot of publications available in US are not available here
  • Several months ago eBooks costs (naturally) less than Hardcovers, now prices are equal or higher (with nearly zero production costs). This is pure greed because the authors are not getting more as they got from a paperback sale …
  • The silly idea of DRMs (which cost two clicks to be removed nowadays)
  • Nearly no German publications in the Amazon Store (but you can buy it on Libri.de or Thalia as ePub and copy it over)

I currently hope the market force of Google, Amazon and Apple combined will derail the current publishers (as they have done with the records industry) so that most books really get available with a reasonable price.
Will be interesting of the new 7” tablets will be finally replace the Kindle, but for now it is definitely the best electronic reading device so far … for the current price it is a certainly bargain.

What Lean and Agile really means in development

The latest book of Craig Larman, Scaling Lean & Agile Development, written with Bas Vodde is a very well written guideline and collection of suggestions how Scrum can be scaled to larger teams (meaning more than 7 members). Instead of suggesting more organizational clutter like “Scrum-of-Scrums” it focus an really challenging topics like how to handle large backlogs without loosing the view for the big picture. Besides providing practical suggestions, the book does also a very well job in providing introductions to the values and ideas behind Scrum which are rooted in the Lean and Agile movement as well as in classical ones such as System Thinking. This is the first book I’ve seen which combines a long time of personal experience with all important values and ideas from the domains of Lean, Agile and Scrum (and their foundations) in a very compact form.
Highly recommended!

Unnecessary ghosts from the past

I have recently read a book about the last big cholera epidemic in London which leads to one of the first great data visualisations, Snow’s Map. He counted the number of deaths at every location so this is how he found the center of the epidemic at the Broad Street pump and discovered that the contaminated water was responsible. Currently cholera is back in Zimbabwe on large scale. The most important thing of the treatment is simply clean water, which seems not to be available any more in a country which was one of the highest developed ones before 1980 and destroyed by the criminal regime of Robert Mugabe. It is time that the neighbour countries take care of this mess.

There are other admirable companies besides Toyota

I have currently read the book Maverick! from Ricardo Semler who is CEO and owner of Semco Group, a Brazilian company. Normally you can read today a lot of Toyota and it’s sophisticated and very successful practices and general management style. But Semco is a company which started as very traditional managed company, with a very unspectacular product range, hydraulic pumps and dishwashers in a country which was definitely not known as successful economy. Ricardo Semler and his very creative co-workers have build up a company which seems to be very unique in the world: the structure is build on the best values of democracy, capitalism and socialism, it survived a hard economic system and produce very low organizational overhead. The Semco Way is based on fairness has proven that if you trust people and keep them responsible a more effective and agile company can emerge.
I highly recommend to read this book, it helps to understand why traditional management structures are ineffective and no way to go in our fast changing world …

UPDATE: His second book, The Seven-Day Weekend, is different from his first. Maverick! is basically a biography of Semco, the newer one is written from a more outsider like position and, more interesting, after Semco has become a very large, diversified group of different companies. So this book is written in a bit more like style of an general management advisor, but never the less highly recommended.

Randy Pausch died today

Today Randy Pausch finally died of cancer. He gets famous by the creation of the Alice software project and lately by the book “The Last Lecture” which he wrote fully aware of his cancer. In his book he tells about what was really important in his life and how he handled the diagnosis for cancer. It is worth reading!

Contribute to a book

O’Reilly has started their first trial for a open book content contribution project. Because it is about software engineering I think most people working in this very sophisticated and world changing domain have a strong opinion to some points. It will also be interesting how well this works for O’Reilly. The concept was and is used for a lot of smaller book projects but I think O’Reilly ist the first big commercial publisher who is using this technique.

A comprehensive overview of useful data mining algorithm

The book Programming Collective Intelligence from Toby Segaran is a practical useful guide through the most common data mining, more exact classification, algorithms. The book covers the traditional algorithms as decision trees, naive Bayesian classifier, neural networks, clustering and not so common ones as support-vector machines  and non-negative matrix factorization. The last one was new for me. The first paper seems not to have surfaced before 2000 so it is relatively new technique and has shown very good results in the case of feature extraction of large numerical spaces. Also optimizing functions like simulated annealing and genetic algorithm are mentioned. Interestingly, there is also a small example for genetic programming.
All algorithms are explained with examples and small programs in Python. The only thing I’ve missed is a mathematical representation in addition to the explanation itself, but at least all utility functions are explained more formal in the appendix.

Found a missing piece

I’ve currently read the book Agile Management for Software Engineering written by David J. Anderson and I have to say that the book really fill a gap in the description of agile practices. Anderson describes very well why agile methods work and that maybe have the same impact as the Toyota production system models had on the manufacturing side. Besides explaining the advantages very well, the book provides to not so common highlights: the comparison of a cost oriented management method against throughput oriented, the reasoning why most resources used for software development are constrained ones and, unique for a book on this topic, metrics to keep track of an project, plan buffers and quantify the output value.
An other interesting point, and rightfully so, is that he emphasis that the phases of software development are always the same, analysis, design, implementation, test and deployment, only the the time then and the way how they are executed are different.
The second part of the book makes a very good comparison between traditional management methods and various agile ones, namely XP, SCRUM and FDD (Feature Driven Development). All methods are presented with metrics for planning, tracking and costs so he can directly show how and then each has advantages.
The book is available since some years but because I was not so fond of the ideas behind FDD, which I misunderstood somehow, I never read it until now. After reading, I highly recommend it for everyone who thinks that a piece of knowledge was missing if you have to argument in favor of agile methodologies and practices.

Best book so far of 2007

The book Beautiful Code edited by Andy Oram and Greg Wilson is a collection of 33 essays about what experienced developers declare as beautiful code. The essays cover a wide range of languages or have you lately seen any book where you can find code snippets from Java, C#, Lisp, Perl, C/C++ and Fortran? Nearly all articles are well written and tell a story about a neat peace of code which solves a mostly not so simple problem well. My five favorites are the following ones:

  • A Regular Expression Matcher by Brain Kernighan
    A story how interesting and simple a regular expression method could be …
  • Beautiful Tests by Alberto Savoia
    Why binary search implementation is not so simple as most people think …
  • A Spoonful of Sewage
    Handle concurrency is hard, handle it in the Solaris kernel well is a challenge …
  • Beautiful Debugging by Andreas Zeller
    How delta debugging came into the world …
  • Writing Programs for “The Book” by Brain Hayes
    A simple geometric problem which is not so simple as it seems on the first glance …

All other stories are also worth to read, although sometimes I had to admit I got lost in code (especially in Fortran or Lisp).

Release It!

Michael T. Nygard’s book is one a rare one because it tells something about the time after a project was finished and is released for the first time into the world. The basic message is that you can not anticipate failures which certainly will occure if the system is used. Besides failures caused by programming failures, a lot of failures occure because the capicity of the system was never tested and the constraints of it indifferent situations were not correctly identified. He presents patterns and anti patterns for stability and capacity. Some are well known, but often not easy to handle (e.g. resource pooling), others are interesting as the circuit breaker which has the purpose to “break” the normal handling of operations if the failure rate becomes to high. After it has “opened”, all calls will fail immediately, but all ongoing transactions can be completed and the resources can recover, so no cascading failure happens. Another favorite is that we have always the wrong intuition about scaling, we always think linear, so as example I’ve clearly underestimated the change of database size from 100 GB to 1 TB and 2TB and so on.

So QA and load tests are not needless, far from it, but you should expect that the only accurate model of the world is the world itself. Building script able management interfaces, decouple systems as much as possible and expect that users will do unspeakable things will help. With the time and accurate data about the system’s health, it will become more predictable.

The book is a bit web site centric, but nearly all is true for all large system deployments. It covers a lot of points in very few pages but this can be a advantage because it is fast to read and will certainly help to smooth deployment and troubleshooting in operations.