• Don’t Do, Write

    by  • 18 September 2013

    Setting up a new server? Adding a new user? Installing a new package? Running a new service? Don’t do it, write it. It doesn’t really matter how or where you write it. Write a new Fabric task, update a playbook, update a Puppet module, or write a new one. Whatever you have to automate...

    Read more →

    TIC #sttp

    by  • 17 September 2013

    Today I cooked (“TIC”) dinner. I am always looking for simple things I can do in 1-2 pans and 10-20 minutes with no left overs. I used Pasta Butter Beech Mushrooms† Garlic Thyme Salt Pepper Water Large saucepan Skillet † I picked these up on the way home. I did Salted the water and...

    Read more →


    by  • 3 July 2013

    Later this month I will be joining the Bitly team! I am extremely excited to be joining such an amazing group working on a product that touches so much of the web, one that I’ve used for years. I’ll be working on the Bitly API, and helping other people work with it, too. And...

    Read more →

    Valley vs Alley

    by  • 1 July 2013

    In an interview in New York recently, I got one of my favorite questions ever: “Besides technical things and coding, what’s something you’ve done that you’re proud of or happy about?” In the Bay Area, I knew people who would ask candidates, “If you had a Sunday afternoon with no obligations, what would you...

    Read more →

    Pseudonymity and Consequences

    by  • 10 June 2013

    For the past few years, whenever anonymity and pseudonymity come up, I’ve thrown a sidelong glance at TodaysMeet. TodaysMeet is a tool for semi-private, semi-anonymous, ephemeral back channel conversations (in other words, passing digital notes during lecture) and has become particularly popular in secondary education. Most of its users, then, are teenagers. Until Saturday,...

    Read more →

    Simple out-of-process lock with Python and Memcached

    by  • 30 May 2013

    On TodaysMeet I need to check that a name is not in use before creating a new record. Unfortunately, because names can be reused over time, I can’t create a UNIQUE key in the database and enforce it there. That means there is some tiny amount of time between checking for existence and writing...

    Read more →

    Using supervisorctl with linux permissions but without root or sudo

    by  • 28 May 2013

    I love supervisord, it’s been a fantastic way to manage things like gunicorn and celery processes. But I didn’t like that I needed to use sudo to restart a running server, e.g.: sudo supervisorctl restart todaysmeet-web A quick look through the docs didn’t reveal how to fix this (it’s there but not in a...

    Read more →

    Quo Vado?

    by  • 8 May 2013

    “Where am I going?” I didn’t intend to be annoyingly coy or secretive. There is no bag, and certainly no cat to let out of it. I’m not going to some super secret stealth startup. I’m taking some time to spend on some of my own projects. TodaysMeet and BundleScout are the big ones....

    Read more →

    A New Chapter

    by  • 30 April 2013

    Nearly four years ago, I moved West to join Mozilla. About a year later, I moved East to come home to New York. I consider those two of the best changes I’ve ever made. Now Spring is here again and it’s time for another change. Last week, I announced to the company that I...

    Read more →

    Our Daily Errors

    by  • 4 April 2013

    Over the past 24 hours, support.mozilla.org has recorded a few dozen errors. That’s pretty good. In the past three days, it’s more like a few hundred. These are sporadic, little, intermittent errors that, for most practical purposes, don’t happen. The odds are so low that you only see them when you look at all...

    Read more →