Month: March 2006

  • School, Fun, and Programming

    Today in class I was thinking about how much I can’t wait for graduation. Everything being taught to me is starting to feel like regurgitated penguin meat! I got a real sense of de ja vu today, and this isn’t the first time it’s happened. It really feels like I have learned everything this school has to offer to an undergraduate computer science major in the areas I’ve decided to learn. I’m starting to think I should have taken the independent study this semester instead. All I can do now is try not to let the boredom of this semester get to me and look forward to my job waiting in NYC.

    One way I’ve been fighting the boredom from this semester is by going out with friends. My bank account is telling me that I’ve been going out too much though. Last weekend was definitely fun. Saint Patty’s Day was an absolute blast. I went with some friends to a favorite bar here in Ann Arbor called Ashley’s. With songs blasting on the juke box, drinks all around, it was just a plain good time. I’ll post a couple of pictures from the night when I get home from the lab here. I also went bowling on saturday with some friends. I did absolutely atrocious, but I can’t complain because it was a great time. There was four of us, and the one who never bowls ended up beating us all.

    On to programming news. I’ve been doing a bit of study of the boost library for C++ (http://www.boost.org). They have a LOT of really cool pieces of code in there, and I would like to use them in a project. I’m about to start on a project for adding remote procedure calls to the SQLite library (http://www.sqlite.org). Basically, this will turn SQLite into a client-server database. I need to come up with a name for it though, so any ideas are welcome!

    I have decided to code the server in C++ and use the boost threading library. This will give me cross-platform threading, which would be a complete pain to code up being threads in the windows world are about a 180 turn from threads in the unix world. I also plan on using those super cool smart pointers in boost. These are, in my opinion, one of the coolest features to be included in the next C++ standard. Any semi-competent C++ programmer will use these things, virtually eliminating all possible memory leaks, and eliminating the overhead of a garbage collector. Used correctly, these things are fast.

    I’ll also code a client library to issue calls to the database server. I’ll most likely due this in C due to this being the code other projects will link to. I don’t want to rule languages out by using something else; C seems to be that standard language everything else can call to.

    One last thing I’m trying to do is find an Apple Airport router, so if anyone has one lying around and is willing to help me out, tell me. I would like to add NAT PMP support into LibNAT for all those Apple crazies out there. It is a very simple protocol, and should not be hard to code into the library. It helps that I designed it to be modular so it will be easy to add such features.

    -Adam

  • AFS Space Down!

    I was working on profiling some code for a class, when my AFS space goes down. Now I’m in a pickle. The reports are due at midnight, and all my documents are on my AFS space. I’m looking at the computer, a linux machine, with all my documents open, but I can’t do anything with them. I can’t save them, open a web browser and email them, just look at them. One of them hasn’t been saved, so I’m worried about losing it. Ahhh, the beauty of remote file systems. I’m posting this from my laptop because I’m bored in this lab waiting for the systems to come back up. Good Times!

    -Adam

  • LibNAT Release 0.1

    I have released LibNAT 0.1 on sourceforge. Here
    is a link to the project page. Now that I have something out there for
    people to mess with, I can get back to concentrating on school. I have
    a project due in one of my classes in a little over a week, so it’s
    about time I get that going. We are making a text based adventure game,
    or as my professor likes to call it, a medieval simulation. Even though
    I find the end result unrewarding (I’ve never liked coding such trivial
    programs), it will be nice to finally use some object-oriented design
    patterns. One gripe I have about this university is its lack of
    teaching more of these design paradigms. I feel I’ve more than made up
    for their lack of teaching these things by doing my own personal
    projects, but it would be nice to study these ideas in more than just
    my spare time.

    The last project we did was an interesting concept though. The idea was
    to get accustom to as much of the STL and its built in algorithms as
    possible, so we had to use the STL extensively throughout the project.
    By extensive, I mean not having a single explicit loop in the entire
    program except for the main loop for retrieving input from the user.
    Everything else had to be an algorithm. This was actually to the point
    of the STL being annoying, but it really taught us the strengths and
    weaknesses of these STL features. Never again will I wonder about the
    mystery of functors, binders, and adapters!

    -Adam

  • Back to the grind of school! One of my professors thought it would be funny to make a project due at midnight this wednesday, the day before our midterm. I still fail to see the humor in it. I don’t have any big projects due for a while after this week though, so I’m looking forward to this weekend, and hanging out with some friends here at school.

    LibNAT went well over break. I reached all my deadlines, and have a working version of the library. There are some very small memory issues I was not able to resolve because I ran out of time. I’ll spend a day in front of valgrind hacking them out, and that will be the end of it. I’m looking forward to uploading it to sourceforge.

    There is one project that is already waiting for the code to be released, so I’m hoping to have everything wrapped up by this weekend. I have to put it on hold till after my midterm on thursday unfortunately. The project is called Aleph One, a remake of a game called Marathon 2 developed by Bungie, the creators of Halo. Here is a link to their site:

    http://marathon.sourceforge.net/

    As soon as LibNAT is released, I’ll throw a post up here with some download links.

    -Adam