Archive for 2006

Marking Up Hymns

Tuesday, July 18th, 2006

I have been wanting to do a project for a long while that will serve as a open repository for hymn texts and tunes. I finally bit the bullet and registered and have begun design of this repository. I thought, for a while, that I would use a wiki-like product, but that didn’t even come close to having the features I wanted to provide. So I’m doing a custom data-driven website.

The question I would like to ask you all is: I need a markup language for hymn texts. Hymns have particular markup requirements, if the texts are to be usefully matched up with tunes:

  1. The markup needs to break syllables in the correct places to match up with the meter of the hymn. For example, the word “blessed” can be either one or two syllables, depending on the meter of the hymn in which it is used.
  2. The markup needs to indicate line breaks.
  3. Specialized markup is needed to deal with contracted word forms and other peculiarities of setting metrical hymns, e.g.: “the˘op-ressed” needs special typesetting when engraved in music.

I could do this using HTML markup:

<div class="stanza">
  <div class="line">
    <span class="syl">Come</span> <span class="syl">Ho</span><span class="syl">ly</span> <span class="syl">Ghost,</span>

But that is awfully wordy. Does anyone know of existing markup languages that have been designed for my needs or can be coopted? If not, do people have an opinion on defining a dialect of HTML versus inventing a new XML vocabulary?

Packaging Firefox With Customizations

Monday, July 17th, 2006

The CCK (Client Customization Kit) is a tool that is useful for corporate system administrators and Mozilla partners who want to distribute Firefox with customizations for a particular environment. This allows customizations such as changing the default homepage, adding a search plugin, and even changing the default proxy settings.

Once you’ve created a CCK extension, however, there wasn’t an easy way to package up Firefox with customizations for distribution. I’ve written a utility which can accomplish this task. This tool can take the official Windows, Mac, and Linux builds of Firefox and repackage them with an additional extension.


CVS Copies Done By Anyone

Wednesday, July 12th, 2006

One of the pepertual problems of CVS is that it doesn’t allow for versioned copies of files from one place to another while preserving important history/blame data. This has traditionally been solved in Mozilla by performing copies of the RCS files on the CVS server. This is not an ideal solution for various reasons, but most painfully because it requires the physical presence of a CVS sysadmin, whose time is at a premium.

In a previous life, Schrep wrote a script that would emulate a server-side CVS copy using only client-side commands: each revision of the old file would be incrementally committed to the new location with information about the original commit time/date/author. Unfortunately, that script got lost in the sands of time: fortunately, I have found time to recreate the script. It is now possible to perform cvs copies entirely from the client side, without any special CVS permission.

The script takes as input a .cvsmoves file, of the form Mozilla already uses for server-side copies. See this attachment for the real-world example that I was using for testing.

This script is STILL BETA, and MOSTLY UNTESTED. Please don’t use it in real-world situations yet without testing the process very thoroughly first!

Pick a Compiler, but Not Any Compiler

Wednesday, July 12th, 2006

Compiling Mozilla on Windows

The Mozilla build infrastructure has been switching from Visual C++ 6 to Visual Studio 2005 (VC8) on the Mozilla trunk. This has bred some confusion about which compiler should be used to build various branch(es). I’ve made a chart that will hopefully ease the confusion:


XULRunner at OSCON

Tuesday, July 11th, 2006

I’ll be giving a talk on XULRunner at the upcoming O’Reilly Open Source Convention (OSCON) on Thursday, July 27 from 4:30 to 5:15 p.m. The talk will include a demonstration of XULRunner‘s ability to run web applications and web widgets outside of the traditional browser framework, as well as demonstrate deployment techniques for rich-client applications. The talk is similar to the one I gave at XTech, but I have refined it a bit and XULRunner has continued to become more complete in the meantime, so some of the demonstrations will hopefully be more polished and complete.

If you’re still just thinking about coming to OSCON, Myk Melez will be giving a talk on Microsummaries in Firefox, Mitchell Baker will be on a panel discussing open source projects and money, and Mark Hammond will be presenting on Python in Mozilla. Mozillafolk will be attending; there will be a BOF, a booth, a Firefox Flicks screening, and other events. Come and meet Mozillians and learn more about the project!

New House!

Wednesday, July 5th, 2006

We’re in the process of moving to our new house!:

303 Luzerne St.
Johnstown, PA 15905

At bc’s and my grandmother’s prodding I have finally put together some pictures of the new house. I’d like to note, cryptically, that it I am extremely relieved that we hired a buyer’s agent realtor… he ended up saving us a boatload of money, time, and grief.

WebRunner Demos

Wednesday, May 31st, 2006

At XTech, I demonstrated a prototype “webrunner” build on XULRunner. It’s messy code, because we don’t (yet) have a builtin way for a web application to say “this link is an external link that should be opened in the default browser”… so I hacked a greasemonkey-like script to do that. Somebody actually wanted to see my code, so I have posted it in my SVN repository:

GMail in its own process outliner demo in its own process

Justdave Appreciation

Friday, May 19th, 2006

I would like to publicly thank Dave Miller (justdave on IRC) for the fabulous new CVS server. My checkouts fly (and so do the tinderboxen)! The IT guys doing the grunt work of maintaining and upgrading the machine infrastructure for Mozilla don’t get nearly enough thanks in general.

It’s not Bias, It’s Discrimination

Wednesday, May 10th, 2006


A trade association has blasted the Massachusetts Information and Technology Division (IDT) for requesting a plug-in for Microsoft’s Office Suite, seizing on the issue as evidence that the state’s policy of mandating the OpenDocument Format (ODF) is “a biased, open source-only preference policy.”

This is false: what the state of Massachusetts is doing is not bias, it is discrimination, and it is what citizens should expect from their government. Preferring open standards is a thoughtful, discriminatory policy.

Unfortunately, the word “discrimination” has grown tentacles over the past 30 years; it is high time for English speakers to reclaim the original sense of the word: to make wise choices between options. To say that someone is “discriminating” was at one time one of the highest of compliments; the civil rights movement has unfortunately (and unwittingly) done the English language a misservice by turning “discrimination” into an accursed word.


  • Discrimination in hiring based on the applicant’s level of education and ability to perform the job;
  • Discrimination in serving somebody drinks at a bar based on their apparent level of drunkenness;
  • Discrimination in issuing a loan based on credit history and income.


  • Discrimination in hiring based on the applicant’s race;
  • Discrimination in serving somebody drinks at a bar based on their nationality;
  • Discrimination in issuing a loan based on gender.

It is perfectly reasonable for Microsoft to argue that discrimination against Microsoft Office because it doesn’t support the Open Document Format should fall under the category of “bad” discrimination: that’s a question of public policy. But it certainly isn’t bad simply because it is discriminatory.

Summer of Code Wants

Wednesday, May 3rd, 2006

I’ve signed up to be a mentor for the Google Summer of Code program for Mozilla-related projects. But what I really want is for an enterprising hacker to fix GCC bugs relating to hidden visibility. I’ve even got a few more bugs I could file if I thought somebody would fix them. Obviously I can’t mentor that kind of project because I don’t know GCC very well, but GCC is a mentoring organization itself.