[ Content | Sidebar ]


November 18th, 2014

We’ve been without dogs for almost three years now; Yosha and Zippy were wonderful, but we wanted a bit of space. Not too much space, though: we knew that we’d be getting another dog or two in a few years, it was only a question of when. Last winter, we took advantage of of not having dogs in the house to remodel the kitchen, and this summer we remodeled one of the bathrooms; with that, the house was in good shape, so we figured the disruption was over and it was time to get another dog.

Another poodle, to be specific. Partly because they’re a breed that Liesl isn’t allergic to and partly because, well, poodles. Maybe we’d even get two poodles: having both Yosha and Zippy was great, though it was also fine that Zippy came along three years after Yosha.

My back troubles threw a bit of a wrench in the plans: getting a dog while I couldn’t even sit down without being in pain didn’t sound too smart. But after a couple of months of being free from pain, it seemed like time.

And we didn’t have any external commitments this past weekend, so towards the end of last week we started looking around. Rescue dogs were one possibility, but there were almost no poodles around in local shelters. We got Yosha and Zippy at a pet store, but, what with the bad rap that puppy mills have, pet stores are a lot less likely to carry dogs these days. So we searched a bit for breeders; poodle breeders, as it turns out, are not very good web site designers / SEO experts, but the American Kennel Club had a handy search page.

A couple of phone calls later, we were talking to a breeder named Oksana Fagenboym who had five puppies over in the east bay. They were standard sized poodles, which was larger than we were tentatively thinking, but we figured we might as well drive over to meet them on Saturday.


And her dogs were amazing. The grownup dog we met (their mother) was very nice, and all of the puppies were fabulous: energetic (but not over-the-top so), friendly, affectionate, great to be around. So, in short order, we decided that we’d made the right choice: based on what we were seeing, it was pretty clear that these were all great dogs, the only question was which one. (And one rather than two was the right number: we need to figure out how much space one standard poodle takes up before adding a second.) Honestly, that last choice was mostly at random, but we ended up with one lovely puppy.


So we returned with a more populated car than we arrived in. We named him Widget, and he’s fabulous. Friendly, cuddly, but surprisingly mellow for a puppy and surprisingly well-adjusted for a poodle. (Admittedly, Yosha and Zippy were both distinctive in that last regard, so our standards may not be well calibrated.) He was a bit quiet and unsure while dealing with the transition, but he handled it remarkably well, and three days later he’s settled in great.

And it’s super nice at a primal level, too: having another warm, friendly body who’s there and who is glad you are there is very comforting indeed. I missed having poodles around, good to be restarting that, and I’m looking forward to learning more about Widget as he grows up.

We have many good years ahead of us.

is it time to upgrade consoles?

October 25th, 2014

When the new consoles came out, I had zero interest in getting one: I hadn’t been playing AAA games much, and nothing on the new consoles caught my eye at all. And that continued for quite a long time: until I started playing Tomb Raider a few weeks ago, I hadn’t played a newish console game since Papa & Yo in January 2013, and I hadn’t played a newish AAA console game since Dragon Age II in October 2012. (And of course what I like about both of those was how they stepped away from the standard AAA space!) It’s a year later, and I’d been pretty much in the same position: if you’d asked me a month ago, I would have had no idea when or if I’d get machines from this generation of console.

But a few things have made me change my stance recently. One is Tomb Raider: I’m glad I played it, and it’s reminding me what I like about console gaming. The second is Rocksmith 2014: it was announced for the Xbox One with DLC portability, so if I switch over to the Xbox One, I’ll be able to stop using the 360 except for special occasions. The third is Dragon Age: Inquisition: I’d assumed I’d play it on the 360 so I could import my save files, but they’re handling imports through the cross-platform Dragon Age Keep, so there’s no reason to stay on the same generation, as far as I can tell. (Actually, I’m a little annoyed at how they’re handling save games: if I’m reading the FAQ correctly, there’s no save file import into the keep, I’m supposed to remember my choices and enter them in by hand? Ugh.) Finally, Brendan’s post on Alien: Isolation has gotten me quite curious about that game, so that’s another game I’d just as soon play on the new generation.

So, basically: I’m assuming that I actually will play another AAA game soon, so I might as well do that on a new console so it will look spiffy? Right now, games I’m interested in are still being released on the older consoles, but at some point that will change, so I might as well upgrade now. But then when I started looking into that, I got a little less sure: I’d forgotten that the Xbox One was still $400, there’s the purchase paralysis from my not being sure if I want the Kinect version, and based on last generation I’ll certainly be able to get a console for cheaper if I wait a year and it might even be a smaller, better-designed version of the same console. And, also, while I don’t think I’ll particularly mind losing my progress in Rocksmith 2014, there are a few songs I like that I’ll have to unlock again; if I wait another year, maybe I can switch consoles at the same time as another Rocksmith comes out? (Or I might pause playing guitar at some time over the next year, too.) All of these make me think that maybe I should stick with the 360 for a while longer, waiting for things to shake out.

I dunno. I’ll probably end up getting an Xbox One when Dragon Age: Inquisition comes out; but I am annoyed at the save game thing, so if there isn’t save game portability and if Inquisition ends up feeling more like the first Dragon Age than the second one then I might just wait a while on that game. And if I do that, then I might as well wait for a price drop: there are enough interesting games out there on consoles I already have that I won’t be bored…

interviews and whiteboard coding

October 22nd, 2014

I talked with a friend of mine at Agile Open California a couple of weeks ago who was bemused by an interview he’d had recently: the company had asked him to do a programming exercise in advance, which he enjoyed and was looking forward to talking about with them during the in-person portion of the interview. But when he showed up, they didn’t talk about that exercise at all, his interviewers just threw whiteboard coding questions at him. Which didn’t impress him: why would they pass up an opportunity to discuss programming in more depth and in a more concrete way in favor of an exercise that is shallower and less representative of real programming work?

I’ve always been at companies that spend most of their interview time doing whiteboard coding; but I’ll have to agree, that doesn’t make a lot of sense. I do spend some time asking behavioral questions, and some time asking questions about architectures of systems that people have been involved in; but the latter also feels artificial to me, because when I get an answer that I don’t find informative, I’m never sure if it’s because the person in question just isn’t good at explaining things or if they don’t really understand the pros and cons of the system in question in depth. Also, we want to let a good number of people talk to the candidate and to be respectful of the candidate’s time (both in person and at home); both of those lend themselves to relatively short questions. So I’ve found it too easy to end up with whiteboard coding, and if I’m not careful, with pretty simplistic whiteboard coding at that.

So yeah, I should try to be a more thoughtful interviewer. But I should also try to be a more thoughtful interviewee! Because: I’m in general quite good at whiteboard coding, and I also tend to think I’m a good programmer, but I’m not at all convinced that my programming strengths have much to do with my ability to do whiteboard coding. I think I’m a good programmer because I’m good at refactoring, good at testing, good at incremental development, good at getting at underlying structures in code; whereas I’m good at whiteboard coding because I had lots of practice with math contests teaching me to quickly come up with simple algorithm answers. I enjoy whiteboard coding fine on its own, and I also enjoy performing well on tasks, which means that I come out of interviews like that with a bit of a buzz; but I’m not at all convinced that companies which fill their interviews with questions like that are ones where I’d be happiest or where I’d learn the most.

So maybe the next time I’m looking for a job, I should pay closer attention to the kinds of questions I’m asked in interviews. Because if I don’t do that, I’ll end up selecting for companies that are, in turn, selecting for a very narrow profile. (“Top” schools in a conventional sense, thinks quickly on their feet in a sort of jousting fashion, has a startup pedigree.) And the fact that I happen to fit that profile well doesn’t mean that that’s the sort of job I should be looking for, whether for enjoyment reasons or for “stretching myself” reasons.

trying to make sense of the apple watch

October 19th, 2014

Apple showed off the Apple Watch last month; they were the first company to really figure out smartphones, they were the first company to really figure out tablets, so are they going to do the same with smart watches? And, if so, what does that mean? We’re obviously quite some distance away from knowing the answer to that, but still, I’m really curious what’s going on here.

The obvious part of the watch story is: it extends their range of screen sizes. Which makes sense on its own, but it’s particularly interesting right now after the iPhone size increase: even with an iPhone 6 I’m noticing that I use my iPad at home significantly less than I had been, and the iPhone 6 Plus is surely going to eat significantly into iPad Mini sales. But the 6 Plus is also too large to fit into most people’s pockets; and, as my daughter frequently reminds me, even the smaller phone models are too large to fit into the pockets of half the people on the planet. So there’s definitely room for a smaller screen that’s always accessible.

A smaller screen is only useful if you can do something with that smaller screen, though! Or, rather, with that smaller device: smart of Apple to think about how having something on your wrist enables a wider range of touch notifications. Still, there’s the question of what the job is to be done: I sure don’t know the answer there; when I think about how I use my phone, there’s very little there that I would want to do on a watch. And, watching the Apple event, I kind of think that they’re not sure either: there’s a ridiculous number of icons on the screen, and while some of the apps seemed cool, the presentation didn’t do a good job of telling a focused, compelling story around the watch. (See episode 17 of Exponent for more complaints about this, e.g. their alternate version of a product introduction 56 minutes into the podcast.)

What I’m not sure is to what extent having a clear job to be done matters. Or rather: I’m sure that it does matter, having a compelling story and vision is one of the reasons why Apple’s entries into product categories are so much more effective than other companies’ entries. And maybe the lack of a compelling story is part of the reason why the iPad has stagnated? But the flip side is: Apple’s iPhone event told a great story about being a great iPod, a great phone, and a great web browser, but that’s not where I spend most of my time on my iPhone these days, and in fact I almost never use those first two pieces of functionality. Instead, there are a handful of super compelling apps that I use, which the original iPhone didn’t even allow!

So maybe predicting the jobs to be done in advance isn’t what’s so important. What’s important instead is perhaps coming up with a few good interaction models, coming up with some examples of how to use those interaction models, and then watching what other people do with them? And the watch does have a couple of interesting interaction methods, I suspect Apple will do a good job of providing apps that show users and developers what’s possible with those interaction methods, and hopefully the app store will do the rest.

And opening up possibilities for third-party developers is something where 2014 Apple is on fire: this year’s WWDC was super exciting with the range of technologies introduced, with them bringing those technologies to both iOS and OSX whenever that made sense, with a significantly increased ease of communication both between applications and between devices, and a whole new programming language to build on. So tools are there for developers: and in particular tools for communication between different classes of devices are going to be very important for the Apple Watch, especially on early cell-less models. I have no idea what will blow me away on the watch the way Tweetie did on the iPhone, but I have a lot of confidence in both the developers and the tools.


But the announcement interests me more because of the context it puts the Apple Watch in: the announcement puts the Watch in a watch context and in a fashion context. A lot of the tech press coverage seemed bemused my the amount of time the presentation spent on the watchiness of the Watch, in particular on the astronomy-focused watch face. But I like the respect that shows for tradition: if you’re entering an arena whose roots go back thousands of years, then why not make a nod to that history? It’s a welcome counterweight to the Silicon Valley tech arrogance that thinks that we can march in anywhere and show people how to do things: let’s acknowledge that we’re working in a context, and that that context has value.

And the fashion context of the watch is even more interesting. Again, returning to Silicon Valley norms: we’ll look up our noses at conventional versions of fashion, you’ll do better in an interview if you’re wearing a scruffy t-shirt and jeans than if you’re wearing clothing that sends an overt signal that you spend time focusing on your choice of attire. (And pity the programmer who shows up at a job interview wearing a suit or wearing makeup and perfume.) This is, of course, fashion as well, and it has the potential to be a particularly oppressive one: not fashion as self-expression but fashion as insistence on avoidance of certain types of self-expression or signaling.

