My current reading

From May 2000 for a year or so I logged books I was reading. 

Planning Extreme Programming by Kent Beck, Martin Fowler

How to plan, estimate, spec and run projects with extreme programming.

The first XP book, Extreme Programming Explained, introduced the practices involved in XP. This "planning" book gives more guidance: how to write stories; how cost, quality, time and scope effect a plan; how to start estimating stories. You also get details on what goes on during the life-cycle of an XP project.

They've managed to cram lots of useful information in this 139 page book, and by using lots of short chapters it feels like easy reading. 

Anvil of Stars by Greg Bear

Kids in space to avenge the death of the Earth. Lovely stuff.

This is the sequel to The Forge of God. You don't need to read that book before this one, but you may as well.

Lots of good elements: set in deep distant space, encounters with aliens, interesting advanced technology, a little bit of politics, a few dilemmas, bad guys. I liked it. 

Down Under by Bill Bryson

It's a Bill Bryson book. If you like any of his previous books, you'll probably like this one.

It's funny. It's about Australia. I enjoyed it.

Something I learned from reading this book: I really don't know much about Australia and I should do something about that.

Lonely Planet: New Zealand by Jeff Williams, Christine Niven

A useful guide for my brief "make it up as you go along" visit to NZ, but with hindsight I wouldn't have used the book.

What I'd do now is get a good map of NZ, and sit down with some Kiwis and ask them where I should visit. Then travel and pick up all the information you need from the local tourist information buildings. If you're travelling by car, then you can probably pick up a free motel guide to give you an idea where the motels are in an area. Everything else, you can find on the web (e.g., starting with soc.culture.new-zealand FAQ).

The other odd thing about this Lonely Planet is that it exaggerates: the Wellington cable car is neither a "must-do" nor is it "exhilarating"; the boat cruises on Milford Sound are not must do either, but kayaking probably is. Strange.

Playing the Moldovans at Tennis by Tony Hawks

Looks like Tony Hawks has started a new career as a serial dare-taker with a hint of travel writing. Can't be long before he takes a film crew with him and turns one of these dares into a TV series. And I'd probably watch.

I read Round Ireland with a Fridge, which was the story of his bet that he could hitchhike around Ireland ... just him and a small fridge (a book I enjoyed, BTW). This book is the same theme ("go overseas for crazy bet"), but covers Moldova, Ireland, Israel, Liverpool and trying to beat the Moldovan national football (soccer) team at tennis. A touch more ambitious.

I thought "ergh, same old stuff, different setting" and pretty much decided that I wouldn't enjoy the book. And that lingered throughout the book, and wasn't helped by finding the writing style a bit dull. Still, I'm surprised to be saying that I did enjoy the book. It's not a classic, but when you stop for a moment and think about it all, it is a very silly idea: you have to find out what went on to appreciate just how silly.

The Visual Display of Quantitative Information by Edward R. Tufte

It's too easy to gush about this book. The topic is how to display data to get the information across in the most honest and useful way. To tell that, you learn some history, see some very creative graphics and also see some very bad graphics.

For an example of very creative graphics, the book cover shows the 1880 train schedule for Paris to Lyon -- you can just about make it out on the cover shot: the diagonal lines in the top half of the cover. Time runs left to right, and stations run top to bottom. It's a very nice way to show time schedules in a compact form, with the bonus that the slope of a line show the speed of the train.

The book is full of these kinds of creative graphics, which makes it a pleasure for me to read. The guts of the book is really about guidelines for presenting data: keep it simple, remove anything you don't need, make every mark or spor of ink work, be honest, be inventive. Tufte even has equations for measuring the information value of one graphic compared to another.

By default Excel breaks just about all the guidelines. Maybe someone should start an open-source project to bring some of Tufte's guidelines into StarOffice.

Oh, the book also confirmed something I've long suspected: pie charts are stupid.

Anti-patterns: Refactoring software, architectures and projects in crisis by William Brown, Raphael Malveau, Hays McCormick III, Thomas Mowbray

