Monthly Archive for October, 2007

T plus 15 hours…

My College Apps

So we launched our facebook app, My College Apps, about 15 hours ago. Since then we’ve accumulated some number of users, which is vaguely amusing to watch. I’m actually working right now on some sort of flash fireworks that can go off every time we have a new user. Essentially, the application allows users to list and track what colleges they are applying to, as well as discuss the schools in question. Wish us luck!

What’s going on?

I can’t explain any stage of this phenomenon:

  1. Colbert announces his presidency, but only in his native South Carolina.
  2. Someone makes a “1,000,000 strong from Stephen T Colbert” group to rival Barack Obama’s group.
  3. Group grows ridiculously fast. Ridiculously.
  4. Group is growing at several members a second, passes Obama’s group easily (1.5+ year lifespan vs 5ish day lifespan? Can anyone say cultural phenomenon?).
  5. Group vanishes without a trace.

I’m sure this isn’t censorship or anything sinister, but I’m also sure there was a better way facebook could have handled the server load. It was especially disappointing because I was just about to demonstrate the group’s magically expanding ranks second-by-second when it vanished right underneath me.

Insights into today’s politics

I’ve always wondered somewhat about the relative indifference of the American public today towards politics, and one of today’s Daily Kos editorials gives a good reason why at least the younger generation of the United States is so jaded:

I cannot speak conclusively as to how previous generations have viewed our government–as an oppressor, as an adversary, etc. But I would venture to say that my generation views government as a complete joke.

After all, we grew up and came of age in an era where our “government” was defined by blow jobs, blue stained dresses, and Bushisms. We have come of age in a time where political discourse revolves around childhood taunts and bumper sticker slogans. We have been shaped by an era of political absurdity, where government is neither threatening nor worthy of respect, but is rather viewed as a tragic parody of what once was the greatest system of governance.

I believe, however, that while astute and altogether far too tragically true, these statements aren’t an instigator towards indifference, but rather an elusive combination of outrage and hopelessness. We all spent hours learning about our constitution, how it outshines every other form of government by orders of magnitudes in candela, or our government, with our spectacular and nigh superhuman historic leaders, all the way through high school, and yet we turn on the news and see a grotesque mockery that only vaguely resembles the indefinable marvel that is supposedly our government.

Of little help is the relative and grossly disproportionate ignorance we percieve our elders to possess. These are people who made up their mind on politics years upon years ago, and no longer have any ideals or notions about it; instead they simply blindly follow their ideas of bygone times in a manner which is tangentializing in remarkably and increasingly disastrous ways. Conversations such as I had with a few adults just yesterday fail to improve the general health of the scenario; these people could not bring up a single policy-based reason, or any sort of evidence backing their conviction that any and all Democrats aren’t very good leaders. Curious, I probed further, as I had always completely failed to comprehend such people, and, being largely surrounded by college youth, hardly happen upon any such characters.

These people could not explain why Rudy Guiliani would make a great leader, but were absolute and firm in their conviction as such. Upon bringing up the World Trade Center Emergency Center debacle, their response was simply that “people make mistakes,” and that it was a forgivable error in light of his clearly and vastly superior leadership skills, which still wait in want of any sort of evidence. I pointed out then as I again point out now, that a decision fails to qualify as a mistake and instead leans toward ridiculous and inexusable when a “leader” ignores the advice of every single one of his aptly named advisors — leadership is a two-way street, something the Bush administration clearly fails to comprehend.

However, whose fault is it really? Not really theirs, for they’ve been on this planet far longer than we, and have earned their right to be complacent, and to stick to what used to be justifiable convictions.

No, the fault is ours; the fault is that of the media; the fault is that of the rest of our country, our country that has become complacent, our country that has failed to coalesce into any sort of reasonable discourse, our country that has ceased to care, our country that can think no more highly of its own government than a circus, our country that has failed to be a country, but instead the dying, feeble idea of one, struggling to survive on the hollow proclamations of patriotism from a government and a party full of hollow promises. It is our fault, each and every one of us, for not questioning ourselves and others often enough.

Let us fix this before our future becomes even more grave.

Again proof that kindess comes first

You probably never knew that we interrogated some 4,000 Nazi P.O.W.s during World War II, because the activity was, like our current interrogations, top secret. However, given light to recent happenings with our latest government and torture, the people who were asked to interrogate this staggering number of prisoners could not in good conscience stand by any longer, and came forward to admit what they did. Let us see what atrocities they committed to help us win the war against the Nazis.

"We got more information out of a German general with a game of chess or Ping-Pong than they do today, with their torture," said Henry Kolm, 90, an M.I.T. physicist whose interrogation of Rudolf Hess, Hitler’s deputy, took place over a chessboard. George Frenkel, 87, recalled that he "never laid hands on anyone" in his many interrogations, adding, "I’m proud to say I never compromised my humanity."

That torture seems really justified now, doesn’t it? Lesson number one: be a human being.

I want to incinerate every last bit of Windows Vista

Here I was, minding my own business, and I need to shut my computer down. Vista decides to install 8 updates.

“Installing update 1 of 8…”

Okay, fine. That’s not too bad, I’ve waited through 26 updates before. An hour later,

“Installing update 1 of 8…”

There’s no way. I’m scared to power-cycle this thing, but there’s no HD activity, there’s no way it’s still working… let’s see what will happen.
Now I have a half-bricked computer. Aren’t updates supposed to fix my computer?

A quick note on Ruby on Rails and Dreamhost or FastCGI

Don’t do it.


Use Mongrel, and get a VPS if you have to do it. We found this out very much the hard way.

Review: Portal

I saw the trailer for Portal last summer and was instantly in love — this game blew my mind. I’ve always been a big fan of puzzle games of various types, spending an inordinate amount of time on’s puzzle section in my youth (Lasertank, I’m looking at you). In fact, most of my largest programming projects have been various puzzle games of my design.

After so many years, though, it’s hard to find fresh and innovative puzzle games, and I’d pretty much stopped trying until I saw the aforementioned Portal trailer. The entire premise of the game (which really is far better explained by watching the, again, aforementioned trailer) is that you are a test subject armed with an awesome device that can instantly create a blue and an orange portal on any flat concrete surface you can point and shoot at. The moment you walk out one, you walk out the other. Momentum is conserved in the transfer, so if you fall into a portal in the floor fast, you can come flying horizontally out a portal in the wall, a maneuver they call the “fling,” though I prefer the much more kinetic “catapult.” The goal is very simply to proceed to the exit.

Insofar as I’ve explained to this point, the game is identical to a DigiPen student project called Narbacular Drop. The game is incredibly short, and pretty buggy at points, but it is still great fun, and was clearly good enough to be picked up by Valve to be developed into Portal. However, crazy physics with yourself will only get you so far in creating puzzle games, so there are a couple of new mechanics, such as moving platforms and a neat energy ball launcher/reciever combination, which require you to redirect the energy ball to its reciever to activate various mechanisms in a level. In addition, there are single-direction turrets, which themselves are very amusing because they each have their own unique personality, and say the darndest things when you do things such as pick them up from behind.

Also, there is cake when you get to the end of the game.

Thus ends the description of Portal and begins the review. Portal’s strongest points are in its innovative gameplay and its incredibly dry humor. Each level has had immense care put into it, which you can determine for yourself by listening to the excellent developer’s commentary, and most feature fresh and interesting takes on the limits of Portal physics with each turn. While playing the game, there wasn’t a single person who dropped by my room who wasn’t completely mesmerized and amazed by what was going on. By the time I beat the game, I had a semi-substantial audience of onlookers cheering me on, set against the incredibly hilarious GLaDOS, whose dry humor carries all the way through to the amazing credits song (which alone is worth the price of admission). However, therein lies the rub.

At first glance, portal is incredibly short. An average player can probably bust through the game in about 3 to 3.5 hours. As a seasoned Narbacular Drop player, I finished the game in just about 2 hours of play. Part of this is due to the fact that a large majority of the levels are of trivial difficulty. However, this short length is a complete lie; the true game exists in the bonus maps. Not only is Valve releasing a new version of Hammer that will be able to create Portal maps soon, there is a collection of built-in bonus levels: these consist of six modified versions of the built-in levels which range from slightly to insanely harder, as well as a series of “challenges” which require you to finish six levels with either the lowest number of portals used, steps taken, or time elapsed. Of these, the least portal challenge is the most interesting to play through.

All in all the only thing that strongly detracts from Portal is the lack of challenge, which in turn leads to a pretty short gameplay run. However, you’ll be having such a blast playing it for that short run that you won’t even mind. Go buy it now.

The Church of England is at it again

They’re up in arms again over the presence of Manchester Cathedral in the game Resistance: Fall of Man. Last time they did this, Sony apologized but said it was going nowhere.

Well, now Resistance has been nominated for a BAFTA award (British Academy of Film and Television Arts), and the Church is once again angry, claiming that it’s like “salt in [their] wounds” and that the only reason Resistance was nominated was because of its fairly solid sales numbers, which were in turn substantially increased by the controversy.

Dear Church of England:

  1. Resistance‘s sales numbers are high because it was the only half-decent game out for the PS3 at launch.
  2. If you knew that controversy would increase sales, why touch it at all?
  3. Most importantly, no one EVER bought a game because there was a controversial cathedral in it!

Clint Tseng

Microsoft releasing .NET framework code

Step in the right direction. Microsoft has revealed that they’re finally, with .NET 3.5, going to release parts of the .NET framework code. Eventually, all of the code will be released, including the new (and pretty exciting, if it makes good on its promises), LINQ DB access technology. I won’t make any comments about open-source software, because Microsoft’s stance is very clear on that subject, and this is clearly irrelevant to that discussion.

