Jach's personal blog

(Largely containing a mind-dump to myselves: past, present, and future)
Current favorite quote: "Supposedly smart people are weirdly ignorant of Bayes' Rule." William B Vogt, 2010

Automated anonymous surveying

Jonathan Blow was recently quoted in media as saying: "...piracy rates for PC games are often 85-90 percent. That's true. If 10 percent of people who pirate games would buy the games, that would double profits. Double! That's insane. That's the difference between starving to death and being comfortable enough to make the next game." This bugged me for a few reasons, and this from someone who never pirates games.

First check: does the math make sense? (Skip to the last parenthetical, it sort of does.) If you sell your game for $10, and get 100 customers, you've made $1000. But if the piracy rate means that if you track the count of legit users and track the count of pirate users (assuming none overlap, I'll get to that) you should see around 85-90 pirate users per 100 legit users. In other words, another $850-$900 in missing sales. If just 10 percent of those 85-90, 8.5-9, we'll round to 9, bought the game, that would result in an increase in sales by $90, bringing the total to $1090. This is nowhere near "double" revenue, but can it be double profit? Maybe I'm misunderstanding what he means by his whole remark -- perhaps he means for his game in particular? But he hasn't made a profit yet, so that seems doubtful. The only way the statement could be true is if the game cost $910 to make. If that is true, then at 100 sales, you've made $90. And if 10% of the pirate users paid, you've made another $90, doubling your profits. But this doesn't hold for any further periods of time. If after the game has been around for a while, you have made 1000 sales total (and there are now 900 pirates), you have made $10,000 in total sales, and a total profit of $8,090. Now assume 10% of those pirates now pay, or 90 users, that would net you an additional $900 in profit. This is far short of double profit. So his statement makes no sense mathematically, at least to me. (Okay, let's try one more time... Let's suppose that a 90% piracy rate means that if there are 100 copies of a game out there, 90 of them are pirated, and only 10 of them are legit individual sales. Look at 1000 copies out there, only 100 legit, total sales is thus $1000, let's say the game cost $100 to make, so profit is $900. If 90/900 pirates bought, that's an extra $900, so double profit. As you increase the number of copies, or take the cost-to-create to $0, the limit is actually 1.9 though, not strictly double. I assume this is what was meant.)

Second check: you're ignoring the possibility that 10% of people who pirate games haven't also already bought your game, before or after pirating. If this possibility is true, and if we also assume the remark is true (in whatever way), then if you waved a magic wand to suddenly get rid of piracy, your profits could halve!

See Full Post and Comments

Better world proposals as admissible heuristics

In CS, and graph searching in particular, the concept of an admissible heuristic is one that never overestimates the true cost of something. (Typically achieving some goal.) Different heuristics may give different estimates, but admissible ones never overestimate.

The goal of utopia is a perfect world, or at least a perfect-as-possible world. Dystopian fiction contains great fictional examples of how some would-be utopias aren't actually all that great. But I contend that a lot of those dystopias are still actually better than the present world, overall, and that reaching the perfect world may require such stepping stones. I worry that dystopias can represent local optima and thus be worse in the sense of cutting off the possibility for improvement, but I'm not sure that's possible on a global scale for all time.

Thus it's important to remember that proposals to make this world better, or ideas and visions of what possible future worlds might be like -- say an ill-defined World Without Suffering -- aren't proposing the ultimate perfect utopia, but merely improvements. And if they are better overall, and don't try to pretend to be perfect and final, then we can consider them admissible... To take the previous example, perhaps a certain amount of suffering is needed for human existence to have meaning. However the world is currently full of much suffering that I think we would be better off without, and once we are without, then perhaps we can reason on a further improvement to introduce the right amount back in, which would be another overall improvement on the path to perfection and thus admissible too.

See Full Post and Comments

Nim project

Finished up this fun little side project introducing myself to Nim (and SDL2 in the process):

See Full Post and Comments

In favor of privacy, but not as a right

I don't really believe in "rights". I believe in assurances granted by others, and when those others happen to be governments, whether it's a "right" or a "law" matters little to me. But other conceptions of "rights", don't buy it. If you try to argue some rights are objective, or even self-evident, I don't buy it even harder.

I still think many (though not all) the things I supposedly have rights to are nice to have, though, but not for the circular reason that rights are good.

When it comes to privacy, I generally fall into the "none of your/my damn business". There are many things I or you simply don't need to know, and I'll get ticked if you start trying to learn those things, and I'll understand if you get ticked in the other direction. For instance, say you're visiting my blog, and my blog asks for your browser to share your location (which may be from a phone, and thus very accurate). This is none of my damn business, I'm not trying to serve you software that makes use of mapping, something whose business legitimately is interested in your location.

See Full Post and Comments

Some questions on Star Wars

Warning, spoilers below.

I finally saw the Star Wars movie yesterday. I liked it while watching, and I'd watch it again, though on reflection there are some grievances, or just questions I had while watching or after watching that it'd be nice to have answers for... I'll probably research some after I post this. So break out the pizza rolls, it helps if you read everything below in that voice.

Why are there so many tiny kids in the audience? This is a PG-13 movie. Did their parents not see Episode 3, or are they comfortable with the possibility of their kids seeing on-screen amputation and dead children and flesh-burning? Maybe they just trust Disney is a family friendly company like Nintendo and would never be too violent...

See Full Post and Comments

Some (Updated) Beliefs

Years ago I wrote this, expressing without too much elaboration or reasoning several beliefs of mine in various categories. Needless to say, some have changed, and this gives me an outlet to write a little about what I haven't been writing about. So, following the original categorization (with a few new categories), here are some of my current beliefs. If I don't address an old one, conclude it hasn't really changed. Please keep in mind most of these are "academic level" beliefs and thus I'm not super attached to them, for clarity on that (and maybe some updated beliefs if this post is old) see here.


I stand by my original belief in 2009. The only thing I might add is that I think the rituals employed by religion can be useful, ritual itself is important -- see these.

See Full Post and Comments

re-frame: A software FPGA

Ever since ClojureScript was announced I've been keeping tabs on it here and there to see what sorts of interesting frameworks people come up with. I'm pretty picky when it comes to UI development (not because I'm particularly good at it, just because I'm picky in general) and something needs to do quite a bit to convince me it's worth using over plain HTML+CSS+JavaScript. (Not a fan of Backbone, but I did like Angular.)

Anyway, re-frame has been on my radar for a while as "the pinnacle alternative to Om". Om is really neat, but I've never tried it enough to feel like I wanted to try more of it. I've known about reagent for a while (that re-frame is built on) and instantly loved its usage of Hiccup to specify markup. Hiccup is so straightforward and simple I still haven't fully read its spec, though I should do so because it's kind of disturbing to me that if I have a "component" (function) that returns something like [:h1 fn-arg] then I can insert that as a child element to something else either with [my-fn fn-arg] or (my-fn fn-arg)...

Anyway again, last weekend I finally sat down and read all the through re-frame's manifesto in its README. And afterwards I thought: wow, this reminds me a lot of FPGA programming. I decided to 'redo' an FPGA assignment I had in college, using re-frame. This evening I cleaned up what I made and wrote this up.

See Full Post and Comments