• cvs2git2svn

    After discovering Ohloh (Update: sorry, the link is dead), cleaning up and publishing repositories of yore seemed like a good idea. One of them was established back in the CVS newbie days, and contained lots of external binaries - Not the kind of thing you want to version control. Having used CVS, Subversion and Git (in that order), there was only one choice: Interactive rebase with Git. Also, the software was created while at CERN, so it should continue to be hosted there. And they had started a Subversion service (Update: sorry, the link is dead) in the meantime, so it was time to upgrade as well.

  • Usable security tokens

    Security tokens are pretty common these days. You know the kind: A credit card-sized piece of plastic with an RFID chip and maybe a magnetic strip to boot. Touch and go! But besides the credit card form factor, are they actually practical? They are brittle, and they can't be attached to anything without drilling (which would make them even more fragile). Here's an idea: Get a small RFID chip, and put it into a small piece of ABS plastic with a metallic ring that goes into the middle of the ABS and extrudes just enough to include the whole thing on a key ring (see below). Now if you have an RFID reader somewhere on your desktop, it should be enough to sit close to the desk for it to read the chip. So you won't end up with a broken card, you won't have to put your entire wallet (or some other container) in your pocket to protect the card, and you won't have to leave it on the desk at all.

  • Tag cloud shell script

    As an interesting challenge, I wanted to output a tag cloud (aka. word cloud) for a text file using standard shell tools. The result is surprisingly fast (2 minutes to create the tag cloud for War and Peace (Update: sorry, the link is dead)), and surprisingly short: As you can see, less than 10 lines doing anything more complex than echo. The latest version is much more flexible, but the main work is still just some 20 lines (tr -s … and below), and it's still fast.

  • LibraryThing daily backup

    LibraryThing Export, The Next Generation is now on GitHub! Please go there for any future updates (and more export/backup scripts).

  • Google Reader feeds daily backup

    Google Reader Export, The Next Generation is now on GitHub! Please go there for any future updates (and more export/backup scripts).

  • Delicious daily backup

    Delicious Bookmarks Export, The Next Generation is now on GitHub GitLab! Please go there for any future updates (and more export/backup scripts).

  • Delicious bookmarks search in the shell is no more, long live filterous (Update: Unfortunately both sites are long gone. Sorry for the inconvenience!)! After much deliberation (and switching to a more productive platform & programming language), I decided to re-implement the Delicious personal bookmarks search page in Python for the *nix shell. The result is more security (I don't store your bookmarks for you), more uptime, and more opportunity for parsing with shell tools such as less, wc, sort and grep.

  • Move file between git branches

    For my own memory more than anything else:

  • Guest uploader setup script

    Just slammed together a script to add users and give them access to the "upload" user directory.

  • fgit - Run a Git command in several repositories

    fgit enables you to run a Git command in several repositories with one command. For example: