Impenetrable Thoughts
Lousy: Bug Tracker integrated Test Runner

Lousy is a test runner which integrates with the project bug tracker to keep track of which tests failed when and why. This is a useful feature for intermittent failures or failures which reappear. Just because a particular test fails doesn't mean that it is failing for the same reason it failed last time. Lousy provides the infrastructure necessary to narrow down failure causes to particular bugs, record that data in the bug tracker and create new bugs in the bug tracker for new failures.

Grab the code or check out the Lousy bug tracker.

Tachyon: Terminals Faster than Light

Tachyon is a terminal multiplexer which reduces bandwidth usage and hides latency in not only the network, but also the applications. Similar to gnu screen or tmux, Tachyon does things a bit differently by supporting client-side multiplexing and scrolling to reduce bandwidth needs and switching latency. It also does local echo prediction similar to mosh in order to further reduce the effective latency of the terminal connection.

Grab the code or check out the Tachyon bug tracker

Nitpick and Distributed Bug Tracking

Nitpick is a distributed bug tracker which keeps the copy of bugs along side your source code. The advantages of distributed bug tracking are available whenever, and wherever your code is. The bugs and bug states are also alongside the branches of the code which contain the bug and/or the fixes. No more will the bug be fixed in some development branch but the state of the bug in the mainline be in question because the bug is marked as fixed, but the branch not yet merged.

Nitpick aims to solve these problems by being a simple yet powerful and self contained distributed bug tracker. As a single Python file it is easy to install and start using right away. Take a look at the code or you can look at the manual. You can even look at a static dump of the Nitpick issue repository.


I used to administer the server for the SFU CSSS. At that time we had a fairly active and complete image gallery from events. Alas times change and servers fail and the gallery went offline. Recently a backup of that server fell into my hands and I decided to restore that gallery to the world. View the results.


If you want to run a standard mailing list you have many options to choose from. If you want to run an encrypted mailing list you really have three options:

  • Have every member encrypt to every other member

  • Share a private key among all the members

  • Encrypt to the mailing list and have the mailing list encrypt to all the members.

The first two suffer from rather serious key management issues and the third one lacks software. Cryptlist is a script which performs the basic mailing list functions for the latter type of encrypted mailing list. It is intended to work as a mail filter and can thus useful for many small to medium scale mailing lists.

List of Classic Computing Tradeoffs

There are many trade offs in computing which seem to come up repeatedly. Since they seemed to keep coming up I decided to keep a list of them to help avoid having to rediscover them at high cost time and time again. Read the list.

Keyboard Layout Optimization

It is well know that the standard keyboard layout, QWERTY, is sub-optimal in that it requires more total effort to type. This can cause RSI and other problems. Improving the keyboard layout should improve the ergonomics of using a computer. Link to the explanation and files.

Installing Slackware 12.1 on the OLPC XO-1

The OLPC XO-1 is a fine, durable laptop with a screen that is amazing outdoors. Unfortunately, I just despise the default software. Read more for my experiences in installing Slackware 12.1 onto an OLPC XO-1.


insaneFS is a distributed filesystem based upon FUSE. I originally started it as a CMPT 401 project during my undergrad, but have since let it loose onto the world. It can be found on Sourceforge under insaneFS. This project has become inactive due to a bad design choice which will require more time than I have to spare to fix.