Nodes > Projects


This page is a listing of some of my side projects. Most of these are small and some of them are broken-off from larger projects completed a lifetime ago. Unfortunately, having been employed now by a number of startups, often putting in longer-than-required hours, I find myself with an ever decreasing amount of time for personal projects.

For a more up-to-date listing, see my projects on Fezly.

Try Raku is a small project that I started sometime in 2016. At the time the language was called Perl6 and so the project was hosted at I started this project mainly to get myself to play with this exciting new language and hopefully to make it easier for others to do the same.


This is a visualizer for the popular Praat TextGrid format used by some people in Linguistics. It was built during my time at the CUNY Speech Lab working on a project named Reciprosody. The project was created by Dr. Andrew Rosenberg and kindly funded by the NSF.


VPNH is a small Ruby script / daemon that is mainly a wrapper around OpenVPN for split VPN tunneling. The script sets up a special user under which everything runs within the VPN, and everyone else runs outside of the VPN. It also maintains the connection by monitoring it. I use it for my home seed box with Plex and Fezly.


reCalc is a simple programmable graphing calculator written in JavaScript. The project grew out of my frustration with having to frequently type in physics constants. Graphing support is built on top of the Flot library. It will keep track of the current view and render a seemingly continuous curve as you move about the graph. The graphing window lets you choose from standard view, trigonometric view, and a custom view. Since its creation other better projects have been released, rendering further development pointless.

Conway's Game of Life

This is a very simple implementation of Conway's Game-of-Life, one that you can play with in your browser. There are much better implementations of Life out there which make use of some very intricate optimizations. Some of these optimizations, like Hashlife by Bill Gosper are interesting in and of themselves, worthy of implementation and study. This was really just an excuse to play with cellular automata and ponder the nature of our own [potentially simulated] reality. Isn't it amazing that so much complexity can arise from two simple rules?

Game - Snake

A simple JS + Canvas implementation of the classic game of snake. More of a finger exercise than anything else.

Convex Hull Visualizer

This was really a simple thing in order to demonstrate and test a known solution to the Convex-Hull problem. The solution used here is the Graham-scan, named after famous juggler mathematician and frequent Paul Erdos collaborator -- Ronald Graham

Min-Heap Visualizer

I built this a long time ago as a teaching tool to demonstrate the enqueue and dequeue mechanism of a Min-Heap PriorityQueue. This particular heap is implemented on an array. Seeing an algorithm work step-by-step is a great way for visual learners to understand what's happening.


This is a very simple embedder of XKCD comics. It allows you to easily embed these comics into your blog. Like most of my projects this started from something that I wanted for myself. I hope Randall does not mind. By the way, I have all of Randall's books and was fortunate enough to be able to catch him at a book signing. Buy his books!