Privates is a platform twin-stick shooter in which you lead a teeny-tiny gang of condom-hatted marines as they delve into peoples’ vaginas, mouths and bottoms and blast away at all manner of oozy, shouty monsters. It’s rude, funny, bitingly satirical and technically pretty accurate if you don’t count the tiny people or the germs with teeth. Coming, soon.
Cow Clicker
At the 2010 Game Developers Conference, a schism seemed to erupt between “traditional” game developers, who make the sorts of console and casual games we’ve come to know well, and “social” game developers, who make games for Facebook and other networks. It was a storm that had been brewing for a few years, but the massive success of Zynga’s FarmVille along with the company’s publicly malicious attitude (as David Hayward calls it, a Fuck the Users design philosophy) had made even the most apathetic of game developers suddenly keen to defend their craft as art. An unfortunate award acceptance speech from the firm (cf“that Farmville asshole”) hammered the last nail in the coffin, making this the year the year to hate social games.
StarCraft II: Ghosts of the Past Trailer
Teach Yourself Programming in Ten Years
“Here’s my recipe for programming success:
- Get interested in programming, and do some because it is fun. Make sure that it keeps being enough fun so that you will be willing to put in ten years.
- Talk to other programmers; read other programs. This is more important than any book or training course.
- Program. The best kind of learning is learning by doing. To put it more technically, “the maximal level of performance for individuals in a given domain is not attained automatically as a function of extended experience, but the level of performance can be increased even by highly experienced individuals as a result of deliberate efforts to improve.” (p. 366) and “the most effective learning requires a well-defined task with an appropriate difficulty level for the particular individual, informative feedback, and opportunities for repetition and corrections of errors.” (p. 20-21) The book Cognition in Practice: Mind, Mathematics, and Culture in Everyday Life is an interesting reference for this viewpoint.
- If you want, put in four years at a college (or more at a graduate school). This will give you access to some jobs that require credentials, and it will give you a deeper understanding of the field, but if you don’t enjoy school, you can (with some dedication) get similar experience on the job. In any case, book learning alone won’t be enough. “Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter” says Eric Raymond, author of The New Hacker’s Dictionary. One of the best programmers I ever hired had only a High School degree; he’s produced a lot of great software, has his own news group, and made enough in stock options to buy his own nightclub.
- Work on projects with other programmers. Be the best programmer on some projects; be the worst on some others. When you’re the best, you get to test your abilities to lead a project, and to inspire others with your vision. When you’re the worst, you learn what the masters do, and you learn what they don’t like to do (because they make you do it for them).
- Work on projects after other programmers. Be involved in understanding a program written by someone else. See what it takes to understand and fix it when the original programmers are not around. Think about how to design your programs to make it easier for those who will maintain it after you.
- Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).
- Remember that there is a “computer” in “computer science”. Know how long it takes your computer to execute an instruction, fetch a word from memory (with and without a cache miss), read consecutive words from disk, and seek to a new location on disk. (Answers here.)
- Get involved in a language standardization effort. It could be the ANSI C++ committee, or it could be deciding if your local coding style will have 2 or 4 space indentation levels. Either way, you learn about what other people like in a language, how deeply they feel so, and perhaps even a little about why they feel so.
- Have the good sense to get off the language standardization effort as quickly as possible.”
- Peter Norvig
RIAA accounting: why even major label musicians rarely make money from album sales.
The Creativity Crisis
For the first time, research shows that American creativity is declining. What went wrong—and how we can fix it.
I'm Comic Sans, asshole.
“Listen up. I know the shit you’ve been saying behind my back. You think I’m stupid. You think I’m immature. You think I’m a malformed, pathetic excuse for a font. Well think again, nerdhole, because I’m Comic Sans, and I’m the best thing to happen to typography since Johannes fucking Gutenberg.”
Fighting with Teenagers: A copyright story
“I have known for a while that there are websites where you can essentially download sheet music for free, and I am certainly aware that a lot of the sheet music being downloaded in that manner was written by me. While my wife Georgia has written extensively about this problem, I have tended to sit back, certain that anything I do would just be the tiniest drop in a very large bucket. But about a month ago, I was seized by the idea to try an experiment.”
An interesting exchange between a composer and a user of a sheet music trading website. I don’t really like his analogies at the end though, because they don’t underscore his stance very well at all. Too tired to articulate my thoughts at the moment, but I’m assembling them into a blog post forthcoming.