arche - a Hypermedia Discovery Service written in Clojure

Posted: 29 Jul 2015

Nearly a year ago, I started a project to teach myself Clojure. It’s been feature complete for a very long time now. I had just neglected to announce its availability.

The project is called arche. It is a hypermedia resource discovery service. A full description of the design is described here. (The project itself, incidentally, is an exact duplicate of a project I wrote in Ruby on Rails for my current company).

The following Clojure libraries were used to build the Clojure version:

  1. liberator - state-machine API framework
  2. compojure - Equivalent to Ruby’s Sinatra micro-framework
  3. ring - Equivalent to Ruby’s Rack
  4. speclj - like Rspec
  5. lein-cucumber
  6. environ - instant 12-factor app-ness

The overall experience was fantastic. I’ve programmed in Scheme, Racket, and Emacs Lisp, and Clojure was a pleasure. Clojure’s syntax and the APIs of it’s data structures are clear and concise. Its Java interop mode is suprisingly pleasant. A programmer literally needs some Lisp background and this cheatsheet and the rest is fairly straightforward.


Posted: 24 Aug 2014

Today, I’ve released my first Emacs package. It is a helm source for searching gems on When provided a search pattern, the package uses’s API to search gem names that match the pattern. Helm, then, presents a list of possible gems. Simply selecting an item in this list, and pressing the return key saves a description of the gem suitable for a Gemfile to the kill ring; e.g., gem ‘guard-rackunit’, ‘~> 1.0.0’.

The package can be installed using Emacs’ package manager. The package is accessible via melpa.

The melpa page is here, but the best reference can be found in the package’s source code respository on github

The README has details for how to setup and use this helm source.

guard-rackunit gem

Posted: 09 Mar 2014

After all the gems I’ve written for my employer, I’m finally releasing one of my own: guard-rackunit. The gem is a Guard plugin which runs Racket’s RackUnit unit tests.

The source code is hosted on github. Consult the README for details about installing and running the gem.

Announce My Angenda Android App

Posted: 10 Feb 2014

It’s been a while since I’ve posted anything, but I’m going to start posting about personal projects that have worked on over the years, as a publish them on my github account.

The first project I have pushed to github is called “Announce My Agenda”. It’s an Android app that uses Android’s Text-to-Speech capability to read out-loud your day’s agenda, given the Google calendars you have selected, and the invitations your have accepted. It was written over a year, and I never gave it the final polish to publish it in Google’s Play store.

I’m releasing it under the GPLv3 license.

Please keep in mind that I’m not a Java developer, but a Ruby developer by profession, so this might not be the most elegant Java code. The app, though, is nearly fully functional.

Site's New Look

Posted: 23 Jan 2011

I have scrapped the original Radiant site for a Jekyll static site. Jekyll is fantastic. The original styles have been thrown out too. Both changes are designed to make the site easier to update and maintain. Many of the site’s pages do not match the home page/post styles, but resemble docbook html pages; that’s because they are. I doubt I’ll ever migrate them.

SISC Scheme on Android's Dalvik VM

Posted: 06 Feb 2010

I managed to invoke REPL on Android’s Dalvik VM. I encountered a number a problems, but amazingly I managed to get the REPL to instantiate and manipulate a Java class that ships with the Android OS.

As far as I know, this is the first time that anyone has managed to get a Scheme implementation to run on Android

Read this tutorial if you want to find out how I did it.

XSL Stylesheet for GEDCOM 5.5 XML

Posted: 12 Aug 2008

I just released a XSL stylsheet that can be applied to a GEDCOM 5.5 XML document. It will produce an XSL-FO stylesheet that can in turn be converted by fop into a pdf document. The PDF resembles forms produced by

For more information:

Using XSLT to Fix lyX's Docbook XML

Posted: 11 Aug 2008

lyX is currently my favorite text editor, especially when it comes to writing software documentation. LyX’s support for Docbook XML is slightly cludgy, though, because the application is really designed to help create LaTex documents. I have written a tutorial on how to use lyX to produce Docbook XML which can be transformed into XHTML or PDF documents. This tutorial shows how to leverage XML technologies, such as XSL, to create customized versions of Docbook XSL stylesheets that fix some of lyX’s Docbook problems. The tutorial can be read here.

Ruby Script to Download Google Account Contacts

Posted: 08 Aug 2008

I have just released a Ruby Script that will download your Google Contacts using their Contacts API.


Usplash Debian Swirl

Posted: 19 Jun 2008

I am pleased to announce the release of a Usplash screen branded for the Debian GNU/Linux distribution