[ Content | Sidebar ]


April 20th, 2014

Threes! is both adorable and, I suspect, pretty good. A similar sort of combining mechanism to Triple Town, but with shorter games that fit into my day better, and a bit less aggressive randomness. (I gather a sign of being good at Triple Town is enjoying the bears, finding that you get a lot of money out of them; I’m not there yet.) I’m fairly sure there are still several layers of strategy/tactics that I haven’t yet uncovered, though it’s a little hard to say from where I’m sitting.

Not much to say beyond that. It’s, uh, a metaphor for code hygiene? I wish the loading times weren’t so glacial? The art / music / sounds / motion really is adorable? (Except that the last upgrade seems to have broken sounds / music for me, at least some of the time.) It’s good enough at sucking up time that I should probably move it off of my home screen?

free to play

April 10th, 2014

There was a fair amount of discussion of “free to play” at this year’s GDC; most of it negative (at least in the discussions I was part of), often extremely so, and often linked with the concept of “whales”. There’s some amount of that discussion that I agree with, but more of that discussion (and the moral judgments that come with that discussion) that I’m uncomfortable with, so here’s an attempt to tease out what I think.

One basic point of uncertainty I have is what people mean by the term “free to play”. For example, at some point I was talking with Jorge about The Walking Dead; you can play the first episode of each season for free, so does that make it free to play? On a straightforward reading of the term, I would argue that it does, but within the cultural context of the discussion of GDC, I think it doesn’t. Or at least that’s not the type of game that the GDC zeitgeist wants you to envision when you bring up the term: it wants you instead to think of games like Candy Crush. (Or League of Legends, which the zeitgeist likes rather more than Candy Crush.) Is there a way of thinking about the concept that illuminates those differences?

The term “free to play” strongly suggests that we should talk about pricing models in general. So, in hopes that that sheds some light on what the term might mean, here are some possible models you can use to think about how to set “the right” price for something:

  1. Price based on cost: set the price based on the costs that go into developing / maintaining the game, plus enough of a profit margin to get by.
  2. Price based on value: set the price based on how much value the purchaser of the game will get out of it.
  3. Price based on marginal cost: set the price based on the cost it takes to produce / maintain one extra copy of the game.
  4. Price based on misdirection: get as much money as you can from players, without concern for the players or the long-term health of your relationship with the players.

It seems to me that a lot of the discussion presumes that free-to-play games always fall into the fourth model: the assumption is that providing games for free is inevitably the first step in a misdirection play. It also seems to me that the third model is a fairly major player in the discussion; and it’s an even larger player in the (somewhat related) discussion around game cloning, because cloning is closely tied to decreasing the marginal cost for producing a game. And pricing based on marginal cost combined with a digital environment is really scary for GDC attendees: these are people whose livelihood depends on making games, so their jobs will vanish if price = marginal cost = $0.


The thing about that third model is: in a lot of contexts, it’s the most natural way to price products. If a product is a commodity, then multiple companies offer functionally equivalent versions of that product. And so people looking to buy that product will pick the one that is cheapest; so companies will struggle to offer that cheapest price, which gives them an incentive to push the price down as low as possible while it still being worthwhile to sell the product at all. In a physical goods context, what this frequently means is trying to lower your cost of production, leading to a pursuit of economies of scale and other production efficiencies; that’s brutal enough, but it’s even more brutal in a world of electronic distribution, where the marginal cost is a fraction of a penny.

But, as much as it sucks to be a game developer in that position, there’s nothing inherently immoral about that situation. As a consumer, I am very glad that most of the items that I purchase are commodities: that when I walk into a grocery store, I don’t have to worry about the exact value to me of a can of tomatoes or the exact cost of production for that item. Instead, I get a lot of benefit from the fact that there are a bunch of companies out there trying to win the commodity sales war, by finding more and more efficient ways to produce tomatoes to sell them to me for cheaper and cheaper amounts of money.

Don’t get me wrong: I realize that this commodity war has real human costs as well. So in particular, I support measures like minimum wage laws and environmental protections that lower those human costs (especially if they make them explicit to encourage competition in lowering them, e.g. carbon taxes), even though those measures may have the effect of increasing the marginal costs for all the producers of the goods and hence to me. But I’m also really glad that I live in a world where most of what I need for my daily life is a commodity: it raises standards of living enormously.


This doesn’t mean that I support cloning in general: I suspect that that is one of those areas where artificially putting a floor on marginal costs is useful. For example, I’m not the biggest fan of copyright laws in the world, but if pressed I’ll admit that giving protection from copying an entire piece of software for a handful of years is as good an idea as I can think of. And I would never argue against anybody who has enough pride in their craft to be unwilling to clone. But I also think that some amount of cloning is extremely healthy: there are a lot of first-person shooters out there, there are a lot of match three games out there, and while those all look like clones from a distance, I’m glad that there’s enough room in the design space to allow Bejeweled, 10000000, Puzzle Quest, and Triple Town to all coexist.

So for me, the best solution to cloning is: find ways not to be a commodity. Which I realize is trite, even insultingly flippant, but I don’t have any other suggestions to offer that work with economics as I understand it. And this solution works in non-electronic contexts, too: sometimes, I just want a random can of tomatoes, but sometimes I want something that will taste noticeably better or work better in some particularly culinary context, which sets up the possibility of getting out of the commodity space. Or at least sets up the possibility of market differentiation: there’s still going to be some amount of commoditization within each market segment, but if you can find a small enough segment to work in, commodity effects will noticeably decrease.

Also, before I leave the topic of pricing based on marginal cost, I want to link it to the fourth pricing model: because pricing based on marginal cost often turns out to mean having the perceived price be based on the marginal cost, when the actual cost can be higher. In the electronic goods situation, this means that something is labeled as free but has hidden costs in terms of time, in terms of advertising, in terms of monitoring. Whereas for physical goods, two cans of tomatoes may have the same sticker price on the shelf, but one of them may have higher costs in terms of damage to the environment when producing it, damage to workers’ livelihoods while producing it, damage to your physical health from consuming it. So yes, pricing based on marginal costs can be linked to pricing based on misdirection; of course, any of the other pricing models can also be linked with pricing based on misdirection, but if we’re talking about free to play, it’s hard to imagine how a producer motivated by profit (as opposed to, say, one motivated by sharing) will function effectively in a zero-marginal-cost commodity context without some amount of misdirection in pricing.


At lot of the people I see advocating against free to play are advocating for the first model: they want a world where buyers pay thirty or sixty or whatever bucks for a game, where sales of quality games within a genre aren’t crazy to predict, and where you can staff dev teams accordingly. And I can certainly see why most of the people at GDC would like that first model: they know they’re not likely to get rich off of a game, but they want to make a decent living off of their work.

There are two problems with this model, though. For one thing, speaking as a person who plays games: why should I pay $60 for a game if I don’t know if I’m going to like it? I’ll even ask why I should pay any money for a game if I don’t know if I’m going to like it, but if it’s cheap enough, I can’t say that I shouldn’t pay a few bucks out of curiosity; but I’m a lot more dubious at, say, traditional console game prices.

But, more importantly: according to my admittedly naive understanding of economics, this model simply doesn’t fit the real world. There’s no reason why the amount that people are willing to spend on an item should be directly tied to the cost of the item: if your competitor is willing to sell a comparable item for less than your cost to make it, then tough. Fortunately, that can cut both ways: if you can either increase the item’s value in a unique way or decrease your production costs in a unique way, then your profit selling the item can increase out of proportion to its costs! But, either way, it’s not an accurate way to think about the world.

And it is my feeling that this model also comes with a fair amount of misdirection. In a world of fixed non-trivial priced games, players need ways to decide whether to buy a game without playing it. This leads to large amounts of advertising, it leads to a games “press” that’s almost entirely about getting players excited about upcoming games to the benefit of publishers, it leads to attempts to constrain the number of games that are being talked about / actively played in a given time period (that’s part of fighting against commoditization), it leads to games that wear out their welcome so players are encouraged to move on to buying something else, it leads to design based on marketing bullet points rather than lasting value.


And speaking of lasting value, let’s talk about the second model: pricing based on value. This is my favorite model: when I’m buying a product, I’m happy to spend money if I feel that I’m getting something for that money (at least if my budget is doing well!); if I’m selling a product, I feel great if I’m getting rewarded for making the product more valuable. And, unlike the first model, this model actually does work: as long as the product you’re selling isn’t a commodity, then you absolutely can price it for significantly more than the marginal cost if your target market thinks it’s worth it. (Witness Apple’s success in keeping huge margins for its products, or Nintendo’s ability to create a single version of Mario Kart for a given console and sell it at a relatively high price for years.)

I mentioned The Walking Dead above; in my mind, it’s a great example of this model. Before you’ve started playing the game, it hasn’t proven its value, so they let you play the first episode for free. If you’re still not sure, then you can buy the episodes one at a time, dropping off whenever you decide the game isn’t worth it. If the first episode convinces you that the whole season is valuable enough to pay for, then the developers let you show your appreciation of its value by paying for the rest of the season sight unseen at a slight discount.

Android: Netrunner, my current obsession, is another example. It is admittedly not free to play, so it requires a leap of faith from the player at the start. But once you’ve decided to play that, the developers will continue to attempt to provide value by producing expansion packs, and it’s up to players to decide whether those are valuable enough to purchase. I basically think of the game as one with a $15/month subscription fee; and in my mind, it’s absolutely worth it. I don’t play League of Legends, but my understanding is that it’s got a similar dynamic, albeit one more tilted toward the player: you can play a huge amount for free, but once you get sucked in, there are many ways to pay money, to let you get more value out of the game (by letting you focus on a champion you like, to get a skin that you enjoy looking at or feel represents yourself better). Or, for that matter, to pay money just because it feels right to give money to a company that has given you hundreds of hours of value: whenever a game sets up that dynamic, it’s really doing things right.


I’m already a couple thousand words in, so I think I’ll defer my discussion of whales to another post. I guess my conclusion so far is:

  • Pricing based on value can work, and when it works, it’s great for both players and developers, creating games that are worth playing for years.
  • Pricing based on misdirection sucks: try to avoid doing that. (It’s the one aspect of my work at Playdom that I actively felt bad about: I felt that a lot of our pricing was just fine, but we had this concept called “crates” that’s based around people’s brains not being wired to understand probability.)
  • I don’t see how high fixed pricing works in a digital world without strict gatekeepers: otherwise, it gets swamped by commoditization forces.
  • Commoditization forces are scary for developers, and they even scare me somewhat as a player.

what are apple’s language plans?

April 3rd, 2014

I spent my commute home today listening to John Siracusa and Guy English talk about how Objective C is getting old in the tooth. A topic, of course, that Siracusa has addressed a few times; as you would expect, it was a thoughtful discussion, I’m glad I listened to it.

And I really am curious about the answer there. I’m no Objective C expert, but it seems like it’s going to be an issue at some point in the not horribly distant future. But it seems like a lot of the standard solutions that I’m used to would be potentially problematic from the way Apple seems from the outside to approach things: in particular, a solution that bakes in a VM with full garbage collection into its foundations seems a little unlikely to me? I’m not aware of existing new languages that feel to me like they’d be a great fit for Apple, but that doesn’t mean much, I haven’t kept up well with modern trends in that area. Which could mean that Apple will do an Apple-style thing and invent their own solution; the question then becomes whether they have the language design chops to do an Apple-quality job of that. (Which I’m not at all convinced of.)

I dunno. The next time I’m on the job market, I should see if I have contacts over there who could hook me up with people who might be working on that. It could be a very interesting way to spend time, and one in which my own particular skills could find a useful role?

the wind rises

March 23rd, 2014

The Wind Rises is, I suspect, a very good movie; I won’t end up loving it in the same way as Spirited Away, but I probably will end up loving it more than Miyazaki’s films since that one, and the fact that it takes a less fantastical approach to its subject matter of course comes with strengths. I don’t have much to say about it as a whole yet, though I quite liked Ghibli Blog’s take on the movie.

