Archive

Archive for September, 2007

Haven’t They *Seen* “Terminator”? (Part 2)

September 28th, 2007
Comments Off

Fuji Xerox has built a photocopier that can scan a piece of Japanese text, translate it into Chinese, Korean, or English, then insert the translation in the original layout.  (The actual translation is done over the network on a dedicated translation server.)  Adam Goucher‘s first reaction was, “Substitute code for the original, and get the server to do testing.” ;-)

Uncategorized

Catspaw on Change

September 27th, 2007
Comments Off

Toronto’s Google’s own Michelle Levesque is featured in today’s entry in O’Reilly’s “Women in Technology” series. She tells us she got into technology because she saw someone vanish; I’ve heard less plausible reasons ;-) .

Uncategorized

Reading Lists

September 27th, 2007
Comments Off

Diomidis Spinellis (author of two books on my recommended reading list) has just posted a reading list of his own. There’s quite a bit of overlap, and a few surprises — worth looking at.

Uncategorized

The Best Part of My Job

September 26th, 2007
Comments Off

The best part of my day is the time I get to spend with my daughter.  The best part of my job is the people I work with.  For example, David Wolever just found a possible explanation for the “jitter bug” in Firefox that I described yesterday. Turns out the problem is (probably) Javascript sending a second request right behind the one tossed out by the link click.  That’s not the cool bit; the cool bit is how he found it, and that he took the time to describe it so clearly.

DrProject, Learning

Another Sighting of Software Carpentry

September 25th, 2007
Comments Off

Tiziano Zito is teaching Software Carpentry in Berlin.  I admit I’m biased, but I think that’s pretty cool ;-)   Traffic on the site is holding steady as well — wish I had time to go back and update the notes…

SWC Traffic

Software Carpentry

Bugs in DrProject

September 25th, 2007

DrProject 2.0 has been in use for almost a month now, and we’ve tripped over some ugly bugs.  The worst one isn’t our fault: we’ve discovered that Firefox sometimes sends two identical HTTP requests to the server when a link or button is clicked once, so that two identical transactions are launched just milliseconds apart.  We’re going to deal with it (for now) by simply ignoring the database exception thrown by the second transaction, but apparently we’re not the first to trip over this.  (Thanks to David Humphrey for the pointers.) Shawn K. tells me the same thing has been seen in IE; how do other people cope with it?

There are also problems with the admin interface—the portal for CSC301 had to be rebuilt yesterday because of one of them.  It all reminds me of something my boss at BNR told me in 1985: “When there’s one bug in a release, it’s the developer’s fault. When there are lots, it’s the manager’s.”  I should have insisted that we switch to 2.0 for internal use early in August, before going on vacation, so that we would trip over these things before students were exposed to them. *sigh*

On the bright side, David, Alex, and Alan the heroic sys admin are turning problems around very quickly.  I hope we’ll have 2.0b ready in a couple of weeks, and 2.1 (with the snazzy new ticketing system, and a REST API) looks like it’s on track for December or January.  Fingers crossed…

DrProject

OLPC: Give One, Get One

September 24th, 2007
Comments Off

Via Michelle Levesque, news that One Laptop Per Child will be launching a “give one, get one” program in November: give one to a needy child, and you can buy one for yourself as well.

Uncategorized

DemoCamp 15 Signup

September 24th, 2007

DemoCamp 15 will be held in Hart House, on the U of T campus, from 4-7 pm on Monday, October 29.  Signup is open at democamp.eventbrite.com; you have to tick off the wee boxes on the signup form giving them permission to email you for registration to go through.  Space is limited, so please register early.

DemoCamp

Two and a Half Books

September 23rd, 2007
Comments Off

Part way through Tracy Kidder’s classic look at the computing industry, The Soul of a New Machine, one of the hardware team burns out and quits. After months of worrying about clock ticks and microseconds, his intent is to think about nothing shorter than a season. When I first read the book, in the summer of my twentieth year, I pitied him; now, at forty-four, with the leaves turning orange and my daughter turning six months, I feel rather envious.

That’s one of the reasons I read as much as I do: it gives me an excuse to slow down a little, and to think about something more interesting than the grant application deadline that’s about to whoosh by. Nygard’s Release It! is a perfect example. It is full of useful information and practical advice, interspersed with war stories that help ground the general in the specific. As the blurb on the back cover says, Release It! is about designing applications to deal with the things that don’t happen in the classroom or the lab: load fluctuations, power outages, upgrades, tangled configurations, and the fact that Firefox sometimes sends two HTTP requests when you click on a link once. (OK, that’s not in this book, but it’s the problem the DrProject team is wrestling with right now, and this book has given me a couple of ideas for dealing with.)

Nygard’s focus is on how to make enterprise-scale applications work in the real world. He assumes his readers are familiar with something like J2EE, and with server farms, web caches, and industrial-strength databases; what he explains is how to use them more effectively. As an example, the chapter on capacity patterns talks about connection pooling, the importance of building a flush mechanism into every cache, when precomputing content will pay off, why you should tune garbage collection, and why object pooling no longer makes sense (if in fact it ever did). The rest of the book is equally practical, and just as well written. It would make a great text for a second course in web programming, and ought to be read by everyone tasked with building an e-commerce site capable of handling a customer’s rush season.

Segaran’s Programming Collective Intelligence is equally practical, though its subject is very different. The book is an introduction to the machine learning techniques that have helped make Google and Amazon household names. In Chapter 2, for example, Segaran explains how recommendation engines work by building a simple one in Python. In Chapter 3, he implements some simple clustering algorithms; in Chapter 4, he covers page ranking, and so on. Later topics include optimization, spam filtering, decision trees, and many other goodies.

Segaran’s examples are all interesting, and both his explanations and his code are exceptionally clear. Some readers will find there’s more math in the book than they’d like, but given the subject matter, that can’t be helped. With a few more exercises at the end of each chapter, it’d be a great textbook; as it is, it’s an excellent introduction to a topic that grows more important every day.

Last up this month is Berkun’s The Myths of Innovation, which, I’m sorry to say, left me cold. It’s partly my fault: I didn’t subscribe to the myths Berkun set out to debunk, so there weren’t any “ah ha!” moments as I read it. I’m also instinctively sceptical of “big picture” overviews: whenever someone makes a sweeping general claim (and Berkun makes a lot of them), my first reaction is to say, “Yes, but…” As an undergraduate, I would have considered this book a life-changing experience. As a middle-aged first-time father with two and a half startups behind me and grant proposals to write, I didn’t feel bad about setting aside to finish another day.


Scott Berkun: The Myths of Innovation. O’Reilly Media, 2007, 0596527055, 192 pages.

Michael Nygard: Release It! Pragmatic Bookshelf, 2007, 0978739213, 326 pages.

Toby Segaran: Programming Collective Intelligence. O’Reilly Media, 2007, 0596529325, 360 pages.

Books, Uncategorized

Randy Pausch’s Last Lecture

September 20th, 2007
Comments Off

As mentioned earlier, Prof. Randy Pausch of CMU has terminal pancreatic cancer. He gave his last lecture on Tuesday; video is on the web.

When I die, I shall breathe back the breath that made me live. I shall give back to the world all that I didn’t do. All that I might have been and wasn’t. All the choices I didn’t make. All the things I lost and spent and wasted. I shall give them back to the world. To the lives that haven’t been lived yet. That will be my gift back to the world that gave me the life I did live, the life I loved, the breath I breathed.

— Ursula LeGuin

Uncategorized