Senator John McCain is an Idiot

General Interest, Miscellaneous, Rants, Uncategorized No Comments

Apparently John McCain thinks it’s pork to control Mormon Crickets in Utah.  So much so, it seems, that he’s marked it the #6 piece of pork in a trillion dollar spending bill, despite that it’s less than one one thousandth of one percent of the cost.  Given that he’s biblically old, I would have thought he’d understand how important it is to stop SWARMING LOCUSTS.  I shit you not, the quote:

$1 million for mormon cricket control in Utah – is that the species of cricket or a game played by the brits?

I mean seriously, that’s so fundamentally uninformed that I can’t even mock it.  A million dollars is a bargain for statewide pest control that costs hundreds of millions of dollars in structural and crop damage annually.  He’s old enough that, statistically speaking, he should have seen every living thing at least twice by now (including brontosaurus); one is tempted to remind him of that crawly sandwich he had with Joseph Smith.

“I have no idea what they’re even talking about, so surely I’m qualified to think it’s pork!  Who needs locust control anyway?”


SMS and Data

Miscellaneous, Rants 3 Comments

Am I the only person who resents having to pay for SMS when I’m already paying for unlimited data?

Prototype: EEP18 Considered Harmful: The problems with Erlang to JSON term translation

ECMA / Javascript, ECMAScript, Erlang, General Interest, Programming, Rants, Tools and Libraries, Web and Web Standards 5 Comments

THIS IS ONLY HALF WRITTEN.  I have been sitting on this post, waiting for the mood to finish it, for months; because EEP18 is now being treated as a likely implement, I am immediately publishing the half-written version, because it exposes many (though not all) of the serious, irreconcilable problems with EEP18.

On the mailing list, people are actively trying to bring Erlang up to snuff with regards to web standards.  One of the more unfortunate choices being discussed is JSON as a data notation.  JSON, unfortunately, does not actually map to Erlang in a useful way.  Joe Armstrong has gone as far as to suggest BIFs, which are decidedly unrealistic as well as unnecessary.  My goal is to create a JSON handling library.  However, the mailing list is beginning to put momentum behind an alternative proposal which is currently presented in BIF form.

This post explains why my approach is different.  Many of the issues herein are discussed by the tabled EEP (EEP 18, “JSON BIFs” by Rickard O’Keefe), but some are not, and some of these issues are accepted when I believe they should not be.  It is my position that EEP 18 is unacceptably dangerous.  I will explain why.

Read the rest…

Holy crap, an Objective C text that doesn’t assume you’re retarded

General Interest, Objective C, Programming, Rants 5 Comments

[digg-reddit-me]My good friend Jeff happened to mention offhand his knowledge of a document I’ve been looking for for quite some time now.  I’m sharing it with my readers in case they’re looking for something similar.

Let me be forward: I cannot stand the various Objective C books I’ve tried.  They all want to teach me to be a programmer.  I’m already there.  I just want a book like Stroustrup.  The PragProg book is awful: the first several chapters are about Mac development tools, like I give a damn.  Everything’s through interface wizards.  It’s nauseating.

Jeff heard mein painz0rz, and turned me on to From C++ to Objective-C.  It isn’t perfect: it’s not super comprehensive, and it’s translated from a different native language (French), which leaves a few passages cumbersome.  However, as one can tell from reading the intro, the author of the document, much like me, found little to love in the state of Objective C documentation, and wanted to write something for people who were already well established.

Kudos to Pierre Chatelier for writing the book that Apple and Alan Kay could not.

Like my new iPhone. HATE the keyboard.

General Interest, iPhone, Miscellaneous, Rants 4 Comments

[digg-reddit-me]One of the things I was most looking forward to about my new iPhone, knowing there were SSH clients, was the ability to use it as a genuinely remote terminal, no matter where I was, to do little shell tasks and write simple code and so on.

Ha!  The problem is, the iPhone has an autocorrecting keyboard which corrects if you don’t tell it not to (the obnoxious kind like Outlook has), and it makes completely asinine replacements (its becomes it’s, as if the word its doesn’t exist).  This is bad enough if you just speak above the level of an eighth grader, but it makes using unix shells and writing code genuinely impossible.

Classic apple zealot response from IRC: “don’t be stupid, just teach the iPhone every word you want to use when programming.”  Like they don’t even think before they answer.

Apple: why can’t I turn this off?  It’d be simple enough: there’s bound to be some function somwhere get_best_replacement(char* current), which signals no reasonable match (as you get for, say, ‘zzzzz’) by way of an empty string, or something similar.  That’s the hack point.  Add if (customer_isnt_retarded()) { return “”; } else { previous_logic(); } and it’s fixed.

Seriously, who locks people into an autocorrecting keyboard?  Ugh.  This ruins the iPhone for any kind of technical use.  What a mess.

If you hate this too, vote this up on digg and reddit, so that an Apple employee will see it.

TopCoder and ESPN fail to create a good contest

General Interest, Miscellaneous, Programming, Rants No Comments