What I do want to talk about, though, is one aspect of the surrounding discussion. The review that showed up in my local paper ends by saying that “But not addressing the way it was used and the war the country started so that it could use it just reminds us that Japan still dreams of denial, as far as World War II is concerned.” Or, on the blogger side, we have Tim Bray saying “But yeah, there’s a prob­lem. What we have here is art that’s all about glo­ri­fy­ing and ro­man­ti­ciz­ing peo­ple who built killing ma­chines that were put to use by a fas­cist gov­ern­men­t.” So: should I consider the movie’s treatment of that issue a problem or not?

Having just finished rereading the Nausicaä manga, I’m inclined to give Miyazaki the benefit of the doubt. In fact, I’ll tentatively propose that the movie’s refusal to directly address that question is an active strength: it made it a lot harder for me to pat myself on my back and say that I’m one of the good guys, unlike that horrible person in the movie.


Any discussion of the morality of that situation has to step away from the details. Yes, of course Japan did horrible things in the years leading up to World War II; yes, the Zero fighter was built in service of those horrible things. So it’s easy for me to say that a Japanese filmmaker should abase himself in shame for what his country did, that a Japanese airplane designer should have had the courage to say no when asked to build tools of war. But it’s easy for me to say that because I’m sitting in comfort seventy-five years after the fact in my home country, the country that was on the winning side of the war. Would I make the same claim if the roles were reversed, if it were me or my country we were talking about?

Because, to be clear: it is not at all difficult to find parallels in actions that my country has taken. Over those intervening seventy-five years, we’ve invaded one country after another, overthrown governments we don’t like and installed puppet regimes to do our bidding in flagrant disregard of basic notions of democracy, of the rights, desires, and even lives of the people who actually live in those countries. I’m not a student of history, but it is not at all obvious to me that Japan’s treatment of China was any worse than the United States’ treatment of Vietnam or our treatment of Latin American countries. And we’re the country that developed and used the atomic bomb, and we continue to have enough bombs in our arsenal to destroy humanity.

And of course there are plenty of American movies about the Vietnam War that don’t present our actions there as heroic. But what’s interesting to me about The Wind Rises is the oblique angle that it takes to the war. Jiro isn’t a soldier: he’s an engineer and designer, he’s doing work that he loves and is brilliant at, he’s doing work that is unquestionably deserving of love. And he’s doing that work in the service of his country, in a context where many around him are unable to find work and living in poverty. (The movie’s title reinforces that latter aspect of the situation: the wind is rising, we must try to live.) I would like to be able to say that, were our situations reversed, I would make different choices from Jiro, but I don’t believe that: the choices that I’ve made in my life so far give ample evidence that I don’t stay away from work in contexts that are morally questionable, especially if that work is work that I love, am good at, and can make money from.


As is obvious from the above, I think a lot of what the US military does is evil. So you would think that I would stay away from the military. These days I do, but I haven’t always. The summer after my freshman year at college, I worked at a defense contractor on a military-funded research project. (We were building a verified Scheme compiler, it was really interesting!) And most of my grad school was funded by a Defense Department grant. In both cases, I got to do something that was fascinating, profitable, and that I was good at; that combined with the lack of direct focus on military applications was enough for me to ignore my misgivings about military ties.

And maybe that was even a perfectly reasonable choice from an ethical point of view: better for the military to spend money on me than on something more closely tied to killing people? Certainly military-funded research has led to a lot of good: the internet started off as a DoD-funded project, after all. But I think that’s largely after-the-fact rationalization of me doing what was most pleasant for me. It’s nothing compared to the gravity of the choices Jiro had to make: if he wanted to do what he loved at all, he had to accept military work, and he was surrounded by people whose lives were threatened by not being able to work. Whereas if I hadn’t taken DoD funding for grad school, then I would have gotten NSF funding instead, I would have had the exact same education, and my stipend would have been maybe 15% lower; this hardly compares in terms of hardship.

I don’t want to present this as too much of a slippery slope: I’m pretty sure I would have thought a lot harder about those choices if they’d involved working directly on military work. But that in turn points at one of the major strengths (?) of modern capitalism: it leads to systems that are very good at finding people’s moral limits and getting as much benefit from those people as possible given those limits. If you want to be on the front lines of fighting evil in the name of your country, the military will be happy to give you a gun and ask you to do that. If you support the cause but don’t want to be so directly exposed (whether for reasons of danger or of not wanting to be confronted with the consequences of your actions quite so directly), you can help at a distance: you can pilot a drone, you can work in a support role. If you want to be ready to support your government if necessary but would prefer to not have your home and work life disrupted excessively otherwise, you can join the National Guard. If you want to use your brain to fight people, or just want to use your brain to solve interesting problems and don’t really care where those problems come from, the NSA will be happy to employ you. If you want to work on generally applicable technological problems and don’t particularly care who pays the bills, then you’ll end up where I ended up, opportunistically getting DoD funding to do what you want.

And what this leads to is a system where the military can get a lot more power, can be a lot more effective than it would be if people had to make a choice up front as to whether or not they’d be willing to pull a trigger and kill a person standing in front of them: by putting their fingers on the scales, the military can weight the system to flow in their direction. It’s similar to the way funding by the rich and corporations biases the political system: I’m sure most politicians would recoil at the notion of simply letting their votes be bought, but if pro-corporate candidates get more funding than anti-corporate candidates, then the whole system flows in a pro-corporate direction even if no candidate’s behavior is changed by the presence of funding, because the pro-corporate candidates are more likely to survive. (And I bet that an awful lot of political candidates’ willingness to engage in quid-pro-quo behavior rises as they’ve been within the system longer, too.)


I haven’t, as far as I know, accepted military funding for a decade and a half now; that doesn’t mean that I’m not still implicated in ethical choices, though. Every week, there’s another story about how the tech industry is actively hostile to women, to minorities. Or if it’s not that story, then it’s a story about privacy, how we’re constantly monitoring our users in order to make them more attractive to advertisers. And I just got back from GDC, my yearly exposure to the arguments around monetizing. I’ve seen all of those arguments from the inside of companies; generally I’ve ended up working in a way that puts me on the wrong side of them, because I end up on the wrong side in a way that I only find mildly distasteful, and working on something interesting and profitable turns out to matter more to me than mild ethical discomfort in practice.

And then there are other arguments that don’t even rise to my conscious attention but that are perhaps even more important. Climate change seems like it’s probably a bigger threat to human existence than anything other than nuclear weapons; as somebody who works on server software, I’m part of a switch from physical goods to goods over the internet. So I’m pretty sure that the work that I do is directly relevant to climate change, but I have no idea whether it’s relevant in a good way or a bad way! Maybe reducing transportation costs means that it’s a net positive; maybe server energy usage means that it’s a net negative. But, either way, it’s very easy for me to not think about the issue at all.


Miyazaki cares a lot about these sorts of big questions around war, around the environment, around survival: see Nausicaä, see Castle in the Sky, see Princess Mononoke. In those three movies, there’s a clear bad guy to fight against, and it’s easy to put ourselves in the place of somebody fighting against that bad guy. With The Wind Rises, he raises those same questions (referring to them even in the movie’s title), but instead encourages us to empathize with somebody on the other side of that divide. That’s gotten me thinking a lot more than any of his previous movies have; and it has me realizing that it’s not a divide at all.

glamourist histories

March 19th, 2014

I’ve been going through back issues of Asimov’s on my train ride, and a story by Mary Robinette Kowal caught my eye (Kiss Me Twice (PDF), I suspect?), so I figured I’d give her novels a try. So I started with Shades of Milk and Honey; I’m not familiar enough with relevant genres to be able to site it particularly well, but Jane Austen with some magic thrown in? And magic centered around creation of visual illusion set-pieces, which now that I think about it is interesting of itself: this isn’t magic as power fantasy, this is magic as an art form. At any rate, I enjoyed it, Liesl enjoyed it, so we decided to seek out the rest of the series. (The series goes under the name Glamourist Histories, which I find charming.)

And I’m glad we did, because the second and third volumes did something that I am not used to seeing in books, and that I am grateful to see. Maybe it’s the narrowness of my reading, but: I am used to reading books that don’t talk about (romantic) relationships at all. I am used to books that present a relationship as a perfunctory prize won by the hero as his (because it’s almost always a him in these situations) “natural” right. I am used to books that flesh out relationships in the courtship phase, though I don’t read as many of those as I could. And, back in the days when I read more literary fiction, I wasn’t surprised to run into books about marriages that were falling apart, from a male midlife crisis point of view.

The thing is, none of those are particularly relevant to me. I was going to say that the first is, in that there are very important parts of my life that don’t focus on my marriage; but those parts of my life still very much have to acknowledge the fact that my marriage (and my family in general, I don’t want to exclude our daughter!) is a key influence on how I spend my time. And of course I have gone through courtships.

But: Liesl and I started dating more than half of my life ago; we’ve been married for over fifteen years, and we were pretty solidly committed to each other for the last four or so years that we were dating before we got married. And, while there’s no guarantees about any of this, my guess is that my life is only about halfway over, and that we’ll be married (to each other!) for that remaining lifespan as well. So why is it so rare for me to read books that talk about happily married life? I won’t say that it’s unknown in my reading: some of Delany’s recent books present married life, in particular his latest. And the Kushiel series addresses the topic as well, though really only the third book focuses on it. Still: such books are rare, and I’m finding that rarity frustrating.


I’m not a novelist, of course, and I’m sure there are positive reasons for those choices: happy marriages don’t have the sort of external drama that lends itself to novelization. But I was really glad to see that, after starting the series with a novel that led up to the protagonist getting married, Kowal continued the series in a way that presented that marriage as being central without making the drama be about whether the marriage will succeed. Not that the marriage doesn’t spark off bits of conflict, especially in the second volume: Jane and David are still getting to know each other, and so while they’re remarkably well matched, there are still points of tension, areas where they’re figuring out each other and figuring out their marriage. But they handle this like grownups, in an entirely realistic way: sometimes things don’t go perfectly, sometimes Jane and David don’t react perfectly, but in general they talk things out and do so from a position of love and respect. Yes, not all marriages work this way; but I can say from experience that some certainly do, and it’s a model that I far prefer to a model that only presents marriage as a prize at the end of courtship or as a source of drama as it falls apart.

The other aspect of the series’s treatment of marriage that I appreciated: its portrayal of lust. I’m used to books that present sex between people who are marked as young and attractive (especially if female) and/or heroic (especially if male). These novels, however, explicitly mark Jane as not particularly conventionally attractive and as getting married later than is normal. But the novels are also quite forthright in presenting that as irrelevant: Jane and Vincent love, admire, and lust after each other. Which, again, I find both entirely true to life and charming to read.


So: Ms. Kowal, if you read this (as I suspect you will, given your adeptness at noticing mentions of your work): thank you for this series. I would have enjoyed it even without its portrayal of marriage; but that latter aspect of the series mattered to me.

(And, don’t get me wrong, I’m sure I’d also enjoy different sorts of works from you: like I said above, I really enjoyed Kiss Me Twice! Though, of course, it also has a rather nice portrayal of partnership…)

kickstarters i’m waiting for

February 20th, 2014

Here’s a list of Kickstarters (plus one GoFundMe) I’m waiting for:


One small outlier and one huge outlier. The Urban Tarot guy (“Estimated delivery: Dec 2012″) sends regular updates with new pieces of art, the art continues to look gorgeous, I’m still looking forward to that.

And Hadean Lands was funded long enough ago that the URL in that e-mail no longer works, and that the project doesn’t have an estimated delivery date. (Not sure when Kickstarter added those.) But, from the project page:

If I wanted to take six months and write a game, I could cram that into my spare time. If I wanted to write an iPhone interpreter, I could probably manage that too. That’s not how I want to run this project.

