The Humane Interface
The Humane Interface is an essay by Jef Raskins, creator of the Macintosh, aiming to improve the human-machine interaction. The ~200 pages book covers the conventional graphical user interfaces and hardware devices. The book has a very nice format and for some reason, feels very comfortable when reading. The book contains a color-insert with some of the illustrations the author considered as the most important. Each chapter and section begins with a quote representing the topic. It does feel like an introduction, but I’m pretty sure quite a few people would be mad to read their words so far away from the original purpose. (Sorry, I actually had to write a few positive aspects)
We are oppressed by our electronic servants.
This book is dedicated to our liberation.[ ... Yeah ... Right ... ]
While the author is very respectable, definetly knows what he is writing about and explains his concepts and theories very well, the book leaves a bad feeling. The book is divided in eight chapters, including introduction and conclusion. The three first chapters all felt like an introduction, explaining basic concepts in a very theorical way. Chapter four gives the basics of UI evaluation and quantification. Chapter 5 and 6 explain theories about the ideal interfaces. Chapter seven seem to be everything that couldn’t fit elsewhere. There are also 2 appendix, which I havn’t read.
The rest of the review will detail the content of the book and explain why I feel the book will forever stay on a shelf, gathering dust.
Dedicated Environments and Re-Inventing the Wheel
I remember having a discussion long ago about the fact that Zope requires a dedicated server to run. There are not so many CMS applications written in Python. From what I know Zope/Plone is the only option. On the other hand, PHP has more than it’s actually possible to count. Almost none of them require a dedicated server or any complex setup. It feels like they were all built to run on shared hosts. I think all of those projects are missing something very important by trying to reach the most common denominator.
PHP (especially with PECL) has an impressive amount of extensions that can be installed and offer stable and mature libraries that have been writtin in C. The amount of time wasted in re-writing those libraries, or emulate part of the functionality, in PHP to be able to run them without any dependency is incredible.
If you’re developping an intranet and actually have access to the server configuration (even if it implies bugging the admin for hours), I strongly recommand to take a look at the list of non-default PHP extensions and PECL. They are faster and usually have better documentation than PEAR libraries.
Open Source and Quality Insurance
Open Source is often questionned about the quality of it’s products. Microsoft’s recent FUD campain focus on the accountability of Open Source: who covers for the errors. A few mainstream OpenSource applications have a great reputation when it comes to security such as Linux, Apache and Firefox. One of the main reasons is that those applications have a very large user base and development team. A not-so-recent study suggested that Linux has approximately a bug every 10000 lines of code, which is much lower than the “industry standard” of 1 to 7 per thousand lines.
The popular Open Source database MySQL is an other success story. While not being as impressive as Linux, the young product has around 1 bug per 4000 lines for a total of 97 (with only one of which being critical). A marketting representative already announced that all listed bugs would be corrected for the next release.
Both analysis were made using a commercial tool called Coverity. While I have no idea how an automated tool can find bugs, the tool is supposed to be very effective since even Oracle, nVidia, Sun Microsystems are using it (for some reason, the result of the tests are not published, but the customer list is impressive). Don’t search for pricings, they are not listed on the website. Expect it to be very expensive.
Such results may not be accomplished by every Open Source software out there. I am aware of multiple bugs and crashes in several applications in the KDE suite. Only a few projects actually perform so well, but many others would probably fall in the “industry average”. What can be better than millions of users testing and being allowed to report problems? Of course Unit Testing can have good results, but for some reason, real users always tend to click at the right place at the wrong moment.
Design Patterns: Elements of Reusable Object-Oriented Software
Design Patterns: Elements of Reusable Object-Oriented Software is the one reference when it comes to Design Patterns. First published in 1994, the book is now at it’s 30th printing. The nearly 400 fine printed pages masterpiece has a retail price of 85.99$ CAD, but you can have your copy from Amazon.ca for 43$ CAD. The four authors of the book are often refered to as the Gang of Four
and their standing was high enough even back when the book was released. The last paragraph from the back cover should be descriptive enough:
The authors are internationally recognized experts in the object-oriented software field. Dr. Erich Gamma is a technical director at the Software Technology Center of Object Technology International in Zurich, Switzerland. Dr. Richard Helm is a member of the Object Technology Practice Group in the IBM Consulting Group in Sydney, Australia. Dr. Ralph Johnson is a faculty member at the University of Illinois at Urbana-Champaign’s Computer Science Department. Dr. John Vlissides conducts his research at IBM’s Thomas J. Watson Research Center in Hawthorne, New York.
The rest of the review contains a description of the content of the book, which is divided in two large sections: an example case study and the pattern catalog. Of course, I will also give my opinion since it’s what this review (and blog) is all about.