Presumably because of the success of the NetFlix Prize, ESPN decided to hold a hundred thousand dollar purse to see who could provide the best algorithm to predict the outcome of upcoming college football games.  Fortunately, ESPN went looking for experienced help to design such a game.  Unfortunately, they chose TopCoder.

It’s a shame that ESPN chose to do this through TopCoder, as TopCoder’s general practices are poison for a machine learning contest. TopCoder chose to impose a gig memory limit and a nine minute runtime on any approach to this problem, which murders most machine learning tactics right out the door. It’s a shame they didn’t do this themselves on the NetFlix model, where contestants just submit predictions.

This contest isn’t to get football predictions. It’s to get football predictions under arbitrary ram and cpu caps. ESPN’s staff wouldn’t face such restrictions when using the work – one gig for nine minutes?  C’mon; there is literally no reason for this limitation to exist.

This contest’s design precludes most modern approaches to machine learning to no appreciable benefit, and is therefore fundamentally flawed. ESPN is going to get seriously quality-limited results.

Very disappointing.  That money would go to much better effect if the contest had been designed with the kind of foresight of which the NetFlix Prize had had the benefit.

That horrid little piracy-isn’t-theft meme is going around again

General Interest, Miscellaneous, Rants 13 Comments

[digg-reddit-me]An image version of the “piracy isn’t theft” meme which the pirates use to convince themselves they aren’t thieves is going around; apparently the fact that they keep going to jail as thieves isn’t enough to get it through to them that their insistance that there’s nothing wrong with what they’re doing doesn’t make it true.  (I can’t tell you how sick I am of hearing pirates brag about how what everyone knows isn’t okay actually is.)

There’s a comic version of it which has gotten disappointingly popular on Reddit lately.  I edited that comic.

It's theft under the law, you goons

Pederasts and pedophiles also say they’re not hurting anybody, and tell each other lies about the law.  But I digress.

Dear Mister Harris: Because They Can

Gaming, General Interest, Miscellaneous, Rants 2 Comments

One Cliff Harris has recently asked why people pirate his games.  Unfortunately, I wrote my entire response to a mischaracterization by the slashdot article that pointed me to his question; they suggested that Cliff was trying to convert these warezers to sales, which on reading the actual article I’ve realized he actually is not.  Nonetheless, I coincidentally answered his question during my rant, and then towards the end I take it on more directly.  Still, there are a lot of people who want to know the answer to the question Cliff didn’t ask, so I’m leaving it in place.

Assuming that developers are missing out on potential sales from disgruntled pirates

… is a flawed assumption. Mister Harris appears to fail to understand the mindset of the pirate, who is a person who has confused what they want with what is ethical.

I’ve been running and co-running a number of small communities about game development for more than a decade now. Several of them have a real problem with pirates who show up looking for help with piracy. It’s sometimes hard to tell the difference between a pirate and a kid using the wrong terms for things (“how do I build my ROM”, etc); as such there’s sort of an ongoing competition among the people who run these groups to see who can get these goons to uncover themselves the fastest, usually by feigning sympathy.

As a result, I’ve seen about three times as many warezers as the human population of Earth. Every single one tries to tell me, after they’re removed, how it’s not their fault they stole – the game is too expensive, or they don’t want to feed EA, or they’ll pay for it if they like it. Many of them have already forgotten that during the sympathy phase, they gave us lists of the games they had. Particularly galling are the people who brag that they have ROMs of every single DS game, or what have you, then turn around and pretend that it’s just due to cost.

With respect, Mr. Harris, you’re asking the wrong question. You could be selling your game for a quarter with a change accepting machine in their rooms; they wouldn’t buy your game. They’re out there getting every game they can find, often just for the bragging rights of having stolen more than their peers. Many of the people stealing your game haven’t even heard of it and will never play it. These people cannot be converted into customers; they are too used to theft to recognize it as such, invariably vomiting up the same tripe about a false and meaningless distinction between copyright violation and theft, because they don’t think of themselves as thieves and cannot face the honest nature of what they’re doing. These people will never voluntarily give up money for your hard work, and you cannot get them to stop taking your work.

There are two somewhat more legitimate questions you might ask, however.

The first is “how can I profit from these people.” That’s not the same thing as turning them into customers. For example, though I do pay for my games, I play a lot of free games on the web which I wouldn’t pay for (I’d just play more Civ instead.) DesktopTD is a great example: when it was news to me I would not have bought it because it looks poor, and by now I’ve played it so much that I don’t even play it for free anymore. During my addiction I might have paid a couple of bucks for it, but probably not, and the market doesn’t offer a sales mechanism that hits that phase.

However, DesktopTD has probably made about $3.50 from me by now. I’m not pulling that number out of thin air; I made an honest estimate of plays based on my best guess about when I found the game and how often I play, and ran it through the numbers for MochiAds. Admittedly, I’m not a warezer, so my example applicability is limited, and indeed I do know a few people who brag that they’re running ad blockers so they’re not inconvenienced with ten seconds of advertisement to put money in the developer’s hands, even though the developer is giving their game away. Most of these people, unsurprisingly, are warezers.

