May 29, 2005

Reading graph, IMAPImport, and my wishlist - oh my!

Today I made a few additions to my web site that RSS readers might not have noticed.

First, I fulfilled one of the goals I mentioned a while ago for my What I'm Reading page. I added a graph (click here for a large version) that shows the average number of pages I've been reading per day. It's a simple average of the number of pages in the book divided by the number of days between when I started the book and when I finished it. Not doing any reading for a few days gets averaged in just as reading a hundred pages in a day does.

Second, I released a python script I wrote called IMAPImport that imports email files into an IMAP server. I recently used this to restore my Cyrus IMAP mail server after the hard drive crashed.

And finally, I put a new page up on my web site that shows my current Amazon.com wishlist. Who knows, maybe you're feeling generous today... :)

Ok, that's it. After getting my new Linux server finalized, my web site updated, and some stuff done around the house it's finally time for bed.

Posted by JoshC at 01:08 AM | Comments (0) | TrackBack

May 17, 2005

Statistically improbable server upgrade

Sunday morning around 9am, the hard drive in the JoshChristie.com Linux server (named Bruce) started shorting out and causing the system to power off at random intervals -- often as short as a few seconds after powering on. At this point I was more annoyed than worried because I have a backup server (Felix) that runs BackupPC and backs up all my other machines daily. I figured I would just restore Saturday night's backup onto a new hard drive.

It was when I tried to login to Felix and realized the machine wasn't running that I started to be concerned. Felix booted up fine, but it had apparently been off and not backing up anything for eight days! At this point, I was moderately worried that I had permanently lost the past eight days of data.

Then around 10:30am, the statistically improbable happened - the backup server's hard drive crashed and took with it every shred of backup data I had for any of my machines. This is when panic set in and computer geek adrenaline started coursing through my veins. I immediately started burning DVDs to backup my documents, source code, and photos. I figured if two different server's hard drives had already crashed, my desktop might be next.

Determined not to lose any data despite the loss of my Linux server and my backup server, I began an extremely time-consuming process of starting Bruce and dumping as much data as possible to another computer before the hard drive shorted out and shut the machine off. In fact, two days later I'm still occasionally starting Bruce to grab some file I forgot to copy.

So anyway, it's been an interesting few days of recovering data and setting up a new Linux server named Marvin. If you're reading this, the new server is working... and if you're not reading this, then I guess I'm talking to myself when I should be fixing the new server.

I'm using Microsoft Virtual Server 2005 for this new server. Given that I don't get a tremendous amount of load on my sites, I think Virtual Server should make it easier for me to manage things and it'll allow me to consolidate everything on a single, modern, reliable machine. Since I moved from an old 400MHz Pentium II to a virtual server on an Athlon XP 2600, JoshChristie.com actually got a performance boost despite the inefficiency of using Virtual Server.

I'm planning to post some more details about my new server setup along with some tips for getting Fedora Core 3 working in Virtual Server 2005. I'll also be looking for a more reliable backup process since obviously mine failed me this time around.

Posted by JoshC at 08:33 PM | Comments (0) | TrackBack

May 13, 2005

Interested in Python?

Recently, I've been reading a great tutorial about Python, the programming language, at diveintopython.org. Highly recommended if, like me, you feel inadequate when you have to admit you know nothing about this fairly popular language.

My next step is going to be to download IronPython so I can program with Python's very cool syntax and the .NET framework's familiar class libraries - the best of both worlds! The only thing that worries me about Python so far is the apparent lack of "Option Explicit" which was the only way to make VB and VBScript (fellow dynamically typed languages) tolerable. I'm only somewhat comforted by the promise that Python won't allow you to use assigned variables by mistake.

After Python, I guess I'll move on to Ruby since Don Box and others have been talking about it so much lately. If only there were a .NET port of Ruby...

Posted by JoshC at 07:02 PM | Comments (0) | TrackBack

May 02, 2005

CopyUnique 1.1 released

My latest audio book, Kilo Class by Patrick Robinson, required me to add a new sorting feature to CopyUnique. I was using Windows Media Player 10 to rip the CDs to MP3s, but the CD info Windows Media Player downloaded was completely wrong for several of the discs. To make matters worse, sorting the files by name no longer resulted in the correct sequence.

I ended up adding the ability to sort the files by the creation date or last modified date since that guarantees they will be renamed in the same order they were ripped from the CDs. This preserves the correct file naming sequence and works even if the title and album info for the CDs is wrong and/or inconsistent.

Download CopyUnique here.

Posted by JoshC at 11:12 PM | Comments (0) | TrackBack