What this issue is relevant to, however, is the lives of .NET developers. Currently, Lutz Roeder’s excellent .NET Reflector – essentially a decompiler from CLR code to code that makes sense to developers for any and all .NET classes – is the only recourse for getting any sense of how .NET is working under the covers. Extending .NET’s default classes would be impossible without this invaluable tool, given that the convoluted order in which .NET’s library classes call their internal methods aren’t particularly well documented. However, .NET Reflector can only do so much to alleviate the problem given its fundamental nature as a decompiler; the code it extracts is often riddled with oddities, including but not limited to numerous labels and goto statements (!).

A far more fundamental problem lies within the process of debugging. Stepping into any .NET code will drop you into either assembly or bytecode, depending on how Visual Studio is feeling on that particular day, which is a complete waste of time and often precludes any sort of productive debugging getting done.

Having the actual and whole source code to the .NET libraries alleviates both of these problems, instantly.

I’m glad that Microsoft, at least on one front, has come to its senses on its secrecy. It will make the lives of countless developers far, far easier.

A beginner’s guide to OS X

There are an incredibly disproportionate number of people here at the UW that are using Macs, something we discovered last year. With that influx of new Mac users comes a complementary number of amusing mishaps, missteps, and generally just mistakes going on. So, to amend a general lack of content coming to my mind to blog about, here is a beginner’s guide to boosting your OS X familiarity and productivity off the bat.

First! Installing applications. In general, the process for installing OS X applications is as follows. You’ll most likely get a file in the format of a DMG. Think of this as someone emailing you a virtual CD. You can put the CD in your computer (mounting it), or remove it, but you won’t be able to edit it, and you most likely don’t want to run everything off a CD. Generally, you’ll find a .app file in the DMG. You’ll want to first drag that to your Applications folder, then run it from your Applications folder. There are two exceptions; if the .app says "Installer" in it, or if instead of a .app you find a .pkg, you’ll want to run them straight off.

You’ll probably need to know some Finder-fu if you want to efficiently copy files such as those .apps. The best view in finder by far is column view. That’s the one to the far right. In this one, as you delve deeper into folders, you’ll progress to the right. If you want to go back up, just go left. Also, if you select a file, you get a nifty preview pane with information in it. To couple this, the best way to manage the copying of files is to just open two Finder windows and navigate to the two paths in question straight off the bat. Cmd+N opens new Finder windows. If you click on the desktop, the Finder application comes into focus, so you can at any point simply click on your desktop, then hit Cmd+N to get a new window or two.

However, if your desktop is buried, your friend is F11. Arguably more useful than F9 (Exposé), this critter will instantly sweep your windows aside temporarily and give you instant access to the desktop. Nifty.

When you’re presented with a dialog (especially Yes/No or Save dialogs), you’ll often see a solid blue button and a glowing blue button. To select the solid one, hit Enter. To select the glowing one, hit Spacebar. Usually on save dialog this corresponds to Space->Don’t Save, Enter->Save. Also, if there is a small dark circle in your close button, it means you have unsaved changes.

This one is very simple. Use Cmd+Q to quit your applications! They won’t close if you just hit the red button. You’ll see over time why this is, but while it makes perfect sense after you do, it’s hard for Windows users to grok at first. While we’re at it, other keyboard shortcuts that are standard across all OS X apps are:

  • Cmd+W: Close window (but not application
  • Cmd+T: If an application has tabs, new tab. Otherwise, gives you the font changer window
  • Cmd+F: Find
  • Cmd+left or Cmd+right: Generally left tab or right tab… Sometimes Shift is required
  • Cmd+Tab: Switch applications, much like Alt+Tab in Windows
  • Cmd+~: Exactly like Cmd+Tab, but only between windows within the application.

In addition, there are many nifty Option+ shortcuts that produce special characters. Try Option+Shift+K. Or try Option+E, then hit any vowel.

Are you on a MacBook or MacBook Pro? If so, do me a favor. Right now, put down two fingers instead of one. Now move your hand up and down. It’s a crying shame how many people don’t know this. In addition, if you go to System Preferences (Apple Menu) and go to the mouse category, you can select "Place two fingers on trackpad and click for secondary click" so that you can right click simply by placing two fingers on the trackpad and clicking, rather than using Control+Click.

Get Quicksilver. Yes, not having Quicksilver is just as egregious an error as any of the above. Quicksilver is the single most amazing and useful application you will ever find on OS X, bar none. You can simplify literally hundreds of tasks with Quicksilver, among which are launching applications, extending applications with keyboard shortcuts, instantly open a directory in terminal, instantly open a file with an application, all the way up to selecting multiple files and emailing them without even touching Mail. I’ll elaborate on this in my next post.