Shortlog - a log of everyday things

Home

2011-11-26

Thanksgiving was a blast. After thoroughly wrecking my sleep schedule after the systems take-home midterm (I wound up falling asleep at 20:30 and waking up at 01:30. Oops.) I managed to get back to sleep around the sunrise at 06:00 and slept until something like noon. I baked 8 miniloaves of bread and pineapple bake (recipe!) for a potluck gathering of friends.

There were about 35 RSVPs, and there was food aplenty: three turkeys (two fried in oil, one roasted in the oven), three different kinds of mashed potatoes, two kinds of green beans with cheese, sweet potatoes, sweet potato falafel, several salads, and at least three pumpkin pies.

Giant table of food
Yum.

Lots of people gathered around
This was just the main room; lots of people were in the adjoining rooms.

I had the pleasure of meeting half of the AeroFS team (I met Yuri, Mark, and Allen). I'll get to meet the rest of them on Tuesday when I visit their office in Palo Alto.

Andrew and I hung around until late-o-clock, eating way too much food and chatting/singing/playing guitars with folks. David Moore brought out his fiddle, and he and Shaddi were playing folk songs from the South. Good times.

Friday: I spent the majority of the day learning x86 assembly so that I could do one of the Stripe job-app programming challenges, namely:

This seemed like a good choice because I'd somehow managed to avoid learning x86 assembly up until this point - I can deal with ARM and MIPS and Zilog z80, but I never learned how x86 works. (And boy, is it funky.) Anyhow, knowing x86 assembly could be helpful if I ever want to reverse-engineer object code for that platform.

Someone I know from A&M who goes by the handle Pathore helped me understand the basics of x86 assembly, BIOS calls, string handling routines, and helped me debug code over IRC. For several hours. It was a very intellectually stimulating experience. Pathore, if you're reading this, I owe you dinner or something next time I see you.

Once I'd picked up enough of the basics to be dangerous, I wound up making a stupidly simple game where you move a character ("%") around a grid collecting the letters of the string "STRIPE". It fits (exactly) in the 440-byte code segment allowed in the 512-byte MBR, though if I really wanted I could shorten the printed strings and add more code. It's quite heavily optimized for size, and I'm fairly proud of a couple of the things I thought of to save bytes. It's not something you usually have to think about any more these days.

My submission is here, for those who would find its workings interesting. It's heavily commented to help you (and me) through. Let me know what you think!