Category Archives: Coding

Open German

I made an open source quiz/flashcard application for learning German vocabulary. You can see it here on the Play Store, or download it from F-Droid.

The word list is decent, but could use improvement. You can get a read-only version of it from this Google Sheet. If you want to change one or two words, it is probably easiest to email me those changes. If you want to do more, great! The app could use more useful sections and groupings of words, either using the existing word-set or adding more of your own. You may want to email me so I know what you are doing, just to coordinate if more than one person is working on it at once.

Other sources for the app:

The source code for the app is on GitHub.

The word list was created by Neil at and is based on Jörg Tiedemann, 2012, Parallel Data, Tools and Interfaces in OPUS. In Proceedings of the 8th International Conference on Language Resources and Evaluation (LREC 2012).

The photograph of the Berlin TV Tower is licensed CC-BY-NC from Michael, user juseranotherhuman, on Flickr.

Gutenovox, a Mashup of Gutenberg and LibriVox Catalogs

I recently did my first recording for LibriVox, which is a site where volunteers read public domain works. I wanted to contribute to a short science fiction collection, and it was challenging to find a work that hadn’t been read already — not because there aren’t any, but because it involves looking through lists of stories on Project Gutenberg, then and searching for each one in the LibriVox catalog. “This is what computers are for,” I thought. So over the last week or so, I created a mashup site of the two catalogs, so that one can search the Project Gutenberg site and show what LibriVox recordings exist already, plus estimated reading time:  It works pretty well, but there are a few limitations.

Continue reading Gutenovox, a Mashup of Gutenberg and LibriVox Catalogs

Setting Up Emacs + Cygwin + PHP + ssh-agent

I had to struggle for a while to be able to remotely edit php files with emacs on Windows.  After trying various combinations of putty/plink, cygwin, xemacs, and GNU emacs, I finally got things to work with Cygwin’s ssh-agent and GNU emacs.  Here’s the procedure:

Install Cygwin, ssh-agent, emacs.  Use ssh-keygen to create a private/public pair.  Append the public key to your ~.ssh/authorized_keys file on the remote machine.  Add this to your ~/.bash_profile in Cygwin:

if [ -z “$SSH_AUTH_SOCK” -a -x “$SSHAGENT” ]; then
trap “kill $SSH_AGENT_PID” 0

ssh-add ~/.ssh/id_rsa

Add this to your emacs load path (.emacs, init.el, whatever):

(require ‘tramp)
(setq tramp-default-method “sshx”)
(setq tramp-debug-buffer t)
(add-to-list ‘load-path “~/.xemacs”)
(autoload ‘php-mode “php-mode” “Major mode for editing php code.” t)
(require ‘php-mode)

And the link for php-mode is here:


NCDC 1981-2000 Average Temperatures On Google Maps

I’m taking a road trip through the southwest this winter, and was interested in seeing a map of average temperatures so we would know what we’d be driving through.

When I couldn’t find any easily, I decided to see if I could plot data from the National Climate Data Center [FTP] via the Google Maps API.  I loaded the NCDC flat files from that FTP link into a MySQL database, and then exported it into Google Map objects (php writing out javascript objects). Continue reading NCDC 1981-2000 Average Temperatures On Google Maps