I will quit my day job at the end of December, to work on interactive fiction full-time. That means all my IF-related projects. Most of these are not commercial; they benefit the whole community.

Hadean Lands will be my day job — but I’ll be able to keep doing smaller text games in my spare time.

Heh. (And, as the updates have made clear: he’s worked on a lot of stuff other than Hadean Lands in the intervening 3+ years.)

Actually, there’s one other project I backed but haven’t received that’s not on that list: Addicube. I was going to write that that one, at least, was explicit about giving up and acknowledging that it wasn’t going to be delivered, but I actually don’t see an update on its Kickstarter page saying that; pretty sure that Corvus said that openly somewhere else, though. (And Corvus did deliver on Bhaloidam.)


I’ve backed a total of 31 projects on Kickstarter and received 22 of them; and I can think offhand of two non-Kickstarter projects that I’ve backed, one of which I’ve received. Around a third I backed largely because I wanted to support the person involved, and around two thirds I backed as a sort of pre-order; the latter have a solid delivery rate (they slip sometimes, but in my experience they show up eventually, though it possible something weird will happen with some of the ones listed above), while the former are quite a bit iffier on that.

I could (easily!) be wrong, but I get the feeling that people in the “pre-order” category are much better at picking an amount of money that will make a difference to their ability to complete the project, while people in the “support this person” category are asking for money to do something that they’re planning to find a way to do anyways, leading them to lowball the amount of money they’re asking for, to not think hard about the resources they need to complete the project, and/or to spread their interests once they’ve gotten the money.

Which may sound like I’m having second thoughts about backing projects where I want to support the person involved. But I’m not: I’ve already met one of my main goals in those contexts right from the start. So, while at times I’m bemused about how those projects play out, I don’t worry much about them.

And that class of projects usually produces concrete results too, sometimes wonderful ones.

games and copyright

February 8th, 2014

John Walker’s editorial in Rock Paper Shotgun on “Why Games Should Enter The Public Domain” was going around my Twitter feed the other day, frequently coupled with Steve Gaynor’s response. And what I appreciate about both of them is the pragmatic tack that they take: I think that the U.S. Constitution has it right by saying that Congress has the power

To promote the Progress of Science and useful Arts, by securing for limited Times to Authors and Inventors the exclusive Right to their respective Writings and Discoveries

The Constitution doesn’t present some sort of moral right for people to control how people use their works, it doesn’t make a facile comparison of copying/transforming works with taking physical objects, it instead gives a pragmatic choice: we want as much good stuff to be available as possible, so if limited monopolies are useful to that end, then let’s grant them, but only to the extent that they are useful to that end.

And yes, that word “available” is my editorializing: I don’t care about artistic/scientific progress in the abstract, I care about it to the extend that it enriches people’s lives. In particular, if two solutions lead to similar numbers and qualities of works created, then I’ll vote for the one that makes those works more easily accessible, with the public domain being the most obvious means to that end.


So, with that common ground in place: John Walker argues for a 20 year copyright for games, Steve Gaynor argues for longer than that, with the justification being that companies the incentive of windfall long-term successes to justify speculatively investing in new works. But he wants a shorter term of protection for the ideas themselves. His own example is System Shock: he wants the game itself to remain under copyright protection, but he still wants to make a sequel to it.

Or rather, System Shock is his example for reduced protection for ideas: his example for the benefits of copyright protection on works is the music he licensed for Gone Home. But when I look at that juxtaposition, I don’t support his recommendation. Because the thing is: that music is still available, and we have a relatively robust system for publishing music that leads to vast quantities of music staying in print. The exact opposite is the case for video games, however: the proportion of games still in print from 20 years ago pales in comparison. And System Shock is a perfect example: I recently replayed it, and I would have been perfectly happy to have paid somebody money for a new copy (preferably one that Just Works on my machine), but I was unable to do so.

And, to the extent that I buy Gaynor’s argument that games publishers need the incentives of the possibility of profiting from a work 20 years later, I think it leads to the opposite of what he recommends: I think it’s quite rare for individual games to be a significant source of profits 20 years later, but I don’t think it’s as rare for characters or series to be to be a significant source of profits 20 years later by spawning new games. (That situation is still hitting the lottery, but the odds and profits are both better.)


What I really hate is art being unavailable: I like the public domain more than most, but to me it’s just a means to an end, and if we can find other means to that end, great. Art can be unavailable (for new purchase through legal means) because it’s an orphan work, because too many people are involved in rights to it, or because rights-holders don’t want to make it available for resale: any solution should deal with all of those problems, and the third in particular is a much more serious issue for video games than for most other forms of media. Gaynor lists music as a success, but rights-holder who wants to make music available for sale just has to give, say, CD Baby or Bandcamp a few bucks and a few MP3s, and poof, it’s available. Whereas if Sega wants to make Shenmue available, it’s a whole other story: they have a version that runs on the Dreamcast, but selling that would do so little good as to be completely pointless for them, and porting the game to newer platforms would cost them time and money with very uncertain return.

So, faced with that, public domain seems like a pretty reasonable solution to me. But it’s hardly the only solution: compulsory licensing could work well too, for example. Just spouting ideas off of the top of my head: given that there are real costs in making a game available in new platforms, let other people take on those costs and share in the rewards, paying a royalty fee to the original rights-holder. And if nobody is willing to do that or if there’s no registered rights-holder, then let people redistribute it for free. That sounds to me like a clear win over letting works stay inaccessible through legal means in perpetuity, as is effectively the case in the United States today.

Also, we need to deal with the fact that, in the presence of the possibility of digital reproduction, any sort of copyright regime creates a world of lawbreakers: I’m not saying that we should throw up our hands and give up on copyright entirely (though I’m also not saying we shouldn’t!), but we should accept that copying a game or a book or an MP3 is a minor offense at best, and set the punishment accordingly. (Which would, I imagine, come back to another form of compulsory licensing.)

And really, we need to find solutions to these easier cases, because there are harder ones coming along: more and more games and art-forms are going to be server-based, and dealing with orphan works in that context is a lot more difficult.

downcast and castro

February 4th, 2014

A little over a year ago, I switched from Apple’s Podcasts app on the iPhone to Downcast, and I’m very glad I did: it was much easier to make sure that the podcasts I wanted were available when I wanted them, and to listen to them in the way I wanted. And, given that I spend most of an hour each weekday listening to podcasts during my commute, this is important!


Having said that: Downcast isn’t perfect. It’s a little too clunky, it’s got a few too many options. (My favorite one is “Portrait Lock”: the options are “Disabled”, “Enabled”, and “Enabled (Prevent Upside Down)”. Who wants portrait lock to be enabled but wants the screen to flip when the phone is upside down?) Also, on a practical front: all of those controls mean that there’s not much room for the liner notes (I have a 4S, it’s probably a little better on the larger screen); which is fine but suboptimal most of the time, and actively annoying when listening to foreign language podcasts where I like to read along to what is being spoken.


That red rectangle is the liner notes area; it’s just over a third of the height of the screen, only about 50% larger than the controls beneath it.


So I figured there’s room out there for an app I’d like a bit more: one that’s a little more opinionated and focused a bit more on elegance. I saw a few new recommendations towards the end of last year, and Castro looked interesting, so I thought I would give it a try.

Castro-Light Castro-Green

Right from there, you can see one of Castro’s distinctive stylistic choices: the background changes color based on the podcast’s album art, which turns out to be rather lovely. Also, there are a lot fewer controls.

Specifically, here are all the controls that Downcast shows you:

  1. A Back button.
  2. Buttons to skip forward and back by small amounts.
  3. A slider showing your current position in the podcast.
  4. A button to forward a link to the current podcast to various services.
  5. A button to loop.
  6. Buttons to play/pause, and to go to the beginning/end of the current episode.
  7. A button to control the playback speed.
  8. A button to set a sleep timer.
  9. A volume slider.
  10. An airplay button.

