Monthly Archives: September 2009

General

‘Parented to’

Language morphs in interesting ways. Fields of endeavor adopt various words from the general language as terms of art. But of course, the metaphors break down around the edges and the terms morph to reflect that.

In computer science, the terms ‘tree’, ‘parent’ and ‘child’ were taken to talk about a certain way of structuring data, presumably because when you draw diagrams of this structure, it looks similar to a diagram of a family tree you might draw in genealogy. But often, when implementing this, it’s sensible for the node to have a ‘parent’ property rather than just the parent having a ‘children’ property. In those cases, it’s more natural, then, to English a line of code like “A.parent = B;” as “node A is parented to node B”, rather than “node A is made a child of node B”. They mean the same thing in the computer science nomenclature, but you’d probably never hear someone saying “Joe is parented to Jane” in genealogical terms.

General

urllib2

It’s been quite a while since I’ve looked at the HTTP client libraries in Python. urllib2 has a pretty cool pluggable-pipeline architecture, with a bunch of standard handlers for things like cookies, redirects, basic auth, etc. Nice.

General

Little bitty soft synth

I remember this wavetable synthesizer with a tiny sample set (I believe it was 128kB for a GM set). Crystal developed the algorithms and sample set for a tiny (at the time, at least) one-chip MIDI synth, and I worked on implementing a software synth that used the same sample set. It was a bit of a stretch on a 90Mhz Pentium, since the whole scheme was optimized for sample size and originally implemented on a chip with bunches of hardwired MAC units. But, it worked. I listened to Chopin’s Fantaisie Impromptu an awful lot during the development of that one, since it stressed the system pretty well (lots of polyphony, lots of note-on/note-offs, and using the piano, which had the most parallel SRCs in flight for each note.

General

Text Layout Framework

I like a good API. I’m not quite ready to commit to the assertion that Adobe’s Text Layout Framework API is a ‘good API’, but it’s not bad. The fact that they made it open-source is pretty cool.

I can see the potential for a lot of new experiments springing up from this foundation; I mean, who hasn’t had an idea for some groundbreaking new text editor or word processor? This API takes care of a lot of the little garbage associated with such a project, and so should help get some of those ideas into the wild.

(It doesn’t do spellchecking, though. You’d have to come up with your own solution for that, maybe basing it on the pretty-good Spelling Plus Library (which, we hear, will eventually have TLF integration).)

General

Unnecessary upgrades

Occasionally I subject myself to unnecessary software upgrades. I guess mainly to see some of the challenges and learn from them, at a non-critical time. I switched my desktop machine to Ubuntu 9.10 alpha (or is it beta) a few days ago. I’m still adjusting, but I’m learning a few things. Today was the pitfalls of IPv6 in a network with old devices. Apparently, 9.10 enables IPv6 by default and my old DSL modem is confused by and unresponsive to the new-style DNS request. Disabling IPv6 (by the kernel parameter method) cleared up my problems with very poor DNS resolution.