Apple’s been in an interesting position here. They clearly care a lot about the design of their objects in all senses: how it feels to use them, to look at them, to touch them, and yes, to be seen with them. The iPhone 4 was amazing to feel, I love the curves around the edges of the iPhone 6, the MacBook Air and recent MacBook Pros have been gloriously thin, and I still have fond memories of the second generation iPod Nano. But Apple’s small product line, their remarkable hegemony, and the desire to always buy the most recent version for purely technical reasons combine to mean that you don’t have a lot of choices compared to any healthy fashion environment.

They’ve taken some steps in that direction. Going back a bit, the original iMac came in a range of colors; they’ve generally stepped away from that in their computers (though I wouldn’t be surprised at all if color choices start reappearing), but they had a decent range of color options in their cheaper iPods, they added color choices last year to their cheaper iPhones, and they’ve started expanding the range of color options in their more expensive iPhones as well. And, moving beyond color, you’ve been able to purchase iPods in a lot of shapes and sizes over the years, again with more experimentation on the cheaper range of the line. I get the impression that Apple is now much more willing to produce a range of options for similar devices than they have been in the past; I’m not sure why, maybe it’s simply an issue of focusing on that sort of choice, maybe they’re now more confident in their ability to forecast demand, maybe they have short enough manufacturing cycles to be able to respond to unexpanded demand?

Still, there are limits to the amount of styling choice that Apple allows. Part of that comes down to the very nature of the iPhone: by its nature, one side of the device is going to be dominated by a big piece of glass. And the watch suffers from the same problem: the display is important, the display is also featureless. (At least if it’s turned off: both devices, when turned on, can be personalized much more than a traditional physical device!) But part of that is Apple’s opinionated nature.

Like I said, though, I think that aspect of Apple’s nature is changing: they’re not going all grab bag, but they’re producing a wider range of options. That certainly is the case with the watch: they’ve never launched a product line with that number of choices. Which works well with the nature of a watch: it’s out there on your body for you and other people to see (instead of being hidden in your pocket most of the time), and the strap is much more visible than the back of a phone is.

So: lots of choices, compared to the norm for Apple products. And not just choices of colors, which we’ve seen on a few different product lines of theirs, but the different straps differ substantially in materials, in design, even going down to the level of how the wristbands close.

And, of course, a range of prices as well. Nobody knows how much the Watch Edition models will cost; the smallest reasonable guesses I’ve heard put it at $1500-$2000 based just on the cost of the metal, but the guesses pegging it at $10,000 based on comparable models in the current luxury watch market seem just as well grounded to me. And, on the one hand, the idea of a $10,000 Apple Watch boggles my mind; but on the other hand, there’s a part of it that I like. I totally get where Marco Arment is coming from when he said on an Accidental Tech Podcast episode that he can’t imagine owning one or seeing any of his friends own one; but to me, that’s mostly a reflection of the insularity of the tech scene. We’re supposed to care about certain aspects of goods and not supposed to care about other aspects of goods, and that approved list of aspects comes from social norms, social norms that are very much influenced by gender and cultural norms, including valorization of stereotypical geek behavior. (Insert snarky comment about “meritocracy” here.)


Still: $10,000 sounds like a lot of dollars to me, too, especially for an item with such a short lifespan. I don’t actually expect the Edition models to be that expensive, but I’m also sure that the Edition models will be priced such that I’m extremely unlikely to get one. But I do wonder if there’s a way to soften that blow.

As I said above: one of the reason why Apple has such a limited range of designs is that there’s only one or two designs available for a given device at any given point in time. But, over time, designs can differ quite a bit more: look at all the different versions of the iPod Nano or iPod Shuffle, for example. So I still think the second generation iPod Nano or the iPhone 4 look great; unfortunately, that doesn’t translate into a range of currently viable options, because I wouldn’t want to buy a new phone with years-old technology.

With the watch, though, I think the story might be a little different: the fact that it has to fit on your wrist means that we won’t see iPod Nano / iPod Shuffle levels of form-factor experimentation, and it might even guard against the size bloat that we’ve seen on the phones. So I expect the primary functional differentiating factor over generations of watches to be the electronics inside, with perhaps the quality of the screen and sensors a secondary differentiating factor.

In a recent episode of the Talk Show, John Gruber and Ben Thompson talked about the possibility of having the watch be upgradable; I hadn’t even considered that idea before they brought it up, but it does seem doable. By far the fastest changing component will be the electronics: the CPU/GPU, the memory, the storage, the radios. (Plus the battery necessary to power all of that!) But the one constant in that realm is that those electronics will get smaller at least as quickly as they’ll improve in quality: is it really outlandish to consider the idea that the electronics might be modular enough to be able to fit the 2016 electronics, or even the 2020 electronics, into the 2015 watch chassis? It would be a significant design / engineering challenge, but if you start with that as a constraint, it should be doable. (Heck, for all I know that’s why the watch seems like it’s a little thicker than one expects a 2014/2015 Apple product to be.)

If the watches are upgradable, suddenly high prices make more sense. They make more sense from a value-for-the-price point of view, but they also emphasize the quality and fashion stories that the expensive models are telling. I imagine Apple will sell only a limited number of styles in any given year, but I also imagine that those styles will change significantly every two years or so, at least at the beginning. That means that there will be people who say “the Apple Watch 3 was the best-looking model” and who want to hold on to theirs for years or will be willing to spend quite a lot of money to buy a second-hand one once they’re no longer available. I doubt that that would be enough to convince me to buy an Edition watch (though who knows, I’d probably consider it the next time I’m at a startup that gets bought, the Rose Gold version and the Gold and Red versions of the watch are gorgeous), but upgradeability combined with the styling of the stainless steel and the Milanese loop would be enough to push me into buying the regular model over either buying the Sport model or not buying a watch at all.


I’m not at all sure that the watch is going to be upgradable: that would be quite a constraint for Apple to put themselves under, and maybe just having the bands work across generations (which I’m pretty sure will be the case) will be enough of a nod towards longevity, given that the bands are the most visible part of the devices’ style? But the Apple Watch does seem like it could be an interesting step from computers as functional, transient objects towards computers as objects that are integrated into the richness of our lives.


Some posts and podcasts on the Apple Watch that I’ve found interesting:

desert golfing

October 14th, 2014

I really don’t know what to make of Desert Golfing. I spent a while playing it, it has the sort of “one more level” feel that games based on micro levels lend themselves to. But the levels veered around so much: most are straightforward, a few require frustrating repetition, and there’s just not that much in the middle. Those ones in the middle weren’t absent, to be sure, and there was also a learning curve around minimizing the chances of bad outcomes, but still: not super rewarding.

And then there were surprises. The biggest of them, of course, is the permadeath levels coming out of a random number generator; but there was also the occasional level decorations that showed up, the gaps that started appearing, the bizarre leaderboard appearance.

I dunno. There’s something interesting there, and I’m happy enough to have played through 1945 holes. But it’s time to find something else (or return to an old friend) to fill in the gaps.

the xp practices

October 12th, 2014

Probably the most important hour I spent while I was transitioning out of teaching and into programming was spent attending a talk on extreme programming. Ever since then, the XP approach has been my default way of thinking about how to produce software; I’ve never been on a team doing XP, but I’ve dived headfirst into most of the practices. Still, I attended that talk twelve years ago, and I’ve got a lot more experience now than I do then; what do I think about the XP practices these days?

Of course, the XP practices don’t come out of nowhere: XP has values and principles as well. The values are Communication, Simplicity, Feedback, and Courage; hard to argue with that, but they’re also a bit general for me to say much about them. The principles are more interesting to me: Rapid Feedback, Assume Simplicity, Incremental Change, Embracing Change, and Quality Work. I could probably still write a post about each of those, and I keep on coming back to Incremental Change in particular, but they’re all super important to me in really concrete ways.

So the principles are a huge part of what makes XP important to me: but equally important is the concrete guidance that the practices give. Their guidance was particularly important when I was getting started; what do I think about them now?


The Planning Game

This is a funny one. It’s a big part of Scrum, a methodology which dominates discussions of agile; and wow, it’s really usually not done seriously. There’s this ceremony around estimating and committing to what will be in a release: but estimating is super hard, commitment is a serious word to throw around, and I just don’t see either of those treated the way I’d like.

The thing is, though: I think not treating estimating seriously is the right choice, I would just prefer to be up front about that. The Kanban focus on figuring out what to do next makes a lot more sense to me: how often does it really matter exactly how much you’ll get done in the next week or two or four? And, if you’re going to treat commitments seriously in a fixed iteration context, then either you’re a lot better estimator than I am (and I’m actually pretty good) or you’ll need to sandbag; I don’t like either of those choices.

I learned a lot from thinking about the Planning Game and trying it out. But still: not my favorite practice any more.

Small Releases

Another funny one, again partly because of its appearance in Scrum. A lot of Scrum teams seem to gravitate towards four weeks; in some contexts, that probably seems like very small releases, but it seems way too big to me. But once you start pushing it to one week, it gets a lot more interesting.

And, of course, it gets even more interesting once you push smaller than that: it starts raising the the question of whether discrete releases even makes sense. These days, I think that moving towards continuous deployment is better; small releases are a good stepping stone, but only a stepping stone.

But there’s another way in which I move away from small releases in the opposite direction. Part of the XP idea (at least as I see it) of small releases is that your released code is Done Done. But no matter how good you are at testing whether your code matches your intention, code isn’t Done Done until you’ve seen how customers react to it and you’ve adapted accordingly. Also, as somebody who works on backends of distributed systems: I wish I were better at predicting complex system behavior via tests, but I also think that some aspects of how they’ll behave in production are difficult to understand in advance.


Do you understand this? I don’t.

Simple Design

Now we’re getting good. Do the simplest thing that could possibly work; follow the four rules of simple design. Some people like to plan details of their design in advance, and there are many such people whom I have a lot of respect for; but I really like slicing design down into small chunks, and the guidance XP gives in that guard.


I was surprised that the principle is simply “Testing”, not “Test-Driven Development”: they’ve always been very closely linked in my mind. At least just calling it Testing has the advantage that you shouldn’t restrict yourself to unit testing. At any rate: I love TDD, and I strongly support testing more broadly even though my brain is less attuned to other forms of testing.

And I’ve always had coworkers who thought TDD sounded like a good idea; I’m generally furthest along the TDD spectrum at any job, but it’s always the case that unit tests are there when I show up and that many of my coworkers think honest-to-god TDD (as opposed to just writing unit tests at some point in the process) is a good idea. Which isn’t something I necessarily would have predicted, and maybe I’ve just gotten lucky with my coworkers, but it makes me happy.


Another practice that I love. It’s the mathematician in me: the desire for elegance, and the desire to get from place A to place B via a series of small, well-defined steps. (That’s something I like about TDD, too!)

Refactoring is something that gets talked about a lot at jobs I’ve been at, too, but in a much less precise way: people say “refactoring” when they mean “cleaning up the code”. That’s important, of course, but it loses something without the discipline of Fowler-style refactoring. But even there I see good things: a bunch of my coworkers are in the habit of generating pull requests that are best reviewed commit by commit, which gets at the heart of this benefit. (And which applies to situations where you’re changing behavior, too!)

Pair Programming

