Sunday, November 16, 2014

A request to people with free time

This is an open request for someone to reinvent using open standards.

If you don't do it, I will.

Sunday, October 19, 2014

Keeping node applications running with PM2

Attention Node developers:  You can get rid of Forever and Nodemon now.

Discovering PM2 was one of those rare instances where I actually feel like technology can make my life easier.  It's a multi-purpose Node task manager that handles errors gracefully, restarts on changes, and provides a host of monitoring options.


npm install -g pm2


pm2 start ./project/app.js --watch


pm2 start ./app1/app.js --name "application one"
pm2 start ./app2/app.js --name "application two"
pm2 start ./app3/app.js --name "application three"
pm2 startup

The final command will lead you through the short process of adding pm2 to your system's startup files, so that your applications will continue running on reboot.  No cron necessary.

Thursday, September 25, 2014


fzf is a thing that everyone with a terminal should be using always.

Thursday, September 04, 2014

Introducing Photodump

Photodump is an ultra-minimalist multiuser photo sharing application.  It's fast, it's free, and it doesn't require a sign up.

Sunday, August 17, 2014

By Color

Apps arranged by color is the new books arranged by color.  Do it.  Get it done.

Sunday, August 10, 2014

Back from the PNW

Back from a 10-day trip to Portland and Seattle.  It sure is nice this time of year!

Sunday, July 27, 2014

Introducing window.js

Back at Sourcemap, we had a consistently inconsistent problem:  The shape of our tree diagrams could change dramatically depending on the type (and amount) of data being displayed.  This sometimes lead to the embarrassing problem of clients being unable to even find their data on the screen, much less make sense of it.

The solution was to increase the flexibility of our dashboard.  I'm a huge fan of tiling window managers, so I rushed out to make one in JavaScript.

The result was window.js, a tiling manager for web sites.  We hooked it up to our existing visualizations, did a bit of server-side magic to allow saving and loading, and voila-- 100% configurable, resizable, and sharable dashboards.

Check out the live demo here!