Material

Games: care&control, Sedulo

care&control

care&control by Arielle Grimes. I am really into games about wandering aimlessly and growing stuff lately, and this is one of the best. Takes as long as you want.


Sedulo

Sedulo by Kyle Roods. Perlenspiel + looks like random memory = ❤, and it's a well-considered lock-and-key puzzle. Takes a couple minutes, depending on your maze skills.

"Trouble at the Koolaid Point"

Something something something horrifically unfair government case against him and just like that, he becomes tech’s “hacktivist hero.” He now had A Platform not just in the hacker/troll world but in the broader tech community I was part of. And we’re not just talking stories and interviews in Tech Crunch and HuffPo (and everywhere else), but his own essays in those publications. A tech industry award. His status was elevated, his reach was broadened. And for reasons I will never understand, he suddenly had gained not just status and Important Friends, but also “credibility”.

...

I didn’t “rage quit”, I just walked away. I shut off a big cognitive resource leak. From the beginning of my time tweeting as Seriouspony, that I tweeted I was not likely to stay and that I was looking forward to where we would end up next. I’m not GONE gone. I’m just not on Twitter. But I have to add I'm surprised to see my leaving Twitter as, once again, an example of someone who "just shouldn't be on the internet". Because nothing says "unbalanced" like having the freedom to walk away from a social media network. Because you can. Because you have a choice. Because you have the most beautiful and awesome ponies on the planet.

Serious Pony (Kathy Sierra), Trouble at the Koolaid Point

Please read — and believe — and remember, for once — the whole essay.

Two Possible Futures

A screenshot of rymdkapsel; an enormous population is split between an overdeveloped 'engineering' sector and idleness.

A screenshot of rymdkapsel; an enormous population is split between an overdeveloped 'engineering' sector and underutilized 'food service'.

Setting Windows .exe Icons Without Windows

Setting a Windows executable's icon on a platform other than Windows is incredibly annoying, because there's a dozen weird edge cases to Windows resource layout, papered over by the Win32 API and build tools.

Buried in their Atom editor, GitHub has produced rcedit, a Windows executable that does nothing but set the icon and the product version resource strings. It still uses this API, but because it does nothing else — and is written in plain C and C++ and not some uselessly abstracted pile of C# — it runs without a hitch in basically any configuration of Wine.

There is also a precompiled binary as part of some Node API wrapper for it. It's licensed under an MIT-esque license you can include the binary in your build process directly.

