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 Programming

Functional Programming with Erlang

For the past 8 weeks in my graduate operating systems course, we’ve been dealing with the issues of inter-process communication in massively parallel situations.  For development of such applications, we’ve been using an operating system called Inferno (of Plan 9 origins) which has a built in language called Limbo.  Limbo is a great language for learning network programming and multi-threaded programming.  It has communication channels which are typed, so you can pass whatever you want along them without pre-processing the data.  However, you still have to manage all of those channels.  It also has a nice C + Pascal style syntax:

message := “Hello World!”;
sys->print(“%s\n”, message);

While discussing languages that support massive concurrency with my professor, the subject of functional programming came up.  I mentioned to him that I wanted to learn a functional language, but wasn’t sure where to start.  He suggested Erlang due to it’s easy support for massive concurrency.  My question to my readers (if I have any left), is do you have any experience with programming multi-threaded and/or distributed programs with Erlang?  Is it worth the time to learn, or would my efforts be better off elsewhere?

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.

Categories
Other PHP Programming

Almost ready…

Sometime last year, my fiance and I came up with what seems like a great web site idea.  Over the past month, I have been implementing this idea a little at a time with the purpose of getting it out the door before school starts.  That being said, I’m within throwing distance of the end.

Big announcement to follow when it’s all ready.

Categories
Other

Slight Teaching Dissapointment

This fall semester will be my first semester as a graduate teaching assistant.  In my department, the course nobody wants but everybody gets is CPS 100.  There are probably 30 lab sections for this course, so every GA will get one or two.  However, there are a few other classes available for GA’s to teach.  One of them is “Modern Web Site Design”. I was personally hoping to teach this course, as I have loads of web design experience.  I’ve been doing it regularly since 6th grade, but that doesn’t matter.  I failed to market myself to the department chair, who makes the decisions.  Perhaps next semester I’ll actually request the course once I’ve been proven as a GA.

On another note, my next project is coming to completion.  This one has the potential to change the way college students do things.  Be ready for it.

Categories
Other

WinRAR: The file compression/de-compression tool of choice for Linux!

Every time that i try and extract a large file using the built in file archiving utility in Ubuntu, it crashes.  Every time.  By large file, I mean anything >= 1gb.  I know that this is no fault of my machine, as this happens on every machine I use.  To solve the problem, I run trusty WinRAR under Wine on my Linux box.  It’s honestly faster than anything I’ve used yet on linux (aside from command line stuff).

If you have any suggestions, I welcome them.

Categories
Other

VPN Success!

Since 2005, I’ve been a user of Ubuntu.  Ubuntu came out about a year earlier, but I caught on with version 5.10.  Since that point, I’ve never looked back.  I may have side-stepped a bit, but that’s it (I had a 6 month diversion in to Fedora 10).

One issue I’ve always had with Ubuntu is virtual private networking (VPN).  For those of you outside the know, you basically make a secure tunnel between two networks.  In my case, I’ve always wanted to connect to the Cisco VPN at CMU for work, but since I’m using Ubuntu I never had any luck… until recently.

Just today, August 4 2009, I have finally made a vpn connection between my laptop running Ubuntu 9.04 and CMU’s cisco VPN.

Working from home just became much easier.

Categories
Other Other Programming

Epiphany of Development

I’ve been doing web development for a long time.  I made my first (crappy) web page in 6th grade using the then awesome Geocities.  After that, I graduated to Front Page express.  Throughout my development career, I’ve had a series of epiphanies that have brought my skills to the next level.  Bold entries are where they happened.

  • 1998 – First web page – I knew that the internet existed, but it never dawned on me to actually create content.  I didn’t realize it at the time, but this simple act has been the anchor for the rest of my life.
  • 1999 – Discover Front Page (Express) – With my new found web skills, I started to use more advanced WYSIWYG editors.  Frontpage is hardly advanced, but it allowed me to separate my menus from my content using frames.  It opened up numerous paths for me to take.
  • 1999 (late) – Dreamweaver – Not super important, but discovering Macromedia Dreamweaver really changed how I did web pages.  I stopped using frames to make menus and started using layers.  Little did I know that layers were actually “<div>” tags that were positioned by CSS.
  • 2000 – Flash – Flash was still rather immature at this point, however it showed me what could truely be accomplished on the web.  No longer did menus have to be boring images and text links.  We could have tweening!  It was around this time that I build my first web page with heavy flash components.
  • 2001 – Discover PHP, HTMl, and CSS – This was a big year for me.  I discovered PHP, HTML, and CSS all at the same time.  I had no idea how any of these worked though.  At the time, PHP was well beyond my grasp.  CSS and HTML seemed do-able though.
  • 2003 – HTML + CSS  Zen – I was a junior in high school at this point, and had been appointed to wor on the school’s web site.  Actually, it was the entire district’s domain.  My brain had matured enough for me to make a web site BY HAND using nothing more than HTML and CSS.  I still didn’t understand programming, but using markup languages like HTML and CSS because second nature to me.
  • 2004 – Servers – Around this time I discovered that I could make servers on my own!  Not really code them persay, but rather run server software.  I’m pretty sure my first server was an FTP server so that I could share files with my friends.  It was tedious though, since I was still using 56k dial-up at the time.
  • 2005 (Early) – First Computer Science Course – The biggest eye opener ever.  I never realized how deep the rabbit hole went.  I was only learning assignmen, logic, loops and a few other things, but it made my thirst for knowledge inquentiable.  I started to learn C++ here.
  • 2005 (Late) – Assembly Language & C – Taking a course in SPARC assembly and a bit of C is an eye opener for every Computer Science student.  You’re pretty much at the bottom of the rabbit hole, and you spend the rest of your career climbing back out.  Coding in low level languages made me a much better programmer though, because it forced me to think.
  • 2006-2007 – School & Languages – These years were spent diving into new languages, learning new programming styles and domains, and generally having a good time.  I didn’t spend a lot of time doing web development, but I did teach myself how to make a web server in Python.  Not especially helpful, but still fun.
  • 2008 – PHP, MySQL, LAMP – I had already learned Linux in 2006-2007, however I never really dove into Linux as a server.  That was at least, until I found out (again) about PHP.  Turns out PHP needed Apache to run.  And all the fun PHP stuff also needed a database server  (MySQL).  I set up a PHP + Apache + MySQL server and went from there.  It was at this time that I started development on the first edition of Wrestling Addix.  I made my own CMS for it (bad idea) and in general the site worked fine, however it was a bear to maintain.  I decided that the next version would use a pre-built CMS so that my life would be easier.
  • 2009 – Ajax, WordPress, OOP, CMS – This year I’ve learned lots of stuff.  Most of it revolved around web development though.  I’ve learned to bend WordPress to my will (it runs this site).  I’ve learned how to use Ajax to make my web apps for responsive.  I’ve learned how to use Object Oriented Programming in my web sites, and how using a CMS WILL make your life easier.