Not Job!

Caliban Darklock wrote this mid-afternoon:

Infospace has decided to withdraw their offer of employment, explaining that they really didn’t want to hire someone who was trying to move up into project management; they need someone who would be content to spend the next five to ten years making no appreciable forward progress in their career.

That actually explains a lot.

Fascinating News

Caliban Darklock wrote this around lunchtime:

Scholars have discovered the oldest recorded joke.

Dating to 1900 BC, the joke is from the Sumerians, in what is now southern Iraq:

“Something which has never occurred since time immemorial; a young woman did not fart in her husband’s lap.”

This joke is apparently a typical response to some obvious statement, e.g. “I couldn’t get a discount on this wine.”

Which just goes to show that sarcasm and fart jokes have always been the fundamental ancestors of all humor. Yes, they are funny, and they’ve been funny for four thousand years. The runner-up is a sex joke from Egypt, 1600 BC:

“How do you entertain a bored pharaoh? You sail a boatload of young women dressed only in fishing nets down the Nile and urge the pharaoh to go catch a fish.”

Which means farts are funnier than fucking. That isn’t just a hysterical thing to say, it’s also alliterative.

Missing Statements

Caliban Darklock wrote this just before lunchtime:

Many times, people will quote statistics, and some clear pattern will emerge that they don’t identify.

Jesse Liberty notes that:

Since President Clinton signed Don’t Ask Don’t Tell, 800 specialists have been kicked out of the service, including 323 linguists of whom 55 specialized in Arabic.

I’m struck immediately that over 40% of the people kicked out of the service under DADT (a stupid rule, but I digress) are linguists.

It does not take a rocket scientist to advance the hypothesis that linguists are gay.

Looking at the number of linguistic specialties in the military, it also seems that Arabic linguists are quite probably less than 18% of the total. Which leads to the added hypothesis that Arabic linguists are even more gay.

But we’re not allowed to say things like that. Freedom of speech be damned.

New Job; Great Interview

Caliban Darklock wrote this mid-morning:

I start my new job at Infospace on August 4th. I have no clue what my title will be; I’m going to be working in the test department, but also doing some development.

The interview process was grueling. My first contact was my future manager, followed by an aggressive and very bright developer who grilled me on C# concepts and was clearly pleased that he got to move into the more advanced territory.

We had one extensive argument over abstract classes which turned out to be a misunderstanding. I said an abstract class lacks implementation. He said an abstract class might have implementation. I responded that it must lack some implementation, and he insisted that an abstract class could be completely implemented. We argued intensely about this for some time before the equivocation fallacy came up: when I say “abstract class”, I mean a class which has one or more abstract methods. He means a class which is actually declared as abstract, an ultimately arbitrary distinction. Once we figured out the misunderstanding, the argument rapidly turned into vigorous head-nodding and retrospective agreement with one another’s points.

And that was awesome.

Looking back over the two decades of my career, I calculated that I’ve spent approximately 600 hours in interviews. Half of those hours were at Microsoft within the past two years. The end result of this is that I’m perfectly comfortable in interviews - they’re such a familiar experience by this time (occupying roughly half a day out of every week during the past two years), I don’t have any of the nervousness or anxiety I used to experience earlier in my career. I can walk into an interview, sit down, and just talk. I know pretty much what they’re going to ask, what they want to hear, and whether I can provide it. I can even call out my limitations beforehand without worrying about it - “I’m not great at the theoretical parts of OOP,” I said at one point. “Explain what OOP is,” my interviewer responded. “Abstraction, polymorphism, encapsulation, and inheritance,” I replied. He asked about abstraction; I described abstraction. He asked about inheritance; I described inheritance. He asked about multiple inheritance in C#; I said there was multiple inheritance of interfaces, but not classes. He slyly asked whether you inherit an interface, or implement an interface; I replied that this was just syntactic sugar, and under the hood you’re still inheriting. And that’s when he sat up and started asking the hard questions.

Ultimately, we came down to a coding test where I had to rotate a 4×4 matrix with the optimum number of comparisons. I got that question at Microsoft once, and I couldn’t answer it, but armed with the recollection of what didn’t work before - I managed to solve it. (I think the resulting code might actually be useful in a quaternion transform, but I’m not sure; I’ll have to test it.) Since I’ve had this question twice in interviews, I’m not going to give away the answer here, because it’s a tough question that’s both fun to solve and a great representation of abstract thinking.

After this, I was confronted by a member of the test team who looked way too much like Shaggy from Scooby-Doo. He was even wearing that ugly pea-green T-shirt. I had to restrain myself from asking him to say “Zoiks!” just once. His questions revolved around not only creation of test cases, but - in a radical departure from other test interviews I’ve had - how to manage test cases. What if something isn’t in the specification? What if the specification is simply wrong? What if there’s a contradictory requirement? What if management refuses to fix a bug that I’m sure is important? How do your test suites change when switching from black-box to white-box testing? There was the inevitable “how would you test this” question - a calculator, which was somewhat more interesting than Microsoft’s usual “soda can” or “Slinky” examples - where I focused primarily on things that almost certainly wouldn’t be in the specification.