I just don’t know about this one. It mostly makes sense to me; I’ve basically enjoyed it when I’ve done it; but I still don’t seek it out. I’d be interested in working at a place that really is devoted to pair programming, especially if it’s part of the full XP package (and especially if the team pairs Belshee-style), but I won’t particularly shed a tear if I don’t have that experience.

My current job does at least have a quite good code review culture, and actually my previous job did as well. So that’s something. It’s probably a sign of my arrogance that I wasn’t big initially in pushing for code reviews, but now I like them a lot.

Collective Ownership

I love this one: I’m a very nosy person. And, just as I’m surprised how much interest in TDD I see, I’m equally surprised at how rarely I see collective ownership. It seems like startups (and maybe larger companies, for all I know) like silos, and frequently continue to like them quite a lot even after I’m there. (Though I have had some successes in breaking down silos, too.)

My view of this is getting more nuanced, though, because getting collective ownership to work right is linked with having small teams with clear boundaries. In the past, I haven’t always pushed for small teams, but now I appreciate them more; but I’m still not very good at figuring out exactly what those boundaries should be like, or how to make the boundaries work well with getting as much business value as possible.

Continuous Integration

This is a slightly funny one to see called out: not quite as much of a basic ground rule as, say, version control, but still. Though there are still subtleties here that I don’t understand how to work out well, especially on largish projects with lots of modules.

40-Hour Week

I think it’s a good idea. I’m not sure how much of that is for humane reasons and how much of that is for effectiveness reasons; I would like to focus more on making those 40 hours as high quality as possible.

On-Site Customer

This feels to me like it’s morphed into a business/engineering split, without the assumption that the business side is an actual customer. Which, on the balance, I think is a good thing: it seems to me to devalue the art of product development if you assume that being a customer is the key attribute to being good at picking stories to work on.

I’ve seen that split done well at Playdom; in other places I’ve been, product people haven’t been integrated into the teams.

Coding Standards

Part of me wants to treat this as the same sort of “well, duh” attitude as Continuous Integration, but I think there’s still a decent size contingent of people who don’t see the point of this one. My attitude has always been “what’s the point of not doing this one?”; fortunately, teams that I’ve been on have agreed. Still, it seems a bit out of place these days as a basic practice: if you’re doing Pair Programming or even just Collective Ownership, then of course you’ll adopt Coding Standards.


Good stuff; it generally holds up quite well fourteen years later. But there are also questions that I would ask or directions that I would move in a post-XP world, and in in a world of evolving distributed systems. In particular, I have questions around planning, iterations, and the question of being done: what are the benefits of iterations, and are iterations the best ways of getting those benefits? I like slicing things down into small chunks, I like prioritizing those chunks, and I like having a notion of what it means to be done with those chunks; I’m much more dubious about the idea of grouping and synchronizing those chunks, or of estimating how many chunks you’ll fit into a period of time. So the Kanban approach of focusing on prioritization makes more sense to me.

And, as I said above, I’m more dubious about the notion of a definition of Done than I used to be. The underlying assumption there is that you can you can predict in advance how code will behave in production, and I don’t believe that you can reliably predict either how customers will react to code changes or how large distributed systems will react to code changes. (Though there’s more scope for the latter than the former.) So I’d rather embrace that uncertainty, structuring code pushes as experiments; that means focusing on learning after the code push, and on making the code push as resilient as possible in the face of surprises. Those are important enough that I’d like an approach that calls those questions out explicitly, which requires a richer (and at least a two-phase) notion of Done.

There are other details about the practices that I’m not sure about: e.g. these days Continuous Deployment seems more interesting to think about than Continuous Integration. But if I step back one level, the XP Principles remain as rock-solid an inspiration as ever. Rapid Feedback; Assume Simplicity; Incremental Change; Embracing Change; Quality Work: I love all of those. And I imagine that if I come back a decade or two later, I’ll still find those principles motivating me.

phoenix wright 5

September 30th, 2014

Before playing Phoenix Wright 5, I replayed the first four games in the series. And it’s an excellent series, one that I’m glad I replayed!

The fifth game in the series is a good game, too. It’s changed mechanically, though: they dramatically reduced the number of situations where it was possible to be stumped about how to proceed. Which is something that, on the whole, I think the series was good about, but it was nonetheless an issue: I think they balanced that quite well in the first game, but even so there was one place in the first game where I got stuck and needed to look up help, and I seem to recall that happening on my first go through that game as well. And, in later games in the series, there were more places where I got stuck. So, while most of me thinks it’s a little too streamlined this time, part of me realizes that just one bit of frustration outweighs a lot of streamlining. I still wish they’d let me look around in the environments more (no more stepladder conversations?), but still: a helping hand is appreciated.

This game handles the cast of characters a little differently: three lawyers, each of which has their own special mechanic. The new mechanic that Athena adds is fine, and I appreciate the fact that the judge never penalizes you for mistakes during the new mechanic, but still: my sweet spot there was the second game, the Magatama was the added mechanic that fit in best with the gameplay. (And this game really misused the Magatama mechanic, unfortunately.) With the first game only a little behind the second game in that regard: the core gameplay of investigating and cross-examination is very solid. The cast of characters is also okay but not great: I miss Maya and ghost Mia and Pearl, the detective has nowhere near the soul that Gumshoe had, and of course no other prosecutor begins to compete with Edgeworth.

It’s the first 3DS game I’ve played; I tried out the slider, and then I stopped once my eyes started hurting. I think that was just me needing a new glasses prescription, but I’m really not sure.

So: it’s a Phoenix Wright game; but it’s not one of the best in the series, and is arguably the worst in the series. But, it turns out, the worst in that series is still just fine for me.

I’m curious to see how Layton versus Wright is. Maybe I’ll replay Edgeworth 1 before that? (Liesl’s doing that right now, she seems to be enjoying it.) Heck, maybe I’ll even give Edgeworth 2 a try; my guess is that my Japanese isn’t quite good enough for me to really enjoy that game, but who knows.

when to move on

September 27th, 2014

Come next spring I’ll have been at my current job for four years, which means that my initial options will all have vested. The company is doing well; given that, I think it’s reasonable to think the expected value of those options is non-negligible. Or, in other words: the expected value of my total compensation is likely to go down noticeably next spring. Given that, it might well be a better choice financially for me to look elsewhere.

It might not, of course. I mean, just the language “expected value” pretends to a precision that is inappropriate; and, whatever that expected value is, leaving my job would cause the expected value of my initial options to decline, at least a bit. Don’t get me wrong, I don’t think my current company intends to try to pull a Skype or anything, but even setting that aside: companies frequently try to keep their current employees happy by reducing the effects of dilution on their stock (or otherwise inflating the values of that stock), whereas they don’t do that for past employees. Still, though, it at least suggests that I should start thinking about this; and changing companies might make sense just for portfolio diversification reasons alone.

Or for non-financial reasons. Because I don’t think of myself as a super money-driven person, though I’m certainly not about to take a vow of poverty. The end of my vesting period is really more of an excuse to re-evaluate what I’m looking for in a job: certainly doing that once every four years is not a bad idea! And, while I think my last job change was absolutely the right choice, I got swept along by external forces a little more than I would like. So, if I’m considering the possibility of changing jobs next spring, then now is the time to think about that: think about what’s important to me, and to think about what sort of process I might want to go through to increase the chance that I’ll end up in a good place.

And I’m certainly not at at ruling out the possibility that the best place for me might be my current job. That’s another reason to think about this now while I have quiet time: external recruiters are going to spin stories (and help me spin stories) about how the grass is greener elsewhere, so I need a countervailing force for that.


So: what is important to me? Recruiters and interviewers like to talk about how interesting the work they’re doing is, and how smart the people there are. And those are both important to me, no question; of course, if that’s the criterion, then my current job does quite well, I don’t have any complaints on either of those scores.

But I also think I’m, if not mellowing on either criterion, at least broadening. Sometimes I’ve gone into a job search with specific technologies (or at least technological directions) that I’m looking to explore; right now, though, I’m not feeling a particularly strong pull in any technological direction. Any problem worth solving is probably complex enough to be interesting in some way, I feel like there’s a fair range of problems that I’ve enjoyed in the past. (I’ve worked on a debugger, on a video server, on a Facebook game, and on log management; if there’s a common theme there, it’s not obvious.) I’m still somewhat picky about technologies, but even that’s more of an “I want to avoid having to use X and Y” thing these days (there’s no way I’m taking a job that’s focused on writing PHP code!) than “I want to work with Z and W”.

And then there’s the “smart people” theme. Now, I like being around smart people, and I’ve spent basically all my life around smart people; so yeah, that’s where I’m likely to be most comfortable. But I’m getting less and less comfortable: this desire for smartness seems to me to be excessively linked to dominance behavior and to a focus on individuals over teams. So you have rooms full of men arguing with each other, you have anointed architects who decide how things should be done, you have people fitting into small silos where they get to be the expert who wins the arguments in that area. Honestly, I actually enjoy some of that—I’m so used actively participating in and doing well in the arguments that I almost didn’t see them for years, and I can architect fine (but I’m nosy enough that I’ve never liked silos too much)—but that doesn’t mean that I think they’re good things these days.

I wish I knew how to feel out collaborative teams. It seems like something that it’s potentially possible to feel out while interviewing, but I also think that companies present themselves as less siloed than they actually are. (Or maybe I just ignore warning signs.) And it’s very difficult indeed when talking to recruiters: probably recruiters simply don’t know one way or another in the first place! There are also a lot of project management dysfunctions that I would like to be able to feel out, too.

Also, not to put too fine a point on it: sometimes the issue isn’t lack of collaboration, sometimes it’s plain old bias and discrimination. I’m getting pretty tired of hearing about a company, searching for their employees on LinkedIn, and finding out that there apparently aren’t any women working there in engineering. (And then, of course, going to their “About” page and finding that there aren’t any women in upper management, either. But hey, they have investments from fancy VC firms!) Really, Silicon Valley? Do we have to still be that way?


But I’m not even sure that even all of that is what’s most important to me. When I think about what makes me happiest about my current working situation, it’s frequently much smaller things. Like: I wasn’t that thrilled when we outgrew our Mountain View digs and moved to Redwood City, but Pamplemousse is amazing, I am so glad I can stop by there to get a croissant on the way to work. And, actually, the train ride itself has turned out well: it means that I have to get up noticeably earlier than I had been, but that hasn’t been a problem in practice, and I like having dedicated time to read each day. (But I’m also glad I’m only commuting as far as Redwood City, I’m pretty sure that San Francisco would be much more of a problem.)

And then there’s the fact that I can get a good Netrunner game at work a few times a week. I’m suspicious of companies that spend too much time talking about having fun instead of working, but still: I’d rather not work during lunch, and I think Netrunner (or other board/card games) is an excellent way to spend that time.

Most important to me, though, is: a job that I can go home from at the end of the afternoon. Not every day: emergencies arise, and I actually enjoy being on call, I learn a lot from that. But I want my regular pattern to be that I show up relatively early in the morning, work pretty solidly during the day except for lunch, and then go home to hang out with Miranda and cook dinner with Liesl.

And that last part certainly isn’t going to go away for the next job search. Miranda is a sophomore in high school, but I still have the great good fortune that she enjoys spending time with me and strongly prefers that I come home at a regular time. In less than three years, I won’t have the choice to see her regularly: I would be a fool to not do what I can to enjoy those remaining years with her. So when I see the Y Combinator president quoted as saying:

[S]tartups should look for their first 20 to 50 employees to be “maniacally dedicated” to the company and its products, and to “believe it’s bigger than themselves. They believe there’s a purpose to what they’re doing. That’s what inspires people to do great things.”