The other question is a bit more direct. Say you’re an interior designer. You’re brand new, the ad agency is several weeks from having your commercial on TV, but you have your cards and your flyers and business hasn’t picked up yet, so you decide to go drive around and make some people aware of your services. You have a choice: drive around the lower middle class neighborhood, where your services are needed more commonly, or around the rich neighborhood, where one uptake is worth twenty from the lower middle class neighborhood.

When it comes down to it, there are a huge number of people willing to pay $50 for a game. Those people expect games to have huge production values, grand sweeping storylines, volumes of beautiful artwork, a custom soundtrack and hundreds of cheat codes.

A one-man game designer can aim at the $5 or even $10 niche without problems; witness XBLA, WiiWare, the Apple store, et cetera. Even so, the one-man game designer is clutching at threads to get those sales; they’re just one person, and there isn’t enough time in the day to make what one of EA’s hundred fifty person teams can make.

What you’re going to find is that if you can just barely get the people who pay $50 to pay $5, then getting the people who won’t buy things at $50 to even spend $1 is damned near impossible.

So, lemme ask you a question in return: why are you driving around the lower middle class neighborhood?

I want to know why people pirate my games. I honestly do.

The answer to your question is simple: they do it for different reasons.  Some just want to play your game and don’t want to pay for it.  Some are collectors.  Some pirated your game because their pirate buddy said “you should try this game”; same word of mouth that you’re used to thinking of as driving sales to you.  Some do it because in some crowds it is a status symbol to out-pirate other people.  Some caught it in a torrent collection with a different item they want.  If your game features top of the line theft protection, some will pirate it because they’re offended you should want to protect your work, and see defying that as a way to stick it to the proverbial man.

More germanely, though, none of them face the reason they do it, so asking why they do it is going to get you a stack of excuses and hollow justifications.  One thing you’ll find out if you ask a psychologist is that even among the badguys, basically nobody thinks of themselves as a badguy.  There are books where psychologists of mafia organizers talk about how their clients have talked themselves into believing that their process of arranging protection and hush money, murdering people and running contraband is somehow necessary or vital to society, how they’re just “giving people what they want.”  It’s exceptionally entertaining in moral gray areas, such as when talked about by pimps, who are doing something that large parts of the world, including some parts of our country, see as acceptable.  The point, however, is better made with obvious scumbags, such as the people who arrange serial murder.

You can’t ask a person who won’t face who they are what made them who they are.  All you’ll get are their self serving fantasies.

They don’t know the truth any better than you do, sir.

New domain, new blog; so long, so long, hello

Blog Meta, Miscellaneous, Rants 2 Comments

I splurged a little to get a new domain that I’m quite fond of.  Bahamas domains may be very expensive, but frankly, I think it was worth it.  One of my good friends Shea Silverman may have said it best: “if it wasn’t you, I’d say it was a waste.”

I’ll be moving content from several old sites, including,, and others, to this site by 301 to keep as much rank as possible.  That said, there’s a whole *lot* of half-written content on several of those sites, as well as content I haven’t gotten around to releasing, and I haven’t updated my image collection in years.  This is about to change.  (I’m not 301ing the old images so that people who’ve been using them in forums and so on don’t get a bunch of busted images; the old site is on a server that’s going to keep running.)

This’ll be a better site than my last several, and a lot more uniform.  I’m going to start doing a lot of new stuff, including some made-for-redistribution video tutorials that should make my old tutorials look pretty flimsy by comparison.  There are some games in the wings, too, and I’m going to start getting some shared resources together for flash developers.  I’ve been writing some Erlang material, too, and I’m really starting to like the way my tutorials come out in that language, so maybe it’s time for a directional shift.

Maybe more importantly, I’ve made a bunch of updates to some libraries that I had released as well as a bunch of libraries that I hadn’t released.  Quality has increased significantly.  I’m also setting up a SupportSuite instance to help support those libraries more effectively (I’m quickly falling in love with SupportSuite).

Finally, I’ve pretty much given up on hybrid sites.  I’m going to be using pages instead of the wiki from here on in.  Should be a lot easier to deal with.  So, the new site should have a great proliferation of static pages.

In short, there’s a whole lot of new stuff coming.  Stick around.

Why Don’t Advertisers Understand Tivo?

Miscellaneous, Rants No Comments

I find it nothing short of amazing that a market this valuable can be run by people who so thoroughly misunderstand their consumers.  FX is running some new show, and doesn’t want the commercials for said new show to be skipped.  In a move of spectacular density, they are running a still image for 30 seconds, so that it’s visible during fast forward.

Nevermind that this will alienate your current viewers.  Nevermind that most DVR owners use skip instead of fast forward.  Nevermind that we stop focussing our eyes after we press the button.  This is stupid for one very simple reason.

There are a few series of commercials which I actually stop and back up for.  Not many, but some.  The Guinness “brilliant” campaign, for example, or the Toyota Prius campaign where the car steps on the robot bug then drinks its juices.

We now live in an era where people are not bound to watch commercials.  Trying to force them into it is a guaranteed failure.  Either make your demographic want to watch, or don’t get watched.  Those are the choices.

« Previous Entries