He seemed surprised by this, so I explained at one point that there are many obvious test cases I’d skipped, like “does each number key produce the right number” and “does 5 - 3 equal 2″. Most people can see that a calculator should operate properly as a calculator, but I wanted to concentrate on the test cases that most people wouldn’t consider: impact resistance, battery life, tactile feedback of the keys, stability on slanted surfaces, vibration tolerance, environmental factors. So I did a quick rundown of the generic things any calculator should do, and he appeared satisfied with that.

The lead developer came up next, and focused more on the “soft” aspects of the position. How would I deal with other people, where did I want to go with my career, that sort of thing. He seemed surprised that I’m pointing myself in the direction of project management, and asked why I thought testing was the right route to pursue that. I pointed out that writing a test plan is a project, and managing a test team is a project, and coordinating a test effort is a project, and no matter what specific discipline you happen to choose it is fundamentally composed of encapsulated projects. The abilities and skills used to manage a project in its entirety simply don’t differ significantly from the abilities and skills used to manage the individual subprojects of which it is composed.

Finally, I spoke with my future manager again, who informed me that everyone was impressed but he couldn’t say anything official just yet. I was escorted to the elevators, went down to my car, and called the recruiter handling the position so I could tell him things went well. In the time it took me to reach the car (less than five minutes), they had already called him to make an offer and establish a start date.

I guess they like me. The feeling’s mutual; it seems like a really great company, and I’m sure it’ll be a blast working there.

XNA Community Games

Caliban Darklock wrote this in the early evening:

So Microsoft has this whole XNA initiative, and one of the things they’re unveiling for Holiday ‘08 is the Community Games portal where XNA Creators’ Club members ($99 annually, $49 for three months) can put their XNA games on XBox LIVE for anyone and everyone who has an XBox 360 to download.

Trouble is, you can’t put your game up there and charge nothing for it. You’re required to charge 200 points for a 50 MB game, and 400 for a 150 MB game. You may also opt to charge 400 points for a 50 MB game, or 800 points for a game of either size. The revenue split is 70% and paid quarterly; at the current rate of 1.25 cents per point, this means you can earn $1.75, $3.50, or $7.00 per copy sold, depending on your price point. Microsoft can also position and promote your game, for an additional 10% to 30% of revenue - reducing your cut to a minimum of $1.00 to $4.00 - under conditions that aren’t entirely clear.

Now, first off, this is a generous revenue split. Good luck getting anything even close to this from a normal publisher or distributor. One of the better avenues I’ve researched - Reflexive Games - gives you the same 40% Microsoft is offering at the bottom end of their scale, but never goes above that.

But what really chaps my arse is the sheer number of people who can’t stop whinging about the inability to offer their games on XBox LIVE for free.

I am so incredibly jazzed about XNA, I can’t stop gushing about it. I’ve constructed a pretty decent 2D Breakout-style game that’s actually fun to play. I don’t have to worry about the details of getting sprites on the screen and sorting them and rendering transparency; XNA handles all that for me. It took me just over a week to build a working game. Now here comes Microsoft to say that for under $100, I can publish that game on XBox LIVE before the end of the year and actually get paid for it. That rules. This has changed everything - I’ve had this dream of building an indie game studio for over a decade, and now here’s exactly the channel I need to make that dream a reality.

But the community is divided over the relatively minor point that you can’t give your game away for free over that same channel.

And that’s rather a shame.

Russ Nelson Nails It

Caliban Darklock wrote this in the early morning:

Russ Nelson deals with the question of cutting poverty in half. Relevant bit:

For relative poverty, it is impossible to get rid of poverty. As long as one person works harder than another person, they will have more.

Just to be clear, “relative poverty” is also what we call “income inequality”.

Fair Taxes

Caliban Darklock wrote this around lunchtime:

Scott Adams asks what constitutes a “fair” tax rate for the rich. It’s a fair question, at least.

The question that always comes to mind is what a person is going to do with their tax money if they don’t spend it on taxes. Imagine that everyone pays a flat 20% tax, just for simplicity. On the one hand, you have Joe Rich, who makes ten million a year and pays two million in taxes. On the other, you have Bill Poor, who makes twenty thousand a year and pays four thousand in taxes.

Contemplate the impact of dropping the tax rate to 15%. Now Bill Poor pays $3,000 in taxes, and gets to put $1,000 in his pocket. Joe Rich pays $1.5 million, and puts $500,000 in his pocket.

What will these two people do with the added income?

Bill Poor will probably use his $1,000 to buy a television set or a motorcycle. Nobody cares.

Joe Rich will probably invest his $500,000 in a business venture of some sort. This will create new jobs and probably result in new products and services; even if it only provides existing products and services, the additional competition will be good for consumers.

The alternative to leaving that $500,000 with Joe Rich is to give it to the government, who is not exactly sporting the best track record for using money wisely. It could be argued, however, that their track record is better than Bill Poor’s - and, indeed, that by pooling Bill Poor’s money with other people’s money, it could do more good.

The “highest and best use” answer would be to take money from the poor and give it to the rich, but somehow I don’t think the American public would go for that.

Good Goddamn Riddance

Caliban Darklock wrote this around lunchtime:

The Supreme Court of Florida is a stone’s throw from permanently disbarring Jack Thompson, the anti-game attorney who keeps suing Rockstar over Grand Theft Auto. Referee’s opinion here. It’s pretty much a done deal, but it’s not written in stone quite yet.