then my answer is: fuck that. I’m part of something bigger than myself, it’s called my family. And if there’s anything I’m going to be manically dedicated to, that’s what it will be. (And, honestly: carving out time for myself to pursue my own interests is pretty important to me, too!) But Y Combinator is influential, and the above attitude is far from isolated to them.


So yeah: I want an interesting job, and I want to work with smart people. But I’d also like to work with nice people, with collaborative people, and with people bringing different perspectives to the work. And I’d like to have really good pain au chocolat and games of Netrunner, and I’d like to be able to go home at the end of the day.

my first netrunner tournament

September 13th, 2014

About a month ago, I found that my current Netrunner decks were not only doing well when playing against friends, but doing well in a way where I felt surprisingly in control, like I had good options to guide the game in different situations. Still, I was always playing the same people (the same person, to be honest), largely against the same decks, so I didn’t really know how the decks were doing, how I was doing.

I probably should have given the decks a good try on OCTGN, but I just have not stayed in the habit of playing there: I’m not finding the time, and I’m always worried that something is going to go wrong with my networking setup. (Or more likely with Comcast’s.) So I decided to look for local tournaments instead; a local store called Game Kastle has a tournament once a month, it turned out, so I figured I’d give them a try.

Today was tournament day; I went, it was a lot of fun! It went five rounds, with me playing Corp once and Runner once in each round. I split three of them, lost both games in one of them, and won both games in one of them. In the round where I lost both, I was clearly the worse player; in the round where I won both, I was clearly the better player; and for the other three, I felt like I was the worse player but surviving pressure in one of them, and a little more in control against the other two. Which all added up to: I certainly felt like I belonged there, but I also have a lot to learn about the game.

Mechanics wise: it definitely felt a little more pressured than my normal games, but not horribly so? I didn’t go to time in any of my games, and I can’t think offhand of situations where I played the wrong move because of time pressure. I wouldn’t want to play against a clock all of the time, but having to spend an afternoon focusing more than normal was useful practice.

And it helped that people were super nice. (I’ve heard this a lot about Netrunner tournaments.) Basically, we all seemed to be responding to time pressure by helping each other out: people reminded me when I forgot to add virus counters to my Parasite, and I’d remind people to add Datasucker tokens after runs. Also, the tournament organizers were nice and generous, and even though I was in the middle of the pack, I did get an alternate art Aesop’s Pawnshop.

So: good choice! I’ll tentatively plan to go every month; if something else is happening that weekend, no big deal, but it will be there as a default. And now that I’ve tested this deck, try to work on more decks; I’ve bought yet another core set and another deck box so I can keep this deck assembled while trying out more experimental decks. And I definitely need to experiment more: I feel like I have a decent idea about traditional play based on what’s in the core set (and, incidentally, I find it heartening just how playable core set cards continue to be), but I need to get a more visceral feel for other possibilities.

the walking dead, season two

September 7th, 2014

(I don’t normally do spoiler alerts here, but given how recently this game came out, I’ll say: spoiler alert.)

When playing the second season of The Walking Dead, conversations felt very different to me than in the first season. When playing the early episodes of the first season, I treated conversations with a straightforwardly egotistical point-and-click style: I was either getting information or figuring out what branch I wanted to go down, and either way my choice was all about me and how others would see me.

About halfway through that season, though, my conversations got more nuanced: I stepped away from an instrumental view and started thinking about them more as, well, conversations. And conversations with a much richer potential flow than I was used to in a video game: in particular, I stopped exclusively seeing the timer as pressure that I would always respond to, and started seeing “don’t respond” as an affirmative choice. In real life, I wouldn’t always need to get my two cents in after somebody says something (though, to be honest, I almost always want to, but that’s a character flaw!); eventually, once the game helped me unlearn some habits, I realized that I could make the same choice here, and doing that occasionally made my interactions richer.

In Season Two, I made the “don’t respond” choice a lot more often. Because, over and over again, I got the feeling that the conversations really weren’t about me: they were about somebody else processing a horrific experience they’d just had that built on a sequence of prior horrific experiences over the previous couple of years. In a situation like that, they didn’t need me to inject myself, to make it about me; they generally needed me to listen and occasionally make supportive noises. (Unless, of course, shit was in the middle of going down, in which case that’s still what they needed but it wouldn’t help either of us right then for me to act like a therapist.)

Frequently, it wasn’t about me even when they were talking to me, accusing me. Kenny after losing Sarita, for example: for the second time, he’d lost his wife, and I’d not only been there while she died but had cut her arm off! So yeah, he’s going to be plenty pissed at me; he was really pissed at the world and overcome by grief, of course (he even admitted as much in the next episode), but right then, he needed to yell at me as a proxy for the world, and my yelling back wasn’t going to help.


So that’s one way in which conversations changed: so many conversations were tips of an iceberg with years of horror under the surface. Which is, more broadly, a way in which the second season differed from the first: in the first season, the apocalypse had just started, and you were in a narrative trying to hold onto hope. Whereas, in this season, the apocalypse was the new norm: we know that people who are here today may be gone tomorrow, we know that that may happen at the hands of zombies, at the hands of humans, or at the hands of a lack of resources. The new norm, but not a norm that we’ve learned how to deal with; indeed, not a norm that it’s clear it’s possible possible to deal with.

My Clementine was better at dealing with the new reality than most people, at least. I played her as a surprisingly self-aware and pulled-together child (which, of course, she is): people see her as a child, but rather than either giving into that or resisting that with protestations of how grown-up she is, she’ll respond in whatever way seems most likely to lead to a good outcome in the interaction in question. And not necessarily simply the best outcome for her personally: she realizes that sometimes other people need to hang on to a bit of normalcy, to treat kids as kids and to treat themselves as competent adults. (I loved Bonnie’s repeated returning to her gift of the jacket!) But every time my Clementine acted like a kid in an interaction, it was a conscious choice.

And, of course, it’s not like other people really thought of her as a normal kid. In fact, it frequently was almost explicit that she was the real leader of the group: they’d need something done or they’d need to make a choice, and everybody looked at her as if her opinion was decisive. This didn’t feel to me like a videogamey “the protagonist is always the leader” thing: this felt to me like a desperate and exhausted group of people that sometimes needed to give up the reins. So it was up to Clementine to sneak around the mall, Clementine to talk to Kenny when he’s at his darkest, or even up to Clementine to decide whether to travel today or tomorrow. (And we got to see Carver and Kenny as alternate versions of leadership.)


Just when I was getting used to this version of Clementine, Jane showed up. She was the non-Clementine character who interested me the most this season: she was the only person who seemed able to navigate this new world on its own terms. Yes, there’s a horde of zombies approaching, but that doesn’t mean that you have to put up a commensurate resistance to them or die trying: you can instead cover yourself with walker guts and walk right through them if you’re careful. That’s her way of dealing with the zombies: her way of dealing with other humans gave me rather more pause, but given what the game showed us this season, I couldn’t say that she was wrong to try to detach as much as possible. But I was also glad that a detached persona wasn’t all that we saw of Jane, that her interactions with Clementine showed that she could still care about people and that, with Luke, she could, uh, acknowledge her physical need for human interactions as well.

I was still trying to figure out the implications of Jane as potential role model when the fifth episode showed up. And that episode, honestly, went off the rails for me right from the beginning. We’d ended on a cliffhanger with a group of Russians showing up as a major threat with very little context; the new episode defused and got rid of them without giving any more context. And now we had an orphaned newborn baby with us: a baby who was almost certainly going to die soon and who would probably be a drain on resources in the meantime; the game had built up to the baby enough that I could understand why Kenny would be incredibly protective towards it, and I could accept that some of the other people would feel that same way. But I as player didn’t feel any particular affection towards the baby, I was pretty sure Jane also wouldn’t, and I wasn’t convinced that Clementine would let herself get too attached to the baby, either.

So, while I could accept Kenny being protective of the baby, pissed at Arvo, and as domineering as always, I also felt that, at this point, Kenny was pretty clearly unhealthy to the extend of being an active threat. And I felt that Clementine was self-aware enough and had learned enough from Jane that, even though she cared about Kenny because he was the person around with whom she had by far the longest history, she realized that it wasn’t at all a good idea to stick with Kenny. Yet the game not only kept us right with Kenny until the end, it did so with a very odd quadrilateral of Clementine, Jane, Kenny, and the baby; it is of course the case that the other remaining characters were window dressing, but the way in which they left the scene felt quite odd. And what felt even odder was Jane’s behavior around the baby at the end: I simply think that Jane wouldn’t have cared about the baby, she would have let Kenny do whatever he wanted with the baby instead of lying about it.

That meant that the game set up a climactic fight and choice, but did so with a buildup that felt quite off. (In stark contrast to the climactic choice in the first season.) And then it backed off a bit and ended in what seemed a reasonable enough manner, but decided that it had to throw in some scary music when we learned that the father of the family we let in has a gun. Yes, we get it, random people are scary; but you don’t have to throw that in our face, and everybody who is still alive at this point has a gun!


A really good season most of the way through, and one that was very good in interestingly different ways from the first season. But it really stumbled at the end, and did so in a way that left me not very optimistic about a possible third season. Hopefully the developers will surprise me; or maybe they’ll just leave the series be, I’d prefer that to clumsily tying everything up in a bow.

insect stings

September 3rd, 2014

I first got stung by a bee (or yellow jacket or wasp or something) at a math camp when I was 16 yearrs old. I remember thinking, “Oh, I’ve never been stung before, I guess that’s what it feels like! I wonder if I’m allergic?”, and then five or ten minutes later, no longer having to wonder about that latter issue. I can’t remember all of the details: loss of vision, getting driven in a car to a nearby hospital, probably passing out at some point, and then getting drugs that took care of things. (Though the Benadryl the next day knocked me out in the middle of a class, I think I barely managed to make it back to my dorm room?)

Since then, I’ve carried around an Epipen with me. At some point (I think in grad school?) I got tested, and I was still quite allergic. But I haven’t actually gotten stung in the intervening 27 years.

That all changed when I was walking home from the train station today; I felt something sharp on my arm, I looked down, and there was a yellow jacket. Oops. I figured it would be better not to deal with this alone in case I started passing out, so I called home, asked Miranda if her mother was there, was told not yet, said “shit” and hung up. (Not the most reassuring call I’ve ever made.) Then I tried calling Liesl at work but didn’t get an answer, so I called Miranda back, asked her to meet me on her bike with her cell phone, and sent Liesl text messages explaining the situation; Liesl actually got home as Miranda was leaving, so she showed up in the car just after Miranda did.

I thought about using the Epipen while waiting for Miranda to show up, but I was still not feeling awful and using the Epipen involved stabbing myself in my thigh, so I figured I might as well wait until I got home to do that instead of partially disrobing on a sidewalk or in a park. And then I got curious: just how allergic am I these days? Given that I wasn’t seeing any serious reactions yet, just a bit of pain and maybe a bit more sweating than normal, I figured I’d wait a few minutes before stabbing myself. Liesl had some Zyrtec with her, and she said it was good for skin reactions for allergies, so I popped a couple of those instead; she also made a baking soda poultice to put on the sting.

And then I sat down and waited: I wasn’t feeling wonderful, but my vision and breathing were totally fine, and I wasn’t at all convinced that the problems I was feeling other than arm pain weren’t just nervousness. The arm pain got a little worse, but not horrible; 30 minutes later, I was still not feeling great but no worse, whereas the first time I’d gotten stung I’d probably already arrived at the hospital by that point. And, two or three hours later, I’m basically totally fine: a tiny bit of residual arm pain, but even that’s almost gone, and everything else is normal.

