Pages related to blogging and blog administration.

Friend of a Friend

FOAF is an RDF language describing social networks and related information. FOAF tries to social networking available to the Semantic Web, making your identity and friendships machine readable. An interesting FOAF application, if you have enough tech-savy friends is Foaf+SSL. For an intuitive explanation of how FOAF+SSL works, take a look at Henry Story's paradigm shift post.

For the curious, I've created my own FOAF file. You should also check out the SIOC Project's Semantic Radar plugin, which notifies you of the existence of interesting RDF data as you browse the web (and inspired my rel-vcs plugin).

The foaf:mbox_sha1sum property can be generated with:

$ echo -n '' | sha1sum
Tove overlay

Available in a git repository.
Repository: tove
Browsable repository: tove
Author: W. Trevor King

I wanted to install ikiwiki on my home box so I could test-compile this blog before pushing commits to the live server. Gentoo's ikiwiki ebuild (bug 144453) is in Torsten Veller's overlay, so I forked his overlay and bumped the Ikiwiki version number. I've emailed Torsten with a merge request, but haven't heard back yet. Anyhow, add this layman.xml to your /etc/layman/layman.cfg overlays listing and run:

# layman -a tove-wtk


# emerge -av ikiwiki

and you're off!

Update: Torsten just pushed the ikiwiki ebuild into Portage. There is no longer any need to mess around with layman if you want to install ikiwiki.


I've added a gitrepo template to make it easy to link to my Git projects with rel-vcs links. It's based on ikiwiki's gitbranch template.

It was a bit annoying to get the template into renderable Markdown because the <TMPL_...> tags are not explanded when the gitrepo page is being rendered in its own right. The solution was to use the htmlscrubber plugin with

htmlscrubber_skip => "!templates/*",

and to also exclude the unscrubbed page from the git tag inlines. I can't use the htmlscrubber plugin everywhere because it scrubs out my MathML (see mdwn itex).

mdwn itex

Available in a git repository.
Repository: ikiwiki
Browsable repository: ikiwiki
Author: W. Trevor King

In my last post I plugged Jason Blevins' mdwn_itex plugin. It turns out that it was harder than I'd expected to get the plugin working with ikiwiki, so I'm recording the steps I took here in case other ikiwiki users find this useful.

  • Install itex2MML
  • Install my updated plugin (mdwn_itex.patch against Jason's version).
  • Patch your ikiwiki templates to use a DOCTYPE supporting MathML (mdwn_itex-templates.patch).
  • Create a script wrapping itex2MML for escaping UTF-8 and named entities (e.g.
  • Add config options along the lines of:

    # plugins to add to the default configuration
    add_plugins => [qw{ ... mdwn_itex ...}],
    # plugins to disable
    disable_plugins => [qw{... htmlscrubber htmltidy ...}],
    # location of template files
    templatedir => '/path/to/patched/templates',
    # mdwn_itex plugin
    # path to the itex2MML binary
    itex2mml => '/path/to/your/wrapper/
    # autonumber display equations?
    itex_num_equations => 1,
  • Create new files with the .mdwn_itex extension, and start including itex:

    Euler's identity

    \[ e^{i \pi} + 1 = 0 \]

    has lots of fun constants: $e$, $i$, $\pi$, $1$, and $0$.

Which will render as

Euler's identity

(1)e iπ+1=0

has lots of fun constants: e, i, π, 1, and 0.

The htmlscrubber and htmltidy plugins must be disabled because otherwise they strip out the MathML markup.

Update: current versions of my patched files can be found in the mdwn_itex branch of my ikiwiki git repository.


I've been cleaning up the course website for Drexel's PHYS405 (Parallel Computing), and I wasn't a fan of the latex2html equations and their resulting PNGs. Searching around for a solution, I found a few command line MathML generators: itex2MML and blahtexml. itex2MML struck me as cleaner after a brief spin with blahtexml. Jason Blevins has written an ikiwiki plugin using itex2MML so you don't have to bother with MathML in your blog postings (there is an alternative implementation by Gustaf Thorslund):

(1)e iπ+1=0

Now that you can generate MathML, you'll need to serve it correctly. For simple cases, you can try something like this.

That takes care of generating the MathML, but can we view it? Gecko has supported MathML since 1.8.0 (Firefox 1.5), so Firefox support is quite good. MathML has also recently (August 17th) moved into the WebKit trunk, so new builds of Safari and Chrome should have native support as well, although at such an early stage there are bound to be some issues. Opera has supported MathML since 9.5 (June 2008), although again there were some growing pains. For those using IE, the MathPlayer plugin can render MathML. MathPlayer can even speak MathML for the visually impaired. Unfortunately, I don't have all those browsers installed to test out my above claims. Let me know if something's not working!


I've been using Atom feeds to publish announcements to my course websites recently. The ‘please check this page daily for changes’ directives I saw on a few other pages were too painful to bear ;). I've written a little PHP script to convert the atom.xml into XHTML so non-atom students can still read the announcements online, and I've been using rss2email in a cron job and a procmail rule to automatically email the class any new announcements I post in the feed. It works rather well I think, even if noone ends up actually looking at the feed ;).

Anyhow, I wrote up a little command line wrapper ( around lxml

atomgen -o atom.xml new --title 'Physics 201' --author 'W. Trevor King' \
echo "Changes to the Phys201 website will be noted in this feed." | \
  atomgen -o atom.xml add -i atom.xml 'Feed purpose' \
Category tags and their ordering

Apparently I think in almost-alphabetical order, since I just spent a while trying to figure out how to reorder the links in the "Categories" section of the main page's sidebar. For those who are interested, the ordering is set with the


line in the plugin. Having found out that it's just alphebetical order, I'm fine with it. I just assumed it was locking in the unorganized timeline of me thinking up tags or something silly like that.

In the spirit of tagging, you can turn on category-specific feeds in your blog.conf file with


or some variation on that theme. Funfunfun.

Nanoblogger links

Note to self: add links by manually editing

Blog re-titled

I'm feeling overwhelmed with the volume of unfolding theory out there, so I thought I'd take a break and rename my blog from the über-creative "Trevor's blog" to the slightly-less-boring and equally accurate "unfolding disasters" (Heh, ü is the oh-so-obvious AltGr Shift \ by default :p).

Adding my bit of noise to the global cacophony (and yes, I had to double check the spelling).