For the love of 6.470, Montresor by Rachel F. '12
we stayed awake, we built, we conquered
As the blogs are quick to harp upon, MIT thrives over the month of IAP, particularly in the context of its coding/robotics competitions. There are lots of other things going on, but as far as structured activities go, I’m usually only concerned with some subset of these activities, all of which are numbered very inconsistently with respect to the usual scheme and to each other:
- Maslab – Mobile Autonomous Systems Laboratory
- 6.270 – Autonomous Robot Design Competition
- 6.370 – Battlecode, a.k.a. Write Your Own A.I. For A Game Of Heavily Bytecode-Limited Starcraft
- 6.470 – Web Programming Competition
- 6.570 – Mobile App Competition
- 6.S912 – Pokerbots
Hordes of students fanatically devote their relaxing, month-long vacations to these vicious battles, which are typically organized by winners from previous years and are built around new themes every year, so that you can’t recycle old strategies. Most of the finals are run cage-deathmatch style, minus the cage and death parts. 6.470 finals are pretty boring in that sense, because the winners have already been determined and the teams just give presentations about their sites, but the robot matches are obviously physical, and the Battlecode organizers write a nice game display so that everyone can see units dramatically exploding on the map during the live commentaries by the finalists. Extra incentives include Free Stuff (paradoxically, we will do more to get a free T-shirt than we will for the amount of cash it took to buy the T-shirt) and recruiters itching for coders to give jobs to.
I’ve spent the past two IAPs doing internships for software companies, which was fun but kind of hectic. So this IAP, I decided to uphold my hall’s glorious tradition of overpopulating these competitions by teaming up with hallmates Stephan ’13 and Mark ’13. Last year, one of our freshmen, Kamran ’14, won 6.470 with something he made in three days, and was deemed too good to participate ever again. The year before that, a group of our then-freshmen (’13) teamed up for 6.270 and won a bunch of computers and ukuleles as their second place prize, sparking mini-revolutions in both dorm automation and twangy covers of indie songs, while Dan ’10 went ahead and won 6.470. The year before that, a mostly-freshman team consisting of me and a bunch of other ex-USACOers faced off in the the Battlecode finals against Dan, and were subsequently destroyed. This is not particularly surprising, since he was a Battlecode finalist for four years, while simultaneously landing in the top four in 6.470 both years he competed, and his biceps were each roughly as large around as our scrawny nerd bodies at the time.
I am too tired to keep spinning the backstory, so I’ll cut to the chase: if correlation implied causation, then living on my hall would make you pretty good at web development.
On a similar note, if P = NP…well, let’s not get into that. What I actually want to ramble about is our site, Asler. Our friend Gustavo sold us on the idea of making an American Sign Language learning site, and we were pretty intrigued by the idea of making an ASL reverse lookup — it’s apparently a common problem to remember sign motions but forget the corresponding meaning when you start learning. We had to scrap a bunch of early ideas involving machine vision and webcam capture due to the time constraints of IAP, but Stephan, who was born under a lucky star, pushed a rudimentary but perfectly working reverse lookup to our code repository half an hour before the deadline. We have a lot of other cool features working, too, and we think Asler has a lot of potential to grow and self-moderate on its own thanks to a Reddit/StackOverflow-inspired system of user generated content and karma/reputation tracking.
So if you want to learn American Sign Language, or want to play the ridiculously addictive ASL alphabet learning game that Mark built, or know someone who is already fluent and wants to help us kickstart an online ASL community, check it out! I won’t make any money if you do; in fact, the Amazon S3 bucket we’re using to store videos charges directly to my debit card, so I’ll definitely lose money, but we’d like to see people try this thing out even though there are still a lot of rough edges and functionality to add. At least the high-pressure part is over. No more nights where we actually decide it would be a good idea to work with sunglasses on because we’ve been staring at our glaring screens for too long.
tl;dr:
- IAP competitions are really fun exercise for your Course VI-y muscles
- check out Asler!
So where do you think you learned more, the software-internship IAP or this one? Like, both require the exercise of your existing coding and other grinding skills fairly rigorously, but what would you pick as an experience where you learned the most among all three?
How did you get started with programming?
Olive: Vacuously, I learned more doing 470 just because we used technologies I had never used before. But you learn a lot in both internships and personal projects; it’s just different. When you work for a company, you have to learn how to share code between large groups of people and make your product robust, bug-free, and able to handle a lot of load. Side projects are small, low-risk, and standalone, which means you get to experiment with a wider variety of things. I’ve never worked for a small startup, though — I imagine that would have more of a balance.
Mini: It’s a long story. The reason I kept doing it, which is more important than how I started, is that I’m really lazy and don’t like doing repetitive tasks. The ability to make computers do things for you addresses that problem pretty well.
All these competitions sound like a lot of fun. Would love to be a part of them someday! (RA applicant, fingers crossed =p)
Asler looks pretty good. Simple and elegant design. Use of HTML5, CSS3, jQuery. Clever implementation of the reverse sign lookup. +1 on all counts .
I do have a couple of questions regarding your JS code, if you don’t mind. I see in the home.js file, you wrap a function inside parentheses and then call it within its own scope. Some googling reveals it’s a way to namespace your javascript. Also, you define multiple document ready events handlers separately rather than clubbing them together. Are these just personal coding habits or is there any particular reason behind them?
PS: Your image alt texts always make me giggle.
Just noticed you haxed your avatar. Nice.
Where were the IAP internships you did?
Bhuwan: actually, we used Coffeescript and it auto generated our Javascript, so I don’t know exactly what you’re seeing.
Ah, that explains the peculiar bits of code. Thanks.
…Are those Gunnars?
Bhuwan: wait, is “clubbing” some coding slang I’ve never heard of or is it an actual term
anonymous: Kayak and Monster.com, did search-related work at both
Um. I simply meant to say “putting together” when I used that word. The js file has multiple event handling functions for the same event (document.ready), each containing only one statement while all the statements could be combined within one handling function. I was just curious as to why they were split up. Sorry for the confusion caused.
I just want to tell you:
PROPS FOR THE SHOSTAKOVICH. Best part of the 6.470 presentations, hands down.
Off topic, but I see this :D
http://images.mitadmissions.org/blogpics/haxtest.jpg
BTW I love the current pics better.
Ricardo: wow, i did not know gaming glasses existed. but no, those are just random cheap sunglasses.
Phoebe: haha, thanks. i’m glad we got to play that before all the pop songs and rickrolls.
afarrell: traveling the world? dunno. i’m not planning on starting work until fall. what are you doing?
I’m planning to take a week-long canoe trip up in Aroostook, Maine, then graduate, then tour Europe for 3 weeks, then start working at Panjiva in Kendall Square. I worked there over IAP and it has been awesome! I sang a bit of a sea shanty during my interview and went to work the last day of IAP dressed like a pirate. We’re basically trying to turn ourselves into the OkCupid of international trade, which leads to no end of amusing analogies. Stephan actually worked there last summer, you should ask him or me about it if you don’t already have something lined up.
What are you doing over the summer?