Purdue has recently attained a new president of the university as well as a new president of the computer science department. Both new presidents have made a very clear show of intent to revamp a lot of cruft around the university. The computer science department has recently released a new curriculum which removes a lot of the weird (human) language requirements in favor of study abroad and things of this sort. They’ve also set up a plan to integrate concurrency programming and science into the entire curriculum from start to finish. This means first year, first semester computer science students will be learning concurrency along with print statements. I think this is a great idea because really, if we weren’t raised with the paradigm that concurrency is hard, would anyone really think anything of it? I remember thinking, when I first started in CS, that it was weird that most programs only had one thread of execution. Along with the new computer science building, I think these changes could really boost Purdue’s rankings.

The new university president has a very impressive resume and has held positions like “Head of Research at NASA.” I’ve had the pleasure of hearing her speak on university reform as well as reading a lot of her words in the school news paper. Definitely a smart, smart person. I have yet to disagree with even one of her many reform issues. Today, all Purdue related people received an email about a new (WordPress!) blog dedicated to the president’s new “Strategic Plan,” asking for comments and feedback! This is a huge undertaking for a university of this size and definitely the way to go. I gladly made a few comments about website unification and campus design. Many other students have already posted some great ideas as well. Bravo to president Córdova.

When I was first learning about the new Macbooks and deciding if I wanted to buy one, I went to the Apple store to ask some questions. This was my first time talking to an Apple sales rep so I had no idea how advanced they were. Being a programmer, as I’m sure many Mac users are, I asked the Apple rep if Mac OS X came with GCC. I knew right then, by the deer-in-headlights look on his face, that he had reached upper bound of his Mac OS X knowledge. Like a true salesman, though, he recovered gracefully by enthusiastically demonstrating the two-finger scroll, like some kind of replacement for GCC. Needless to say, I now have a Macbook… and it runs Linux.
Chmod-ing a whole directory recursively is usually not a good idea. Directories should be executable when serving them via http but the documents should not. Here’s a set of commands from the Mercurial book to help separate chmod-ing of directories and files:
$ chmod 755 ~
$ find ~/public_html -type d -print0 | xargs -0r chmod 755
$ find ~/public_html -type f -print0 | xargs -0r chmod 644
From
Mike Olson, a much clearer and more concise alternative to the above:
chmod -R u+rwX,go+rX ~/public_html

My first few days of Christmas break (specifically December 17th) were made that much better when I received my invite to Hulu, the online TV and video on demand service with NBC and FOX shows. Before Hulu, I’ve used a few other services. On March 2nd, I landed an invite to Joost‘s then private beta and have been using ABC’s and NBC’s online TV services as well. Summaries of what I’ve tried are below but for a more comprehensive list, try Wikipedia.
Online TV Services
- Hulu has a clean and easy to navigate website. It also has fairly high resolution videos with a clean player that lets you share the videos anywhere you want (including other websites) and works on Linux. Commercials have not been able to work on Linux (I’m not complaining) but full screen view hasn’t worked as well.
- NBC makes it extremely hard to find where the full-length shows are available but works well on Linux. Resolution is adequate and commercials are totally manageable.
- ABC is also extremely hard to locate the full shows. It used to work on Linux but ABC has moved to some new player technology, which to me looks like flash, that does not work with Linux. The player itself checks the browsing agent and denies access if not on Windows or Mac OS X. I have a feeling it would simply work on Linux if they let it but ABC has ignored my inquiries on the matter.
- Joost sucks. The player is not web based, doesn’t use native graphics widgets, and is extremely bloated. The content is extremely hard and tedious to navigate and the last time I checked, none of the content was worth while. I’ve had a review written about Joost for a while but haven’t posted it because I felt like Joost wasn’t even worth talking about.
- Other on-demand video sites exist which simply link to TV and movie content that has been illegally posted on sites like YouTube. The quality of these sites are crappy at best and the links tend to go down faster than they come up. Not worth perusing in my opinion.
The good news is that, unlike record labels, TV broadcasting companies are trying their best to use the most preferred channels for content. I’ve been TV free for four years now, not because I don’t have my favorite shows, but because I hate that the content is streaming instead of on-demand. I will gladly watch commercials as long as I can watch shows online.
Getting into Hulu Private Beta
GigaOM has managed to get their users a link to be fast-tracked into Hulu private beta. Unfortunately right now it looks like invites are closed.
Though there are probably some better solutions out there, I wrote a simple bash script to email me when my server’s IP address changes. My ISP loves to change my IP address randomly, and when I’m not home for extended periods of time, it’s a pain to not have access. This script will email me when my IP changes.
#!/bin/sh
# By Luke Hoersten <Luke.Hoersten@gmail.com>
# This will send an email on external IP changes.
EMAIL="my@email.address.com"
MESSAGE="/tmp/tmp-msg"
URL="http://wooledge.org/myip.cgi"
EXPECTED_IP="ip.address"
ACTUAL_IP=`curl "$URL" 2> /dev/null`
HOSTNAME="hostname"
if [ $EXPECTED_IP = $ACTUAL_IP ] ; then
exit 0
fi
echo "$HOSTNAME's IP has changed on" `date` > $MESSAGE
echo "Expected: '$EXPECTED_IP' -- Actual: '$ACTUAL_IP'" >> $MESSAGE
echo >> $MESSAGE
/usr/bin/mailx -s "$HOSTNAME IP Changed" $EMAIL < $MESSAGE
exit 1