Surprisingly productive weekend

Ever notice how I post much more frequently Monday-Thursday than I do Friday-Sunday?

I turned in the history project on Friday. So, naturally, Murphy’s Law went into full force. I went to a computer lab to print out the accompanying write-up, only to find that the margins are somewhat screwed up. I try sshing into my computer to re-run latex, but I can’t connect. Luckily, the CD with the program also has the full sources, including the latex sources, so I upload those to one of the Solaris servers, run latex there, regenerate the PDF, and print that. Then I find out that both of the computers the history professor has access to are currently inoperative. Whee.

I haven’t yet figured out whether the can’t-connect-inbound-ssh-or-http problem is with the NAT router in the apartment or that the cable company is suddenly blocking inbound connections. It’s been working just fine all school year until I needed it. Typical.

Then I find out that I need to pick up the stuff that would’ve been given to me had I not ignored the CS awards banquet last Monday. The note that I’d need to bring transportation to cart it all back was a bit surprising. Long story short, there’s now two boxes of swag sitting in my room, apparently a gift from Microsoft. Somewhat ironic, given my choice of operating system; I have no idea what I’ll do with the boxes of software. Though I’m curious how well Linux will run on the tablet PC. Believe it or not, I haven’t actually unpacked it at all yet. Why?

Because it’s been a surprisingly productive weekend! Saturday I took a ginormous chunk out of the last compilers project. Yes, it’s such a large chunk I need to resort to the made-up words used by sportscasters to describe it. I hadn’t really intended to do quite that much, even though we’ve had a month to do the project, neither I nor my partner had done all that much to finish it, and it’s due Wednesday. And, of course, converting the CPSed version of the program into virtual machine code is lots of fun anyway. But the funny thing is, say you wanted to implement the simplest case of function calls. OK, we need to do the conversion for the tail call itself. But then we need to handle functions, so there’s your conversion for closures. But function bodies will look up variables, so we need to handle that. Plus figuring out where those variables are stored inside the closure. Then there’s also the gotos that are used internally to handle continuations. Speaking of which, continuations needed to be handled too. So, the net result is that you need to implement at least half of the project to be able to run the compiler on anything with function calls. And since ML is a functional language, only the most trivial programs don’t have function calls. So after a several hours’ of work, I stepped back and realized with some surprise that there was only one or two things left to do on the project, and I had expected to spend the better part of both Saturday and Sunday working on it. No complaints there.

(Shorter, more accessible version of the above paragraph: Lots of parts of the project depend on each other, so I had to implement half a dozen of them to be able to test any one of them.)

So, with more free time this weekend than expected, I was able to do most of the rest of my pending homework and catch up on history reading. Since this coming week is Dead Week, aka The Week Before Finals, there won’t be much more new assignments coming my way. So, naturally, I also spent a number of hours playing Wind Waker. Good game overall, although it’s evil to have the shopkeeper who stocks a bottle, a heart piece, and a treasure map (all at high prices) claim to be closing after 7 game days at a time when you don’t have much money on hand. Part of me is relieved he was essentially lying (his excuse was that he closed briefly to remodel), and part of me is enraged that I spent a bunch of time futilely looking for treasure before the supposed 7 day time limit was up. *shakes fist*

4 Responses

  1. I found the cause of the network problem. For some reason the NAT router decided not to tell dyndns.org that its IP address changed, so my domain was pointing to the wrong address. That would certainly do it.

    Which is kind of weird, since I think this is the first time all school year that the IP address we’ve gotten from the cable company has actually changed. Weird, but it looks like that takes care of the immediate problem.

  2. Um…good job? I told you I don’t read all of these long posts about assignments because I don’t have a clue what you’re talking about most of the time. But it’s all good. Glad you got your project in. By the way, Command and Conquer is running on our old computer and is very much fun.

    Love

  3. You didn’t bother reading it? And here I even put in that parenthetical long-story-short version right after it and everything.

  4. Well now I know to read the “long story short” version of what you have written.

Comments are closed.