Paying Homage to Ubuntu ShipIt

April 5th, 2011

Back in high school, when I had a 56k internet connection at home, my computer engineering teacher mentioned this thing called Linux in class. I was a curious goodie-two-shoes, and so I asked him after class what it was and how I could get it.

He told me about Red Hat and gave me a stack of CDs to take home and copy. Being my first time attempting to copy CDs, I failed, and ended up with a bunch of CDs whose file system contained an .iso image, rather than that .iso image becoming the file system. But, by the time I realized this, I had already returned the stack of CDs to my teacher and was too ashamed to ask for them again.

Next, I researched Linux a little more and found out that there were several other distributions, of which Mandrake was prominent at the time. So, I convinced my dad to download a Mandrake CD from his work one day, because his Internet connection was several times faster than 56k. Mandrake seemed to work quite well, and I played around with it in my spare time for a while.

Then one day, I found out that some guy (Mark Shuttleworth) was paying to ship people free CDs of a Linux distribution called Ubuntu (and they were shipping world-wide, no less). So, being free, I ordered 10. I told my teacher what I had found the next day, and he decried it a scam, and told me that the CDs would probably have spyware and/or viruses on them. I proved him wrong over the course of the next few weeks and months by installing Ubuntu on every computer I could get my hands on. Ubuntu was easier to deal with and more straight-forward than Mandrake (now Mandriva), and led me to really begin my relationship with Linux in earnest.

Since then, I have explored countless other Linux distributions and Unices, but I still credit Ubuntu and its ShipIt program with helping introduce me to the joy that is Linux.

Today, the Ubuntu ShipIt program has been discontinued. Their website displays this message:

ShipIt has closed

After delivering millions of Ubuntu CDs to millions of new users, our ShipIt programme has finally run its course. While we can no longer deliver free CDs through the programme, it’s still easy to get Ubuntu. You can download Ubuntu for free from Ubuntu.com or you can buy a CD straight from the Canonical shop.

Ubuntu ShipIt, I salute you.

A Poem and a Prayer

March 21st, 2011

I wrote the following poem at a recent LSM activity in 5 minutes. Bill King, whom I highly respect, thought it was worth sharing. So, here it is:

We see the sunrise over the ocean,
        but not your face.
We hear a newborn’s cry,
        but not your voice.
We feel the touch of our loved ones,
        but not your calming embrace.
We smell the coming rain,
        but not the majesty of your creation.
Help us
        to see your face,
        to hear your voice,
        to feel your touch,
        and to know that you surround us.

Installing git on a Bluehost Hosting Account

February 24th, 2011

I recently upgraded the version of git that I was using on my personal hosting account to the latest version, 1.7.4.1. I was surprised with how easy it was. I am sure that these steps are not that different for other shared hosting companies and plans, but I have only tested them on Bluehost.

  1. Download it: $ wget http://www.kernel.org/pub/software/scm/git/git-1.7.4.1.tar.bz2
  2. Unpack it: $ tar xf git-1.7.4.1.tar.bz2
  3. CD into it: $ cd git-1.7.4.1
  4. Configure it: $ ./configure --prefix=~/git-install
  5. Compile it: $ make
  6. Make a directory for it: $ mkdir ~/git-install
  7. Install it: $ make install
  8. Fix .bashrc so you can use it: Add ~/git-install to the end of your $PATH variable. If there was a line in .bashrc that looked like
    PATH=/bin:/usr/bin:~/bin,
    change it to look like:
    PATH=/bin:/usr/bin:~/bin:~/git-install/bin

Voila, you now have a functioning installation of git on your hosting account! You can use it to keep your website in version control, or do something really wild and use it as a repository server.

Measuring the Overhead of a JNI Call

February 10th, 2011

I have been doing a fair amount of work with Java lately, and a lot of it has required me to make system calls to the Linux kernel, via JNI. I got to wondering what the actual overhead of a JNI call is versus the time it takes to execute the C code.

So, I wrote a simple test application (https://github.com/aclindsa/jnioverhead) to test it out for myself.

This application makes two calls to JNI. Each call measures the time stamp counter. In doing so, the difference between the first and second calls would be the overhead of one call (the tail end of the first call, and the first half of the second). I then make the same calls through C, and compare the difference. I then repeat this 1,000,000 times in both Java and C.

I found that on my desktop PC (Core 2 Duo 4400 @2.00GHz, 2GB RAM, Ubuntu 10.04, OpenJDK 1.6, gcc 4.4.3) the difference seems to hover around 150 clock ticks. Making the function calls in C is usually about 275 ticks, and Java is close to 430. Here are the results from a sample run of my code:

Average time in C: 276.22658 ticks (stddev: 641.930900322, min: 270, max: 251470)
Average time in Java: 427.31173 ticks (stddev: 1073.98186333, min: 370, max: 286170)

While JNI obviously isn’t going to be as speedy as raw C, 150 clock cycles isn’t horribly slow either.

We’re Engaged!

October 9th, 2010

As of October 2nd, at about 2 o’clock, Elizabeth and I are engaged! We went up to Mountain Lake for the day, and I asked her to marry me under the gazebo. We have pictures on Facebook and on Flickr.