Superblock (1999 - present)

Superblock is a company that I founded in 1999 as Superblock Information Systems to provide web hosting and other networking services. It was reorganized in 2006 as Superblock, LLC. I currently offer custom software development, web hosting, OpenBSD consulting, and other technology services under the Superblock name.

Pushover (2012 - present) (Ruby, Ruby on Rails, MariaDB, Objective C, Java)

Pushover is a platform for sending push notification messages to Android and iOS devices. It has a simple HTTP API that allows quick integration with servers, websites, backend processes, and anything else needing to send notifications. Device clients are available for Android and iOS. (2011 - present) (PHP/Halfmoon, MySQL) is an integrated reader for things like RSS feeds and Twitter feeds. It is currently in development and might be launching in 2012 but will probably never publicly launch due to Twitter's overly-strict API rules and the general decline of RSS.

Velvet (2005 - present) (Ruby on Rails, MySQL)

Velvet is a hosted software solution for executive recruiting firms that handles project, contact, and company management and reporting. It was created as a hosted software-as-a-service through a partnership with Prospect City. Superblock does hosting, backend support, and custom development for the service in addition to creating private, customized versions of Velvet for new customers.


I started doing web-based development as a hobby in the late 1990s starting with terrible Perl-based CGI scripts and moving to slightly-less-terrible PHP scripts. At my old job at an ISP, I wrote dozens of web-based utilities, order management systems, and network management tools for staff and customers. I learned Ruby in 2005 and was enlightened by the MVC pattern of Rails shortly thereafter. Now I do most of my web-based projects in Rails. (1999 - present) (Ruby on Rails, MySQL)

My personal website, in operation since 1999. It started out as a Perl CGI-driven site, then rewritten in PHP various times, then rewritten in Ruby on Rails. It aggregates and normalizes my data from various websites that I use, like ~~Flickr~~ and Twitter, and then mashes it all together as one big, continuous stream of data. It currently has a MySQL database backend, uses dozens of Ruby classes, and runs on Unicorn servers proxied through nginx.

Lobsters (2012 - present) (Ruby on Rails, MySQL)

A link aggregation site that I created after I was banned from Hacker News. The code that runs the site is on Github.

Domain iCal - Domain and SSL Certificate Expiration Calendar (2011 - present) (PHP/Halfmoon, MySQL)

A free site that lets one list domain names which will be looked up through whois and/or queried through SSL and their domain and SSL certificate expiration dates added to an iCalendar. For easy and automatic monitoring of domain name and SSL certificate expiration and renewal dates.

Twitframe (2013 - present) (PHP)

In the spirit of Colin Percival's Payment iframe, Twitframe allows one to display Embedded Tweets on one's website to dynamically show retweet and favorite counts, inline media/card data, and allow users to retweet/reply/favorite Tweets, all while isolating the Javascript and DOM manipulation to an embedded iframe.

Fitbit Low Battery Notifier (2011 - present) (Ruby on Rails, MySQL)

This site was built to use the recently released Fitbit API to monitor the battery level of each user's Fitbit tracker and notify them by e-mail, SMS, and/or Pushover when the battery is low. It is currently providing alerts for over 65,000 Fitbit users.

Open Source Projects

I've been involved in open source software since the mid-1990s. I started with Slackware Linux and switched to OpenBSD in 1998. I've contributed bug fixes and feature enhancements to a number of open source projects, as well as released a lot of my own code.

OpenBSD (2001 - present) (C)

I have been an OpenBSD developer (jcs@) since 2001. I initially concentrated on ports and packages that pertained to the use of OpenBSD in my professional work, but am now just a slacker. I occasionally commit bugfixes and tweaks for new hardware that I come across.

In 2004, I wrote the i386/amd64 NVRAM driver to support tpb on various ThinkPad laptops.

In 2005, I wrote tftp-proxy for pf while working at DLS to support its new OpenBSD-based PBX and firewall products.

In 2008, I wrote the acpithinkpad ACPI driver to support knobs and buttons on newer ThinkPads.

In 2013, I wrote the ubcmtp USB driver to support Broadcom multi-touch trackpads found on newer MacBooks.

Endless (2014-present) (Objective C)

Endless is a web browser for iOS with enhanced security and privacy, like HTTPS Everywhere and analytics blocking built in.

Trip Tracker (2012) (Java)

Trip Tracker is a small Android app that I wrote to track my location on a road trip. It sends the GPS coordinates of the device to a web server, which I used to display a continuously-updated map of my location on my website during the trip.

