Home       GitHub       Publications       Twitter


A simple terminal RSS feed reader written in Python 3.

tread has most of the basic features you would expect from a feed reader, including read/unread tracking and starred items. It even supports displaying images via imgii. It's also fairly configurable.

Since it's available on PyPI, the easiest way to install tread is with pip3 install tread. The source code, along with the readme and some basic usage instructions, is available on GitHub. (But the code is awful, and you don't want to look at it too closely.)

Because of some esoteric requirements of curses, tread requires Python 3.5 and does not run natively on Windows.


A Python package that converts images to ASCII.

imgii makes it relatively straightforward for a user or a Python script to convert images to ASCII. Both local and remote images are supported, and there is some basic colour support, too.

Since it's available on PyPI, the easiest way to install imgii is with pip install imgii. The source is available on GitHub.


I write plenty of web applications using Flask.

I recently wrote an expense tracking application that does automatic currency conversion (because my use case was fairly simple and I was tired of wrestling with Google Sheets). I've also written Flask apps for voting in a poll, downloading files using limited-use download codes, running Magic tournaments, and a whole bunch more.

While I try to consider the probable use cases of others, these projects are typically written with my specific needs in mind, so their general usability may be suspect. But if you decide to run one anyway and you're having trouble configuring your sever, I wrote a blog post explaining how you can get Flask, uWSGI, and Nginx working together. I'm also happy to answer questions.


In 2017 I participated in the 200 Word RPG Challenge to design a role-playing game using 200 words or fewer. I submitted a collaborative storytelling game called Captain's Table.


I've also been messing around a little with DeepDream.