User interface research

This research by Jeff Han at New York University is very cool. I can’t wait to get my hands on one of those drafting tables!

How NOT to Backup a Blogger Blog

Over at the Google Operating System blog, they offer a way to “backup” your blog. It is mostly a manual hack to load the entire blog into one page in a web browser, then save the resulting HTML, though a similar technique is offered for saving the contents of your XML feed. There are a few problems with this technique: It depends on knowing how many posts are in the blog, up front.

Hawk Wings and Mail Archiving

I’m a little behind on my reading, so I just noticed that Tim over at Hawk Wings is linking to MailArchiveByDate. I guess that explains the email I’ve received in the past few days asking for help. :-) Tim comments that my update notes for the 1.2 release don’t convey much meaning. I looked, and sure enough, they aren’t end-user-ready release notes. I’ll try again. The original version of the script asked Mail for the current selection.

Better blogger backups

I have enhanced the blog backup script I wrote a while back to automatically find and include comments feeds, so comments are now archived along with the original feed data. The means for recognizing “comments” feeds may make the script work only with blogger.com, though, since it depends on having “comments” in the URL. This does what I need now, though.

Adium 1.0

My ChatMonitor script does not work with Adium 1.0. It looks like the “chat” object no longer contains “content” objects. I haven’t yet figured out how to get the content from a chat window. Oh, well. I guess it’s time to order those OS X programming books!

Adium ChatMonitor

We recently set up our own Jabber server at work. For a short time we had been using an IRC server, but decided for a variety of non-technical reasons to switch to Jabber. The benefit is now I only have to run one chat client (Adium). The downside, is I miss the feature of Colloquy which had a special notification event for when I was mentioned by name. I searched for a while, but didn’t find any way to add such a notification to Adium.

CastSampler.com monitoring feeds

On the plane back from Phoenix this week, I implemented some changes to the way CastSampler.com republishes feeds for the sites a user subscribes to. The user page used to link directly to the original feed so it would be easy to copy it to a regular RSS reader to keep up to date on new shows. That link has been replaced with a “monitor” feed which uses the original description and title for each item, but replaces the link with a new URL that causes the show to be added to your CastSampler queue.

testing regular expressions

I discovered Christof Hoeke’s retest program today. This is a very slick use of Python’s standard library HTTP server module to package an AJAX app for interactively testing out regular expressions. I used to have a Tkinter app that did something similar, but Christof’s is much lighter weight. Now I need to figure out how to package it to run as an app when I double click on it in the Finder, instead of opening the .

Nothing new under the Sun

Or should I say IBM? It turns out IBM Alphaworks already has a data visualization project called Many Eyes that can render network diagrams as I described in my earlier post. The demos look impressive. Their UI for adding data requires you to upload from a separate source, which makes the social aspect of my idea more difficult to implement. Perhaps Many Eyes can be used as the visualization front-end for a site that collects the data.

Object-Relational Mappers

My friend Steve and I have spent some time discussing object-relational mapping recently, partially initiated by his comments on the ORM features in django. For some reason I’ve never quite understood, there seems to be an inherent fear of SQL in the web development community, and over the years there have been many efforts to hide the SQL completely (or in the case of Zope, encourage the use of a custom object database instead of a relational database).