What does Castro do with these? In order:

  1. The back button is omitted: you have to swipe right to go back.
  2. There are no small amount skip buttons. The small skip buttons are next to the play button, and can also be used to fast-forward/rewind if held down.
  3. The current position slider is there (it’s at the top of the black area at the bottom), but slimmed down and with an interface that took me a little while to be able to operate properly.
  4. There’s no “forward a link” button.
  5. There’s no “loop” button.
  6. The play/pause and beginning/end buttons are there button is there, but there’s no beginning/end button.
  7. There’s no playback speed button (but it’s controllable on the per-podcast settings, or by holding down the play/pause button).
  8. There’s no sleep timer.
  9. There’s no volume slider (but of course the standard physical volume buttons work.
  10. There’s no airplay button (but the standard iOS airplay control is accessible by sliding up).

So, of the ten sets of controls, four three are omitted entirely, four have the functionality accessible in a different way, and two three are present. This leads to a much less cluttered interface, and one that works almost as well. (Incidentally, Downcast has a second hidden play/pause button, accessible by double-tapping anywhere; I quite like that, it’s useful when fumbling.)


And, because of this (and because they shrunk down the height of some of the remaining elements), there’s lots of room: room enough to have a picture of the podcast at the top (which is actually a button that lets you get to per-podcast settings and a list of other episodes), and room for that big text area in the middle. It’s not obvious from the above screenshots, but the entire middle area is scrollable:


giving you almost twice the vertical space for liner notes. Which is great! Except that, ironically, it isn’t: Castro shows you notes from the RSS feed (I think), but doesn’t show you the notes from the lyrics section of the audio file (again, I think). Whatever the difference is, it means that Castro doesn’t show the full notes for Japanese Pod 101 / Chinese Class 101: so, for exactly the podcasts where I want that extra space, I don’t have access to the text I’m looking for! Sigh.


What about the other controls that are missing? Some I don’t care about in the slightest (sleep timer, volume slider). I think it’s a little silly to remove the dedicated back button, but the swipe is easy enough to do. The “forward a link” button I actually occasionally use, but not enough to miss it; personally, I wouldn’t mind if it were there (maybe put it in the upper right and a back button in the upper left, flanking the logo?), but I don’t feel strongly about that.

What I do feel strongly about is the “skip a small amount” buttons. I realize that (many) podcasters want to make money, and while I’d prefer to donate money to them directly, I can certainly understand why most choose ads. So I will always listen to an ad for a company the first time I hear it, probably the first few times; but, honestly, the tenth time I hear the same ad, it’s not helping anybody for me to listen to it. (And the position slider isn’t close to being a replacement for the skip buttons, it’s way too finicky.) Also, there are some podcasters who ramble on about stuff that I don’t care about: I want to subscribe to those podcasts because there’s stuff in them that I find valuable, but I also want an easy way to skip over a tangent that I just don’t care about. So, the result is that Castro wastes my time.

Edit: Whoops, that functionality is there: somehow I got it in my head that the buttons surrounding the play/pause button go to the beginning/end, but in fact they’re small skip buttons (15 seconds back, 30 seconds forward), and if you hold them down then they let you go at high speed through larger chunks. I’m not sure what fumbling I did to make me think that they did something else, but I should have verified that before writing this! (I don’t find the icons super evocative of “small skip”, but they’re also not evocative of “skip to end”, and I don’t have a better suggestion for icons.)

Castro also wastes my time in another way: instead of having three faster-than-real-time speeds and one slower-than-real-time speed, like Downcast does, it has two of each. I find having two slower-than-real-time speeds just odd: I can’t imagine who the target audience is for that one. And there is a significant minority of podcasts that I listen to on Downcast’s fastest speed (labeled as 3x, but actually 2x): again, there are podcasters who don’t edit out their ramblings and hesitations (usually the same podcasters for whom a one hour show is short), and with podcasts like that, my choices are either to listen to them on top speed, to have a single episode take up a third of my weekly podcast listening time, or to stop listening to them entirely. I prefer the first of those choices, which means Downcast.


So: Castro is great for, say, shows like Planet Money with excellent production values and few/no ads; but if I’m listening to Back to Work, I really want the extra flexibility that Downcast gives me. And, actually, I think it would be just as easy for Castro to give me that same flexibility: they have a menu of five playback speeds, they’re just the wrong ones, they can switch that to the right ones. As to the small amount skip buttons: I never use the beginning/end buttons, so if those were replaced by 30-second skip buttons, I’d be completely happy. Edit: Um, yeah. I’m happy!


That’s how the apps behave when playing a single episode: but there’s also managing the episodes, and they’re at least as different there. When you start it up, Downcast shows you a list of all podcasts you’re either subscribed to or have downloaded individual episodes of in the past (by default, you can of course delete podcasts from that list), with the podcasts with unplayed episodes at the top. Castro, in contrast, has a podcast list that shows you all of the podcasts you’re subscribed to, with no sorting based on unplayed episodes, which I don’t find very useful at all: for me, most of those podcasts will be empty if I click on them.

But Castro also has an “Episodes” tab; that one shows you the unplayed episodes from the different podcasts, mixed together. (Which you can get with Downcast as well: they have a flexible playlist feature.) I started using that; and, once I got over the change, I decided that it works rather well, that in fact I prefer it. (At least for most podcasts—there are some podcasts where I have a lot of back episodes stored up that I want to keep around, and I’m just leaving those in Downcast for now.)

That’s for podcasts that you’re subscribed to; Downcast also has a notion of a podcast that shows in your list but that you’re not subscribed to, whereas Castro apparently has no such notion. Which I was annoyed by at first: I subscribe to 20 podcasts, but there are maybe 30 or so more that I’ll listen to occasional episodes of if I have reason to find them interesting. And I don’t want to subscribe to all of those, because that means it will take time fetching feeds and I’ll have to be constantly manually clearing out episodes I don’t want to listen to. (Incidentally, I have no idea when Castro refreshes feeds; that bothered me for a while, but it seems to work well, so it doesn’t bother me so much now. Still, pull-to-refresh would be welcome…)

Fortunately, it turns out that Castro has a workaround to that: you can go to the “add podcasts” screen and type in a podcast name, and then download individual episodes from there. If you do that, you’ll get the episode(s) in the Episodes tab but you won’t get the podcast in the Podcasts list. Which is a fine tradeoff compared to Downcast: slightly harder access to those podcasts at the balance of less clutter, and that’s fine. In fact, it ends up being the only reason why I ever go to the Podcasts tab: given that, I would stick the “Add podcast” button at the bottom instead of the top, and I’d have the app default to putting you on the Episodes tab instead of the Podcasts tab.


So, where does this leave me? I like the aesthetics of Castro a lot more; it’s now my default podcast app because of that. But if I had to choose one, I would still stick with Downcast: for a significant minority of podcasts, Castro’s behavior is a deal-breaker. If Castro would make three changes, though, then I would use it 95% of the time: specifically, I would like it to:

  • Give me 30-second skip buttons (preferably in place of the whole-episode skip buttons),
  • Give me a 2x listening speed, and
  • Display the full notes for Japanese Pod 101.

If it made those changes, I’d recommend it whole-heartedly.

Or, for that matter, if Downcast would change its aesthetics somewhat, I’d probably be happy to recommend it whole-heartedly as well! That’s a harder one for me to talk about, though: it does have a strong aesthetic, it’s just that that aesthetic is about configurability. So they’ll probably do better staying focused on that then on trying to be something else; and I’ll probably still continue to use Downcast for a minority of situations where those choices matter to me.

don’t take it personally, babe, it just ain’t your story

January 30th, 2014

My arc of feelings about don’t take it personally, babe, it just ain’t your story is, I think, similar to that about Digital: A Love Story: I didn’t think about it too much when playing it, but then it stuck in my head, and then we had a VGHVI Symposium about it where I had a reasonable amount to say, but then I put off writing about it for long enough that I’ve forgotten most of that. Sigh.

Comparing it to its predecessor: it’s a lot more polished, a lot more like what I would expect a visual novel to be like. Which is mostly good, but means that it loses a bit of an edge in some ways: the faux-computer interface of its predecessor had real power in its own way. But, ultimately, I got tired in Digital of constantly going through a modem connection dance, and I certainly got tired of having to randomly try stuff until I did whatever would move the story along. Whereas, with don’t take it personally, the story moved along quite nicely at its own place; online messages provided an important aspect of the story, but they were much more of an important alternate point of view instead of a gating requirement. Except for the once-per-chapter scenario where the game forced you to connect to a message board that you never looked at otherwise: that was a gate, and one that seemed both out-of-character and out-of-place, though maybe I’m wrong about both of those: maybe it’s out of character for me but in-character for the protagonist, and I do wonder how many of the people on 12channel are also students in the school, hence providing yet another perspective on their lives?

And that question of what’s in character for me versus the protagonist was an important one: fairly early on, I felt that I was presented with a choice of ways to act where none of the ways felt right to me, and I didn’t like that. Which, thinking back on it, is weird: when do I ever see a game where I can act like I would in real life? But the answer there is perhaps that, in most games, I’m presented with characters who bear no resemblance to me, in settings that are nothing like my life, facing problems that are like nothing I ever see. Whereas, in this game, the protagonist is a teacher; I have been a teacher, which makes it easy for me to see the disconnect. Part of the reason why Dragon Age II had the impact on me that it did was that it at least gestured towards shrinking down some of its scope to a personal level; but don’t take it personally, babe, it just ain’t your story takes that much farther, of course. I’m really not sure why games are so drawn to overblown plots: to me, they seem to work against any sort of emotional connection.

In addition to seeing how that concept of disconnection with the protagonist plays out differently in different games, we can compare games to books: I’m used to books presenting protagonists who aren’t much like me, and I don’t generally pull back from that, either? But there’s something different about being forced to make a choice between actions you don’t agree with, in situations where you really would do something different. At any rate, that discomfort didn’t last too long, though; eventually, I mostly just went along with it, stopped taking it personally. (And it’s not like the game is heavy-handed about forcing you to make weighty choices or anything.) Mostly, I was just reading a story, just with more different perspectives on what was going on than I would see in a book.

And then I came to the end: in particular, the shadow play and the infodump. In the Symposium, we spent a while talking about the infodump, and I ended up defending it. My take is this: we have this shadow play, put on by two students whom the protagonist respects and thinks are neat kids but isn’t sure what they’ll come up with. And the shadow play isn’t at all what he expects; so he’s not sure whether it’s pointing at something interesting or just junk. So then the students have to take him by the hand still more patiently and explain to him what’s going on: there are layers everywhere, and what he saw as naive behavior was actually performance. In that context of needing to explain, an infodump makes sense.

Also, the context of the infodump as being done by smart high school students locates it in an interesting place for me. Because these are students who are trying to construct a view of certain aspects of the world; and they’re old enough and smart enough to do a good and interesting job of that. But that doesn’t mean that they’re right: so if we have a warring point of view of the protagonist seeing himself as secretly spying on the students and the students seeing themselves as knowingly performing for the teacher (while being one up on him), they can try to construct a narrative that presents the latter to the exclusion of the former. And, well, the students are probably more correct than the teacher is in this instance, because they’re wiser in the ways of social media, but that doesn’t mean that they’re masters of the situation, either: uncomfortable truths can appear as part of social media self-presentation, acts can get out of hand with real-world consequences. So the infodump, from that point of view, makes sense to me as a rhetorical play by the students that isn’t entirely successful or accurate within the world itself; that, to me, is more interesting than infodumps that I sometimes see that I only manage to interpret as the author sticking information in.

And this rhetorical play, this contest comes out in the title of the story, too. I, the player, shouldn’t take things personally, because this isn’t a story about me. And the protagonist also shouldn’t take things personally, because the students’ interactions and lives are about them, they’re not about him. There is, of course, truth to both of those points of view, but it’s equally true that the power of art comes in how it bears on you, the person reading / experiencing it; and a teacher is part of a classroom, too, and given how many hours students and teachers spend together, he’s part of students’ lives. So, in both of those contexts, the title of the game has some real truth to it but fails as an absolute (no surprise, because after all what artist wouldn’t want us to take her art personally?), which makes it all the more interesting.

I’m glad we played through that game and talked about it, hopefully Analogue will come up fairly soon in the rotation.

this week in v.c. biases

January 25th, 2014

When I suggested three days ago that perhaps venture capitalists didn’t have superhuman powers to avoid bias by following the smell of money, I wasn’t expecting this gem from Tom Perkins:

Regarding your editorial “Censors on Campus” (Jan. 18): Writing from the epicenter of progressive thought, San Francisco, I would call attention to the parallels of fascist Nazi Germany to its war on its “one percent,” namely its Jews, to the progressive war on the American one percent, namely the “rich.”

From the Occupy movement to the demonization of the rich embedded in virtually every word of our local newspaper, the San Francisco Chronicle, I perceive a rising tide of hatred of the successful one percent. There is outraged public reaction to the Google buses carrying technology workers from the city to the peninsula high-tech companies which employ them. We have outrage over the rising real-estate prices which these “techno geeks” can pay. We have, for example, libelous and cruel attacks in the Chronicle on our number-one celebrity, the author Danielle Steel, alleging that she is a “snob” despite the millions she has spent on our city’s homeless and mentally ill over the past decades.

This is a very dangerous drift in our American thinking. Kristallnacht was unthinkable in 1930; is its descendent “progressive” radicalism unthinkable now?

Tom Perkins

San Francisco

Mr. Perkins is a founder of Kleiner Perkins Caufield & Byers.

Wow. I mean, I suppose it’s possible that VC’s only have blind spots about their wealth-based privilege, not their gender-based privilege, but that does not seem likely to me. (I assume that Perkins thought favorably of the editorial he cited, after all.) And this isn’t an off-the-cuff interview, this isn’t him quoted out of context: this is a letter he wrote to a national newspaper.

I’m not surprised that Kleiner Perkins immediately distanced themselves from the letter. And I assume that this kind of view is extreme within the VC community. But I don’t know; it’s a business that comes down to personal judgments expressed behind closed doors, so the rest of us don’t have a lot of direct insight into what the industry is like, what motivates its leaders.

that paul graham interview

January 22nd, 2014

So, there was this Paul Graham interview going around recently. Which was originally behind a paywall, so the link that got passed around was from Valleywag; I wondered how much they might be quoting out of context (which is what Graham claimed), but looking at the full text and The Information’s explanation, it seems not?

It was interesting to watch it go through my Twitter feed, though: I didn’t realize that my Twitter feed contained so many people who would take Graham’s side in response to the initial post. So I live in a little bit less of a bubble than I think, which is good? [1]

Anyways; it’s about a month later, and it’s still stuck with me: there are a lot of layers there, and it produced a fair amount of interesting commentary.


First, there’s a surface question: is Graham a sexist asshole? (Which is, after all, hardly unprecedented in the startup space.) I tend to think that he’s not, but it’s not like I know they guy; as Jay Smooth taught us, though, that’s the wrong question: don’t talk about what somebody is, talk about what they did. And yeah, the way he talks about women (or girls) in that interview is not great, and it’s not an isolated incident: Sam Biddle suggests that you search Paul Graham’s website for the word “women”, and the results, as Biddle chronicles, make it seem to me like he doesn’t think about women much in general and, when he does, he categorizes them as the other. (He certainly talks about them very differently from how he talks about Mark Zuckerberg!)

But really, Graham is just one person: in some sense an important person, sure, but, well, there are a lot of people in the world. So, for example, one question that is more important is: do VC firms as a whole reinforce or work against sexism in startups? (And, to tie it back to Graham, one might wonder how Y Combinator stacks up.) Graham wrote a second followup post that spent a lot of time on this; and, I will say, I came out of that post with the belief that Y Combinator was doing a decent job of being conscious of this issue and trying to push against it. So, in all sincerity: yay for them.


But I also think that last post has some issues. For one thing, it contains more of Graham’s othering of women: comparing women to aliens (or whatever that “you could have eyeballs on stalks” comment is supposed to mean) is entirely in line with the quotes that Sam Biddle pointed out. But there’s also this, uh, meritocratic? Social Darwinian? tone to it which ignores the issue of systemic bias in important ways.

I’m referring specifically to following:

A lot of people outside the startup world seem to assume that investors have the same sort of naive bias ordinary people do when deciding who to invite to join a club—that they simply fund the people most like them. That is not true. What drives most investors is money. As it should, because they have a fiduciary duty to their limited partners. So while they have biases, their biases are merely instances of stupidity, not principles they feel they have to uphold. When they realize they’ve been overlooking some type of startup or founder, they stop, because it means they’ve been losing money. All it takes is another investor who’s willing to fund the companies they’re overlooking.

This is, in large part, bullshit. Rich investors do not have some sort of magic power to avoid falling prey to societal bias by following the smell of money, and talking about whether following that bias is stupidity or principles is irrelevant. The world has contained rich investors for millennia; and those same millennia have been full of societies controlled by rich people minimizing the rights of those with different wealth levels, family heritage, and genders from themselves. Any claim that those in power will just stop when they realize that they’ve been overlooking a class of people and they could potentially make more money if they didn’t do that has to be tested against those millennia of context; to me, Graham’s claim doesn’t even hold up to minimal scrutiny. (Or when tested against other contexts: there’s an awful lot of fabulation around fund managers of all sorts, to pick another example.)

Compare this to the Graham’s claim in the original interview that

That’s a self selected group of people. Anybody who wants to apply can go to that thing. They’re not discriminating for or against anyone. If you want to see what a cross section of programmers looks like, just go look at that or any other conference, doesn’t have to be PyCon specifically.

Or you could look at commits in open source projects. Once again self selected, these people don’t even meet in person. It’s all by email, no one can be intimidated by or feel like an outcast for something like that.

This is a similar sort of faith that equality will just win out by letting people follow their instincts for success in a field; but I have no idea how he can claim with a straight face that nobody can be intimidated over e-mail, and women’s participation rates in open source communities are much, much lower than their participation rates in commercial software jobs.

Returning to investors, I of course understand why they are focused on profit, and I certainly want my own bank account to be healthy, but that doesn’t mean that it’s a yardstick that I want to be singlehandedly driven by: I also care about justice, fairness, simple human decency, real lives. So I don’t care whether VCs will make more or less money by excluding women: it’s the wrong thing to do either way. I’m not necessarily asking people to walk away from Omelas here; but that’s a question that’s much more worth asking, and one that matters a lot more than whether rich people will get richer by expanding the pool of whom they invest in.


Stepping briefly away from tech culture sexism: a part of the interview that hit me at a more directly personal level was its presentation of age. I’m specifically talking about these paragraphs:

The problem with that is I think, at least with technology companies, the people who are really good technology founders have a genuine deep interest in technology. In fact, I’ve heard startups say that they did not like to hire people who had only started programming when they became CS majors in college.

If someone was going to be really good at programming they would have found it own their own. Then if you go look at the bios of successful founders this is invariably the case, they were all hacking on computers at age 13. What that means is the problem is 10 years upstream of us. If we really wanted to fix this problem, what we would have to do is not encourage women to start startups now.

I liked DHH’s pushback on that one; but here’s how it felt to me. First, I’ll admit straight up: I’m not a founder type, I’m not going to be asking VCs for money and they wouldn’t be likely to give it to me if I did. But I don’t read those paragraphs as really being about what founder-specific profiling as opposed to programmer profiling: if that’s where he was coming from, he would have been talking about 13-year-old’s entrepreneurial drives instead of their hacking drives, and he wouldn’t have brought up startups not wanting to hire people.

(And, incidentally: wow, what a weasel phrase “I’ve heard startups say” is. If you think that’s a good approach, own up to it. If you don’t think that’s a good approach, then say so.)

But, with that aside, here is my personal take on the quote: when I was 13 years old, yes I was driven. And that made me different from a lot of people, and it made me different in ways that made me a stronger person, that gave me distinctive skills.

What I was driven to do, however, wasn’t programming: it was math. My family did actually have a computer (we got it when I was 11; and that very much was a sign of privilege, of resources and priorities that I’m very glad my parents had), and I did do some programming on it, but not a lot: I wrote one program that was probably somewhat impressive given the context, but my memory is that basically I didn’t program significant amounts for years during that period.

I did spend a lot of time on math, though: some when I was 13, and then more and more in high school and college. (For example, towards the end of high school, I was getting copies of graduate level abstract algebra text books, poring over them, trying to do all the exercises.) I had other interests, and yes, programming was one of them: when I turned 16 or 17, I started programming again and was good at it, but it clearly took a second seat to math.

And that continued in college, too: I took a grand total of two CS courses, but I also spent a lot of time in the computer center, and had a bunch of programming-related jobs, partly because of interest and partly because that was the skill I had that I could make money off of the most easily. But I spent more time on math than on programming, and as much time on other pursuits (e.g. learning dead languages) as programming. I never considered being a CS major or going to grad school in CS: I was clearly going to math grad school.

Which was great; but, as it turned out in my postdoc, being a research mathematician was not nearly as good a fit for me as I thought. So I needed to find another way to make money; and, as when I was an undergrad, programming was something that I was good at, that I enjoyed, and that companies paid good salaries for. So I changed careers; that was totally the right move, and over the last decade I really have been pretty obsessed with programming.

But, if we follow Mr. Graham’s advice, or the advice of those unnamed startups, then I never should have been hired: I wasn’t a 13-year-old hacker, I wasn’t focused on programming when I was in college, so I clearly can’t be worth spending time on.


Of course, I didn’t actually have trouble getting hired. Part of this is because companies didn’t always profile in the way that Graham suggests: they tried to get evidence as to whether or not I actually could program, not just evidence as to whether my profile suggested that I should be able to program. But that’s not all of it: being a math major will give you just as much of a leg up in interviews as being a CS major will, interviews around here are full of questions that are only tangentially relevant to programming wisdom but that are all about a certain sort of cleverness. And not only do society’s biases assume that mathematicians are clever in that way, it’s also the case that doing contest math for years is a great way to prep for that sort of interview question. So, really, I got a huge boost from profiling; it’s very similar to Philip Guo’s great post on Silent Technical Privilege, we both ended up in situations where people assumed that we could program well, and with the benefit of those assumptions, that proved to be the case. Great for us, even great for the people who gave us a chance, but not great for people who weren’t given that sort of chance.

Now, to be fair: there are multiple sides to this. For one thing, I certainly don’t want to discount the value of having been immersed on programming for a decade before a given job: it takes years to develop deep expertise. I’m just saying that you should focus on the resulting expertise, not on the timeline, and certainly not on the exact start date of the timeline. And, in his followup to the interview, Graham explicitly agrees with that latter statement, advocating late binding. Also, there are two sides to age issues: right now, I’m sensitive to valorizing youthful programming (being already noticeably on the wrong side of the age curve in Silicon Valley startups), and I’m certainly not the only one who feels that way (see this Kathy Sierra tweet), but Graham’s second response painted 2005-era young founders as a disadvantaged group, I assume he’s right in that, and that hasn’t gone away either. (I’ve personally seen startups shy away from hiring people because they’re too young, and I ran across this post on the issue today.)


Stepping back to the broader question, though: let’s return to the context of VC firms trying to figure out how to make money. Maybe it is the case that appealing to young men who have immersed themselves in programming during their adolescent years is a reasonable way for VCs to try to reach that goal: if so, it would be nice if they would still look for other paths to that goal, but I can imagine where they’re coming from.

But: VC firms’ goals aren’t my goals, and in fact our interests aren’t particularly well aligned. So the reason why I believe that that’s a plausible approach for VC firms to take isn’t because I believe in any young male hacker superpowers: it’s because my (admittedly naive / completely uninformed) beliefs about history are consistent with the idea that young men have a notable weakness for doing stupid stuff in the name of glory while the real profits accrue to those in power.

VCs are there to make money for themselves. Not only are they not there to make money for employees at companies they run, they don’t even care if individual companies succeed or fail. They are playing a statistical game; there is absolutely no reason to assume that there’s any link between what is good for them and what is good for somebody working for their firms. They want to squeeze employees in hopes that one out of ten companies will be a big enough success to compensate for the other nine companies that implode, and even the successful firm is likely to be littered with bodies.

So don’t spend time worrying about what’s good for VCs; figure out the kind of world that you want to live in, and make choices accordingly. This is a point that Cathy O’Neil’s mathbabe blog is good at, e.g. her recent asking in “Lean in to what?” about differential ethics of men versus women, or a post from 2012 asking “Why are smart men willing to spend their lives in the quest of leading these companies, considering how awful the conditions are?”; I also highly recommend her first bit of advice in her most recent Aunt Pythia’s advice column.

And that question of what sort of world I want to live in (and how to make my current world look more like that one) is one I ask myself all of the time. I don’t have any great answers; I will say, though, that, in any sort of world like that, there will be women and men in more or less balanced numbers, there will be people of all ages and from all sorts of backgrounds. It’s just the right thing to do, and it makes life so much richer and more interesting.



[1] The most entertaining link that I came across in that direction was this post on Medium: some of that post is reasonable, but it also says that “I’ve seen dozens of people mention when they started programming in an effort to refute a point that I don’t think Paul ever made, that you must begin programming before you’re 13 to be a successful startup founder.” (Emphasis in the original.) This is one of the rare instances where I recommend reading the comments to an article, because a commenter pointed at Graham’s statement that “Then if you go look at the bios of successful founders this is invariably the case, they were all hacking on computers at age 13.”, which is exactly what the article claimed didn’t exist. To which the author of the post replied: “Because the thing you quoted is obviously wrong if you choose to strictly interpret “invariably.” It’s clearly not literal.” Um.

jet set radio

January 15th, 2014

If you’d asked me not too many years ago what my prototypical idea of a video game was, I probably would have come up with some sort of RPG-ish thing. Single player, with the story standing out more than anything (and with that story being excessively grandiose); but also with a lot of time spent on combat, with that combat being fairly repetitive / mindless. And the whole thing would take maybe 40 hours to get through, and it would try to be a “AAA game”, whatever that means; at the very least, that generally meant that they tried to put in lots of polygons.

These days, I play a lot fewer games like that; part of that is that I’ll only play through so many 40-hour games in a year, a lot of that is how trends have shifted, but most of that is my personal choice. As production costs have increased, the duration of AAA games has decreased, but otherwise those elements are there: you’re still likely to find an excessively grandiose story, the mechanics are still generally combat-focused and repetitive (though, admittedly, if it’s a multiplayer game then there’s probably actually quite a lot of meat to those mechanics, they’re just not going to be to my taste), and the polygon count keeps on going up in service of a facile realism. None of which is to my taste.

So, these days, I tend to play shorter games that focus more on one of those aspects of game quality. (Though, actually, if they’re mechanics-focused, then may end up evergreen in practice rather than shorter, with me returning to them for months or even years.) Gone Home is a narrative-focused example; Android: Netrunner is a mechanics-focused example. (Or, if you insist on staying within video games, then Super Hexagon; but it’s not a coincidence that I play a lot of board games these days.)

But then there are games that don’t really shine in either of those aspects: instead, they shine in other forms of artistry, audio-visual in particular. Some recent examples are Proteus and Dominique Pamplemousse; the flourishing of the indie scene has allowed unique personal visions to come forth like that, for which I’m very glad. (And it’s also allowed polished stories and mechanics to come forth: what it doesn’t allow is the AAA morass of high production values combined with focus-group teenage-male-targeted mediocrity.)


There was a time a generation and a half ago, though, when it seemed that idiosyncratic artistic had a chance even among major publishers. Capcom gave us Okami and the incomparable Killer 7; Sony had Shadow of the Colossus; Namco had Katamari Damacy. But, even before those, there was an entire console that pointed at a different path forward, the Dreamcast. Space Channel 5 and Jet Set Radio, in particular, are two of the most stylish games I’ve ever played.

I’ve spent the last hour watching the above Space Channel 5 playthrough instead of writing this post; I am still completely captivated by that game. I don’t dance in real life (and yes, that is, I am convinced, a mistake), but dancing is incredibly effective here: the game combines musical and visual beauty, and uses the mechanics to embody them. (And to embody a spirit of cooperation and coordination. All with a healthy dose of horn playing, to boot.) Yes, it’s a product of a major corporation, a game intended to produce a system mascot; but, as she says, “you think a reporter without soul can out-dance Ulala?”, and perhaps that game had too much soul to let itself be captured that way.


I’m supposed to be talking about Jet Set Radio here, though; I played the original Dreamcast version (under the name Jet Grind Radio) when it first came out, and I just played the XBLA re-release. And, approximately two seconds after starting the game up, it was obvious that I’d made the right choice, it was obvious why the game had stuck in my head for the last thirteen years: amazing visual design, yes, and amazing music (this time featuring bass lines more than horn sections), but really it’s the overall style that shines out.

And it’s a style that, yes, comes forth in dance. My favorite character is Gum, and you’ll see in the video above the way she dances when you select her (or, if you watch it to the end, the way she dances when finishing a level): she is awesome, she knows she’s awesome, she is not taking any nonsense or subordinating herself to anybody. Of course, as we move out of the character selection and into the gameplay, the character movement turns into skating, but that skating is dance as well: sure, you’re trying to get from place to place or to escape people, but you’re encouraged to do that in the most spectacular fashion possible, never skating on the surface of a street if there’s an edge to grind.

The music and visuals are, if anything, even more central to the game’s distinctiveness, though. The frame story is narrated by a DJ at a pirate radio station, and the soundtrack is great; and in-game goals are (generally) more about painting graffiti than about skating well. This was the game that introduced the phrase “cel-shaded” to at least my game vocabulary; and it’s the earliest game on Wikipedia’s list, so while I have a hard time believing that there weren’t earlier games with a related visual style, it was clearly a pioneer.

Actually, let’s talk about cel shading for a bit. If you’d asked me at the time, I probably would have said: Jet Set Radio looks great, but I bet a lot of other people are going to copy it, we’ll have a cel shading fad boom, and then we’ll get sick of it and move on to something else. Instead, that didn’t happen: AAA games had a race for more polygons in service of pseudo-realism combined with hyper-sexualized character design / bizarre body proportions, indie games went for a low rez look, and there were never nearly enough cel-shaded games for me to start getting sick of them.

In fact, the opposite happened: it’s an art style that still makes me sit up and take notice, and two of the games I mentioned above in my list of idiosyncratic artistry were cel shaded. And yeah, that cel shading is part of that idiosyncracy: Okami in particular is flat out beautiful in a unique way. (Also, Okami also foregrounds drawing with its ink-painting-based mechanics in a similar way that Jet Grind Radio does with its graffiti.) But Okami has heart, has soul going for it in other ways, too; and when we move to Killer 7, the art style is only one of the artistic (in the broadest sense) design choices that made that game so unique.

My almost completely uninformed guess is: cel shading is hard to pull off from a technical point of view and it demands a sort of thoroughgoing artistic commitment/vision that high-polygon art doesn’t. So it’s never the easy path forward, and you aren’t going to do it unless it’s part of what you want to express; and that sort of artistic vision is more likely to fit into a broader picture?


At any rate: within seconds of launching the game, I knew that replaying it was the right choice. Of course, a few minutes later, I realized that the game wasn’t an unalloyed joy: the controls are oversensitive, and having cops constantly on your tail generally not only isn’t much fun but detracts from the art.

But another lesson of the game for me is: that doesn’t matter. Well, that’s a bit of an overstatement: I’m sure that there are changes that could have been made to the mechanics to improve them while harmonizing better with the overall artistic vision. (I haven’t played Jet Set Radio Future yet, but I’ve heard people say it does a better job in that regard.) So sure, there are probably better places in the local neighborhood of the design space.

What I’m even more sure of is, though: I’m a lot more worried about a different scenario, one where the gameplay gets smoothed out in a way that weakens the game. Because the last thing that I want is for the game’s exuberance and its brashness to be toned down in the name of improved gameplay. There are thousands of games out there that are striving for smooth gameplay; let them have their space, and embrace the fact that gameplay isn’t the only good in games. And neither is the other traditional focus of video games that I play, namely narrative: Jet Set Radio‘s narrative is mediocre and by the numbers, but I Do Not Care.

With those aspects of game design stepping to the background, what I was left with was a game that was a joy to watch, a joy to listen to, a joy to inhabit, a game where every level felt like coming home. And that is something special.

programming as meditative practice

January 10th, 2014

I’ve been thinking recently about what I want to get out of work; and it seems like, these days, I’ll get the most out of work if I focus on what I personally like about the process, the details of working with code. Which, for me, translates into: paying attention to the shape and feel of the code, trying to write clean code while paying attention to what the code is telling me about what it wants to look like. Not that I don’t enjoy other aspects of programming—for example, when I’m at work, I certainly want to write software that other people will find useful, and I want to produce code as quickly as I can while still feeling proud of it. But, really, it’s the artistry of producing software that makes me actively happy; to me, those other aspects are (productive!) constraints towards that end. And, fortunately, my current work is a good place for me to seek that happiness: we have a pretty good code base, but one with enough quirks that there’s always something to think about in terms of improving it; and we also constantly have new challenges that provide concrete suggestions for where to look next.

I think what I probably mean by “trying to write clean code while paying attention to what the code is telling me about what it wants to look like” is basically Kent Beck’s four rules. It had actually been a little while since I’d looked at them, but they do a good job of putting to words that I’ve been striving towards. The first rule is basic hygiene that I’ve had ingrained for over a decade, and the fourth rule simply isn’t something that I spend too much time worrying about, but the middle two are great: if there’s an idea that’s latent in your code, then make it explicit and put it in one place.

Which I’ve had several really enjoyable case studies on recently, that have actually all ended up feeding into each other. I spent a fair amount of the fall working with one of my colleagues on scaling out some of our map-reduce machinery; and, when I was looking at the computational guts of that, it never felt quite right. We had a dozen or so concrete pairs of map-reduce classes; the interface that those classes conformed to was designed to allow them to be serialized uniformly, which was important, but looking at everything through that lens obscured the underlying internal state that each pair was using.

And then there was the relationship between that internal state and the input: in the simplest case, the input could get transformed into something of the same type as the internal state and then combined with the internal state in a sort of monoidal operation. (E.g. if you’re counting, then the internal state is an integer, and you take the input, replace it by 1, and add it to the internal state; or if you’re summing, then it looks exactly the same except that you leave the input alone instead of replacing it by 1.) And on the reducing side of things, we wanted to think of reducing in terms of combining internal states (which was, again, that same monoid idea) plus some sort of transformation of the internal state to the output. (Where that transformation was usually simple and frequently an identity map.) In fact, that combining was actually why we were looking at the details of this: we knew we wanted to do that for performance reasons, so the question was really whether we could do that in a way that increased the clarity of the code.


What I ended up doing was replacing a map / reduce interface that was mediated via a serialization type with the following:

  • An explicit notion of the internal state.
  • Functions to transform the internal state to and from the serialize state.
  • A factoring of reduce into combine composed with an internal state to output type function.
  • The above three were the general interface that I ended up with, but I also provided traits to help in cases where further patterns / special cases revealed themselves: ones where the structure arose from a monoid, ones where reduce and combine were identical.

And, I will say: doing that felt great. Some of that great feeling is probably the builder’s high that Rands recently wrote about it. But I think that’s actually missing the mark about why this really mattered to me: I didn’t feel that I was building so much that I was uncovering structure that was latent in the code. So, for me, it’s not so much the builder’s high as the scientist’s high, or the explorer’s high, or the mystic’s high. Building is good, but, for me, getting closer to underlying structure in the universe is better.


Happily, I can combine those two: that transformation I did was useful for the purpose of the scalability feature we were working on at the time, and it’s been useful in each of the two projects that I’ve worked at after that, so I really did build something. In the next one, we were bringing that map-reduce functionality over to a chunk of functionality that hadn’t used it before; as part of that, I had to extend it to handle another use case, which led to teasing out superclasses in a few cases, which I wouldn’t have been able to do nearly as easily if I hadn’t teased out responsibilities in the prior project. And, happily, that project itself led to a similar (albeit smaller) improvement in understanding of the underlying structures: there was one assumption that the prior code had been able to make, and I got to understand where that assumption was important and where that assumption was coincidental.

In the next project I worked on, I wanted to understand the memory usage of the data structures in question. Which was made much easier by my understanding of the types in question; but also, the evolution of that code over two or three hours had this wonderful flow. At first, I took one example, and tried to figure out what memory it used; I plugged it into a test and wrote a ridiculous 15-line comment explaining that. Then I poked around a bit and, after going to the bathroom a couple of times (too much information? I should probably write a blog post at some point on the role that the consumption of water plays in my programming methodology…), I finally gave into my brain’s suggestion that I should probably extract a class for doing that top-level memory estimation instead of sticking it in a method that belonged to the class that used the memory estimates.

And, once I’d done that, everything just flowed out in the most natural way possible. (Just as the water I’d been drinking flowed when, uh, never mind.) I TDD’d my way out from my original example, and in doing that, each line in that 15-line comment moved to the right place in the code: before I knew it, I had my overall memory estimator, a trait with memory-related comments, methods in the classes I was using that talked about how much memory they were using, and all of the information was where it belonged. (Plus, I fixed a mistake in my original memory estimate that became clear once I could look at all of the components of that estimate in the right context.)


Good times; I really appreciate being able to get this sort of experience out of my work. Or, really more than that: rewarding times, nourishing times.

more netrunner

January 1st, 2014

I’ve been playing Android: Netrunner at work over lunch maybe a couple of times a week for over a year now; three of us have been fairly devoted to the game, there’s one other person who plays occasionally, and one person has recently joined the cult as well. I like the game a lot: there’s so much to think about, and, as Nels said on his podcast, the game is really interesting and fun even if you lose, which is always a good sign. (And lose I do fairly frequently!)

In fact, even though I’ve been playing the game for over a year, I’m more interested in it now than I’ve ever been; so not only have I been listening to Nels’s Terminal7 podcast, I’m also listening to the Agenda7 podcast, and I went through all of the articles in the Stimhack blog. (Most of which were fairly plain, but a couple were eye opening.) There’s so much to explore in the game, and every month brings a new set of cards that open up new possibilities.

Unfortunately, I don’t get to actually explore those possibilities: many months I don’t build a new deck, either because I don’t find the time to do that (my cards are at work, and I’d rather spend lunches playing than building!) or because I don’t feel I’ve explored the possibility of whatever deck I’ve been playing. So I barely get to try out new cards, and, even worse, I don’t get to go back and try new approaches to cards that have been around for a while.


I only have so much time, and I’m very deliberate of how I spend it, so for a while I was happy enough with the status quo. Especially give that, over the last year, I’ve felt like I don’t have enough time as-is to play games: looking back, I’ve actually played a decent number of games over the last year, but they lean heavily towards the short/quirky, and Rocksmith is going to take a sizeable chunk of my playing time for the indefinite future. Also, the only way to play Netrunner online is through Octgn; that requires Windows (though I should at least give it a try on Wine, I suppose), I hadn’t even had Windows installed anywhere for a while, and when I did have it installed, it was on the upstairs computer, which I find isolating.

Still: Netrunner. I cannot honestly say that I don’t think I should spend a fair amount of my game time playing it: it’s an amazing game, and a rewarding one. (And it’s wonderful watching it spread: Nels is probably the person whom I follow on Twitter who talks about it the most, but every month it seems like somebody else starts playing. I was super amused by the fact that Jorge not only couldn’t resist mentioning it on his Games of the Year podcast, he also mentioned it on his Not Quite Games of the Year podcast, even though both were ostensibly about video games that were released in 2013, not card games that were released in 2012!) So I should play it more; if that means that I have even less time to play “regular” video games, then so be it. And, honestly, I think I can play Netrunner online one evening a week and still have time for blogging, one TV show, and one other non-Rocksmith game.

So: I’ve reinstalled a Windows virtual machine on the upstairs computer; and while I was worried that the downstairs laptop might not be up for running a VM (it’s old, has a slow/dodgy hard drive, and literally held together by duct tape right now), I’m close enough to my 3-year anniversary at work that I can get a new laptop there and bring my previous work laptop home, which I can either run VirtualBox on or see if Octgn works on Wine.


Nels was kind enough to run me through the Octgn interface last week, so I’m all set on that front. (If anybody reading this wants me to do a teaching game on Octgn, I’d be happy to pay that learning forward.) And I built a couple of new decks, and twice over the last week I’ve spent a couple of hours playing against random people.

And I had a great time doing that: a very friendly community. But also, an experience that confirmed my decision in other ways. Because building those decks was like pulling teeth: I wanted to include everything! Which you can’t do, and the only reason why I felt tense about that was because I’m not used to constantly building decks; if I were building a new deck every two weeks, I’d be happy to experiment more.

Sure enough, my new decks sucked (especially the corp one, I still haven’t won with it); but getting a chance to play them made the tradeoffs so much more concrete. I don’t have quite enough economy in the deck, and I was wishy-washy over whether I wanted to explore bad publicity or whether I wanted to focus on tagging and meat damage. I’ve already tweaked it a bit to add more economy; I’ll probably tweak it further with an eye towards whether or not adding more tagging is possible, and then after another week or two, I’ll move on to build another one. And that sort of systems feel is exactly what I wanted to get out of this.


2014 is going to be a good year.

rocksmith 2014 second impressions

December 30th, 2013

It’s been a couple of months since my first impressions of Rocksmith 2014, so time for some second impressions.

First, my overall feeling about the game: my current feeling is that it’s a great game, and potentially an important one. Not necessarily important as a game so much: what I like about it so much is the ways in which it’s focused on helping you learn guitar, and its removal (or at least making optional) many of the game tropes its predecessor had that, in retrospect, hurt that. For the right person, I suspect it’s a rather interesting case study in gamification: both the game-related elements that remain and were removed could provide useful lessons.

But just as interesting from a learning point of view are the elements that it enables by being software that aren’t related to its game aspects. Just the fact that it gives you access to hundreds of songs each of which is divided up into (typically) dozens of segments with dozens of difficulty levels: that’s an interesting capability that wasn’t accessible to teaching in general until recently. I don’t want to go too much into that here—I’ll save that up for a later post when I feel like waxing more philosophical—but there’s something there.

Instead, for this post, I just want to talk a bit about details that I’d noticed since my earlier post. One of which ties directly into the aforementioned learning possibilities, and actually it’s not a detail at all, it’s a core capability that I simply hadn’t gotten around to exploring until a week and a half ago: Session Mode. This is a mode in which Rocksmith 2014 gives you a virtual jam band: I’ve never seen something like that before, and it’s really good. The other instruments do a surprisingly solid job of laying down a foundation for you to play on top of; I’m not sure how much they react to what you’re doing (though they do adjust to some extent to your changes in intensity and rhythm), but if you want structural underpinnings to noodle on top of (basic rhythm, basic bass, preplanned chord changes), it’s there.

And the game’s missions turn out to include a quite thorough Session Mode-specific set of recommendations. I’ve gone through a bunch of them, and I’ve appreciated its guidance in exploring those features. Also, I’ve appreciate the guidance that Session Mode gives you itself in terms of not only reminding you of what notes are in the selected scale but in terms of highlighting frets that are relevant for the specific chord that the other parts are playing; this makes it a lot easier to respond gracefully to chord changes, and I imagine that it will be a useful stepping stone to learning how improvise around chords on my own.

It is the case that my playing in Session Mode does get kind of repetitive: I stick a little too closely to the notes that are suggested. I’m trying to move away from that, though; and, actually, I would also like it if it would suggest chords to me instead of just notes. For all I know, it will do that if I play Session Mode as rhythm guitar instead of lead; I’ll give that a try this weekend. At any rate: super useful for people like myself who don’t find time to play with friends but who need a nudge to get out of our comfort zones and move off script.


That’s the biggest thing I hadn’t explored when I wrote my first impressions. I also hadn’t explored Riff Repeater mode very much then: now I have, and I really like it. I don’t actually drop into it all that often, but when I do, it’s great: it lets me focus on a section, it levels up in an intelligent way (increasing in either difficulty or speed as I get better at a section, depending on what I’ve chosen), it shows me what notes I’m missing, it gets out of the way when I’m playing well enough. And it gives me enough knobs to turn that I can tune it to behave how I want in a given situation, and I can drop into it at a moment’s notice. So helpful for learning sections, and its ease of entry / use is also helpful in reducing mental barriers to deciding to do that kind of focused work.

The extra techniques that the game presents / recognizes are also appreciated: in retrospect, the original Rocksmith was noticeably farther from the original songs than I realized. Some of the differences are subtle (accented notes, vibrato); some less so (fret hand muting in particular makes a big difference, but there are also a handful of techniques that were only present in the original game on single notes and are now present on chords). And, while I can’t say that I want to get great at tapping (and my guitar probably isn’t hot enough to make it easy to tap well), I’m glad that the game at least tells me when that’s what the song is doing, some songs make a lot more sense.

And that whole previous paragraph applies to songs from the original Rocksmith and to pre-Rocksmith 2014 DLC, since they retrofit the notation to the older songs. I really appreciate the company treating its fans / previous library that way: they could very easily have not spent the time to retrofit the old songs with the notation for new techniques, but it’s there and super helpful.

Tuning is still a bit weird for me. I’m getting more used to recognizing when my strings are going, so I’m finding switching tuning less frustrating; but what is frustrating is that the game seems to always want me to tune flat. (Flat as measure both by my ears when playing along to the music and as measured by an electronic tuner.) I have no idea what’s going on there, but it happens consistently: I’ll pause to tune, it will automatically show the game’s interpretation of whether I’m flat or sharp, and it won’t match up with what the electronic tuner shows. Which, in practice, isn’t a big deal if I’m playing a bunch of songs in the same tuning (I’ll play one song where I’m maybe a little off and then I’ll tune with my own tuner and be fine for a while), but it adds extra friction if I’m dipping into a single song in an alternate tuning.

I complained last time that the game was freezing; happily, it hasn’t done that in ages, so I’m not worried about that at all any more. There are some bugs about it occasionally not remembering progress for songs (or, for newly downloaded songs, setting the difficulty to zero on the first playthrough), but the former only happens to me rarely and isn’t bad when it does happen and the latter has an easy workaround. (Go into Riff Repeater, select the whole song, set the difficulty up to a reasonable level, exit.) Still annoying, but I can deal, and it seems like they have a patch almost ready to go for that?

I guess that’s mostly it in terms of my current notes; I have a few more (the game hasn’t quite come to terms with navigating a 200-song library; I think it goes a little too far in trying to distinguish the lead guitar / rhythm guitar tracks); but that’s about it. Time for me to spend another month or so playing it (and in particular diving into Session Mode more) and then I’ll see if I can put something a little more coherent together.

possessiveness and cliques

December 27th, 2013

There was a post called “On cliques” going around a month and a half that I meant to talk about at the time but never got around to; it’s about somebody feeling ostracized by “big names” at a party because they were talking to each other instead of talking to him, and about his subsequent re-evaluation of the situation as he later got to know some of the people involved. Interesting post, because it brings together a couple of disparate issues: cliquishness and insularity are a real problem, but sometimes you just want to catch up with friends, and after a certain point of renown it becomes impossible to meaningfully interact with everybody who would like to interact with you anyways. And if you throw all of this together with the layers of interpretation that come between what is said and what is taken in, you can sometimes get a real mess.

For me, the key quote was “I was angry at people for being friends”, because I totally can sympathize with that feeling: every so often, my brain will decide to do that sort of thing itself. I’ll see people enjoying talking to each other, enjoying spending time together, and feel hurt, even a little angry, that I’m not part of that interaction. And this is messed up: their interaction isn’t about me, it’s about them, and there is no way in which foregrounding myself into an evaluation of other people’s interaction makes sense or is useful at all.

Don’t get me wrong: I don’t do this a lot. (And I’m sure the author of that blog post doesn’t do it a lot, either!) In particular, if you are somebody who knows me in person: if you see me sitting off to the side, seeming distant, the significant majority of times this doesn’t mean that my brain is in a bad place. (And if I am in a bad place, it’s almost always for a different reason!) I am a strong introvert: most of the time that distance is a happy place for me to be. Not that there’s anything wrong with wandering over and saying hi, I’ll probably enjoy that too, it’s just that I’ll be fine either way.

But I suspect that this particular brain misfeature might be something that introverts are relatively prone to: my guess is that introverts’ desire for fewer connections can turn into wanting those connections to be deeper, sometimes at the expense of respecting the other connections that the other parties could be involved in. I don’t know, though; I don’t actually even spend that much time with strong extraverts, and when I do it’s rarely in situations where that extraversion manifests itself most fully (I try to duck out of those situations), so I don’t have a lot of experience to draw on. And, after all, this is just one form of jealously, which is a pretty widespread human emotion.


That’s one side of the blog post. But the flip side is: exclusionary social behavior is a real thing and frequently a bad thing. And so there’s a real tension here: it’s fine to acknowledge that friendships are a great thing, but it’s also important to acknowledge that those friendships are enmeshed within a broader social context, and we can’t completely separate individual choices in individual situations from that broader context.

Of course, that broader context can play either way even in group + outsider situations: maybe the friends talking are members of a dominant social group while the outsider isn’t, but maybe the outsider is a member of a dominant social group who feels entitled to butt in anywhere. Still, the former is a real issue.


I dunno. I guess I’ll say: if you’re feeling excluded by watching somebody else’s interaction, then start by saying to yourself “it’s great that they’re enjoying spending time together”. Maybe they’re old friends who haven’t seen each other in ages, maybe one of them had a little victory that the other person was just the right person to share it with, maybe one of them has had something go wrong and needed that ear to listen. It doesn’t matter, what matters is that the details of that interaction aren’t about you, and trying to make it about you is never going to be helpful.

Once you’re in that place, then sure: apply your critical skills however you want. But if you’re not in a situation where you can be happy that other people are enjoying their time together, then maybe it wouldn’t work out so well if they were spending time with you either.

social norms and market norms at work

December 22nd, 2013

Reading Predictably Irrational got me thinking again about workplace organization: in particular, the extent to which companies try to set up the employer/employee relationship as a primarily social relationship instead of as a primarily market-driven relationship.

And, of course, it’s both: work involves people interacting together over a long period of time, but work also involves a paycheck. That means that there’s not going to be a bright division between those two realms; and that blurring of lines makes me wonder: who benefits in what contexts from that blurring, especially in the context of Silicon valley startup / tech company culture. (And, of course, that brings me in the direction of the cynicism that I was talking about a few days ago.)

Take, for example, meals: ever since Google made a splash with them, it’s been common for tech companies to provide free meals, and pretty good ones at that. Which feeds into the social side in two separate ways: it feels like a gift instead of a transaction, and breaking bread together regularly has incredibly strong social resonance. But, from a market-based approach, there are two other benefits for the employer: people don’t have to take time off over lunch driving to and from lunch, and dinner no longer provides a natural stopping point for people to leave work.

Or work hours: people arrive at work at tech companies at irregular times (and generally starting later than at a lot of other workplaces), and in general if something comes up where you need to work from home for some reason or need to duck out in the middle of the day, nobody will think twice about it (as long as it doesn’t interfere with some specific meeting): this is similar to a social context where nobody will think twice if you’re not home at some specific time, as long as nothing is planned, sometimes something important comes up. But the flip side is that sometimes something important will come up at work, so it’s natural to stay there late, too. This blurring can also happen in terms of doing personal stuff while physically at work and work stuff while physically at home. If work pushes the boundaries more than home, then this starts to make a lot of sense from an employer’s market-based perspective; and work is very good at coming up with tasks that are important.

But then there’s the question of what happens when you want to pin down some of these time/space boundaries instead of leaving them loose. Maybe it’s a personal request to say that you want to work from home on a fixed schedule to deal with family responsibilities; maybe it’s a request from your employer that you be physically present at work for a certain number of hours a week. Both entirely reasonable requests in many contexts; but the concept of crunch has normalized excesses in the latter domain, while a lot of workplaces are terrified of making any sort of formal statement that, say, a parent of a small child might be allowed to reliably work from home during some portion of core work hours. And that latter attitude has real consequences: if you can’t depend on being available to provide child care yourself on a reliable schedule, then you have to set up your child care arrangements on a worst-case basis based on your work schedule, because child care providers are not going to say “oh, it’s okay if something comes up at work and you occasionally won’t be able to pick up your kid until 8:30pm”.


So, in all of these cases, it feels to me like the blurring of lines masks an underlying battle where your employer is trying win a market-based struggle against you: the presentation of social norms doesn’t reflect a real social context, it’s trying to get employees to let down their guards in hopes that they won’t realize that there’s a struggle going on.

Of course, that’s not the only thing that’s going on: the non-financial benefits that are being offered have real value. I’m glad that I don’t have to work on a fixed schedule, for example, and while I’ve been perfectly happy in the past to bring leftovers for lunches, it’s nice to have coworkers around over lunch instead of having us fragment. So there’s nothing wrong going on here; you just have to keep in mind that compensation of all forms is subject to bargaining and negotiation, and to be ready to push back if the result isn’t to your liking.

At least there’s mostly nothing wrong going on here: crunch is bad, and it’s bad to normalize expectations for family needs based on the model of men who are either single or not an equal partner in child-rearing. And then there’s the joke that I’ve run into in various contexts about being glad that there’s no H.R. department around: I like being informal, but I also like being professional, and these days I think that following certain behavioral norms at work is a good thing.


Returning to the whole social norms / market norms thing: the other main sticking point for me there is how it interacts with power. Because, when I’m in a social context, I generally don’t want to set up a situation where some people have power and some people follow orders; the one exception that comes to mind there is parenting, but then the flip side is that, when I’m at work, my boss is not my parent, and I am not a child.

I’d be perfectly happy to experiment with the idea of removing that sort of hierarchy from work. But I’m not strongly against hierarchy at work, either; it’s just an area where a mapping of social norms sets up a juxtaposition that I’m not comfortable with.

Though, having said that: I’ve had bosses whom I considered friends at the time and whom I still consider friends since. I dunno; I guess I’m having a hard time coming up with absolutes here. I like social norms, I just don’t want to be blinded by them.

netrunner, systems thinking, rule sets, cynicism

December 14th, 2013

I play a lot of Android: Netrunner at work; other board games, too, but Netrunner is the one that’s sunk its teeth into me most deeply. I mostly play over lunch, but sometimes I play at other times, and occasionally those lunches get pretty long; this makes me wonder: is there any way I can justify this in terms of improving my work? (At least directly: it increases my happiness and gives me time to chat with coworkers about whatever’s on top of our mind, both of which have indirect benefits.)

I can’t honestly answer “yes” to that question; but I also don’t think it’s a coincidence that I and several of my coworkers are addicted to the game. We work at a company that’s building a big piece of distributed software; doing a good job of that requires systems thinking, and Netrunner is, in its own way, does an excellent job of guiding you down a systems thinking path.


The game presents a rule set to you. Like all good games, that rule set’s parts interlock in ways that are both obvious and non-obvious. It presents you with some top-level goals, goal that are concrete enough that you can imagine a set of micro actions that will lead to those goals; but those goals are distant enough that you can’t predict the details of the route from the beginning, and you should be prepared for even the broad strokes of your prediction to be falsified by the cards you are dealt, by your opponent’s actions.

And, as you play the game more, you realize that there are many more interlocking possibilities than are apparent at first glance. Possibilities that are latent in the basic rules; possibilities that are in the cards that come in the core set; further possibilities that are either made possible or made more noticeable by the cards in the expansions; possibilities that unfold as you watch what your opponent does on the board.

The genius of Netrunner isn’t just in the possibilities in the game, however: it’s also in how the game actively helps nourish your development of understanding of what’s possible. Right from the beginning, Netrunner gives you two layers of archetypes: the Corporation / Runner distinction, and the multiple factions present on each side. So you get encouraged to look a bit harder at one subset of the possibility space, but of course this is in no sense a permanent choice, you’ll probably play the other side or a different faction in a different match. (And you’ll get to watch how your opponent plays their faction, too.) And this focusing continues with the expansions: aside from the general possibilities unlocked by new cards to play, each expansion gives you a couple of new identity cards to use with existing factions, giving you new ideas for an overall direction to explore in, and the expansions come in collections that are generally presenting a broad theme.


So: Netrunner is pretty awesome, both in the game itself and in its didactic nature. And there are a lot of analogies one can make between Netrunner and programming: a large possibility space, lots of good routes forward depending on your taste and your context, there’s always more exploration possible, there’s a source of randomness waiting to surprise you, the journey itself is its own reward. (I totally agree with Nels when he said on his podcast that Netrunner games are great even when you lose! Though, don’t get me wrong, I do prefer it when my software works.)

Being a game, though, Netrunner‘s rules are explicit: so you know the broad contours of the framework that you’re working within. This is fuzzier in programming: programming language semantics are generally basically well-defined (and, while compiler bugs exist, in practice they’re rare), but how your software will behave in the real world is not so clear. The details of how software will perform and how independent components will interact aren’t so clear (both of which are key aspects of dealing with distributed systems!), but more importantly: you’re writing software for a reason, and it’s hard to tell whether the software will satisfy your underlying goals until you’ve written it. And, for that matter, those underlying reasons themselves are fuzzy: one of the points of agile software development is that having working software is a huge help towards clarifying and making concrete the goals that you’re striving towards with that software.

Furthermore, software itself isn’t written in a vacuum: it’s written by people working together, with many different perspectives, strengths, desires. The ground rules there are vaguer still; one of the things I’ve learned about myself over the last few years (thanks in part to board games!) is that I do like to have explicit rules to work with in that sort of context as well. Not unchangeable rules, not rules covering everything, but some sort of acknowledgment of the ground rules we’re playing by and where the boundaries of those ground rules are. (C.f. my post a couple of months back on benefit zero of retrospectives.)

The existence of ground rules is important enough to me that, if rules aren’t explicit, my brain will go off and try to make sense of the patterns it sees around itself, coming up with implicit rules to explain those patterns. Not that there’s anything unique in me about that: humans are hard-wired to try to make sense of social contexts, I think. And that, in turn opens up a whole maze of problems: in particular, when different people are working under different notions of the ground rules, unhappiness can easily arise.

This also brings out behavior of my own that I’m not proud of. Because a lot of the rules that I come up put me in a pretty cynical place; honestly, I don’t need much help with that, I’m quite cynical (and snarky) enough as is! Not that that cynicism isn’t justified in a lot of contexts: for example, I’ve seen enough evidence that the tech startup world is hostile to women that I don’t want to be a Pollyanna about that one. But still: it’s important to realize that, when I’m doing or thinking something based on my mental model of a situation, there’s a pretty significant (and generally not explicit) chain of assumptions underlying that model, and I generally haven’t tested those assumptions nearly enough for me to be confident personally that they or the resulting model are valid, let alone done the work to check whether or not other people agree. And, given that, smug snarky cynicism is probably not the best approach.


Sigh. It’s not like we can talk everything out, though, and it gets harder as groups get larger. I guess I’ll end by quoting the end of that “benefit zero of retrospectives” post:

there’s another benefit lurking in the assumptions that are prerequisites for a retrospective: the fact that you have a team at all, and that the team members’ thoughts are all worth listening to.

at&t update

December 13th, 2013

Last month, I switched back to AT&T after a brief, bad experience with T-Mobile, but I didn’t feel great about it, among other things because AT&T was charging me phone subsidy rates for phones we’d long since paid off. But, as it turned out, a couple of weeks after that, they changed their data plans to lower the price for customers who aren’t on contract. (And they also juggled the numbers to make it a little cheaper for people/families with multiple devices.)

So yay for that. It’s still not quite as good as I’d like—the off-contract discount is only $15/month, while the on-contract subsidy is about $19/month—but it brings the plan squarely into a reasonable level.

The other surprisingly good thing about this switch was: when I went to the web site to select a new plan, I just clicked on the button for the amount of data that I wanted and it immediately showed me the price for two off-contract phones and one on-contract phone. (Miranda decided to get a new phone when we switched back to AT&T.) Which is unexpectedly nice: I was expecting to have to do some amount of fiddling to select what I want (with the easiest route being something that would charge me too much), but no, they made it easy to get the cheapest plan they offered given our current mix of phones, and they even let me backdate that to the start of the current billing period. Almost like they went out of their way to think about how to design their web site to be helpful; odd, but not unwelcome.

gone home

December 8th, 2013

From reading the initial responses to Gone Home, I was optimistic that I’d like the game, but I wasn’t optimistic that I would like it as much as many people did: many people’s favorable responses seemed to be about how well it resonated with their experiences, talking about the details of being a teenager in the 90′s. Which I wasn’t (I was in grad school in 1995); and I am also not a lesbian, another point of similarity for some critics.

As it turns out, though, I had no trouble on that score. Not the 90′s stuff, I didn’t care about that one way or another. But the loving detail with which the house was crafted meant that there were a lot of places to find purchase; for me, it was in having a really neat daughter around. So many times, I would see something Sam had done that her parents (presumably) saved, and I thought: I can totally imagine Miranda making something like that.

So: a game that moved me, in the world that it drew as well as the plot. The main plot, mostly, but also some of the stories drawn to the side about the parents’ worlds not turning out the way that they hoped: my life has turned out very well, but that doesn’t mean that I haven’t had significant turns along the way, and I see enough contingency around me that there’s always a fear lurking that my life could go wrong in ways I won’t be able to recover from so easily. (And who knows, maybe Sam and Katie’s parents will be able to recover.)


Playing Gone Home so soon after System Shock made me want to compare the two games’ world building. But here I stumble, because the truth is that I have a hard time getting a grasp on System Shock‘s world building at all. I played that game over the course of two months, with the audio logs separated by long stretches of fighting; I played Gone Home over the course of a single evening. And while the audio logs might not have been that much more frequent in Gone Home than in System Shock, the connecting exploration kept me in the world and enriched my understanding of the background behind those audio logs.

Not that System Shock didn’t do that as well, exactly: I was still in the world, after all, and I was constantly reminded of the context of being in a station run by an AI bent on destruction! Still, it’s not at all the same; and I never thought that Gone Home would have been better if only it had some shooting.

There is something lost in the absence of violence, though: a lot of my favorite games this year have involved coming to grips with systems, and conflict is a tried-and-proven way to bring that out. So Gone Home does a great job of bringing out the Looking Glass school of narrative development, but not so much that school’s focus on systems. Which is fine, one game doesn’t have to do everything; and, actually, one thing I got out of our VGHVI discussion of Gone Home was that there’s more in the way of potential systems to understand in the game than I gave it credit for.


Quite a game, I’ll be curious to see where it leads over the coming years.