halfmoon (2010 - 2012) (PHP)

halfmoon is a small MVC framework for PHP that does things like Ruby on Rails (2.3) wherever possible. I started writing it in 2010 after doing Rails for a number of years and needing to use PHP for a small web project. I've since used it for other small web projects like Domain iCal and various forums, though I have mostly switched back to using Rails with simpler deployment methods.

vmwh (2010-present) (C)

vmwh is a userland helper for running OpenBSD under VMWare. It currently supports automatic clipboard synchronization.

xbanish (2013-present) (C)

xbanish is a small X11 utility to automatically hide the mouse cursor when typing, and show it again when the mouse is moved.

pixelclock (2005) (C)

pixelclock is a small pixel-based clock for X11.

All of my other open source code can be found on GitHub.

Completed/Abandoned Projects (2000 - 2009) was a personal server that I colocated at DLS and soon turned into a second-level OpenBSD FTP, Web, AnonCVS, and CVSup mirror (and occasional Tor exit node). After a number of hardware failures and upgrades, I finally took it out of service in 2009 and sold the domain name due to its high renewal cost.

Corduroy ( (2006 - 2012) (Ruby/Ruby on Rails, MySQL)

Corduroy was a web-based billing system for small businesses. I created it in 2006 to handle the invoicing for Superblock after I got fed up using QuickBooks. After adding things like banking integration for downloading transactions (via OFX), online invoice payment through PayPal and other merchants, and project management, I turned it into a software-as-a-service and began hosting it for other companies. The service was not a major focus of Superblock and was not advertised much, so it didn't gain many users. Many competitors had since been established that were much more popular and better suited for this type of service, so I stopped offering this service in 2012. I still use it for Superblock's book keeping and occasionally add features for my own use.

Blandroid ( (2011 - 2012) (Java, C)

Blandroid was an Android (2.3 to 4.1) ROM focusing on stability, supporting the AOSP devices Nexus One, Nexus S, Nexus S 4G, and the Galaxy Nexus. It had a small following of users that didn't want to put up with the instability of Cyanogenmod and other Android ROMs. I added some minor features to the ROM that were later made obsolete by Android 4. I discontinued the project as Android 4 became more popular and Google's separation between AOSP and Android proper became wider. I now just use rooted factory images on my Android devices. (2008 - present) (PHP/Halfmoon, SQLite)

This single-serving website was created in May of 2008 as an alternative to busy, ad-ridden sites like All I cared about was whether it was going to rain that day, so I created this simple site to automatically lookup your city/state by geolocating your IP address, check the weather for that city, then parse the result and tell you in a one-word answer "yes" or "no", whether it was going to rain.

When it was initially released, it made the front page of Hacker News, Delicious, and Mashable.

In July 2009, some Chinese developers released a cheap-looking iPhone app that cost 99 cents and would just load and show the answer. I blocked the app from accessing the site and it has since been removed from the App Store.

In March 2011, an API was created for integration into the DuckDuckGo search engine's zero-click information for "is it going to rain" and related searches.

In August 2012, Google shut down its weather API without notice and since the only remaining weather APIs cost money, the site was forced to shut down.

Metra Train Schedules for iPhone and Android ( (2009 - 2012) (Ruby on Rails, MySQL)

Metra spent part of $3.9M on a new website in 2009 that still had no mobile browser support. I created this website, optimized for the iPhone and Android, to display train schedule and delay information. Metra later added a basic mobile interface to their site, though its interface was and still is quite clumsy. The maintenance required to manually update the schedules from Metra's PDFs, as well as the availability of many offline iPhone and Android applications and the Google Transit mobile site prompted this site to be shut down in early 2012.

HN Trades ( (2010 - 2012) (PHP/Halfmoon, MySQL)

HN Trades was a site for Hacker News users to trade domain names, books, and other stuff. It was created in about 5 hours after seeing yet-another thread on HN about unused domain names. It was taken down after I was banned from Hacker News.

American Volkswagen R32 Registry (2005 - 2014) (Awful single-file PHP, MySQL)

This site was a registry for MKIV Volkswagen R32 owners to list their cars, find other local owners, and view R32s for sale.

Adium PipeEvent Plugin (2010-2012) (Objective C)

PipeEvent was a plugin for Adium that could be used to pipe event information to an external script. It stopped working with newer versions of Adium and I've since developed and now use a Pushover-specific plugin.