I live in the Baltimore/Washington area and work for the government sales group of IronKey. For more about me and what I'm doing, see the “Personal” section of this site and my blog.

Entries for January 2005

Mozilla's ECCN for U.S. export control

A while ago someone wrote to mozilla.org staff asking "What is the ECCN for Mozilla?" For that small fraction of the world's population who knows what an ECCN is (an "Export Control Classification Number" for U.S. encryption export control regulations) and cares about what Mozilla's ECCN happens to be, here's the answer I gave. Note that this is not an "official" answer, but it's the closest thing to it you're likely to get. ...

Patch seemore plugin for full text feeds

I use the seemore plugin by Todd Larason to show only excerpts of entries on my main blog page, index pages for categories, and archive pages, while displaying the entire article on an individual entry's page. It's worked well, with one exception: When I created my RSS and Atom feeds I wanted the feeds to contain the full text of all entries, for the convenience of people using news readers. (Many of these applications display article text directly in the reader, removing the need to open a browser window to read the article.)

To do this I made a minor patch to the seemore plugin, which I thought others might find of interest as well. The patch essentially bypasses seemore processing for selected Blosxom flavours (in my case, the 'rss' and 'atom' flavours).

Patch for entries_cache_meta plugin (meta values)

I've been using the entries_cache_meta plugin by Jason Thaxter, mainly for the convenience of specifying the modification date within the entry file. After a while I decided I'd like to also use its "meta" capability, i.e., the ability to specify arbitrary variables in the entry header along with the modification time, e.g.,

The entry title
meta-mtime: 2005/01/17 12:18:00
meta-foo: Whatever you want

The entry text begins here...

and then reference the variables as, e.g., $meta::foo within the story template (as is possible with Rael Dornfest's original meta plugin). Unfortunately, I couldn't get this to work at all. ...

Enforcing proper use of trailing slashes

I've previously blogged about my canonicaluri plugin that checks to see whether the requested URI is in the canonical form for the type of page being requested, and if necessary does a browser redirect to the canonical form of the URI. However the canonicaluri plugin may be overkill for some people, for example, it presumes use of the extensionless plugin, so that canonical URIs for individual entries do not have file extensions for the default flavour. A simpler alternative to the canonicaluri plugin is the slashredir plugin, which only enforces proper usage regarding trailing slashes. ...

My new weblog

After a long period of neglecting my personal web site, I've decided to start my own weblog, with the goal of making it easier for me to publish new material and therefore (I hope) more likely that I'll actually write more.

My plan is to write about things that interest me, on the theory that they might interest at least a few other people. As part of that I'll occasionally discuss the volunteer work I've been doing for the Mozilla project.

While this site has been up and running for several weeks, today marks what I consider to be its official launch. The site design is frozen, at least for now, and I now have all the site features in place that I wanted to have, at least for an initial attempt. The major missing piece is a comments system; I've delayed doing this until or unless I can put some reasonable measures in place against comment spam.

After this date I won't introduce changes to the site without careful testing, in an effort not to break things. I also won't arbitrarily change the dates on entries, in order to avoid problems with news aggregators.

To-do list

As many people can attest, sometimes you spend more time (and have more fun) tinkering with the underpinnings of a web site instead of actually writing new content to be posted on it. In that spirit, here is my current list of things I'm planning to add to or change about my web site and blog. ...

Patch for atomfeed plugin ("modified" element for feed)

The "official" atomfeed plugin does not generate valid feeds for the current version (0.3) of the Atom specification because the output does not have a "modified" element for the feed as a whole, just "modified" elements for each story. Obviously the modification date/time for the feed can be interpreted as the date/time modified of the most recent story, so then it's just a matter of generating the proper output for the MODIFIED tags. ...

The lastmodified2 plugin

In a previous post I discussed the general problem of validating and caching dynamic content. In order to implement the strategy outlined in that post I decided to create a new version of the lastmodified plugin originally created by Bob Schumaker. The lastmodified plugin was a good base to build on; however it didn't do exactly what I wanted to do, and hence I couldn't resist trying to improve on it.

The following material documents the lastmodified2 plugin that I created, including my notes on how I implemented page validation according to my interpretation of the HTTP 1.1 specification. ...

Validating and caching dynamic content

One of the things I enjoy about setting up my own blog with the Blosxom software is learning about the deep details of web protocols and formats that I've never worried about before. (This might have been the case if I'd used another blogging system, but the hackable nature of Blosxom inspires, nay, almost demands it.) Lately I've been educating myself about HTTP conditional GET requests and validation and caching of dynamically-generated content.

In this post I discuss the subtleties of validating and caching dynamic content in general, and then in a separate post I tell how I created the lastmodified2 plugin for Blosxom, a rewrite of the lastmodified plugin. ...

Copyright and license

I've done a lot of work related to software licensing as part of the Mozilla relicensing project and when I worked at CollabNet. As a result of enduring endess wrangling about licensing terms I've been put off complex licensing schemes, and prefer to make my own works available under very liberal terms. ...

Emptymessage patch for Apache compatibility, etc.

When stock Blosxom sees a URL that doesn't correspond to an existing entry or list of entries, it simply puts up a "normal" page (i.e., using the standard heat and foot templates for that flavour) that doesn't have any actual content. I really don't like this behavior, and thus I decided to try out the emptymessage plugin created by Fletcher Penney. Unfortunately I wasn't entirely happy with its behavior either, and so I decided to patch it. ...

Markdown patch for varying empty element suffixes

As noted in a previous post I am a big fan of the Markdown text-to-HTML conversion tool. However nothing's perfect. I already discussed a bug involving link ids, and I subsequently found one other reason to patch Markdown, for sites like mine that generate both HTML 4.01 Strict and XML pages (an Atom feed in my case). ...

Using the Markdown plugin

In creating my blog I wanted to be able to go beyond plain text entries but avoid having to hand-code HTML. I looked at various schemes for marking up plain text to indicate the presence of links, ordered and unordered lists, preformatted text, etc. ...

Blosxom annotations

I've been investigating using the Blosxom weblog application for my personal blog, and felt disadvantaged by my lack of knowledge of Perl (the language in which Blosxom was written). I began making detailed notes while I was reading through the Blosxom code (blosxom.cgi); my note taking quickly got out of hand, and here are the results, for anyone who's interested: ...

Syndication feeds

If you'd like to receive full-text articles from this site as they are published, you can subcribe to one or more of the following feeds, in the formats indicated; simply cut and paste the URLs into your feed reader of choice. The Atom feeds are preferred; I maintain the RSS feeds only for older news aggregators that are not yet Atom-enabled. ...