Todd Wolfson

Software Engineer

February 06, 2015

Automate your style

Introduction to automatically checking and formatting code style.

January 11, 2015

Testing with other services

Introduction to using eight-track and fixed-server for writing tests with other services.

November 22, 2014

Moving from PhantomJS to node-webkit

Transferring visual regression tests from PhantomJS to node-webkit for better node_modules/ support and more accurate screenshots.

November 05, 2014

Welcome back

I am back from Japan. This is a debreif of my experience and what my plans are.

July 10, 2014

Taking a break

I am taking a 3 month break from everything (e.g. tech, SF, open source) and going to go live in Japan.

May 29, 2014

Taken for granted: Regression tests

There are some "a-ha" moments on the road to becoming a better developer. This article visits one of mine, regression tests.

March 19, 2014

Release: foundry

Release manager for npm, bower, component, PyPI, git tags, and any plugin you can write

February 17, 2014

Suggested reading for writing a gulp plugin

Overview of good resources for creating a gulp plugin

January 19, 2014

Low tech dependency management via grunt tasks

An explanation and walkthrough of managing browser dependencies via grunt-zip and grunt-curl.

December 26, 2013

Release: sublime-plugin-tests

Sublime Text plugin testing framework

November 26, 2013

Optimal lines again

November 25, 2013

UNLICENSE all the things

Choosing UNLICENSE over other licenses

November 21, 2013

Release: gifsockets

Stream never-ending animated GIFs

November 02, 2013

How to linkify Markdown headers

Add links to your Markdown headers

November 02, 2013

Website redesigned and refactored

Major refresh to website CSS and backend

October 16, 2013

Life view: What shapes the self

Personal viewpoint on how the self is shaped.

October 16, 2013

Life view: Free Will

Personal viewpoint on Free Will.

October 16, 2013

Release: git sqwish

git squash without repetitive conflicts.

September 24, 2013

Debugging OSX via Sauce Labs

Using Sauce Labs to debug software on OSX.

September 22, 2013

Debugging Travis CI

How to debug Travis CI with Vagrant.

September 08, 2013

Optimal line length theory

Experimenting with relative typographic line length limits applied to code.

August 15, 2013

Readability: Formalized

Defining readability through propositions, theorems, and lemmas.

August 15, 2013

Sexy bash prompt

A bash prompt with colors, git statuses, and git branches.

July 27, 2013

Develop faster

Removing the tedium from creating, developing, and publishing repos.

July 24, 2013

Abandoned project: Kaleidoscope

Abandonment of an in-browser solution for a website-at-a-glance webpage and looking forward to perceptual diffs.

July 11, 2013

Axioms of maintainability

Mathematical definitions and reasoning behind why abstracted code is maintainable code.

July 06, 2013

A better shell

Thoughts on taking steps to make a better shell.

July 04, 2013

Finding the perfect mix of code coverage

Code coverage is the percentage of lines of code touched by a test suite. It is a good metric but API coverage is a new step forward.

May 27, 2013

Bringing vertical rhythm to code

An experiment and attempt at understanding my code patterns.

May 27, 2013

BDD and the Future

A presentation overviewing the history of BDD and some of my experiments.

April 22, 2013

Why I open source

An explanation of my morals/ethics and why I devote my free time to open source.

April 22, 2013

PhantomJS engine for spritesmith

A phantomjs engine is now available for spritesmith, making the cross-platform barrier to entry super-low.

April 22, 2013

Introducing Find++

Find++ is an implementation of search utilites from Notepad++ for Sublime Text 2.

March 17, 2013

Halo - A modular MVC

An introduction to Halo: its good, bad, and ugly parts.

March 11, 2013

Builder - Build chain for your client side

Another overdue introduction -- This time to Builder, a framework for automating common client-side steps.

March 11, 2013

Spritesheets and variables made easy

A long overdue introduction to Spritesmith and its components.

February 15, 2013

Open letter to gruntjs

The following letter is about my thoughts and complaints of the recent gruntjs upgrade from 0.3 to 0.4.

November 17, 2012

Subtle anti-patterns

Warning: This article is more opinionated than other ones.

November 14, 2012

Node Knockout 2012

This weekend, 3 coworkers and I, participated in Node Knockout, a 48 hour node.js based hackathon.

October 07, 2012

JSMin with sourcemaps

Introducing JSMin with sourcemaps -- available as a node module and as a grunt plugin.

September 09, 2012

BDD pipe dreams

Below are my most recent pipe dreams for BDD. While the example is based on testing a UI, it is applicable to anything as does BDD.

July 04, 2012

Why your client-side framework deserves a build chain

A screencast on my thoughts on client-side frameworks.

June 16, 2012

Open sourced website and CSS Off

I have open sourced both my website (available here) and my entry for the the CSS Off (available here).

June 11, 2012

Introducing jojo

Introducing jojo, the 10 second blog-engine for hackers (in javascript). Jojo is heavily based on and insprired by toto.

March 25, 2012

Hands-Free Refresh Anywhere - File Watcher et al.

When UMS' CSS Off started in Late October, I was getting frustrated at needing to manually refresh for any page change -- no matter how small.

March 25, 2012

Catch up - CSS Off

This is a partial continuation of my previous catch up post. I finally got my CSS Off score; 61/100 points and 66th of 417 place.

March 16, 2012

Catching up to date

A summary of all the contests, scripts I have written, and everything else I meant to write about since my arrival in California.

February 21, 2012

Blog Launch!

This is my first blog post for!

Recent activity


spritesmith reached its next major release. The 3.0.0 release fixed up long standing issues such as installing unnecessary engines. More notes can be read at:

Reverse templating

Generating input variables from a template and its contents.

    template: 'hello {{place}}',
    content: 'hello world'
// {place: 'world'}


Publishing is currently a problem solved by dotfiles. There is no generic solution that has reusable parts between people.

To fix this, I am building a plugin based library that can publish to multiple repositories (e.g. npm, bower, component, git tag, PyPI).