So: yay. Either I’m not as allergic as I used to be or I got stung by an insect that I’m less sensitive to (though my memory of the prior test that I took was that I was quite sensitive to all the insect types I tested) or Zyrtec is a super awesome drug (not out of the question, allergy drugs have gotten a lot better in the intervening decades). Whatever the answer, I’m not complaining; and I’ll definitely keep a bit of Zyrtec in my backpack as well as the Epipen so I can take that immediately the next time I get stung.


September 1st, 2014

This week’s Rocksmith DLC was a collection of classical music arranged for guitars / bass / drums; I wasn’t sure what I’d think about it in advance, but I gave it a try yesterday and it was a lot of fun! I was worried that it would be over the top, trying to turn classical music into rock; but Ride of the Valkyries was the only piece that went particularly far in that direction and, honestly, I can’t blame them for that particular choice.

So the arrangements turned out to be pleasant to listen to; and, musically, they were interestingly different from the norm for songs in that game. A lot of the game’s music consists of chords and ostentatious guitar solos; I don’t particularly like the latter, and while I like the former fine, sometimes I want a change of pace. In contrast, the songs in this pack were a mixture of much less ostentatious melodic bits (except, of course, for Ride of the Valkyries) and arpeggiated sections that changed chords fairly frequently. So: the songs were fun to play, and I’ll probably keep on working on them.

The one exception was the Little Fugue. The arrangement was fine (or at least fine-ish, there were a few rock touches that I didn’t appreciate), but the performance was super heavy and plodding. But, in its weird way, that actually ended up being good for me, too: I know what I want that piece to sound like, and it wasn’t going to sound that way unless I went out of my way to make it so. So that gave me something to strive for that other songs in the pack didn’t.

Or, indeed, that other songs in the game don’t. Because this points at something I hadn’t really realized about Rocksmith: just how little I’d been working on my approach to songs. I try to make my playing sound good, not just get the notes right, but basically all the other songs available to me already sound good: they’re chosen because they’re great songs in their iconic performances! So the lead guitar track in the song is going to be great to listen to; and that in turn covers up a lot of flaws in my performance. Whereas the versions in this pack are arrangements of songs that have been recorded thousands of other times, and where this arrangement, just by the nature of the instrumentation, is not going to sound particularly canonical. That leaves a lot more room for me to think about the arrangements, and whether I want to play like that; sometimes the answer is yes (the arrangement of Rondo Alla Turca is charming, albeit with a way too straightforward beat), and sometimes the answer is no.

This also reinforces something I’d been aware of for a while: it’s time for me to significantly dial back on playing random songs the game throws at me, and to get back to focusing on improving a handful of songs. Playing random songs helped me a lot for years, but I’ve long since reached the limits of the game’s current recommendation engine (which really is not very good, I hope they focus on that for the next iteration). And even if the engine were better, it’s still time for me to focus on musicality more: it’s time for me to try to do a good job playing real songs instead of a so-so job playing stripped down versions of songs.

current status

August 31st, 2014

I am, fortunately, doing much better than I was a month ago. The leg/back problems have improved a lot: shortly after writing that post, I went on a nine-day course of steroids, and those had an immediate huge effect. I do indeed have a pinched nerve, and have an MRI to prove it; it was pretty interesting having a back specialist walk me through that. (Though I’m not sure it was worth the cost; I’m not impressed either with the Palo Alto Medical Foundation’s cost structure or with my insurance company’s transparency on pricing.) So right now I’m doing well enough that I wouldn’t consider going to a doctor or physical therapist if this were the beginning of the symptoms: my right toes are a bit weak, and they sometimes tingle, but they’re not painful and they don’t interfere with other activities. Of course, now that I’m sensitized to the issue, I want those symptoms to go away—both for their own sake and because I want a buffer before pain starts recurring—but overall, great success.

And I’m less sleepy than I was at the start of the summer. I’m still taking a little more allergy medicine than I’d like, and I wish I could do something about that, but at least it’s manageable. So presumably I was correct that the excessive sleepiness at the start of the summer was caused in large part by construction dust. After barely blogging in June and July, I’m back to normalish levels of writing here; that isn’t a coincidence.

Which isn’t to say that I feel completely right, but it’s not for physical reasons: I just don’t know what I want to focus on. Normally I have some decent-sized intellectual area that I’m trying to come to grips with; right now doesn’t feel that way. I still have ongoing projects, but none of them are grabbing me as much as they were: I’m only practicing guitar an hour or an hour and a half a day on weekends instead of two or three hours, and while I’m continuing with Japanese, the idea of picking up those books doesn’t excite me. Which, admittedly, has something do with the specifics of what I’m currently reading: Mishima’s “Patriotism” is a story about a soldier who wasn’t invited to join a mutiny, who decides that the correct thing to do in response is to kill himself, whose wife is so virtuous as to join him, and where both members of the couple are presented as incredibly sexy and desirable; oy. I like Buddha a lot more than Patriotism, but it’s not as compulsively readable / easy to read as Hikaru no Go. But I don’t think the specifics of the books are all that’s going on there: I’ve been studying Japanese for something like seven or eight years now, I’ve made significant progress but there’s still a long road ahead, it’s pretty natural for me to be getting tired. And I’m still chipping away on the programming project I started a few months back, but I’m not super energetic about that, either.


So: I’m really not sure how I want to spend my time. I’m still continuing on all three projects mentioned in the previous paragraph, but more out of force of habit / willpower than because I really think they’re what I want to focus on. And I’m still playing games, but that has a pretty different texture to it than a couple of years ago, too: it’s been a while since I’ve played a forty-hour narrative game, so games end up not having clearly-defined starts and finishes, instead creeping into odd hours in my evenings and weekends.

As do other things I’m spending time on: I’m hitting refresh on Feedly way too often, for example. And it didn’t help that, in late July / early August, we often watched Miss Fisher for an hour after dinner: that only left me with an hour or so until I’d start thinking about going to bed, and I have a hard time convincing myself to work on something meaningful when given less than two hours. What probably would make me happier is if I could group those smaller activities: if I have energy after dinner some evening, then I should dive into something bigger (programming, a blog post, whatever), while if I don’t have energy (which is just going to happen a couple of times a week, if for no other reason than that I might have gone to bed a bit late the previous night), then that’s when I should go through my blog reading backlog and play some Hearthstone.

And then there’s work: it’s generally happy these days, certainly my work-related mood swings have leveled out noticeably. But work is happy in a way that isn’t leading to outside-of-work excitement (or even necessarily active excitement at work itself): in particular, it’s not currently pointing me in the direction of my next interest.


I dunno. Things are fine, and in many ways actively good. And I really like how taking the train to work means that I’m reading noticeably more! I’m just a little more adrift than normal.

false equivalence and maintenance of privilege

August 27th, 2014

On Sunday, the New York Times wrote an article about Michael Brown saying, among other things:

Michael Brown, 18, due to be buried on Monday, was no angel, with public records and interviews with friends and family revealing both problems and promise in his young life. Shortly before his encounter with Officer Wilson, the police say he was caught on a security camera stealing a box of cigars, pushing the clerk of a convenience store into a display case. He lived in a community that had rough patches, and he dabbled in drugs and alcohol. He had taken to rapping in recent months, producing lyrics that were by turns contemplative and vulgar. He got into at least one scuffle with a neighbor.

Which is a vile paragraph for the Times to have published. I can only imagine that what was going through the author and editor’s heads was a desire to appear balanced: the next paragraph said

At the same time, he regularly flashed a broad smile that endeared those around him. He overcame early struggles in school to graduate on time. He was pointed toward a trade college and a career and, his parents hoped, toward a successful life.

But this sort of “balance” is singularly inappropriate: there’s a good reason why we use the term “eulogy”, coming from a phrase meaning “speak well”, to refer to writings about people who have just died. Situations where it’s appropriate to break that rule are few and far between; talking about a kid who was just the victim of police murder (followed by weeks of terrorism committed by multiple levels of police, no less) is not one of those exceptions.

This is a classic case of false equivalence: when writing a story about a politically touchy issue, the media likes to find two sides of the issue to present, and to present those sides without any sort of context that might cause one to evaluate one side more favorably than the other. It doesn’t matter if one of those sides is supported by essentially all experts on the subject while the other is only supported by loons or guns-for-hire; it doesn’t matter if one of those sides is engaging in behavior squarely within our political norms while the other side is doing historically unprecedented attacks on the very concept of majority rule; and, as here, it doesn’t matter if one of those sides is behaving with simple compassion while the other side is lacking even a shred of simple human decency. False equivalence demands both.


Our dominant non-right-wing media outlets are beyond hope on false equivalence in the political arena. In more personal stories, they aren’t in general, but of course we know what’s going on here. Michael Brown was black, and my country’s paper of record knows what sort of story it’s expected to tell in that scenario, what sort of images to invoke. I of course have know way of knowing for sure, but my assumption is that this choice of the type of wording for the article wasn’t even an active choice by the author: that’s just what came out of their subconscious.

And, whether conscious or subconscious, that choice is very well grounded indeed. See, for example, this analysis of whom the Times labels as “no angel”: you basically either have to have done horrific crimes or be black. Or, for another example, see this comparison of the above story about Michael Brown with one on one of the Boston bombers; the Boston bomber story isn’t from the New York Times, but I don’t think that weakens the power of this comparison.

That’s part of the evil of privilege: it’s so pervasive that even our subconsciously constructed phrasing works to actively maintain it, to bolster it so strongly that just trying to get to a position where we can start looking behind that privilege is exhausting. But that’s only one part of that evil: there’s plenty of active maintenance of privilege out there, of people actively and intentionally using it to help themselves and to harm, even kill, others, as Ferguson has given us endless evidence of.


Last week, indie game developer Zoe Quinn was a target of focused and sustained harassment. Harassment which is still ongoing for her, and which has spread more broadly. That led to many reactions, including one from Kotaku that contained the following paragraph:

We’ve long been wary of the potential undue influence of corporate gaming on games reporting, and we’ve taken many actions to guard against it. The last week has been, if nothing else, a good warning to all of us about the pitfalls of cliquishness in the indie dev scene and among the reporters who cover it. We’ve absorbed those lessons and assure you that, moving ahead, we’ll err on the side of consistent transparency on that front, too.

Yes, the last week has shown one downside of “clicquishness in the indie dev scene”: if you’re friends with a bunch of other indie devs, and if 4channers hack one developer’s account, then you have to start being very careful about what links you click on in Skype messages. That downside, however, is not what Kotaku was talking about.

To be honest, I’m not entirely sure what Kotaku was talking about; that whole post of theirs made very little sense to me. But I suspect that it’s another example of the false equivalence trap that I talked about: this is a big story that some people would like to present as a controversy, so Kotaku felt that it needed to take both sides seriously, and use the controversy as a way to present themselves in a good light by doing some introspection.


Again, though, it’s not just false equivalence here: it’s privilege that’s shaping every part of the discussion. They didn’t do just any sort of introspection here: for example, they didn’t do introspection prompted by interactions between AAA game developers that provide direct funding to Kotaku and that have overwhelmingly male leadership, employees, and audiences, or introspection prompted by male editors hiring and publishing more and more men from their circle of friends. (I actually suspect Kotaku has been introspective about the latter in the past, admittedly, that’s the only reason why I visit their site at all.) Instead, they decided that the appropriate target for their introspection was their interactions with a platform that leads to donations of single-digit numbers of dollars to marginalized voices, with those donations leading to no significant gifts in return.