Someone said "you learn more from your mistakes than successes". I believe that, so I couldn't resist this book. I've read (well, own) the patterns book which gives me a collection of coding frameworks or approaches that have worked before. So I had to look at Anti-Patterns for the list of things which don't work.

Rather than just coding ideas which don't work (like spaghetti code, the blob, cut and paste programming) the book also covers architecture anti-patterns and project management anti-patterns. I found these two sections the most interesting.

On the architecture side, there are anti-patterns like Stovepipe Systems or Design by Committee (also known as: Gold Plating, Standards Disease, Make Everybody Happy, Political Party). A description of the anti-pattern (or is it AntiPattern?) is given ("A complex software design...has so many features and variations that it is infeasible for any group of developers to realize the specification in a reasonable time...") followed by a list of symptoms ("the design documentation is overly complex, unreadable, incoherent or is excessively defective; the committee meetings resemble bull sessions during which substantive issues are rarely discussed...") and typical causes ("No designated project architect; ...features are added to the specification based on proprietary interests; concerns are not separated...").

Rather than stop there, the nice part of anti-patterns is that you get a refactored solution and an example. In the case of Design by Committee the solution is to change the style of meetings and manage the meetings.

On the project management side we have topics such as Irrational Management:

Irrational Management covers a range of commonly occurring software project problems that can be traced back to the personalities of the person(s) running the project.... General form: the manager ... cannot make decisions. This may be a personality defect or the result of an obsession with details... Symptoms and Consequences: The primary symptom of the Irrational Management AntiPatterns is project thrashing...

The refactored solution starts with "admit you have a problem and get help". So this eight-page example is probably one to photocopy and slip under someone's door.

The Forge of God by Greg Bear

No messing around: page 6, Europa goes missing. Page 18, alien found. It's SF if you hadn't guessed. A real page turner with lots to think about.


Cascading Style Sheets: The Definitive Guide by Eric A. Meyer

Something I've been dabbling in and thought I'd better find out about properly.

This is a "typical" O'Reilly title (which is a good thing, BTW). Good discussion of the basics to get you thinking right, then lots of examples and a good coverage of the kinds of things you want to do. Then there's the reference section in the back.

Of course CSS is changing (this book covered CSS1, with a "look ahead" to CSS2), so look out for revised editions.

The Old Man and the Sea by Hemmingway

I didn't read this for the story. I read it because it is supposed to be a classic book. And it is.

The story is, I think, well known. At least I think I recognized it. What is shocking is how good the writing is... sort of perfect. Soothing, almost.

Blast From the Past by Ben Elton

Loved the start, loved all the twists and turns at the end.

The middle big dragged on (but I might not have thought that if I'd know how good the ending was going to be). Funny, yes, but I only laughed out loud once (on page 201).

Refactoring by Martin Fowler

You try to write the best code you can, but you can't predict the future and when you go back to some code it has "gone off" and you need to change it (it works, but you can't live with it anymore). You need to refactor.

"If it ain't broke, don't fix it" still applies. Still, you go back to the code and you just hate it. It doesn't make sense any more. So you should change it, otherwise you're going to end up with a right mess of code bolted on here and there. For examples see my page on AntiPatterns: Refactoring software, architectures and projects in crisis.

