ezyang’s blog

the arc of software bends towards understanding

January, 2010

Workflows in Git: Single-user style

Nelson Elhage wrote a post about Git and usability, in which he discussed one of the reasons why Git seems to be so confusing to users who have come in straight from a Subversion-style workflow. When discussing this issue offline, one of the things that came up was the fact that, while Subversion imposes a […]

  • January 29, 2010

Arcadia Rising posters

As treasurer for the Assassins' Guild, I often have to beg and plead GMs to get posters for their respective games, since the UA Finboard has a requirement that, to get funding for events, you need to supply posters. So I was quite surprised, amazed and impressed by Lauren Gust's work on posters for Arcadia. […]

  • January 27, 2010

To the right! Autocompletable names

In my younger days, the stylistic convention of MM/DD/YYYY confused me; why on earth would people opt for such an illogical system that placed months, days and years in non-hierarchical order? Surely something on order of YYYY-MM-DD would make far more sense: this format is sortable and, all-in-all, quite logical. Eventually, though, I grudgingly accepted […]

  • January 25, 2010

Hacking git-rerere

An unusual workflow for Git, one that Wizard employs extensively, is when a single developer needs to perform merges inside lots of working copies. Normally, a maintainer would pull from the branches he cared about, and offload a large amount of the work to those who were interested in contributing patches. However, Wizard is using […]

  • January 22, 2010

Too many leftovers!

A bad habit in the domain of cooking that I've picked up from being a starving college student is the propensity to cook all of the ingredients I have on hand. Combine this with the fact that vegetables make a lot of food, the fact that you were planning on feeding 15-20 people (but realistically […]

  • January 20, 2010

Five advanced Git merge techniques

Have you ever performed a merge in Git and not have it quite turn out the way you wanted it to? For example, you accidentally converted all of your UNIX line endings to DOS line endings, and now the entire file reports a conflict? Maybe you see a conflict that you don't really care about […]

  • January 18, 2010

Typeclasses matter

Typeclasses matter. In fact, I'll go as far to say that they have the capacity to replace what is traditional object-oriented programming. To understand why, however, we have to review the traditionally recognized benefits of object-oriented programming: Organization. For C-inspired languages that don't have a module system, this is so incredibly important; without a discipline […]

  • January 15, 2010

Sup: Mail for Nerds

Update (September 1, 2012): This post is a bit out of date. I'm planning on writing an update, but the main new points are: if you have an SSD, the startup time of Sup is really fast, so you can easily run it on your laptop and you should use the maildir-sync branch, which gives […]

  • January 13, 2010

First impressions of the VX-8R

The VX-8R is the first Ham radio I've ever owned; I have used the VX-7R before, but the extent of my usage of it was someone handing me the radio is "Here is the radio preconfigured to the frequencies you'll need; here's how squelch works; here's how to debug common problems; don't fuck it up." […]

  • January 11, 2010

Why Haskell? The big question

Language selection is a contentious thing, and often a compromise between "pick the right language for the job" and "use as few languages as possible to increase mindshare." Google, for example, limits the programming languages their employees are allowed to use; and I have come to associate picking whatever language you want for your own […]

  • January 8, 2010