So here, too, we see privilege working at a subconscious level (at least I’d like to hope it’s subconscious!) so that just fighting to reach a level playing field is exhausting. Which would be bad enough if it were just subconscious, but in this battle as well, we see much more terrifying active attacks from people trying to maintain their dominance: trigger warning, but here’s a sample of what Anita Sarkeesian is seeing.


Fuck all of this. Can haz revolution plz?

apple tv business model

August 24th, 2014

It’s getting to Apple product announcement season, which means that there’s a decent chance that an appified version of the Apple TV will be announced. There’s a lot that’s obvious about it (it’ll run iOS, its hardware will presumably close the gap with iPhone / iPads), and there are some big questions (what’s the input method going to be, in particular), and, knowing Apple, there may be a complete surprise somewhere.

What I’m wondering, though, is: what’s the business model going to be for the device? The current version is priced at $99: basically, it’s priced like an accessory to your iPhone and iTunes. And I imagine the hardware is cheap enough that they can get a reasonable profit margin for the current hardware at that price, though who knows.

I would also imagine, however, that that profit margin will disappear (and possibly go negative) if its guts get noticeably ramped up. (Which will be necessary if they’re really trying to take a swing at the core game console market; I’m not 100% convinced that Apple is going to do that, but I think they probably will?) And I also imagine that there’s more to the profit margin than just selling price minus manufacturing cost. And, of course, it’s not at all given that a more powerful Apple TV will stay at the $99 price point, though if the only option is, say, $199, then that will reduce its effectiveness as an iPhone / Apple content ecosystem accessory.


I could be wrong about the margin disappearing if the guts get more powerful: Ben Thompson presents some figures based on an IHS report that suggest that, actually, an Apple TV based on current hardware would cost about $99 to make. Of course, Apple likes their profit margins, so I don’t think they’d actually sell it at $99; but something in the $149 – $199 region might work? And maybe they’ll keep around the current version for people who really just want an accessory? I’m not sure.

The other aspect of pricing is actually the one I’m curious about. While grocery shopping today, I was listening to John Gruber, among other things, blast traditional windows PCs for the crapware that comes with them; that’s mercifully absent on most Apple devices, but the one big exception is the Apple TV. Not that the Apple TV comes with anything that’s as bad as Norton nagware, but still: the device is full of stuff that I don’t care about, that I would never install and don’t want on my screen. And I assume that Apple is not doing this out of the goodness of their heart (though admittedly, in the absence of an app store, it does help users to have some of this), I assume money changes hands.

But I also assume, based on Apple’s past behavior, that most or all of those third-party apps are going to stop coming by default with an appified version of Apple TV: people can download what they want. What I’m not sure about is if Apple cares about that. It does feel to me like, to a larger extent than on the iPhone / iPad, the most important apps on an Apple TV are going be ones where Apple doesn’t have a natural connection to the revenue stream, because they’ll be free and accessible via non-Apple subscriptions, so the crapware money would be going away.

Maybe I’m wrong about that last sentence, though: because my understanding is that the Apple TV Netflix app does provide an option to subscribe to Netflix via your iTunes account? So, if that’s the case, maybe that will be the norm for media apps on the Apple TV: they’re accessible via third-party subscriptions, but Apple will require vendors to provide an option to subscribe via your iTunes account, and because of inertia, Apple will actually make a quite decent amount of money through that? That makes sense now that I type it out; I’m curious if Apple takes a 30% cut from subscriptions like that or if they take a smaller one. And it certainly beats having crapware preinstalled.


So, probably no big mystery here: the device will be cheaper to make than I initially thought, Apple will raise the price enough to get a decent profit margin, and the crapware fees will turn into more up-front subscription fees? I’m still curious how it will compete as a game machine: I’d imagine it will be significantly cheaper than either the Xbox One or the PlayStation 4, and I imagine that much of that is because of significantly lower performance. (How does the A7 GPU compare to modern PC GPUs?) Metal will help compared to previous iOS versions, but I assume that’s just bringing iOS up to parity with the console world in terms of architecture tax. And, hey, if lower GPU performance means that the latest shooters don’t work on the Apple TV, that’s perfectly fine with me…

There are potentially other ways in which iOS 8 will help the Apple TV: Muttering suggests that app extensions will offer some interesting controller possibilities, and Macworld raises HomeKit possibilities. That latter article in particular gives other reasons why Apple might be willing to keep the margins a bit lower on the Apple TV than on their other products: it could continue to evolve in its current role as a piece of plumbing that helps the ecosystem as a whole thrive.

And, of course, it’s entirely possible that we’ll have to wait until 2015 for the new Apple TV to materialize: this fall is clearly going to be a more-interesting-than-normal Apple product announcement season, but it seems like knowledgeable people are more confident that there’s going to be a big wearables announcement than a big Apple TV announcement? I certainly don’t know, and Apple is clearly capable of waiting until something is ready. I’m mostly just looking forward to replacing my phone, and I’m curious about Continuity (enabled, in my case by Family Sharing).

ascension: rise of vigil

August 23rd, 2014

Some of the Ascension sequels I’ve enjoyed as much as the original; sadly, Rise of Vigil was not one of them. The new mechanic this time is a third currency, called “energy”: unlike the other two currencies, though, this one doesn’t go away until the end of the turn. Instead, many cards gain special effects if your energy level is above a certain threshold when you play or acquire them.

The energy-providing cards almost always come with card draw, so they don’t clog your deck. Also, the standard energy-providing card never shows up alone to purchase, instead other cards will randomly show up with one or more energy cards under them. So this means that, sometimes, you have to decide whether to buy a card that would otherwise be suboptimal in order to get more energy, and because of the card draw, the energy itself is always a good thing.

Which could be okay: it encouraged me to to buy cards I otherwise wouldn’t consider, and variation is always good. But the flip side is that I didn’t feel like I was building up a strategy in response to the cards available for purchase: instead, I was ending up with a random-ish hand in order to maximize energy. Or, to look at it another way: the limited card row meant that the game already had a mechanic encouraging me to mix it up; I didn’t find it helpful to have a second such mechanic.

Of course, I didn’t have to focus on energy, and indeed sometimes I didn’t. The thing is, though: some of the energy effects are crazy-powerful, so if you skip energy, you’re shutting out the possibility of the most powerful strategies, and those powerful effects and energy are both plentiful enough that you’ll probably lose in that situation. Energy effects can turn a cheap, bad card into a card that can acquire any hero for free, they can turn a powerful card that can defeat any monster into a card that can defeat all monsters.

There’s probably more balance than I’m giving the game credit for: I didn’t play it enough to get a super-solid feel of it. And part of that isn’t Rise of Vigil‘s fault: I’ve got other ways to spend small chunks of time. Still: not my thing.

monument valley

August 15th, 2014

Earlier this summer, I stopped my playthrough of BioShock because, frankly, I was getting angry at the game. I didn’t want to spend my time going through grandiose facilely unreflective morality plays: I wanted to play games that were more closely crafted. I’d seen screenshots of Monument Valley and heard good things about it: I was quite optimistic that I would feel a lot better playing through it than continuing through BioShock.

And I was right. I mean, I don’t know that I was right, because I didn’t run the experiment of continuing through BioShock, but I do know that spending a couple of hours on Monument Valley was a thoroughly enjoyable palate cleanser, just what I needed at the time. (And it would have been quite enjoyable even if my palate hadn’t needed cleansing.)

Not that I have much to say about Monument Valley: I partially blame my not mentioning it until now on my lack of energy this summer, but only partially. I think I have a post touching on puzzle games lurking in my head, and hopefully it will make it out soon, but it’s not out yet, and I suspect Monument Valley won’t be the most relevant game even to that post. So, I’ll just say: if you’ve seen screenshots from the game, you know whether or not you’ll like the visual aesthetics of the game, and I enjoyed the puzzles as well. More of this, please.

on “on scorched earth”

August 11th, 2014

Brendan’s recent post “on Scorched Earth” lamented that the Netrunner card Scorched Earth was “inelegant”. I can see where he’s coming from—I’m certainly not going to claim that Scorched Earth is a paragon of elegance—but I think he undersells the card. In particular, while I think his alternate proposals would all make for interesting cards, I think that Scorched Earth enriches Netrunner in a way that his proposed replacements wouldn’t.

There are two ways for the Corporation to win in Netrunner: by scoring seven agenda points, or by forcing the Runner to discard more cards than are in their hand. These aren’t parallel—the former is the primary way for the Corporation to win, and most of the interactions revolve around that mechanism—but they’re both important, because without the latter, the Runner could be a lot more careless. For example, the presence of Snare means that, if the Runner has fewer than three cards in hand then they should think twice before running on a server with an unadvanced card in it, or even running on HQ or R&D: if they hit a Snare, they’ll lose the game.

In go, there’s a concept called “honte”: this translates as “proper move”. When responding to a situation, you’ll have different ways to play, but frequently local pattern matching will mark one of them as proper. That doesn’t mean that that proper move is always the best move—sometimes the global situation suggest otherwise, and sometimes detailed reading of the local situation will reveal that the honte isn’t the best move even locally—but nine times out of ten, it’s the right thing to do. These proper moves sometimes look a little slow (especially for those of us who aren’t good enough at the game to appreciate the down sides of not playing the proper moves), but if you stick to them, you’ll generally end up with a solid position while your opponent’s risks mean their downfall.

In Netrunner (and indeed in most other games!), this concept of proper moves also appears. It’s more likely to appear in a negative sense in Netrunner than in go: as discussed above, Snare means that it’s generally not proper to make a run with fewer than three cards in your hand, for example, and the threat of tags (which Snare can also produce, it’s pretty vicious!) also means that in general it’s not proper to run on the last click of a turn, because otherwise you’ll be tagged during the Corporation turn. So it’s not so much that certain moves are proper as that certain moves are improper; it boils down to a similar effect, though.


So, to sum: card damage is one route to winning, but that’s not its main role in Netrunner. It’s mostly there as a mild risk task on the Runner’s actions (at least mild if the Runner doesn’t overweight loss aversion), and by playing proper moves, the Runner can almost always avoid losing for that reason. In particular, it’s almost impossible for the Corporation to create an active strategy to win via card damage.

Or rather, it would be almost impossible for the Corporation to do so without Scorched Earth. Because Scorched Earth is one of the few cards that lets the Corporation cause significant amounts of card damage during the Corporation’s turn. (In the core set, the only other such cards only cause the Runner to lose one card at a time; I haven’t exhaustively surveyed the expansions, but I think it was about a year before second such damaging card showed up, with Punitive Counterstrike.) So, without Scorched Earth, the Corporation would have no active way to win by card damage; and while I do think it’s better for the Corporation’s winning strategies to be focused on scoring agendas, I also think it would be a shame if there weren’t any active card damage routes to victory at all.

And it’s not like a Scorched Earth win is easy to pull off. You need two of them to flatline the Runner (assuming they keep their hand properly full), so even assuming that the Corporation has three of them in their deck, the Corporation will expect to have to get to make it through most of their deck to have a chance of a Scorched Earth win. And to pull it off, you need the Runner to be tagged; but almost all of the ways to get tagged take place on the Runner’s turn, giving the Runner chances to clear their tags. (Or they can try to be careful and avoid getting tagged at all.) There are ways for the Corporation to tag the runner during the Corporation turn (SEA Source, for example), and I’ve certainly won my fair share of games by playing SEA Source plus two Scorched Earths, but doing that is going to require the Corp to have noticeably more credits than the Runner (enough to make the SEA Source trace stick while having credits left over for the Scorched Earths), so the Runner can foil that plan by staying rich.

