Projects

Hey. Here's stuff I've made for my own fun. This page is heavily influenced by Eevee's projects page.

Web

soofw link / github

This very web site. Written in Python. Powered by Flask. Stored in plain Markdown files. Served by nginx and gunicorn. Hosted on DigitalOcean running Debian.

I bought some old domain that I thought was totally badass when I was 15, but I decided it wasn't really that cool by the time I was 18. At the same time, I wasn't really a fan of those firstnamelastname.com domains, so I opted out of those. I decided the domain name didn't really matter as long as it was simple, so I spent some time searching for two, three, or four letter domains. They don't exist anymore. I moved on to five, and found soofw. It was simple, easily typed, and totally hipster, so I bought it.

Over the years it's been through a lot, but I've recently started to take it semi-seriously and updating it every so often...

Canvas Demos link

A collection of web experiments. Written in JavaScript. Powered by HTML5 canvas elements.

I like tinkering with new toys. I heard about HTML5 and its new canvas witchcraft, and since I kinda missed making pretty things with Flash, I leapt right into it. These are the results of all that tinkering. These are mostly just dirty coding done in my free time, so don't expect any high-quality code here. There's also a pretty good chance it won't work if you're using some ancient browser.

Rainbow Heart experiments page / link / github

A rainbow heart composed of elastic particles.

This was one of the first canvas demos I did. I just kinda randomly applied for the Chrome Experiments and they accepted me. I was pretty happy about that.


Command Line

trk github

A to do list manager. Written in Python.

Google Tasks was really starting to let me down. The lack of an official Android app killed me, and the web interface was just miserable. I figured that since I spent so much time in a terminal anyway, it would be the perfect place to set up a neat little task manager. It also gave me a pretty good chance to work on my Python skills. As one of my most actively used and developed projects, I've tried to polish trk as much as possible. Since its inception, I've rewritten it using another project of mine, bumpy, in order to be more flexible and powerful, although the rewrite is still under development.

bumpy github / pypi

A library for building small projects, managing repetitive tasks, and CLI Python tools. Written in Python.

After learning about the wonders of Python, Flask, and SCSS for web development, I started using make to manage my repetitive tasks like compiling SCSS, launching a dev server, and generating static pages. Using make to call Python scripts felt a little... dirty, so I set about finding a way to call Python scripts from Python. Eventually I stumbled upon Pynt and was pretty happy with it, until I tried it and started experiencing a weird bug when launching a Flask dev server. I got frustrated and started writing my own Python build system with heavy influence from Pynt. After getting it to a usable state and letting it launch a Flask dev server, I got the same bug and decided it was an issue with my Flask set ups or Flask itself, but decided I would continue developing bumpy anyway.

Eventually, I noticed the command line argument parsing I was using with bumpy could be pretty easily suited to making CLI Python tools, and immediately jumped back to trk and started rewriting it using bumpy instead, with a significant improvement in usability.

clk github

A time tracker. Written in Python.

Sometimes I like to keep track of how much time I spend on a certain project. Because most of my work is done through a terminal, it made sense for me to write a time tracker that I could use from that environment.

Largely unused and inactive right now.

multigit github

A tool for checking up on multiple local Git repos. Written in bash.

Frequently, I find myself working on several different projects in quick succession and easily lose track of which projects are uncommitted, unpushed, need to be fetched/merged, etc., so I created multigit to easily execute a command across multiple Git repos. For example, I can simply type multigit status -s and get a quick glimpse of each repo's status, or I can type multigit pull to automatically fetch and merge every repo that I'm tracking.


Android Apps

trk for Android github

A to do list manager. Written in Java with the Android SDK.

Even though I spend a lot of my time in a terminal, there's plenty of situations where it's difficult or impossible for me to open a terminal and view my trk list. To remedy this, I've started developing an Android app using the same standards and specification that the command-line version of trk uses: a text file that contains a list of tasks and uses tags and patterns to organize and manage a to do list. Still under active development.


Widgets

Raspberry Pi cluster

A small, all-in-one cluster of seven Raspberry Pis. Made with plastic, screws, and Pi.

I've had a Raspberry Pi for about a year, but it's unfortunately never seen very much use. While attending SC13, I won another five Raspberry Pis. Then I bought a seventh, and put them all in a badass plastic box. It even has an 8-port network switch and a 7-port USB hub to enable communication and supply power. Each Pi has its USB, HDMI, power, and ethernet ports exposed, as well as the SD slot.

Adding six more Pis has not helped to give them a purpose.

LCD Clock github

A physical LCD clock. Made with wood and circuitry. Written in C++ / Python. Powered by Arduino.

Arduinos are frickin' sweet as heck. I bought a few and was just waiting for some idea to hit me. I'd also been using a little Android app I wrote to control my desktop music from my bed, but I didn't really like having to reach for my phone, turn the screen on, etc. just to change the song, so I started to think about an alternative way to control it. Then the idea struck, and I decided to use an Arduino to do it. The actual box is about 4 inches x 3 inches x 2 inches, has four illuminated buttons for control, a white monochrome character LCD for disply, and an Arduino Micro for brains.

Pictures coming eventually.

Binary LED Clock github

A physical LED binary clock. Made with wood and circuitry. Written in C++ / Python. Powered by Arduino.

Arduinos are neat. Clocks are neat. Binary is neat. Why not combine all three? Although it's not as practical, it looks nice and gets some conversations started. The box is about 8 inches x 3 inches x 1.5 inches, has ten colored LEDs (four for hours, six for minutes) for display, and an Arduino Uno for brains. The LEDs are ordered in a specific pattern to make it more readable at night. Likewise, the red LEDs blink when inactive to provide a reference point in the dark.

Pictures coming eventually.

Whiteboard Desk

My computer desk. Made with wood and whiteboard.

I was home for the summer and stuck using a cheap plastic table as my desk, which kinda sucked. Every time I moved my hand the whole desk shook and rattled my monitors. I talked to my uncle about making a desk, drew up some plans, and got to work. The whole desk is designed to be easily taken apart, transported, and reassembled; it only takes six screws to assemble / disassemble. The whiteboard is replaceable and costs about $10 for a new one. The frame is about 54 inches (wide) x 26 inches (deep) x 28 inches (tall).

Pictures coming eventually.