Monthly Archives: June 2008

Books: Anathem by Neal Stephenson

I finished the book and put up a longer review of Anathem
When I got home from going San Francisco and the Caymans this Sunday I had a pleasant surprise. I had a nice advanced reader’s copy of “Anathem”, the upcoming novel by Neal Stephenson*. I’d heard reports that it was either post-apocalyptic or a space opera, but neither seems an apt description 100 pages in. So far it seems to be another new genre: Long Now Fiction. You’ve got a monastic (“mathic”) order where different sects sequester themselves away from the ever changing world outside for periods of a year, a decade, a century or a millennium.

There’s an awful lot of worldbuilding words to keep track of, which is a bit annoying, and it is starting off slow. That’s fine, though. Stephenson’s books generally don’t move like other books that have a slow rising action to a climax. Stephenson’s books tend to be first immersion in a world for a few 100 pages, then a radical spiraling climax that is vertically asymptotic against the presence of the end of the book. It’ll get exciting soon enough.

The book isn’t due out till September 30th, and assuming that I’ll finish the massive thing by then, do let me know if you’d like it next.

*Apparently I’m quite the lucky duck.  I got this through the LibraryThing Early Reviewers program and was one of the 25 recipients out of the 1375 requesters. 

It’s all details

They say the devil is in the details. Sometimes subtle details are a place to shine.

I was reading notes on a lecture by the great Joshua Schachter, developer of Del.icio.us, when I was thunderstruck by a detail.

You have to speak the user’s language. “Bookmarks” are what you call them if
you use Netscape of Firefox – most users these days know the term “favourite”
instead. Half of his population (? users) didn’t know what a bookmark was.

It is true:
The small details matter

The beauty of Ruby’s array subtraction operator

Today I had to a set of email addresses, one per line, from which I had to remove the addresses of folks that said “Don’t email me.” Those emails were in a separate file, one address per line.

I figured I’d have to do this again, so I wrote a ruby script to automate it. Below, stripper.rb

#put each address in an array, remove whitespace and make it all lowercase
 potential_emails = IO.readlines("potentials.txt").map! {|email| email.strip.downcase}
 delete_emails = IO.readlines("donotemail.txt").map! {|email| email.strip.downcase}

#use the beauty of ruby's array subtraction operator
 puts potential_emails - delete_emails

Simple, terse and readable.  Lovely!