Snowplow Programming

Matrix Multiply Parallelization icon-external-link-12x12 was the second project for the Summer 2013 semester class CS61C: Great Ideas in Computer Architecture (Machine Structures) icon-external-link-12x12 at UC Berkeley. This was the first time that people were allowed to work in pairs, as all previous assignments were intended for individual completion. The project itself was broken up into two parts that were to be submitted separately. Part one had two objectives: write code that efficiently computes matrices of varying sizes, and write code that is optimized for computation of a base-case 36×36 matrix.

The person with whom I had been studying for homework assignments neglected to tell me that she paired up with another classmate; I didn’t find out that I needed to get a new partner until the day we were supposed to submit our pairings to the teacher’s assistants. As a result, I ended up with a very questionable fellow who didn’t seem at all like the type of student I expected to find at UC Berkeley. Even more interesting was that I met many more like him in the days following our introduction.

I elected to write the code for handling matrices of varying sizes and suggested that he handle the base case. I did this for two reasons: 01) I saw an opportunity to apply what I had learned in my Linear Algebra studies to a challenging programming exercise, and 02) I didn’t at all feel comfortable letting him take responsibility for this more delicate part of the program. During the next week, we hardly worked together, which was one of the most unusual mixtures of relief and disappointment that I have ever experienced in my life.

As I was finishing up our project submission icon-external-link-12x12 , I decided to check in with my partner to see how his work was coming along. I was not very surprised to discover that he figured out a way to get everything done and that our program’s performance for the base case was at the top of the scale. Fortunately we weren’t nabbed for any funny business, but we should have been. I would be willing to bet that we got full credit on part one of the project, but honestly, I never bothered to check.

It’s interesting to note that my part of the program was only worth 20 points (~36.4%), while my partner’s part was worth 35 points (~64.6%).

First Attempts at Level Design

One of the great things about the game Quake icon-external-link-12x12 icon-search-12x12 was that it unleashed the inner game developer in all of us. Sometimes this was a good thing, and sometimes it wasn’t, but the technologies it made available to the world led to an explosion of user-generated content for a game that was already engrossing.

I was a little late to the party, but ended up releasing two maps after getting my hands on a nifty level editor called WorldCraft. These were smaller maps—usually one or two rooms—designed for a special one-on-one game mode called Rocket Arena icon-external-link-12x12 icon-search-12x12. My initial release was called All Along the Watchtower and it turned out to be a respectable first effort. The followup was called Storage Facility and it was one of the better Rocket Arena maps of the time.

All Along the Watchtower
Rocket Arena map for Quake
Download wtower10.zip

Storage Facility
Rocket Arena map for Quake
Download facil10.zip

My third and final map for Quake came some time later: one weekend, a couple years after I finished Storage Facility, I got a fierce itch to make something and WorldCraft and Quake ended up being the best outlet for this creative energy. The result was a map called Generator Room, which is a really tidy level with a good environment for dueling. Unfortunately, Quake was old news at this point, so there weren’t very many people who got to play it.

Generator Room
Rocket Arena map for Quake
Download gen10.zip

These three Rocket Arena maps are relics of the past yet they hold up quite well for people who still enjoy a round of multiplayer Quake from time to time. I wouldn’t want to have to use them as the centerpiece of a résumé, but they are worth sharing nonetheless.

If Shaquille O’Neil Were an Orange…

…this is what he would look like:

if-shaquille-oneil-were-an-orange-000000-formatted

For an appropriate sense of scale, a deck of Bicycle playing cards was added to the scene:

if-shaquille-oneil-were-an-orange-000001-formatted

This orange is the size of a small pumpkin! In fact, after setting it on the counter and staring for a few moments, I was struck by a strange compulsion to carve it into a jack-o’-lantern.

Also, I couldn’t quite capture it in the pictures, but the smaller regular-sized orange is very slowly orbiting the larger one.

Arguing with 11-Year-Olds

Antisocial Behavior in Games: How Can Game Design Help? icon-external-link-12x12

Before online gaming, grown men did not have a safe environment in which they could rage incoherently at preteens; by that same token, preteens were unable to safely provoke unscrupulous adults for personal amusement.