The book starts with an example, and then moves on to give a set of refactoring recipies. The point of the recipies is to make refactoring as safe as possible, so you follow the steps and the restructuring of the code should preserve the functionality (i.e., you won't have broken anything).

That's pretty much it, but the book talks about what makes code "smell bad", the thinking behind refactoring, and the sort of set-up you need to do refactoring (tests, source control...)

Bernice Bobs Her Hair by F. Scott Fitzgerald / The Divine Comedy

"Bernice Bobs Her Hair" is a track on Divine Comedy's Liberation album. The lyrics sounded so obviously like a novel, I had to go track it down.

Being lazy I typed "bobs her hair" into Google and got the full text as the first hit: it's based on a F. Scott Fitzgerald short story, so I read the whole thing in digital form from a page at the University of South Carolina.

Oh, the CD is great.

Swarm Intelligence From Natural to Artificial Systems

I'm glad I skim-read this one. Lots of interesting detail and maths that you'd need if you were building a model.

I was just looking for ideas to help build better distributed systems. But right there on page 21 it says: "This book is not intended to provide the reader with recipes for solving problems." Oh well.

If the examples (such as division of labour and task allocation) inspire me to modify any code, I'll update this page.

Eyewitness Travel Guide to San Francisco & Northern California

I've never bought an Eyewitness guide before. They've always seemed lacking in information and just overly glossy. More tourist then traveler. Then I realized that I rarely read all of a 1000 page travel guide.

The Eyewitness offers a quick overview (more pictures than words), so I can go off and do my own exploring. Maybe I just don't need all that text in a regular travel guide.

As it turned out, the Eyewitness was good for knowing whether or not to bother with some of the tourist stuff. The hotel and restaurant guide was good, but for that I might consider the Time Out guides in future.

Lonely Planet: California & Nevada

I've recently found myself preferring the Lonely Planet guides over my old favourites, the Rough Guides. Does this mean I'm getting old or something?

Maybe the Lonely Planet maps are better, or they're just more readable, or perhaps because the Lonely Planet web site is better (with on-line updates to the print books).

In town the Lonely Planet wasn't great, but it was invaluable outside of San Francisco itself for exploring and finding places to stay.

The related eKno service for picking up voice mail and calling home worked perfectly. I'll use that again.

Why We Buy: The Science of Shopping by Paco Underhill

It's like the usability of shopping. I don't know how seriously to take this particular science, but it's a great read.

The first part of the the book is not so much about why we buy but more about how we buy or what stops us from buying. I love all the detail about the transition zone (when you enter the store and slow down) or how signs are (mis-)used (when they are read, when they are never read), or the sex differences in shopping.

There's something slight snake-oil about the writing style, but I like it. Take a look at the first few paragraphs:

Comfortable shoes, the American commercial camouflage uniform --- khaki pants, olive polo shirt, no aftershave and good, thick, dun-coloured socks.

Okay, stroll, stroll, stroll...stop.

Get out the clipboard and pen.

Shhh. Stay behind that plotted palm. This is the first track of the day.

The subject of study is the fortyish woman in the tan trench coat and blue skirt. She's in the bath section. She's touching towels. Mark this down --- she's petted one, two, three, four of them so far. She just checked the price tag on one. Mark that down, too. Careful, her head's coming up --- blend into the aisle. She's picking up two towels from the tabletop display and is leaving the section with them. Get the time. Now, tail her into the asile and on to her next stop.

All of this field work is pulled together into a description of the shopping experience, plus comments on on-line shopping.

Miss Wyoming by Douglas Coupland

His best one yet. If you like that kind of thing. Don't know? Try the first few paragraphs...

Susan Colgate sat with her agent, Adam Norwitz, on the rocky outdoor patio of the Ivy restaurant at the edge of Beverly Hills. Susan was slightly chilly and kepy a fawn-colored cashmere sweater wrapped around her shoulders as she snuck bread crumbs to the birds darting about the ground. Her face was flawlessly made up and her hair was cut in the style of the era. She was a woman on a magazine cover, glazing out at the checkout-stand shopper, smiling, but locked in time and space, away from the real world of squalling babies, bank cards and causual shoplifting.

Susan and Adam were looking at two men across the busy restaurant. Adam was saying to Susan, "You see that guy on the left? That's 'Jerr-Bear' Rogers, snack dealer to the stars and the human equivalent of an unflushed toilet."

"Adam!"

"Well, it's true." Adam broke open a focaccia slice. "Oh God, Sooz, they're looking at us."

Lovely.

EXtreme Programming EXplained by Kent Beck

I want to believe. I really do. I'm almost there: lots of testing, yes. Refectoring, yes. The simplest thing that works, yes. No to big methodologies. Pair programming, yes... but all the time? What about teleworking?

Makes you think. Has to be read.