Github Auto Deploy

I published my first npm package over the weekend: github-auto-deploy.

I’ve been playing with Github Auto Deploys recently. There are a couple things I’m doing here that I think are different from the typical auto deploy workflow.

  1. Using the deployment event. Github has a way to differentiate push from deployment. Deployments have the added benefit of depending on Github statuses, like ci/travis-ci. Having deployments depend on a test suite is nice.
  2. Using git fetch && git checkout. Instead of doing a git pull and slowly updating files depending on the network speed, first fetch all the files and then do a quick file pointer swap to instantly update all files at once.


PORT=1234 SECRET="Swifty4Lyfe" gad /var/app /var/app/bin/

In this example, might look something like this:

npm install
service node-app restart

If you have questions or suggestions, let me know!

The man who brought us the lithium-ion battery at the age of 57 has an idea for a new one at 92

QZ has an amazing article about 92 year old John Goodenough, inventor of the lithium-ion battery.

The good news is that Goodenough has one last idea. He’s working on it with yet another crop of post-doctoral assistants. “I want to solve the problem before I throw my chips in,” he says. “I’m only 92. I still have time to go.”

Source: The man who brought us the lithium-ion battery at the age of 57 has an idea for a new one at 92 – Quartz

Force Touch Trackpad

Marco Arment doesn’t like the Force Touch Trackpad.

The simulated click vibration does feel like a click, but not a good one. It offers three different firmness settings, none of which feel anywhere near as good as Apple’s trackpads with real buttons. It feels like what it is: mushing my finger against a fixed pane of glass that’s emulating the feel of a button and almost getting there, but not getting there.

Source: Mistake One –

I actually love the trackpad on my new MacBook Pro. I know it’s not clicking, but I still don’t believe it. I’ve been in multiple situations where I’ve had to turn my laptop off to prove to someone that it’s a simulated click.

He’s right that the keyboard is not good, though. I tried out a new MacBook and decided on a MacBook Pro partially because of the keyboard.

Build Stuff

A couple weeks ago, I discovered a ton of old themes I designed. It was fun and funny and embarrassing to look at things that I thought were good enough to put on the internet as a 14 or 15 or 16 year old in 2005 and 2006 — it’s pretty bad. :)

I thought about sharing screenshots here as an example. Don’t be afraid to follow  your passion. Don’t be afraid to build things. Don’t be afraid to be bad at something before you’re good.

I read Outliers by Malcom Gladwell not long after it was published in 2008. For those that haven’t read it, Gladwell details what it takes to be a Steve Jobs, Robert Oppenheimer, or The Beatles. In short, you have to be in the right place at the right time and you have to have 10,000 hours of practice in your field. You can’t control whether you’re in the right place at the right time — I’m not even really convinced it’s necessary anymore, but you can probably control how much experience and practice you have.

On Brainpickings last week, there was a video backed by an Ira Glass monologue that reminded me of my old themes. It’s hard to pull out one quote from this short speech, but this one sums it up nicely:

 And the most important possible thing you can do is do a lot of work — do a huge volume of work.

I’ve heard many people that I look up to say similar things as well. I know Chris Coyier says something like “just build stuff” when asked how to get started.

I don’t, by any means, consider myself an expert in this and I’m definitely not done learning — it’s part of my DNA. Even without reading Outliers it’s likely I would have spent just as much time “building stuff” as a teenager. That said, I’m pretty proud of my job and feel lucky to work with — and learn from — tons of smart people every day.

So build stuff!

Lossy Compression with Photon

Photon, the image service hosted by Automattic, does lossless compression automatically. Page Speed will probably still complain that images aren’t compressed enough. Luckily, Photon has a way to fix that.

There are a couple of parameters, quality and strip, that will further reduce the file size of JPEG images. Quality is pretty straight forward. The strip parameter will let you strip EXIF and color data. I use a snippet like this to set the quality to 80% on my site.

The results can be pretty dramatic. At full size, this image of downtown Madison goes from 16MB to 2.7MB by setting the quality to 80%. That’s a big deal on a mobile connection and it’s pretty hard to spot the difference on most images unless you’re looking at them side by side.