The Martian Principles for Successful Enterprise Systems

I’ve just finished reading a little gem of a book. It’s called ‘The Martian Principles for Successful Enterprise Systems’ with a subtitle of ’20 Lessons Learned from NASA’s Mars Exploration Rover Mission’. The author is Ronald Mak.

Imagine designing an information retrieval, indexing and presentation system for the two Mars rover vehicles that were sent on a one-way reconnaissance mission to Mars for a three month mission. The feisty little vehicles kept going for two years and the information systems had to be designed to cope with this unexpected project over-run.

The book runs to 168 pages and is a ‘should-read’ for anybody involved in designing or buying large-scale enterprise software. From an architect’s perspective, you get a reinforced mental checklist of the aspects of your designs that make them work and ensure they keep working long after you’ve moved on. From a customer’s perspective, you gain an appreciation of the effort put into designing such systems. From a developer’s perspective, now you know why you spend so much time writing and executing unit tests.

The book has short and well directed chapters and is an easy read with coverage of both the technical side of software development and the soft or human side.

As a result of this read, I went back to enhance some application logging classes that I’ve used on a number of projects to provide more granular output and statistics on usage patterns.

Unix Shells by Example

Author Ellie Quigley ISBN 0-13-147572-X

Published by Prentice Hall

Priced in Australia at $87.99 (June 2010)

No matter which shell you run and how ever long you’ve been using it, you’ll probably pick up a trick or two from this book.

Now in it’s 4th edition, this book is stuffed with real world examples of all the useful GNU/Linux shell tools. It focuses on awk, sed, grep and their many variations. It builds from simple examples with extensive use of regular expressions.

Although running to over 1,000 pages, the first 450 are where I found the real meat. The remainder is a comparison of the different shells and their many quirks

As far as I can see, you can approach this book in one of two ways. Firstly as a student, set aside a few quiet Sundays and go through the examples one by one, some of it may feel like repetition, but progressively you’ll get the picture and it will be well ingrained in your brain. Secondly as a reference. I use the bash shell, but I often find useful scripts created on csh or heaven’s forbid zsh. So the trick is knowing what’s different and what needs changing. To this end Unix Shells By Example is very handy to have on the shelf.