And, if that weren’t enough, there’s another way for the Runner to foil the plan: it’s not in the core set, but the very first Netrunner expansion introduced Plascrete Carapace. One Plascrete Carapace is enough to protect against a Scorched Earth, so once that card became available, the proper move for the Runner when deckbuilding was to include two Plascrete Carapaces in their deck (and they’re neutral cards, so anybody can do that): that’s enough to stack the odds significantly in the favor of the Runner in the Scorched Earth battle.


So, to sum: the Runner can foil Scorched Earth by keeping four cards in their hand at the end of their turn, by avoiding ending their turn tagged, and by keeping up with the Corp on economy; these are all proper moves anyways. If that’s not enough to make the Runner feel confident, then throw in a couple of Plascrete Carapaces. Also, odds are that it will take a while for the Corp to draw enough Scorched Earths plus tag generation to win that way even if the Runner doesn’t have Plascrete Carapaces, so this also encourages the Runner to keep up the pressure on the Corp, which makes for a more exciting game all around.

Or at least a mostly exciting game all around: in Netrunner as in go, you don’t always want to play the “right move”, putting Plascrete Carapaces in your deck just to protect against Scorched Earth is grating, and you can’t simultaneously put pressure on the Corp while stockpiling money and limiting your runs. There’s a flip side for the Corp, too: you always have to do some work to pull off Scorched Earth even if the Runner lets their guard down, because Weyland doesn’t have a tag generation (in fact, no identity other than NBN has a lot of tag generation), and the splash cost is so high that you’re going to use at least 8 and probably 12 of your 15 influence on Scorched Earth if you do go that route. So this means that very few Jinteki or HB Corp decks will include Scorched Earth at all, and even NBN and Weyland decks will frequently find it better to focus on something else.

And this is where things get interesting. Given those calculations, is it really worth it for the Runner to waste two deck slots on Plascrete Carapace? Or, going a step further: some Runners will build their deck so that, in the absence of Scorched Earth, nothing horrible will happen to them if they get tagged. So, while I said above that the “proper move” for the Runner is to avoid ending your turn tagged, you can also decide to play as the Runner in a way that embraces the possibilities of getting tagged, accumulating tags right and left. If you do that, you’re vulnerable to Scorched Earth (as well as other cards, e.g. the dreaded Psychographics / Project Beale combo), but the rewards can be huge:
it turns Account Siphon from a card that (at its best) takes three clicks to get an 11-credit Corp/Runner swing into a card that (at its best) takes one click to get a 15-credit Corp/Runner swing, which is enormous. Scorched Earth probably has a larger effect on the game in the way in which it puts a real bite into tag calculations than in the possibilities that it opens up for an affirmative strategy to win the game; and yes, I would call that an elegant design choice.


Don’t get me wrong: I don’t feel like I’ve been clever if I win the game as NBN by using Scorched Earths. (Though if we’re looking at NBN inelegance, I’d cast my eye first at AstroScript instead.) But I’m glad it’s there to open up my possibility space as a Corporation when deckbuilding, and to strike fear in the heart of the Runner when they don’t know if I have Scorched Earths in my deck. (Or when they’ve caught sight of a Scorched Earth in my hand and are suddenly stepping much more gingerly, wondering when the inevitable second one will appear.)

And, on the Runner side, I need to embrace probability: make judicious bets, figure out which risks are the right ones to take given my current state of the game and what I’ve seen about my opponent’s hand. If they’re NBN, I’ll try to figure out if they’re focusing on Scorched Earth to complement their tagging; if they’re Weyland, I’ll be very nervous about any glimpse of tag creation that I see in their hand.

And then, every once in a while, I’ll build a Jinteki deck with a single Scorched and just enough tag generation to get it stick right after the Runner has stumbled into some net damage. If that combo lands, it will cause the Runner to say many things about the situation, but I suspect that “inelegant” won’t be the first adjective that they’ll use.

energy and pain

July 31st, 2014

I haven’t written here much recently; and I haven’t been working on my recent programming project, either. That’s not a sign that there’s something else that’s grabbing me: I just haven’t had energy during the evenings for about two months now. So it’s been easiest just to read blog posts or watch TV or play games; I’m actually really glad I’ve been replaying the Phoenix Wright series, and I’m quite enjoying Miss Fisher’s Murder Mysteries as well, I just wish there were more evenings when I was doing something else.

For a lot of the time, it was simple tiredness. My allergies were out of control in the winter, but they got a lot better with the help of nasal rinsing. But then they came back; I’ve bumped up my Claritin intake again, and the allergies are mostly under under control now, but not great. My current theory as to what was going on there was that the bathroom remodel kicked up a lot of dust, so I was hoping that it would get better once the bathroom remodel was over. (The remodel has turned out great, incidentally!) I’m not convinced my allergies are completely better now, though, so maybe there’s something else going on.


Or rather: maybe there’s something else going on with the allergies: there’s certainly something else going on in general. A couple of times over the last year my back spent a couple of weeks hurting; that happened again this summer (starting just before the construction work), and it just didn’t going away. Eventually, I went to see a doctor and started physical therapy; the therapist gave me some stretches, and it’s actually been a week since my back has hurt.

Which would be good, but my symptoms have moved: my leg started hurting, with a range of symptoms, symptoms that are triggered by a different set of actions (sometimes including just sitting down for a minute) than my back problems. That leg pain first appeared Saturday a week and a half ago, and as my back was getting better, my leg was getting worse; I went to the doctor last Thursday, and then that evening I had problems sleeping for the first time (noticeable ones: I woke up at 2:30am and couldn’t get back to sleep), so I asked Liesl to drive me to the doctor the next morning as well, and just sitting in the car was super painful. I couldn’t see my regular doctor on Friday, and I wasn’t too impressed by the doctor I did see, but I got some stronger pain relievers.

The good news is that my symptoms haven’t gotten any worse since then, and I’m pretty sure they’ve gotten a little better. (Though I don’t know for sure if I could sleep through the night without the drugs; also, while sleeping on my back is much less painful than sleeping on my side, it is really not something I enjoy.) But they are still very noticeable, and noticeable in ways that honestly kind of worry me: for example, I wanted to drive to the grocery store a couple of nights ago to pick up some replacement tomatoes; I only made it to the end of the driveway before deciding that, no, driving a car still really was not a smart idea for me. And walking home the last couple of days, I’ve noticed that the toes on my right foot are curling a little bit (and in retrospect I actually think I’ve seen signs of that for months), so there’s some odd physical behavior going beyond just pain.

So right now I just don’t know what’s going on. It seems like I’ve got a pinched or inflamed nerve somewhere; presumably caused by the back issues, but I don’t know why these new symptoms have appeared, or what to make of the fact that they’re appearing as the back pain is disappearing. And having the symptoms mutate is getting tiring; and it’s also tiring trying to figure out how to arrange myself over the course of my day to deal with this. (How much standing, how much lying down, when sitting down works at all.)


Or, to come back to what I started with: how to avoid being in pain during the evening. It’s hard to write or program at my computer if I can’t sit down and feel like I’m relaxing at least a little bit. Working standing up is a possible way to deal with that; but if I’m spending much of the day at work working standing up, then I don’t really have the energy to do that at home. So it’s a lot easier to watch an episode of Miss Fisher and then lie down on a sofa reading blogs for a little while until it’s time to go to bed.

This isn’t awful or anything: more a reminder of my mortality. And I think the exercises my therapist are recommending really are helping: not only is my back not hurting, but my back feels like it’s moving well. But I hope that their suggestions plus the anti-inflammatories I’ve been taking for a week start having an effect on this pinched nerve soon.

brenda romero: jiro dreams of game design

July 13th, 2014

It’s months since GDC, and I’m still trying to unpack my feelings about Brenda Romero’s Jiro Dreams of Game Design talk. Or maybe not so much my feelings about it—it’s an excellent talk, no question—but my emotional reactions to it. Her talk confronts concepts that I care about (greatness, team structure, creation) in contexts that I care about (games, food), leaving me with immediate reactions to almost everything she said, but immediate reactions that were frequently in conflict, and with me quite sure that there’s a lot to think about beneath those immediate reactions.

I watched it again last night; I’m still not sure what I think, other than that I’m now glad I’ve seen it twice! But, trying to put together some thoughts:


She talks a lot about wanting to be great, and about the effort necessary for that. And this is where a lot of my insecurities with respect to the talk come in. Because, of course, there’s a part of me that wants to be great: who doesn’t want to be great? In the abstract, after all, it sounds, well, great. But, when it comes down to it: I am not behaving in a way that has led or will lead to me being great at anything.

Don’t get me wrong: I am egotistical enough to believe that I’m pretty damn good at some things, and even that I maintain a fairly high level of standard (relative to an appropriate baseline) at a fairly wide range of things. For example, I’ve largely made my living as a programmer for the last decade, and I’m pretty sure that I’m a noticeably better programmer than most professional programmers.

But I’m equally sure that, in an important sense, I’m not a truly great programmer. There’s nothing wrong with this, and for that matter my bar for greatness in that field may well be abnormally high: but there are significant ways in which I don’t meet that bar.

And her talk pointed at a few reasons why that might be. One is that I’m not quite obsessed enough. She talks about thinking about games from when she wakes up to when she goes to sleep; I think about programming quite a bit, including at odd hours, but it’s not that same sort of all-dominating passion that she projects. Another is that I don’t put in the hours; that’s a related concept but not at all an identical one, I’ll come back to that below.

Also: I don’t feel creative enough. Now, I’m not sure if I think that’s actually necessary for greatness, and for that matter I’m not sure how much Romero thinks it’s necessary for greatness. But it feels to me (and this goes way back, it’s not just my most recent decade) that I’m abnormally good at quickly coming to grips with others’ ideas and using them in productive ways, but there’s a certain seed of novelty that I’m not particularly good at.

Or, to put that last paragraph another way: I can be a quite good craftsperson. And that’s important to me, and for that matter it’s important for greatness. I was about to write: but maybe something’s still missing there? Now that I type this out, though: being a great craftsperson isn’t a contradiction in terms, it’s just a quieter sort of greatness.

So, I guess, if I were going to be great, that’s the sort I would be! But I still would need more passion and to put in more hours.

Actually, rereading this section: I think there’s something wrong about my angle here. What’s important in this context isn’t people being great, it’s works being great. And Romero’s talk is about great works, not (or at least not just) great people. When she raises and rejects the Triad of Constraints, for examples, she does so in the context of producing a great work. Hmm.

Teams, Control, and Responsibility

As is obvious from the talk’s title, Romero brings in food metaphors, metaphors from chefs and kitchens. But Jiro isn’t the only chef she talks about; in particular, she talks about Gordon Ramsay several times, and this was the part of the talk that I had the strongest negative emotional reaction to. Some quotes from that portion: “He had to get all these people to do what he wanted them to do”; “They screw up and he’s the one who’s going to get blamed”; “Screw it up? People remember YOU”; “Control your team or your team controls you”; “My standards, my rules, my kitchen”. (Those last two are Romero quoting Ramsay, I believe the others are her description of what she saw.)

This is a mindset that I have zero interest in: I want nothing to do with command and control, and I want nothing to do with team structures consisting of one guiding light and other people whose job it is to implement that person’s directives. And there’s an undercurrent of fear mixed into that egotism that I think is unwarranted on both parts: I simply have no idea who the chef is in, I believe, any of my favorite restaurants. I do not, admittedly generally patronize restaurants that have been awarded Michelin stars, but I’ve been to one or two, and I don’t think that would make a difference in my awareness of the chef’s name unless the chef decided to engage in self-promotion. For games, it is more frequent (but by no means universal) that I can name the lead designer of my favorite games, but even so: my focus is on whether the game is good, the designer is an afterthought.

