Categories
Other

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.

Categories
Other

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.

Categories
Other

Weekend

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
Categories
Other

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.

Categories
Other

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.

Categories
Other

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!

Categories
Uncategorized

Grad School Crisis

“The grey rain-curtain turned all to silver glass and was rolled back, and he beheld white shores and beyond them a far green country under a swift sunrise.”

Over the last couple of weeks, I’ve had somewhat of a crisis with grad school.  I’ve found that I hate 1 of my classes, despise C++ (which is required for compilers), and just simply don’t have enough time to breath.  This pretty much describes a typical computer science student’s life, however, I was pushed over the edge 2 weeks ago.

Two weeks ago, I was hit really hard, all at once.  I had 3 exams in one week, and 2 programs due.  If you’ve ever tried to write a compiler or a remote procedure program and tried to study for a test at the same time, you’ll know what I mean.  To make matters worse, CMU told me I own them $2350.  This is all because they over refunded me earlier in the semester, yet failed to realize it until 2 months later.  Not only that, but I had 150 papers to grade.

It all stacked up, and made me realize that I don’t really enjoy grad school all that much.  So, I started applying for jobs.  So far I have been rather successful with getting call backs, but, CMU has decided that they may be willing to work with me.

The grass is always greener on the other side.  If I quit grad school, I’ll wish I didn’t.  If I don’t quit grad school, I’ll wish I had.

Categories
Other

First Week as a Teaching Assistant

This week (Monday), I started my position as a teaching assistant for the Computer Science department at Central Michigan University.  As this was my first time as a TA, they thought it would be prudent to give me lab sections of CPS 100 (“Computers and Society”).

I have 5 sections of CPS 100, with roughly 45 people in each section.  I thought that my lab sections have gone well so far.  In fact, I even learned some things.

  • No matter how many times you explain it, some students will still staple the papers in the wrong order.
  • Stapling papers in the correct order doesn’t matter.
  • Students are generally very surprised when I walk in and stand up by the podium.  Apparently I look young.
  • The students are generally very cordial and nice when dealing with me.  Most don’t want to be there, so it’s all I could ask for I guess.
  • The technology required for Lab WILL fail.  This is not the end of the world, just kind of roll with it and there won’t be any problems.
  • I am old.  Someone called me “Mr. Slingerland”.
  • It feels nice when someone approaches you, apologizing profusely for not bringing a flash drive, because the course syllabus said that they would need one.  If everyone was this dedicated, my job would be way too easy.
  • There is a strong camaraderie between the grad assistants in the department.  We all can relate to each other, so what seems like instant friendships have formed.

That’s all I’ve really learned by teaching so far.  The first lab excercise was really simple, and having done it before class helped a lot with being prepared.

Besides that, I have 3 courses this semester.

  • CPS 650 – Compiler Construction
  • CPS 670 – Operating Systems
  • CPS 685 – Pattern Recognition and Data Mining

All these courses interest me, so I feel that I’ll do well this semester.  Between that and having an office (that I share with 4 other people) on campus, it’ll make getting homework done very easy.