Other Other Programming

Geocities : Salvaged

As much as it pains me to look at, I decided to salvage one of the earlier web pages that I ever made.  I have long since forgot earlier web pages, but “The NannyMUD Guide” really stood out to me because it was my first serious effort at web development.

It’s nasty sure (big crappy flash animations, talking to myself, awful menu design, crap color scheme,…), but it was an important to me then.  Click the link below to check it out.

The NannyMUD Guide

Edit:  I’ve been asked for a quest walk-through for NannyMUD.  Click here to download it.


Circular Queue

If you float around Computer Science / Programming circles enough, it’s likely that you’ve come across the term “circular queue”.  A circular queue is a queue of <something> that is fixed in size, and when the end of the queue has been reached, it circles back to the front and starts pushing items from there.  If the head catches up to the tail, the queue is said to be full.  In C style languages, circular queues can be implemented using pointers fairly easily.  In my case though, I don’t have pointers, so I’m just keeping two variables (head, tail) that tell me where the import parts are.

Some people might wonder “Why on earth are you implementing a queue by hand?”, which is valid question.  The answer is because there is now STL-type library in Limbo, so implementation of a queue falls into my lap.  I suppose this post doesn’t have much of point, except to say “Use the friggin’ library if it’s available.”.  For one, it’s already been done, and two, it’s probably bug free.


Interesting Assignment

Recently in my graduate level operating systems course, we were assigned to make a networked semaphore manager.  Essentially, client machines can connect to the semaphore manager and ask it to control access to SOMETHING.  In our case, we’re just proving a point, so we’re controlling access standard error.  It’s an interesting problem because coding anything over a network is tough.  Secondly, creating a reliable semaphore manager is tough on it’s own.  To make matters worse, we’re using a hosted environment called Inferno.  Inferno was once created by Bell Labs, but is now distributed by Vitanuova.  For reference:

LimboOh, and it’s due in two days.  Taking a bit of time off was nice, but probably not the wisest decision.



This weekend I’m charged writing a networked semaphore manager.  In other news, I’m hanging out with Kelly all weekend.

Spring Break 2009
Spring Break 2009

Windows 7: First Impressions

Windows 7 Login

Yesterday I decided to abandon Linux on my laptop.  Why?  I was bored.  I’ve been using Linux (Ubuntu) on my laptop(s) since 2005, so I was in need of something different.  Of course, there are definitely some other reasons why I switched:  stand by actually works, full driver support for my 9600 GT M, full support for finger-print reader, ability to place games.

In addition to the features mentioned above, Windows 7 has some great new additions.  First of all Aero is actually useful now.  The transparency issues of Vista have all be taken care of.  And, it has some sweet new themes too.  Ooh, and gestures too!  You can grab the top of a window, shake it around vigorously, and all the other windows will minimize to the task bar.  Performance-wise, it’s also heads and shoulders about Vista.

I’ve only been using it for a day, and I can’t say enough good things about it.


Taking Over

Whenever you think that things are getting a little too boring, something will always come up that will make you wish that they were still that way.  Today, has been one of those days.  Recently, one of our senior faculty decided to go AWAL.  BOOM! BAM! Gone.  Just like that, he decided that he didn’t want to do his job anymore and he left the rest of the department to pick up the pieces.

While I’m only a grad assistant, I’m officially part of the department.  I teach 5 labs, hold office hours, yada yada yada.  So guess what that means for me?  I got to pick up one of the labs that this faculty abandoned.  It’s a fairly large lab, with about 30 people in it.  From looking at their faces, they seemed to be relieved that I showed up.  After looking at their grades, I can see why:  I don’t think he actually told them when assignments were due.  In fact, only half of them even turned in their first project (significant portion of their grade).

As big of pain as it is, I’m happy to do it.  I like to be able to contribute and hopefully I can help the department save-face in this whole fiasco.


Job Search and the Future Me

If you follow the blog at Re-Cycled Air, you’ll know that I’ve been contemplating making a break from school and starting real life.  After much job searching, I ended up with three local interviews and two job offers (I canceled the third interview, but that’s a story for another day).  What I’ve realized is that I really like college.  I know that good things can’t last forever, but I really enjoy learning.  I have the chance to stay in a great place for another 1.5 years, so why shouldn’t I?

During the job interview process, I came across 3 distinctly different companies:

  • Company 1:  A small GIS startup that is still in it’s early phases of development.  It’s profitable, interesting, flexible, and the partners are dedicated to what they do.  They’re also laid back, nice guys.
  • Company 2:  A medium size web development business.  It’s well established, has a profitable base of customers, and the people are nice.  However, after extensive interviewing and research I’ve found that their implementation and code seems to be sloppy.
  • Company 3:  A fortune 500 company with great benefits, better pay, and semi-interesting projects.  No flexibility, very profitable, and filled with boring people.

Company 2 and 3 would require me to quit Grad School.  At the time this seemed like a great choice, but after much thought, I’ve determined that the only thing that will really make me happy is staying right where I am.  After the undergraduate degree, most people assume that you have to jump right in to work and so called “real life”.  I’m suggesting that you don’t need to do that.  Real life is wherever you are.  I might be in college, but this is still real life.  I have responsibilities, a car payment, a wedding to pay for, hope, dreams, and everything you do…. except I’m having more fun while doing it.

Working a 9 to 5 job isn’t a bad thing, but for those of us blessed with the intelligence to go on to grad school, I think that the 9 to 5 paradigm isn’t the right way to go.  That said, I chose to continue school, continue to learn, and continue to teach.  After this epiphany, I decided Company 1 was the place to be.

Wish me luck!

PHP Programming

PHP Type Evaluation

Aside from grad school drama, I learned something new the other day about PHP.  In PHP, there are two ways to look for equality: “==” and “===”.

$a = “1”;
$b = 1;
if($a == $b) { echo “True”; } else { echo “False”; }
if($a === $b) { echo “True”; } else { echo “False”; }

The first if statement would evaluate to true because it only evaluates the value.  The second if statement would evaluate to false, because it evaluates both value AND type.