my projects


This is a collection of projects I've created. It includes web sites, software, online tools and browser extensions.

Web Sites



Quickly read your Pocket links. Built with Lumen and Vuejs, using Pocket's API with OAuth2 for authorization.



Be inspired with nature backgrounds, quotes and soothing music. Built with Vuejs.

Riddles and Brain Teasers

Riddles and Brain Teasers

Over 700 riddles and brain teasers I've curated or written. Built with Wordpress and jQuery.

Tech Made Plain

Tech Made Plain

Consulting service to help solopreneurs solve their technical challenges. Built with Hugo.



Charts the popularity of your name in the U.S. from 1880 to the present. Built with Laravel and AngularJS.



Speed dial for the web. Lets you quickly and easily visit or search your favorite web sites. Written in PHP, jQuery, MySQL and Google's OpenID 2.0 OpenID Connect for authentication.


Information and news for coin collectors. Built with Movable Type.

Online Tools

Calculators: Built with jQuery, AngularJS and Highcharts.

Text manipulation: Built with plain Javascript and occasionally jQuery.

Google Auth QR Code Generator - An easy way to add sites to the Google Authenticator or Duo Mobile apps when switching to a new phone.

Instant Movie Ratings - Retrieves instant ratings from IMDB based on your query. Written in PHP and plain Javascript.

Transactional Email Price Comparison - Angular app to compare the cost of various transactional email providers based on how many emails you send.

Convert Firefox smart keywords to Opera search engines - When switching from Firefox to Opera, this lets you use the same keyword searches. Written in Javascript.

BrowserSpeak - Make your web browser say whatever you type.

Google Chrome Extensions

Quick New Tab - Replaces Chrome's default new tab with a faster one by getting rid of the recently viewed site thumbnails.

Tab Position Customizer 2 - A copy of the old Tab Position Customizer with the junkware removed.

Google Docs Add-ons

Make Urls Clickable - When you import or paste a file that contains lots of URLs, Google Docs doesn't make the URLs clickable. This add-on makes them all clickable (even hundreds of them at once).




A portable Windows timer I wrote in FreePascal using Lazarus.

Snap MD5

Snap MD5

A portable Windows utility to calculate the MD5 or SHA-1 hash of a file. Also written in FreePascal using Lazarus.

Smash Key


A simple app that lets kids mash on the keyboard without messing anything up. Written as an excuse to write something in .NET.


Metafilter Contribution Index - A compilation of data about Metafilter users. Written in PHP, originally scraping the user pages with regexes. Later I started using the Infodump.

Web comics in one spot - A variety of web comics retrieved via PHP regular expressions.

Udemy course on building static sites with Hugo

Kids Coding Class - A free coding class I taught with a fellow developer to help introduce kids to the joys of coding using

pyEbook - A Python frontend to Pandoc to generate PDFs, ePubs, Mobis, and numerous other formats from Markdown files.

2014 Hour of Code - A collection of Python code I wrote to teach basic coding to my kids' 3rd and 4th grade classes for the annual Hour of Code.

Updated May 31, 2017