ccRdf 0.4.0

ccRdf is now available for download. This release fixes several bugs related to the getAll and getFirst methods of the rdfDict class. There have also been minor internal implementation changes made.

In addition to bug fixes, I want to note a change in functionality. In previous versions, casting a rdfDict to a string returned it’s RDF subject. This is no longer the case. str now returns a contrived string representation of the current instance, based (very) loosely on the Dublin Core Dumb-down Algorithm. If someone has a suggestion or better implementation, I welcome it. You can still access the RDF subject using the subject attribute or the new about method.

date:2003-12-22 21:45:07

ccValidator 1.3 now available

ccValidator 1.3 is now available. It’s running live at, and you can download the release tarball here.

This release is mainly a syncronization release; ccValidator now uses the ccRdf core. Porting ccV to this architecture simplified many areas of the code, and provided an excellent test bed for ccRdf. I found a few bugs, and made a few improvments, so there will be a release of ccRdf soon to finish up the syncronization of work.

image0In addition to ccRdf, ccValidator now sports its own validation image. If RDF parsed from a URL validates properly, you’ll be provided with a bit of HTML to allow you to link to the validation results. Cool, huh? Thanks to Mike L. for the idea.

Thanks for the feedback from all my testers; let me know if you encounter any problems or have any suggestions.

date:2003-12-22 20:39:29

Those People”

This week, under the stress of finals and the holidays, I finally cracked. I became one of “those people.” By “those people” I mean the ones who treat their pets like children, feign offense when some refers to them as “just a dog” and dress them in the canine version of whatever Gucci puts on the runway that season. |image0|

OK, so I haven’t succumbed quite that far, but we did take the “kids”, Madeline and Bosco, to get their picture taken with Santa Claus. Overall, I think they were a little underwhelmed; after all, my dad gives them much more attention and doesn’t wear a creepy red velour suit. But it was for a good cause. Or so I keep telling myself.

date:2003-12-18 10:06:41
category:my life

I’m glad that’s over

I just finished my final paper for Intermediate Expository Writing. After I drop it off this afternoon, I’ll be done for the semester. Good-bye, Data Structures; good-bye, Assembly on the IA-32; good-bye, Expository Writing. You will not be missed.

date:2003-12-17 13:10:54
category:my life

Grokking the GPL

Groklaw has published an excellent explanation of just what the GPL is and is not. And why we don’t want your stinkin’ proprietary code. Groklaw continues to amaze me with the consistent clarity and accessibility it maintains while explaining concepts that aren’t always clear to me. Thanks, Groklaw!

date:2003-12-16 11:30:41

Atomic Fun

So the Atom 0.3 Spec is out. For those of you not following the action, Atom is a community driven syndication format proposed as an alternative (nay, better) to RSS. Mark Pilgrim blogged the release with lots of relevant links. Also check out the presentation Atom In Depth given at XML 2003 by Sam Ruby. Oh, and is now Atomic.

date:2003-12-16 08:37:33

Validator updated; Testers needed

This morning I finished an update to ccValidator. This update is mostly a code cleanup. It finally moves the validator away from the god-awful module (I wrote it; I can say it) to ccRdf. I haven’t tested it extensively yet, so I haven’t updated the production validator yet. That’s where you, dear reader, come in.

I’d love it if you could try it out at I’d appreciate hearing any feedback about your experience with it. If things are working as expected, you shouldn’t see any difference between the output you get from the test instance and the output you get from the production instance. Thanks for all your help.

date:2003-12-15 11:28:10

Filing Mail in Thunderbird

I read about Mark Shuttleworth’s Open Source bounties on Mozillazine a couple weeks ago. What was the most interesting to me was the fact that he focuses on three areas I’m really interested in: Python, Mozilla and Education Technology (SchoolTool is what he’s sponsoring; Stoa is what I hack on).

