“You know, there’s nothing to fear, but fear itself.”Yeah, that’s called recursion and that would lead to infinite fear, so thank you.
Courtesy of ze frank.
“You know, there’s nothing to fear, but fear itself.”Yeah, that’s called recursion and that would lead to infinite fear, so thank you.
Courtesy of ze frank.
I’m glad that, while I was teaching, I never had to look at code that was so bad it needed an apology. An excerpt:
I … realize that this program is a messy compilation of inefficient coding, and perhaps even stands as something blasphemous in your eyes. Coming midterms forced me to write the program as is because this format required the least amount of thinking as well as the least amount of time. Therefore, I only ask one thing of you: Be gentle.
Wow.
A lot of restaurants these days have call-ahead seating; it’s just like being at the restaurant, except if there’s a line you can plan to be there around the time your name is called, which cuts down on the awkward “let’s sit around while other people eat around us and wait for a table to clear” phase of eating out. Since this call-ahead seating thing is all pretty simple, I was a little surprised when I tried it for the first time tonight:
“Hi, I’d like to put my name in for call-ahead seating?”
“OK, what time would you like to put that in?”
What time? This is an unexpected question. Now would work fine? “Uhh, now I guess?”
“Well, you see sir, the best we can do is, like, put your name at the bottom of the list and we call you when we have free space.”
Thank you, Captain Obvious, of course you can’t just push me to the front of the list.
“… uhh, yeah, right, that’s exactly what I’d like to do. I’d like to put my name on the list. For 2, if that’s possible.”
“Oh, um OK. Bye!”
“Wait, aren’t you going to tell me how long the wait is going to be?”
“The wait? What wait?”
“I mean, normally I tell you my name and how many people, and you tell me about how long I can expect to wait. That’s how this works, right?”
Sure enough, this was the way things were, and the estimate I got cut my wait time down by a few minutes, but I have to ask the obvious question here. Am I wrong in assuming that the entire motivation behind call-ahead seating is to plan your arrival time so that you don’t have to wait? Is there some other idea here that I’m not understanding?

It’s things like this that remind me why I die a little inside whenever I realize that, damn, I could have gone there instead of grad school.
In 1981, my dad ported (or translated) a game called Lunar Leeper from the Apple II to the Commodore VIC-20. The project was funded by Sierra Online, which would go on to release games like King’s Quest and Half Life. I’ve known about this for a while, but I only recently really talked to him about it in detail. I was so impressed that I thought I’d bring it up here.
The VIC-20 was the first inexpensive color computer ever made – it packed a whopping 1MHz processor, 5K of RAM and an interface for taking 16KB cartridges. It was designed as a general-purpose computer but people really appreciated it for its ability to play games, since it was inexpensive and had a joystick port.
My dad wrote Lunar Leeper in ten weeks of nights and weekends. He first had to write a VIC-20 emulator for the Apple II, and writing that took two weeks by itself. Porting Lunar Leeper to the VIC was made more difficult by the original game’s heavy reliance on the Apple II’s display hardware. Doing this in ten weeks is even more impressive when you consider that he had to write it all in 6502 assembly language. Most programming languages today are compiled, meaning that the code the people write is passed through a special program called a compiler that translates it into assembly language. An assembler then translates that into binary, the 1s and 0s that the processor understands. My dad wrote his port completely in assembly language, mostly because “compilers really sucked back then”. I’ve written an assembly program before, and I hope never to have to do it again. It’s tedious.
The VIC-20′s display was controlled by writing to certain parts of RAM. A big problem with this was that RAM on the VIC-20 was byte-addressed, which meant that you could only manipulate pixels on the display in 8-pixel chunks. Dad wrote an elegant little algorithm that would allow images that were wider than 8 pixels (like the eyeball-with-legs leeper in the second image below) to be displayed and moved across the display’s byte boundaries quickly. His leepers really impressed the folks at Sierra because how speedily they were able to shuffle back and forth across the screen.
Here are a couple screenshots.

“Program by Dr. Bob”. Booyah.

Those of us who (like myself) grew up with the Nintendo and its offspring won’t be too terribly impressed by the visuals, but when you consider what this was written in (not to mention the fact that Pac Man was released in Japan only two years earlier) it really hits you just how sophisticated this was for its day.
I’ve been fascinated for a long time with how the guys who composed music for Nintendo games back in the 8-bit days managed to do so much with so little hardware. The Nintendo’s sound chip only supported square waves, pulse waves, triangle waves and noise, could only produce three (or was it four) simultaneous sounds at a time, and (as far as I know) had to be programmed by hand one note at a time. Despite these limitations, some composers managed to make some really great music using just this rinky-dink little chip.
For a long time I’ve been looking for a virtual instrument for Apple’s Garageband application that would accurately reproduce the Nintendo’s sound. After more than a year of poking around on the Internet I’ve finally found the perfect AU – it’s called Magical 8Bit Plug and the developers who wrote it deserve a major high-five.
Anyway, after work yesterday I went hunting around for a MIDI to render with this nifty new virtual instrument. I found this track called “The Rain”, written by a guy named K. Goach in 1993, that I thought sounded pretty cool. I cut a large portion of the tracks in the original MIDI out of the final remix to decrease the excess layering of sound as much as possible. Ultimately, I think this track could be accurately reproduced using two NESs each playing 3 tracks. I’m pretty happy with the result, so I thought I’d share it with the web. Enjoy.
The Rain, for two Nintendos [mp3, 5.6 MB]
I know it’s a little late for April Fool’s Day pranks, but this one from Google is particularly hilarious.
Thanksgiving weekend! Woo! Updates forthcoming, I promise; I won’t spend the whole weekend in Azeroth
.