Older blog entries for amk (starting at number 9)

Got up early and finished off a patch to add os.poll(). In the evening, did some work on my Python patch queue. My CD player is suddenly mysteriously stopping while playing; I suspect it's about to die.

You know, now that I'm watching them again, the early Peter Davison episodes of Doctor Who are really quite mediocre. While I still like Davison's breathless portrayal (and can behave that way myself when I've had enough caffeine), the stories aren't very interesting, "Four to Doomsday" being impressively bad, while "Kinda" and "The Visitation" are merely dull.

So much for having a productive day. The morning went well, with Greg and I roughing out a design for the process editor, and then starting to implement it; implementation quickly recursed down into working on the basic Equipment and EquipmentTemplate classes. Just before I went for lunch, the Leica technician showed up, and I wound up sitting in a cleanroom suit for 5 bloody hours without any lunch, in order to babysit him. At least we now have a working wafer handler, for automatically picking up silicon wafers out of a cassette, aligning them, and putting them on the microscope stage. The intention is to eventually support inspecting an entire cassette using the Remote Microscope system.

By the time he left it was 6PM, and I was so aggravated at losing the entire half-day that I just stormed out without trying to do anything else. My boss Michael handed out copies of this MIT Technology Review article on the MEMS-based optical switches that are really hot right now.

Another productive day at work, completing the user registration and doing a quick code review with the rest of the team; opinions of Quixote were generally favorable. Now for persistent sessions and the equipment editor. Also I found out I'll be getting a raise starting in August. Fred Drake is taking the lead on the XML-SIG, removing that burden for me (nice for me to get rid of a task for a change, instead of having them added).

Fixed the Tru64 compile problems, and other minor trivia; creating the xmlcore package is now my only remaining task for 1.6b1. Mostly, I did some writing and Web page updates.

Egroups seems to have deleted my Robertson Davies mailing list without bothering to inform me; there's another Davies list on there with 3 postings in the archive, but it's not my list. Oh well; it's no great loss since the list never got much traffic anyway, and practically every FAQ is answered in Judith Skelton Grant's biography.

Started working on my items for 1.6 and checking them in: updates to the curses package, an updated version of PyExpat, and started adding mouse support to the curses module. Registered for Compaq's Tru64 compile farm in order to fix some compile errors; I'll work on that tomorrow. Work went well, too; I think Quixote and the ZODB will prove to be a good solution for us, and will minimally interfere with our development processes.

Greg and I had lunch with the Pythoneers today, the first time I've seen them since they moved to BeOpen. The aim was to finalize what's left to be done before releasing 1.6b1; I have a few things to do, but nothing major, and updated the 1.6 job list accordingly.

Tim Peters stopped by CNRI to pick us up; I can now confidently attest that he and Guido van Rossum really are two different people. (Though it's strange how I never saw Guido talking while Tim was drinking something...) Tim looked nothing like I expected; I had pictured a soft-voiced professoral type, perhaps something like Tim Merrett who taught the filesystems course at McGill. This picture wasn't accurate in the slightest, though Tim's speaking and posting styles do match up pretty well. After the 2.5-hour break for lunch, I started writing some use cases for the run card system. Oh, those grueling 5 hour days of mine!

Reason #3425 not to learn to drive, from this Washington Post article:

Once, motorists would pull aside and permit funerals to pass. Now, drivers regularly cut them off at intersections rather than allow them to continue through red lights and weave in and out of processions instead of pausing, say funeral directors and police. Although motorists once got out of their cars as a solemn gesture of respect, funerals are now often accompanied by honking, cursing and gestures of a most vile kind. ... He witnessed it again this week while escorting about 150 cars in a funeral procession along Hunter Mill Road for a 15-year-old Fair Oaks girl who died after the car she was in crashed into an oncoming truck. As he held traffic at the intersection with Lawyers Road, an impatient driver with a clear view of the cortege kept blaring his horn. "That's the kind of thing we see on a daily basis," he said.

Last evening's emotional storm (self-indulgent details omitted for Advogato's sake) was a great release, calming me down and letting me settle down at work and actually get something done. It's time to tackle the difficult task of rewriting our existing SQL database into the form of Python objects, so I started in on that, doing a simple transliteration of tables/columns to objects/attributes. I have no idea what the methods will have to be, but this is just a rough effort. Along the way I'm finding several bogosities in the SQL database schema: non-key columns duplicated among several related tables (for semantic reasons? to simplify queries? not clear...), interrelated tables whose relationships aren't apparent, endless copies of the primary key columns. Tomorrow we start having requirements meetings to thrash out the interface.

In the evening I sent off some thoughts on network installation of Python modules, added support for two minor functions to the curses module, and started thinking about how to support the ncurses mouse functions.

Book review: The Annotated H.P. Lovecraft, ed. S.T. Joshi
The great danger of annotations is that they can become a distraction that breaks up the flow of the text while not contributing anything Given HPL's vocabulary and frequent historical references, roughly a third number of the footnotes here are of this annoying type. The remaining majority point out various interesting things: parallels between the 4 stories included here and HPL's other stories; echoes of passages by Machen and Dunsany; commentary on HPL's scientific and philosophical views; and a few symbolic or psychological interpretations. The book contains "The Rats in the Walls", "The Colour Out of Space", "The Dunwich Horror", and "At the Mountains of Madness". Only "Mountains" was is disappointing, seeming endless and slow-moving on this re-reading, while "Colour out of Space" is still one of HPL's finest.

Took care of the various things I did during the California trip; pyexpat.c patches, Distutils scripts for some bits of Zope, Web page changes.

Last night, went w ith a few friends to see Eric Idle in concert with a few friends; it was mildly amusing, but not great, and not worth the shockingly expensive ticket cost ($55! -- I found out the cost after agreeing to go) The few bits of original material were the high points for me, since they were actually new -- a song about the Getty Museum in LA, a gender-reversed version of the Noel-Coward song from Meaning of Life (oh, you know the one I mean). Seeing yet another performance of the argument sketch, or the Lumberjack song, was familiar and boring, though at least Peter Crabbe and Mark Ryan, two of the accompanying troupe of actors, did pretty good approximations of Cleese and Jones.

Book review: The Practice of Programming, Brian W. Kernighan, Rob Pike
A discussion of the stylistic side of programming, covering how to structure programs, and how to debug, test, and optimize them. While there's some material worth reading here, this really should have been a 50-100 page essay and not a 240-page book. Chapter 2, 3, and 9, on algorithms, a sample Markov chain program, and on notations, could have been completely dropped from the book without losing anything very important or interesting. The chapters on testing and portability offer little beyond a few generalities, while the debugging coverage is quite good, emphasizing the importance of carefully tracing causes and forming a hypothesis to explain a bug, and the style chapter is a modernized and greatly condensed restatement of Kernighan and Plauger's The Elements of Programming Style. Worth a quick skim, paying more careful attention to the more interesting chapters, but not of much long-term value.

Mostly wrote test suites at work, and completed the first run at coding our existing access control system in Python, along with a bit of sysadmin stuff like recompiling kernels and creating a new mailing list for the Matisse project. In the evening, made a second pass at the Python 1.6 document, and began preparing for my visit to Berkeley next week.

Book review: The Victorian Internet, Tom Standage: This little book skilfully draws parallels between the rise and fall of the telegraph in the 19th century and the rise (so far) of the Internet. Many of the parallels are pretty apt: the early days of telegraphy enthusiasts who faded away as the technology became commercialized and the machinery more automated; the far-flung communities that chatted during quiet periods; romances, marriages, and crime taking place over the wire; and the inexorably accelerating pace of life mandated by the increased information. At around 220 pages, this book provides a few hours of entertainment, and a fair number of insights.

Argh, yet another annoying compilation glitch turned up in the PyExpat module (didn't work with 1.5.2, only the 1.6 CVS tree); issued a test 0.5.5.1 release of the XML package to see if it's fixed. Announced the existence of Quixote, a foolish attempt to tilt at the windmill of Yet Another Web development framework. Decided to begin copying from my diary entries onto Advogato.

New Advogato Features

New HTML Parser: The long-awaited libxml2 based HTML parser code is live. It needs further work but already handles most markup better than the original parser.

Keep up with the latest Advogato features by reading the Advogato status blog.

If you're a C programmer with some spare time, take a look at the mod_virgule project page and help us with one of the tasks on the ToDo list!