So no, people won’t remember you, they’ll remember your work. And not your (singular) work but your (plural) work: the work that the team that you are part of produced. As I belatedly said above: great works are what’s important, great people are a secondary concept.

And yes, great works will (usually!) have a strong, coherent vision at their core. And yes, having that vision come from one person is one way to get there. But what’s important is that the vision is shared and made real by the team; and, as a programmer an in my prior life as a mathematician, I have a lot of experience working with visions that feel stunningly real because they’re a fundamental part of how the world works, or how our shared conception of the world works. So we can all work together to understand what zeta functions really are, we can all work together to understand what simple design really is. And there are tools to let groups of people express and produce works of shared beauty, groups don’t have to invent that from scratch.

Romero does not, fortunately, spend all of her talk embracing the Ramsayan end of this spectrum: I don’t believe, for example, that she thinks that game designers should be dictating the details of how programmers write code to support the game’s vision. And, once I got past my revulsion at the command-and-control aspect of this message, there’s a part of her message that I liked rather more. For your team to produce something great, your team has to do great work, and that won’t happen if you don’t feel responsible for that to happen. In Romero’s narrative, the “you” is a single person in charge of the team, but she also talks about trusting and helping your coworkers to do great work; in my version, it’s everybody’s responsibility, but that most definitely does not mean devolving into greatness being nobody’s responsibility. Instead, we all need to work together to figure out what great work means, to do great work ourselves, and to help others to do great work.

Food, Games, and Software

Romero is a game designer, and she talks about chefs. I am neither; and, listening to the talk made me wonder if those two fields are related in a way that programming, or at least the sort of programming that I do, isn’t. Both of those fields are, in large part, about crafting experiences: in fact, she goes out of her way to talk about how the best restaurants (at least when looked at through a Michelin lens) spend time on the experience of dining there writ broadly, not just on the food. Everything is there because it has a reason to be there, everything is done with intent, with focus, with care and craft.

That last sentence is also characteristic of great programs. But it’s a characteristic that’s only visible from the point of view of somebody working on the program; writing a program that way has an effect on the experience of somebody using the program, but that effect is not direct.

Of course, programs have an experiential component as well, and this aspect of greatness makes sense in that context as well; and that leads to a form of greatness that is directly analogous to what Romero talks about in food and games. (Indeed, given that much of her work is on video games, she is talking in part exactly about this aspect of great software!) But, returning to the previous section on teams striving together for greatness: a cross-disciplinary team striving together for greatness is going to be focused on that experiential side of greatness instead of the external side of greatness, because that experiential side is something they can all perceive and affect.

As a programmer, which do I care about more? I care about them both, of course, and they’re related. By writing great software as measured through the internal lens, I can affect its external greatness in a couple of ways. One is that well-crafted software is, in an important sense, unobtrusive to the user: it responds quickly instead of making the user wait, it is consistent instead of imposing a cognitive load, it doesn’t crash or have bugs. And another is that well-crafted software is responsive to the needs of people who are designing that experience: as somebody like Romero is experimenting to try to tease out the core and then refine the details of a vision, great programmers can help by producing software that they can adapt as quickly as possible (or even provide hooks to let designers adapt it themselves) to actively help that process.

As I said above, though: I’m a craftsperson at heart, and so my focus is internal. But one of the aspects of agile that I’ve internalized well is the desire to write code in order to meet real user needs and desires, and to enable quick experimentation to discover how to best meet those desires. So I would prefer to be part of a company that wants to write great software to deliver a great experience, and if a company fell down too far on either measure of greatness, I wouldn’t join it. Having said that: my bar on what I’m willing to consider on the programmer craft side of things is quite a bit higher than my bar for the user experience side of things.

Obsession and Time

I don’t think I’m obsessed enough to produce really great work. Which isn’t to say that I can’t get pretty obsessed at times: over and over again, I’ll dive into some aspect of learning (frequently but not always software-related), read the most important books on the topic, dive into discussions on the topic, experiment on the topic, and repeat it until I feel I’ve internalized something at the core of that topic. But listening to Romero’s talk (this one and others): I’m not as obsessed with programming as she is with games. Also, my obsession quiets down when it gets to the stage when I feel like I understand what’s going on in some area: my compulsion is to build a world view, not to create. (And, in practice, being a craftsperson is where I end up in the middle.)

There’s another question here, though: totally aside from obsession, how many hours are you willing to put in? Her talk refers to crunch as a fact of life in the game industry; it’s not a fact of life, and I work to make it not part of mine. I’m honestly not sure to what extent my refusal conflicts with greatness: part of extreme programming is the claim that putting in more than about 40 hours a week is actually counterproductive over the medium term, because it dulls the brain and you start writing worse code. It’s clear that there’s a value of N where working more than N hours a week is counterproductive if your goal is greatness, and there are industrial studies suggesting that productivity maximizes out at around 40 hours a week.

And I mostly buy that cap of 40 hours, but not completely. For example, in Chapter 38 of The Cambridge Handbook of Expertise and Expert Performance we have the claim (in a section studying violin students) that

All groups of expert violinists were found to spend about the same amount of time (over 50 hours) per week on music-related activities. However, the best violinists were found to spend more time per week on activities that had been specifically designed to improve performance, which we call “deliberate practice.”

And a cap a little above 50 hours feels more right to me than a 40 hour cap. But in a context of trying to produce great work, it raises some caveats:

  1. That study is about learning, not about producing. Admittedly, any part of great work is going to involve learning even as part of the production of that work; in fact, maybe it’s impossible to do great work without learning all of the time. (Though the converse is certainly not true: novices are learning but not producing great work!) But still: that study is measuring something different.
  2. The part about deliberate practice is super important. To me, this dovetails fairly well with a striving for greatness: part of doing great work involves being deliberate in what it means for work to be great, and Romero discusses the importance of having your colleagues look over your work on multiple occasions in your talk, which dovetails well with the importance of having a coach in deliberate practice. Maybe we should take a lesson from etymology here: great work requires deliberate practice, where by “practice” we return to the meaning of “do” or “act”.
  3. If we go with 50 hours, then I’m not sure what the texture of those 50 hours is going to be, but I’m almost positive that it’s not going to be 10 consecutive hours a day, five days a week. (Or 8 hours a day 6 days a week, or what have you.) Certainly during the times when I was (quite effectively) trying to become an expert in a subject, it would pop up in my life much more broadly than that: for example, Liesl and I had a habit on vacations where we’d be going through rooms in a museum, I’d go a little faster so I’d get a few rooms ahead of her, and then I’d sit down on a bench and read more in one of the math books I was working through. And, actually, when I say I don’t put in the hours, maybe I’m underestimating that: I only put in 40 hours a week (in a standard 8 hour + lunch x 5 configuration) sitting at my job, but I think about my work quite a bit at home, and the very act of writing this blog post is another part of my deliberate practice at getting better at my work. The flip side, though, is: I am not trying to do great work during most of those 40 hours that I do spend at work. So I should probably focus on improving that last bit!
  4. Even if producing and sustaining expert performance is most likely to come from working 50 hours a week, it absolutely does not mean that working 50 hours a week is at all likely to produce expert performance. The vast, vast majority of time, working long hours just means shoveling more crap; I have no doubt that that’s what’s going on almost all of the time when companies ask employees to put in crunch time.

When I put this all together, to me it leads to two recommendations:

  1. First, focus on being deliberate about producing great work. Constantly ask yourself and others how your work could be better, how your processes could be better, what the goals are that you should be striving for in the first place.
  2. Second, listen to your energy level. Producing something even on the small scale that you’re proud of can be very energizing: at its best, doing great work can lead to a feedback loop where you have more energy to do more great work. But once you push yourself too hard, then your work starts to dull; pay close attention to that shift.

I think that second point is where Romero’s obsession gives her a big edge: thinking about games and working on games clearly energizes her. I make a different set of choices, ones that are probably more similar to Johanna Rothman’s.

The Triad of Constraints

When producing something, you want to do it quickly, cheaply, and well; the Triad of Constraints claims that you can pick two out of three at best. To which Romero’s answer is refreshing: fuck picking two, just pick one, make it great.

As she also acknowledges: this can work if you’re producing your own games on your own time; when you’re working as part of a business, telling the people who control the budget that you’re going to ignore speed and cost doesn’t work so well.

I’m not sure that that works so well for me personally as a programmer, though. My focus is on evolving software through as small steps as possible, with an external Product Owner prioritizing the customer-visible features. That means that, at any stage, I want to have written software that’s as good as I can have written in that amount of time, while preserving the ability to continue to do so in the future.

So I’ll alter the triad in the opposite direction, by picking all three. I’m very self-centered, so from my point of view, the cost is generally fixed, it’s my salary, I’m not going to magically produce twice as much work or twice as good work if you pay me more. And I certainly agree with Romero that I want to produce great work. And then the scope is what it is: you’ll get a different product if you ask for the best I can produce in a week than the best I can produce in a year, but in any case you can pick the scope however you want. Or, to put it another way: the Triad of Constraints implicitly assumes that you’re making choices up front instead of evolving; why would I want to do that?

Of course, I’m just punting certain decisions over to a Product Owner; Romero is more the Product Owner herself. That’s the way to approach the control aspects that I discussed above in a way where I’m less dubious: deciding on the sequence and details of user-facing features is an important role, no question.

Works and Creation

She has a comeback to my evolutionary design boosterism: she has no patience for the concept of the Minimal Viable Product, whereas to me it seems like an obviously good step in an evolutionary design.

But I’ve spent my entire professional career on software that is designed to be used and grow over the course of years, even decades. This is very different from a more traditional sort of creative work: where you release a work into the world, let people experience it as a whole, and move on to producing your next work.

And I’m not nearly as convinced about Minimal Viable Products or evolutionary design in the creative work arena. When I’m reading a book, I don’t want to start by reading a minimal version of that book one month, then reading a slightly more fleshed out version a couple of months later, then reading a third version that retreats in some areas based on user feedback and moves in a different direction: I just want to pick up a book and read it. And the same goes for games, much of the time, though admittedly less universally these days.

This doesn’t mean that evolutionary design doesn’t work in a context of polished creative works: you can still produce them iteratively, you can still solicit feedback from a trusted close circle at frequent intervals. And, as she says: “what if I made something as good as I possibly could every frigging day?” That’s one of the lessons she learned from Jiro: he ships every night.

So we’re returning to what I said above: work in small steps without sacrificing quality. I combine this with handing scope decisions off to a third party; she is in charge of scope, and she works in an industry where the scope that you choose for a product when it is released externally is a crucial decision.


Or at least next steps: I like evolution, after all!

One is that I should work harder to be doing my best during the times when I am working on something. If I’m spending the time on something, why not spend the time being focused and doing the best work I can? If I’m not going to do that, it’s probably better to not spend that time: instead, spend the time in a way that lets me get my energy back so that I can focus later.

And the other is that I should seek out greatness more. I’ve worked with one person whom I consider unquestionably great; or at least I worked in a startup that he cofounded, we rarely interacted at all. But, even so: those few interactions were incredibly energizing. (I was talking about those interactions with a friend of mine a couple of months ago, she said she’d rarely heard me sound so excited.) I should try to find more of that; I should try to deserve being around more of that.