So during some of the time I should have been studying for finals this weekend I put together a prototype inspired by one of his requests. |image0| Mark makes an excellent point: it’s ridiculously hard to file mail in Thunderbird (and probably Mozilla Mail; I just don’t have much experience with it). So I’ve put together QuickFile.

QuickFile is an extension for Mozilla Thunderbird which is aimed at making it easier to file messages. Right now the operation is pretty simple: select the message you want to file and press meta-Q (currently hard-coded; sorry). This opens the QuickFile dialog, which shows a list of your mail folders. You can start typing, and it will match as you type. Pressing Tab will expand the currently selected item (if possible), and pressing Enter will move the messages to the selected folder.

You can install it by first saving quickfile.xpi to your computer. Then in Thunderbird, go to Preferences/Options, select Extensions and click “Install New Extension.” Select the XPI file, and it will prompt you to confirm installation. Note that this has only been tested with Thunderbird 0.4 on Mac OS X and Linux, so if it eats your profile/mail/puppy, that’ll really suck.

While this is just a “first draft” I think I can build onto it in some interesting ways. I want to add a customizable hot key, the ability to assign hot keys to specific folders, and “predictive” (Bayesian) folder selection, as Mark describes.

Anyway, try it out, let me know what you think. I really enjoy getting feedback, whether it’s critical or positive. Enjoy.

date:2003-12-14 22:38:15
category:development, quickfile

It’s Just That Easy

I’ve been working on a new extension for Mozilla, and spent the better part of yesterday afternoon beating my head against a problem (as usual). When working for a XUL template, how the hell do you get the absolute URI for each resource you’re generating? For the unfamiliar, templates allow you to use RDF to generate content in your application. Mozilla does this with bookmarks, mail folders and even mail messages. And every item in the RDF resource has a unique URI. And the RDF schema’s documentation is, well… nearly non-existant. At the end of the day yesterday I was completely frustrated.

This morning I had a “brilliant” thought about how I could use other properties to interpolate the URI. So I implemented that in my prototype, and it mostly worked. Two hours; not bad. And then I just had a thought: I wonder what element id the template generates by default? (I was just wondering if they were unique) So I wrote a test program, and there it was: the id is the absolute URI . Now, maybe that’s documented somewhere. Maybe I overlooked it. But it should really be IN BIG F***IN CAPITAL LETTERS somewhere. Sigh.

Lizzard, you almost beat me. But not this time; not this time.

date:2003-12-12 10:32:21

A Few (Musical) Notes

I’ve been busy with papers and exams for school the past few days, but am happy that I turned in my final research paper last night. Now it’s just finals, and then a break. The nice thing about working at a school as well as attending school is that I actually get a Winter Break. I can’t wait.

Since I’ve been doing a lot of writing for one class and a lot of programming for others, I’ve been spending quite a bit of time at my computer. I’m on a perpetual quest for the perfect work music; something that allows me to block out the world, focus on the work, and become “inspired.” Now I have a new favorite: The Soundtrack to The Hours. Mark was right, as usual. Phillip Glass does an amazing job of conveying the emotions of the book and film through music. The Hours is one of my favorite books, one of my favorite films, and now one of my favorite CDs.

There’s a well-trodden adage comparing programmers to musicians, and while I have certain doubts about it’s truth, I do find myself more focused (productive?) and creative while listening to music such as this. And naturally I want to share what I’m listening to with others.

As an iTunes and Movable Type devotee, the iTunes Trackback Script is cool; it queries iTunes and posts trackbacks with the artist and title of what’s currently playing. But I want something better. What I really want is something which queries iTunes, sees what’s playing, gets cover art from either iTunes or Amazon, and then creates a post for the album in a particular blog category. I know all the pieces are available to make this an accessible task; maybe during break. Maybe using PyObj-C.

And on the subject of iTunes; wouldn’t it be cool to add Creative Commons licensing verification? Maybe display the attribute icons in the “LCD” area? Just an idea at this point; anyone know if iTunes provides hooks to draw things differently, or display different “tags” there?

date:2003-12-11 09:07:42
category:my life