This is BrainLog, a blog by Dan Sanderson. Older entries, from October 1999 through September 2010, are preserved for posterity, but are no longer maintained. See the front page and newer entries.

February 2005 Archives

February 28, 2005

NYTimes on orchestral etiquette. (Thanks girlhacker.)

The Internet Broadway Database, a database of American musical theater. (Thanks Blogway Baby, a musical theater blog.) Not the same as the Internet Theater Database; the former is produced by the League of American Theaters and Producers, the latter is fan-produced.

An interactive database of piano chords and scales.

February 25, 2005

The dream of a CPAN-style Python software repository is coming to life: PyPI, the Python Packages Index. Still lots of big problems to solve before it's got some of CPAN's most powerful features, but it's a good start.

Seattle residents, test your recycling IQ! Flash game with sound. (Thanks Mom.) Now that it's against the law to put recycleables in your regular trash (!), it's time to study up.

A mere month after I drop a grand on a 20" ViewSonic, Dell drops a price bomb: 24" widescreen LCD, $1,199.

February 24, 2005

The Top 100 Gadgets of All Time. Since the list comes from Mobile PC magazine, more than a few milestones in mobile computing make the list, but they're all good.

So what'd they miss?

Ajax: a new approach to web applications. JJG introduces Asynchronous JavaScript + XML (you know, all that XMLHttpRequest Google fawning we've been doing lately) with his usual flair. (I need some good diagraming software...)

Broadcast Flag Oral Arguments, details of the first steps in American Library Association v. FCC. CNet story. The FCC recently ruled that all consumer electronic devices capable of receiving a digital television signal include technology to enforce the "broadcast flag," a bit of data embedded in the signal that claims the broadcaster has exclusive rights to copy and rebroadcast the signal. A compliant device might, say, prevent you from recording a TV show so you may watch it later, or share it with a friend who missed the original broadcast, if that was the wish of the broadcaster. More severely, it potentially limits fair use (the broadcaster can deny you your rights to access to the material), and unfairly regulates a wide range of devices, including personal computers and open source software.

If the broadcast flag stands, there is likely to be a lot of (illegal?) circumvention. I hereby dub the act of circumventing this regulatory technology "flag burning." Feel free to use it.

Incidentally, the broadcast flag only applies to unencrypted digital television signals broadcast through the air. If you subscribe to a digial cable or digital satelite TV service, your rights are already in the hands of the content providers. Indeed, the FCC argued that the broadcast flag mandate was necessary to prevent content from migrating to cable/sat-only (proprietary, for-pay) distribution for its added restrictions—though we've neither established that that is actually a problem, nor have we established that the broadcast flag will prevent it.

February 21, 2005

HumaneText.service, John Gruber's Markdown as a Mac OS X service (accessible from any application).

Questions Frequently Asked About TiVo, Answered by Someone Who Loves TiVo Too Much. (Thanks Matt, who might have written this.)

Q: Is TiVo expensive?

A: This question makes no sense. In a future world, where mankind has destroyed its remaining clean air and drinking water and such necessities require payment, will you be asking how much it costs to draw breath? I didn’t think so.

I don't know who BJ Fogg is, but I like BJ's Seven Steps to Innovation. I have the most difficulty with #3 and #7: #7 is obviously difficult, but I'm surprised how hard I find #3. From a casual glance at the list, it would seem #4 would be at least as difficult as #7, but it seems to follow so naturally from #1 and #2.

February 18, 2005

Very Dynamic Web Interfaces, another nice introduction to XMLHttpRequest.

Also XSLT in JavaScript for Gecko. (Thanks Jim.)

Neither of these technologies have an official implementation standard in browsers, but their presence and common implementation in both IE and Mozilla/Firefox/Netscape are bound to make them de facto. The crazy-domain-insane stuff Google is doing (you've seen Google Maps by now, I hope?) has greatly amplified their popularity, and they're sure to be an essential part of every web application developer's toolkit by this time next year.

How to Read Mathematics. (Thanks Jim.)

slayeroffice, web experiments gone horribly awry. Some brilliant JavaScript toys and tools for web developers, see the right-hand column. See, for instance, the mouse-over DOM inspector. (Some of these are only likely to work in Firefox/Mozilla/Netscape.)

February 17, 2005

DivisionTwo reviews the Mac Mini. Extremely well done.

See also. And.

Advanced Unit Testing, a meandering four-part article on unit testing and Extreme Programming (with examples in C#, using C# development tools).

The Design of a Persistence Layer, a paper and a nice collection of links.

In general, see Scott's Agile Data web site.

Free persistence products for Python: PyPerSyst (GPL) and Webware, a web application toolkit (Python open source license). (Webware is far more than that, it's like Zope but quick and easy and not as featureful when you don't need it to be featureful.)

February 16, 2005

Fifty Writing Tools. Not pencils or erasers or computer programs, but letters, words, sentences, paragraphs, and ideas. Very nice; if they were a book, I'd buy it.

I had written out a dinner recipe on a Post-It using a shorthand I came up with on the spot, mostly to help memorize the recipe. L thought it wouldn't be a popular representation in a cookbook.

By coincidence, Cooking For Engineers, one of the food blogs nominated for a Bloggie this year, uses similar diagrams for its recipes. Better, but similar.

The Puzzle Alarm Clock, whose alarm can only be deactivated by assembling a jigsaw puzzle on top of the clock. Seems like a great way to learn how to do jigsaw puzzles rapidly in your sleep. (Thanks flutterby.)

February 14, 2005

TiVo offers web services software development kit. Get the SDK from Sourceforge (it's an official TiVo project).

Developers contest! Yay!

Yohoho! Puzzle Pirates, a puzzle-based MMO-Arrr!-PG in a cartoony pirate universe, won the Technical Excellence and Audience Awards in the web/downloadable category at the 2004 Independent Games Festival. Lots of great links to indie games in the winners list.

Puzzle Pirates has been picked up by Ubisoft for distribution in stores. $20 for the box, $10 a month to play. Seems like a lot to pay, but it looks like a great way to introduce MMORPG monthly pay-and-play to a casual gaming audience.

Download it free for Windows, Mac or Linux, and try it free for a month without having to surrender a credit card number.

NBC's The West Wing continues to march down the list of actors we've seen somewhere before with special guests in each episode. It's a cheap pleasantry, but I enjoy it. So I was pleased to see Christopher Lloyd make a cameo in the recent episode, "Wake Up Call."

A similar but more surprising pleasantry was to notice that Lloyd was playing Stanford law professor Lawrence Lessig, an actual person you may have heard of who is famous for his work on technology and copyright issues. Lessig has a blog and blogged about his character's appearance on the show.

Lessig will be doing a volunteer-powered revision of his book, Code and Other Laws of Cyberspace. The revision will be stored and tracked in a publicly-readable wiki, available for all under a Creative Commons license, and published in paper form this autumn.

ActiveState's Python Cookbook was aggregated from the Python developer community, and published as a book by O'Reilly & Associates. 1088 recipes are available for perusal online.

According to the site, the 2nd edition will be published this March. O'Reilly will be publishing a new edition of the Pocket Reference sometime this month. I'm hoping the other major Python books all get updates early this year, not so much for language differences between Python 2.3 and 2.4 as for an updated source of Python best practices.

Fundamentals of Piano Practice, by Chuan C. Chang. Not bad for a free online book.

Steven Johnson wrote a brief bit about software for writers for the New York Times, and elaborated on his blog about how a professional writer uses DevonThink to store, organize and search everything.

I'm still dating OmniOutliner for my stuff, and I still love it. At first, since search is not as prominent a feature of OmniOutliner as it is in DevonThink, I resisted putting some things in an outline, with a feeling that if I can't find it by browsing, I'll never be able to find it, so I ought to keep everything well-organized. I'd been putting things in separate outline files, not putting everything in one place. I've since found OO3's "batch search" feature, the incremental search feature obligatory for every OS X app these days. Combined with the ability to limit the view to a section of the outline at a time, it's easy to keep everything in one outline. No word yet on how OO3 behaves with very long outlines; it seems easy to conclude that DT's search is faster with large collections. Plus, there's still something attractive about DevonThink's document-based approach, especially for storing long articles, clippings, or pages of notes, but I love developing ideas in a tab-in/shift-tab-out outliner too much to switch.

Steven's blog entry also convinces me that I ought to be collecting everything, especially notes about things that I read.

February 8, 2005

MySQL Gotchas.

Thanks to Matt for linking to a kuro5hin discussion on fonts for programmers. I still refer to this Typographi thread on the subject when I go looking. (I still don't have a favorite, but I always welcome a chance to use something other than most defaults.)

Redesigning Amazon's Simple Queue Service to be RESTful.

February 7, 2005

An introduction to XMLHttpRequest. Google Suggest got a lot of people interested in the possibilities of having JavaScript interact with a web server without reloading the entire page. XMLHttpRequest is supported in all major browsers.

Apple's new .Mac SDK allows Mac developers to use the flat-fee personal networked storage service with their applications. Remotely accessible storage, backups, collaboration, and sharing could mean big things for some apps. I've been thinking a lot about service-enabled personal applications, but I tend to stop short of implementation because I don't want to host anything, or require users to install services themselves.

Their descriptions of .Mac using open standards might mean non-Mac apps could take advantage, but I wonder. At least, the SDK is only for the Mac OS X platform ("requires no programming on your part"). It would be especially cool if any WebDAV client (for instance) could log in with my credentials and download, modify and upload data. Deserves a closer look.

I also wonder if there's a need for personal data services with app-specific service-side functionality, or if basic storage is sufficient for most needs. Perhaps some features, like metadata-empowered service-side search, could be implemented in a general way, like a .Mac Spotlight service.

YourSQL, a Mac OS X-native MySQL GUI client.

February 4, 2005

A 1989 ad for the Apple Macintosh drawn by Matt Groening.

And for those who haven't seen it yet: Steve Jobs introduces the Macintosh in 1984 (Kottke provides links to mirrors).

Introducing JSON, a lightweight data interchange format based on JavaScript. Parsing libraries available for many languages; using it in JavaScript is as simple as evaluating it. (Thanks Jim.)

A9 and launch "Find It On The Block" Yellow Pages, business searches with on-the-street photographs alongside maps and other information. Get driving directions, phone numbers, and browse businesses nearby. Walk up and down the street with the photographs. You can even post customer reviews of businesses. I remember seeing these guys driving around downtown Seattle last year.

February 3, 2005

Getting Back To Work: A Personal Productivity Toolkit. (Thanks Merlin.)

Rolling with Ruby on Rails, a tutorial introduction to developing Ruby on Rails web applications.

I wish someone could tell me what they like about Ruby without using emphatic italics and exclamation points.

February 2, 2005

Python-Powered Templates with Cheetah.

Keeping Your Life in Subversion.

It's a modern blogging custom to post a question you want the answer to as an entry, then just hope that the ebb and flow of the Internet will wash an answer into your lap, either from a well-informed regular reader or a 'net searcher stumbling across the post. It works especially well (thank you!), sometimes bringing experts in the subject of inquiry directly to your doorstep. This has recently been termed the "lazyweb," as in, "LazyWeb, don't fail me now!"

Ben Hammersley has created, a place to gather LazyWeb requests and their answers via TrackBacks. If you post a LazyWeb request on your blog, have it track back to, and it will appear there as well.