Teamwork and Crosswords

Allie and I have been doing a lot of crosswords lately. While half the fun is yelling at Will Shortz when a clue is weak, the other half is in working together to solve a problem. And in the process, I’ve noticed something I find interesting. Teamwork can be about unlocking each others’ potential. In …

Code Folding

Nick made a comment about code folding, and I promised him an essay. Here it is. It’s not very long. I like code folding. When I know a mature project well, and the modules are kinda big, I want to open a file and not be distracted by seeing things I’m not working on. I …

The Historiography of Git, or How I learned to stop caring and love writing history

This post was occasioned by hearing about the experience of pairing with Nvie, and then talking with Owen about how he does similar things. Git is notorious for allowing you to rewrite history, which rubs some people the wrong way, but which I and some others think is actually pretty neat and useful, if you don’t …

Compassionate work

A friend of mine has said that he strives, in every job he has, to make himself obsolete on his own terms. Then, he can move on to a new role, having left his job better than he found it. Another friend of mine has been complaining about someone at his work who is actively …

Oh-my-zsh, virtualenvwrapper plugin, errors when you cd

(Because a few people have been having this problem.) Have you recently updated oh-my-zsh on your OS X install? Do you use the virtualenvwrapper plugin? Are you seeing “workon_cwd:6: command not found: realpath” whenever you try to cd? There’s a simple fix: brew install coreutils. That will provide the realpath command.

Lessons for a freelancer from time in an office

A year and a season ago, I took a new job, working at a small start-up in Boulder that aims to help people reduce home energy use. Last week was my last day there (I’m moving on to work with a team doing face recognition), and so I thought I’d write up some of what I learned.

This all comes from the point of view of someone who has mostly lived in a freelance mode, beginning with controlling my own schedule while I was high school age. So I’m unaccustomed to showing up at the same place regularly on someone else’s schedule. I’m unaccustomed to a lot of components of office life. And that’s exactly why I took the job in the first place. Continue readingLessons for a freelancer from time in an office

Git Shortcuts

I talked about how I use git. Let me talk about how I actually use it. I have an extensive [alias] section in my .gitconfig. Any sufficiently frequently used command gets abbreviated to two (or occasionally three) characters. st = status ci = commit co = checkout cob = checkout -b di = diff amend = …

Double-Entry Timekeeping

I can credit Ben Warren with the phrase, and the particular expression of the idea. Like double-entry bookkeeping, you don’t just track one value, you track in and out from each account separately. In particular, you track the time you’ve allocated to tasks, and you track the time you’ve spent on tasks. One thing I’ve …

How I git

Git is not a version control tool, right? It’s a graph-manipulation tool that you can use to support version control methodologies. So this is how I use git to practice version control. I’m going to be very explicit throughout this, using long forms of git flags and commands, and avoiding many shortcuts that I actually …

In Defense of the Last 20%

There’s an idea right now, in our culture, that if you can at least get something to 80% done, you’re doing well. You see this all over, in the start-up world especially, in ideas like minimum viable product, Agile’s ethos of always being able to push a new release, and so on. I think that …