2012-05-01

tim: Tim with short hair, smiling, wearing a black jacket over a white T-shirt (working)
2012-05-01 06:40 pm
Entry tags:

TMI: or, toward a blog about Rust hacking

In general, I don't blog about work. That's not a matter of policy, just that the topics that move me enough to cause me to sit down and write for a couple of hours tend not to be work-related. You might say that I should question the line of work I'm in because of that -- and believe me, I have. On the other hand, I do stay up late working because I have to know the solution to this problem rather than because there's a deadline (deadlines?) on a regular basis. And when I do find out the solution, I'm usually too tired to write about it. So there's that.

There are plenty of really good reasons to document what I do as I go along, though, and all of those reasons are centered around me rather than other people. Thus I'm going to start trying to write for an audience of one. But if I write here, in my public blog, rather than in a private text file, I'll be forced to write clearly enough that others might have a chance at understanding it -- which means I'll probably be able to understand it later myself, even if no one else ever does. So there's also that.

Some of my colleagues do a really great job writing beautifully detailed, explanatory posts, but I'm not going to try to do that, because it's just too intimidating. Instead, I'm going to write as close to every day as possible (though I won't beat myself up too much if I miss a day), as much as possible, and as uninterestingly as possible. You have been warned.

Today, I went back to working on implementing classes in Rust, as I've been doing for more or less the past four months. (The last two days of last week, I took some time to do bug triage and to fix what I thought was going to be an easy bug (to give myself that key little dopamine-surge of accomplishment) and turned out not to be.) When I left off working on it before, I was in one of those truly gruesome states where you're trying to add support for a new feature -- in this case, the ability to cast a class to an interface type -- but it breaks everything and you don't know why. In this case, I was trying to unify the code that handles implementations of interfaces (existing code), and classes that implement interfaces (new code), so I guess I did know why it broke (I messed up how interfaces got typechecked), but not how to fix it. Cut for length )