(I've also updated my Make icon-making guide accordingly.)

re "The Sexual (and Racial) Politics of Nerd Culture"

Priya Alika Elias: There’s so much talk about women believing in fairy tales or being ruined by fairy tales, but it holds true for many, many men.

Ezekiel Kweku: At least most women recognize it as a “fairy tale.” Men don’t even recognize it as a construction; they think that narrative is their right.

Priya Alika Elias: Yes! To be specific, this is the era of The Social Network, the post-Zuckerberg, Silicon Valley age. You know, in the past, nerd movies often focused on “the nerd grows up and he becomes a millionaire, while the bully ends up pumping his gas.” Movies like Can’t Hardly Wait deal with that plotline. Now it’s different because in the Zuckerberg era, you can be incredibly successful as a nerd at 16, 17. That’s ratcheted up the pressure and the frustation, because the nerd isn’t getting the money or the girl — the two things he’s been promised.

The Sexual (and Racial) Politics of Nerd Culture: A Dialogue

(This is a film that I identified with as a young teenager and then didn't watch again until my mid-20s, during which my reaction switched between embarrassment and outright shame.)

There's also a tangent that pulled my attention - earlier this year, someone (I think it was PZ Myers but I can't find the post right now) made the observation that "nerd" and "geek" have gone through a shift from meaning deep-but-marginal academic/creative pursuits to identifying a particular pattern of commercial engagement. I don't think that point is entirely correct; it's a bit "back in my day..." It downplays the importance of product-based social signaling in the 1970s-1980s and undervalues the degree to which commercial engagement today is a creative pursuit.1 But there is something to it; at least, the definitional importance of the two aspects has flipped.

I think this dialogue offers one reason why that might be the case:

Ezekiel Kweku: [To] the extent that being "a nerd" is just having a body of specialized knowledge about some particular topic, it’s incredibly easy to fake in the internet age.

Priya Alika Elias: Encyclopedias on X or Y are immediately available.

Ezekiel Kweku: Wiki everything.

The 1970s and '80s nerd culture offered in the movie is positively defined by the possession of information difficult for the underprivileged to acquire. As we've expanded access to information (as distinct from education and teaching) that can no longer serve as a marker of social status. So it shifts to access to material or digital goods that can only be accessed via financial or social capital, in the way the information was before. Or being the gatekeeper / disseminator of the information becomes the concern - "oh, you read all the Batman comics? well I moderate the Batman wikia."

Which I think also influences why so many modern nerds are so vocal about their toxicity. Thirty years ago, the "well, actually..." interjection was still symptomatic of unfair social power dynamics - most often unexamined sexism and white privilege - but was at least often borne out of genuine enthusiasm for the topic. Today it's a mandatory part of positioning oneself as a "real nerd" and so necessarily also takes on a direct, aggressive tone, staking out an explicit defense of status quo rather than simply existing within it.


  1. That relationship today is disturbing and disgusting, but not at all usefully analyzed by the observation. 

Today in Tech Neoliberalism: Pro Git

This also means that there is very little you can't do if you're offline or off VPN. If you get on an airplane or a train and want to do a little work, you can commit happily... If you go home... you can still work. In many other systems, doing so is either impossible or painful. Scott Chacon, Pro Git

Solutionism runs rampant through technology manuals. "Happily" is not usually the word that comes to mind when I think about working everywhere. "Pain" is redefined to mean "inconvenience caused by working at home" rather than "has to work at even at home."

This may not seem like a huge deal, but you may be surprised what a big difference it can make.

Amen.

Issues with Safari JIT arguments Handling

Debugging, step 1: It's always your bug, never the library, compiler, or OS.

Debugging, step ℵ: When it is the library / OS / compiler, god help you.

I spent hours of yesterday debugging what I can only conclude is a JIT bug in Safari (iOS 8 and OS X Safari 8 10600.1.22, though there's a good chance it's been in earlier versions given some issues I saw but ignored before). In the off chance someone else searching for "Safari JavaScript function not called" ever reads through results page 58 to reach this post, here we go:

The immediate symptoms were that the Yuu demo stopped moving (but kept tracking the mouse and rendering) after 10-12 clicks, and Pixel Witch Lesson #6 did... well, a lot of weird stuff in a similar vein, where it looked like things were only being half-processed or half-rendered. The common problem could only be described as "after a while, some functions turn into no-ops."

This is a bizarre symptom, especially when the code works fine in two other JavaScript engines. But what made me suspect it was a JIT bug rather than some ordinary bullshit cross-browser inconsistency is that I couldn't reproduce with debugging tools open - again, on OS X and remotely on iOS. As soon as the debugging window was open, the function was called 100% of the time. Debugging tools usually de-JIT or at least less-JIT code.

Unfortunately this means I couldn't debug it with a debugger, or even console.log debugging. I had to use window.alert.

Eventually1 I tracked the smaller Yuu test case down to a single line, inside my Animation class:

yf.each.call(this, this._dispatch, this.timeline[key]);

_dispatch was never being called, even though the array was non-empty. each2 is not a long function, but for reasons I'll probably write about one day, is both decorated and runs a function constructed with new Function(), which is to say it does Uncommon Things.

Replacing each with an equivalent for-loop fixed the problem. Wrapping the call to each in a try/catch block, another thing that often disables JIT optimization, also fixed it. But critically, wrapping the each function body did not - this strongly implicated the decorator, not anything each itself does.

The fault was in the decorator, a version of variadic written in a way to avoid constructing objects:

return function () {
    arguments[length - 1] = slice(arguments, length - 1);
    return f.apply(this, arguments);
};

By putting the copy-slice of arguments directly back into arguments, only one simple Array is constructed.

As far as I can tell this is perfectly legal, even in strict mode, but it sends Safari's optimizer off the deep end and functions get incorrect arguments. Because there's a lot of other functioning code where I use an arguments index as an l-value, I suspect it has to do with using it as both an l-value and an r-value in the same expression, then perhaps clobbering the wrong frame after some inlining. I can't find how to make Safari's JIT dump its generated code.

I've also been unable to reproduce it building "problem-up." It's something specific to the call pattern used by the Animation code and other things above it.

Well, so much for that plan. The new code has to make two Arrays:

return function () {
    var args = slice(arguments, 0, length - 1);
    args.push(slice(arguments, length - 1));
    return f.apply(this, args);
};

However, it does work.


  1. This word elides about two hours of moving window.alert calls around. 

  2. A usual callback-first iterator

Today in Tech Neoliberalism

"Your Worker Will be Killed, And That's OK"

(From Alex Russell's talk on offline web services.)

Launching Everything

This month we turned Yukkuri Games from a site hosting our random game jam stuff into an actual development concern.

A Little More GamerGate

(This post has some descriptions of sexual assault. And GamerGate. But no more after this, I promise.)

Because there is some speculation and I've been asked about it: Most of my comments disappeared from Gamasutra because I deleted my own Gamasutra account.

I deleted my account because I don't feel like contributing value to a site that feels, e.g. Kyle Redd's two years of arguments like this are materially acceptable

Kyle Redd on 16 Jul 2012 at 2:20 pm PST, wondering why games journalists are talking about sexism in games and not rape in Egypt.

Except people have actually been forced out of their jobs and homes due to arguments like that providing a foundation and tenor for a harassment campaign, and it's been happening for years, and these commenters continue plugging their ears or outright lying and gaslighting the people involved, so you realize there's no alternative but "fuck you, sexism is not welcome here no matter how nicely you mask it" — well, that's just unprofessional. So that comment was deleted (by Christian Nutt), and Kyle Redd's ramblings about how the real victims here are "gamers" stands.1

When "professionalism" means "rebut the same non-arguments for the Nth time while real people are still unsafe" fuck professionalism. (And yes, still, fuck you Kyle Redd - and plenty of other commenters who get away with the same thing.)

People afraid of losing their voices due to deleted comments — it's nonsense. Comment sections aren't "a voice" and no one loses "their voice" by not being able to comment. I am not afraid of being "silenced" by editorial decisions at publications, because I have my own site, because we live in an era where it's easy to say something no matter how wrong. Gamasutra and UBM should rather be afraid that if they don't fix a broken approach to community management, they're going to lose all the marginal value they extract from people writing for them for free.

I didn't delete my account because I was "censored." I wasn't. Even if I was that would be a reason to agitate more, not delete my account. I deleted my account because if the site wants to foreground "professionalism" and "discussion" and "both sides" it's not worth my effort.

I mean holy hell, there's still people saying Anita Sarkeesian's criticisms can't be valid because she once said she's "not a gamer" like that even means anything. Stop giving an inch for that shit. ComicsAlliance can figure it out, why can't anywhere in the games press itself?

I think there are legitimate conversations to have about the erosion of actual public space for discussion, but entertainment and industry publications were never that. It's Tumblr and Twitter that are displacing any real public sphere, and those are the services reactionaries and "anti-SJW" agitators mock as much as they use.

And I'd say no one is coming to take your manshoots and drugwars away, but frankly I'm not sure that's true anymore. But when you lose them it's not going to be because "we" (whatever nebulous group that is) banned sexist content. It's because you're the equivalent of a person smearing shit on the walls in a public bathroom while screaming to the janitor about how he wouldn't even have a job if it wasn't for your feces. Eventually, you're going to either get kicked out or all the janitors will quit and leave you alone in your shit piles.2


  1. I feel like I'm in pretty good company here at least. Greg Costikyan, the kind of game designer famous enough to have a Wikipedia biography, had a blog post deleted for similar reasons. 

  2. In this analogy Gamasutra is like the janitor that watches the pile grow until he and the dude are both waist-high in shit, and keeps calmly suggesting to use the toilet instead. 

« Page 2 / 6 »