Rosher Consulting

Software Consulting and Development Services

My ‘Franken-build’ Windows Home Server

I’ve just recently put together a Windows Home Server machine to backup all of my photos, music and so on as well as all of the machines around my house. It’s custom built rather than off the shelf, hence why it’s called a ‘Franken-build’, which is a term I first heard on the Home Server Show podcast to describe a custom build.

Why Windows Home Server?

If you see my post here you’ll remember that I purchased a NAS box about 18 months ago and have been using that to backup most of my content. Unfortunately I never really used it to its full potential as I had it waking up for an hour a day, doing the backup and then going back to sleep. I didn’t use any of the extra features such as the iTunes server or BitTorrent client and it was also lacking in a couple of areas, performance being the main one but also minor things such as not supporting Wake-On-Lan.

After upgrading my TV/File server again I had even more spare parts lying around so in the course of deciding what to do with all these bits I thought why not give Windows Home Server a try? There’s a free 120-day trial edition available from the Microsoft website, which is more than enough time to decide if you like it. It only took me a week to decide to replace my NAS.

Components

Here’s the initial list of components I had to work with when I first setup with the trial edition:

  • Athlon XP 2000
  • MSI KM4M-V Motherboard
  • 1gig ram
  • Seagate 80gig IDE
  • Seagate 160gig SATA
  • Old 350w power supply
  • Random spare DVD drive.
  • Intel 1gig NIC

I also have a Sempron 3000 CPU lying around which I would have rather used for this build as it’s faster and more efficient, but unfortunately it’s not compatible with the above motherboard and the motherboard that I do have for it doesn’t support S3 standby whereas I know the MSI board works really well with S3 because it came from my old Media Center prior to the Quad Core upgrade.

I didn’t have a case to put any of the components in so I just laid everything out on the table and connected it up, using a couple of wires to bridge the power connector so I could start the machine up. Windows Home Server was then installed, which took about an hour and I then proceeded to setup and install various add-ins so that I could test to see if it would suit my needs, which mainly involved the ability to wake up and go back to sleep at a pre-determined time.

Once I was happy I then decided to order a licensed copy of Home Server, along with a case to house it in and a new more efficient power supply. I ended up ordering the following:

  • Asus TA-D31 case
  • Antec Earthwatts 380w PSU

The Build Proper

As per usual everything turned up nice and quick from eBuyer, so I shut down the Thecus NAS for the final time and removed the drives in preparation for the build. Here’s some pictures of everything prior to starting:

The parts arrive IMG_5044 IMG_5048

IMG_5045

I put everything together in the new case, started her up and then proceeded to install the full licensed copy of Windows Home Server. Unfortunately with Windows Home Server you can’t upgrade the trial edition to a full licensed copy, you have to re-install from scratch, which I wish I had known about before spending the time to setup the trial version.

After finishing the install I noticed that there seemed to be some issues with the OS hard drive, every now and then things would appear to stutter and lock up so I decided I’d just use a different hard drive and re-install again. Unluckily for me the second hard drive I chose had exactly the same problem, so this time I borrowed a drive from the kitchen PC and used that instead, this time after over 3 hours spent installing WHS it was third time lucky and everything was working ok!

IMG_5060 IMG_5061 IMG_5064

Once everything was up and running, I could then proceed to copy all of my photos, videos and music over as well as installing the WHS connector on all of my PC’s so that they are regularly backed up, which is a nice added peace of mind considering that they weren’t backed up at all before.

Even with the low spec of the WHS machine I’ve been getting decent performance copying files to and from it, certainly much better than I ever achieved with the NAS. Write speeds have been around 40MB/s across the network and read speeds have been between 50-60MB/s.

The WHS has now been running for a couple of months and has performed flawlessly during that time, I’ve even purchased some new 1.5TB hard drives to up the storage to 3.5TB, which has meant that I’ve now got the space to back up my DVD collection as well as everything else. Overall I’m really pleased with the machine and would heartily recommend a Windows Home Server to everyone that has multiple computers in their house!

jQuery : working with SELECT lists

I’ve recently had to do some work with SELECT lists using jQuery and found the documentation to be a little sparse, there’s a few good articles out there, such as this one, but I couldn’t find any that had everything I needed so I thought I would share my experiences and provide a few examples to help others, so here goes.

(Disclaimer: I’m not suggesting that any of these snippets are necessarily the best or the fastest way to do things but they get the job done, your mileage may vary!)

To handle changes and get the currently selected value:

$("#mySelect").change(function (event) {
    alert($(this).val());
}

Retrieving the text of the currently selected option:

$("#mySelect option:selected").text();

With the above you could also remove the option and just do:

$("#mySelect :selected").text();

however I’ve always thought that jQuery selectors should be as specific as possible for performance reasons, hence why I use the former, though I doubt in this case that it would make any difference.

Finding an option by its value:

var listitem = $("#mySelect option[value=" + valueToFind + "]");

Finding an option by its text value:

// The following should work but doesn't in all browsers:
var listitem = $("select option[text='" + textToFind + "']");
 
// Since the above doesn't work in all browsers we can manually search 
// through all list items on the page
var listitem = null;
$("select option").each(function() {
    if ($(this).text() === textToFind) {
        listitem = $(this);
    }
});

Retrieving all options:

var options = $("#mySelect option");

Removing all options:

$("#mySelect option").remove();

Removing the currently selected option:

$("#mySelect option:selected").remove();

Adding an option:

$("#mySelect").append("<option value=\"" + myValue + "\">" + myText + "</option>");

How many options are there:

var count = $("#mySelect option").length;

Hiding all selects on the page:

var selects = $("select:visible");
selects.hide();

You may wonder why I assigned a variable before hiding the selects, well you’ll also notice that I only selected visible elements because if you’re hiding them to show an overlay (which you would need to do in IE6) then you’ll only want to show the selects that were visible before you showed your overlay, hence why they’re stored in a variable.

That should cover most of what you’ll need to do with SELECTS, if you spot any mistakes or anything that could be improved then let me know in the comments.

Asus TA-D31 Case

I’ve just been putting together a Windows Home Server machine and needed to order a new case, I came across the Asus TA-D31, but apart from the stock image I couldn’t find any others of this case, so I thought I’d post some in case anyone else was looking.

The case isn’t the best in the world but for £26 you can’t argue with its value, it’s got a decent amount of drive bays and plenty of space to work in and since it’s going to be out of sight and out of mind it doesn’t really matter what it looks like.

IMG_5048 IMG_5049 IMG_5050 IMG_5051 IMG_5052 IMG_5054 IMG_5053

Creating drive image backups with DriveImage XML on Windows 7

I’ve been installing the release candidate of Windows 7 on most of my machines of late and since I didn’t want to dual boot the systems or lose the existing install of Windows XP I decided I’d try out some drive imaging software to backup the existing data on the drives.

I came across DriveImage XMLl which is a great little app for backing up your drives and would you believe it’s also free for personal use, can’t argue with that. Over the past few weeks this app has really saved me countless hours of re-installs as I troubleshooted problems with Win7 and then fresh installs of WinXP on the new server I was building. However I initially had some problems creating a successful backup on Win7 so I thought it would be useful if I document it for others and just generally gave an overview of DriveImage XML.

DriveImage XML uses either volume locking or volume shadow services to create a hot image of your drive while Windows is running, by default it tries to use volume locking first and if that doesn’t work it will try volume shadow services. In WinXP this all works fine, but in Windows 7 it firstly fails to lock the drive and the volume shadow service isn’t running so it can’t use that either. It will warn you and you can attempt to carry on, which is what I initially did and I managed to create a successful backup, but there’s a better way!

First we need to make sure that the ‘Volume Shadow Copy’ service is running, so open up the services control panel applet (start –> services) and scroll down to find the ‘Volume Shadow Copy’ service. As you can see from the screenshot it’s set to manual, so let’s start it up.

CropperCapture[1]I’m assuming that you’ve already downloaded and installed DriveImage XML, so either find it in the start menu or find the executable in explorer, either way we need to click on the app and choose ‘Run as administrator’ from the popup menu, this makes sure that it will be able to access all of our files.

CropperCapture[3]When DriveImage XMLl starts you’ll be presented with the following screen:

CropperCapture[2]Since we want to perform a backup, click the backup option.

DriveImage XML will then show you the hard drives installed in your system, select the OS drive and click next.

CropperCapture[4]Now choose where you want to create the backup image, ideally this should be on another drive and also you’ll need to make sure that there’s enough free space, then give the image a name, as you can see from the following screenshot I’ve named the backup Win7.

For the ‘Hot Imaging Strategy’ make sure you choose ‘Try Volume Shadow Services first’, I also uncheck the ‘Split large files’ option so that I end up with one large backup file rather than lots of small ones. Click next to continue.

CropperCapture[5]DriveImage XML will now start doing it’s thing, depending on how much data you have on your drive it shouldn’t take that long to create the backup, mine only took 5 minutes for an 8gig backup.

CropperCapture[6]CropperCapture[8] 

CropperCapture[9]

When it’s finished you should find you have a large ‘dat’ file and an ‘xml’ file:

CropperCapture[11]And that’s all there is to it, of course at some point you’re going to need to check that your backups actually work, for this I’d suggest using a spare drive if you have one and restoring the image there rather than testing it on your main system drive.

One thing I came across when doing the restore’s is that DriveImage XML expects you to restore to an equivalent or larger size disk to the one you created the backup from, which when the backup is only 8gig seems a bit strange. Anyway, I found a way around the problem by editing the XML file to say that the logical drive was actually smaller than it was, just edit the total space value to be equivalent to or smaller than the drive you are restoring to and also remember to adjust the free space value, after that all should be ok and I was able to restore an image from a 160gig drive to an 80gig drive without any problems at all.

CropperCapture[12]

Having now used a drive image backup application I can’t believe I’ve lasted so long without it and especially just how much time it’s saved me. It means you’re free to install drivers, apps and anything else without having to worry about whether it will screw up your system because if it does you just revert to the last image you took. Some people may be thinking isn’t that what System Restore does, but anyone who’s ever used system restore will tell you that it never seems to fully clean everything out and your system isn’t quite as it was before.

On a final note, if you want to run DriveImage XML from a BartPE bootdisc, there’s a Portable Edition download on the website and this is how I’ve been using it over the last couple of weeks.

PSP Go disappoints (to me anyway…)

pspgo When the PSP was announced 4 years ago I couldn’t wait to get my hands on one and when I did pick one up I was really impressed with it. It was far from perfect, but it had a fairly decent selection of games and a reasonable control scheme for a handheld.

Fast forward 4 years and rumours of a PSP 2 have been around for ages with many people including myself hoping that they would fix the deficiencies in the first gen device, in particular I was hoping they’d:

  • Sort out the D-pad: for a lot of games it works fine, but for things like Streetfighter it’s awful, you need a D-pad that can easily be rocked into the corner quadrants.
  • 2nd analogue stick: FPS games that have come out for the PSP have made the most of the controls, but a 2nd analogue stick would be killer.
  • Ditch the UMD format: OK, they got this one right, UMD’s were/are a pain in the backside, I used to rip my games and play them from the memory stick.
  • Ditch the memory stick format: I’m sure I read recently that Sony are starting to use MicroSD cards, why they can’t do this on the PSP baffles me.
  • Price: £214 seriously! If you want to compete with the DS you’ve got to have a lower price point, no matter how good the device is, parents will always look at the lower priced option.
  • Games: the last time I purchased a game for my PSP was probably 18 months or more ago, there’s just not enough quality or original games coming out for the platform. Name me the truly original, first class games for the PSP… I can only think of a handful, the rest are all ports of PS2 games.

I like the idea of the digital distribution of content, I think the iPhone app store has shown everyone how effective it can be, my only concern is Sony’s track record with their dodgy software.

Overall I don’t think I’ll be purchasing a PSP Go, my current PSP sits in the cupboard and doesn’t get much use as it is and the new device just doesn’t offer me the features I was looking for.

When you think about it, all Sony have really given us is a slimmed down version of the PSP and one that can’t even play the existing UMD games!

Adding 2TB of storage to the media server

If you've read my post on the Thecus N4100+ NAS drive then you'll remember that I bought 4 500gig hard drives for it that I didn't end up using with the NAS due to its performance problems, this post aims to explain what I did with them.

The most obvious choice was to add them to my existing server, the problem with that though was that the server motherboard only had 2 SATA ports and they were both being used already.

I had a look round at a few enclosures that could house 4 drives, then at some that could house 2 drives before giving up as they were all just too expensive. Heck all I want to do is fit a couple of drives and then plug them into the server, it's hardly rocket science and yet everyone seems to want to charge an arm and a leg for them!

sataCardI’m sure it was via a forum post on www.team-mediaportal.com that I then stumbled across the notion of using a PCI add-in card to expand the number of SATA ports, seems obvious really when you think about it! So after a little digging around I came across this card on DABS and placed the order. 

My only other issue was how I was going to mount the drives as I already had 5 drives in the case and not enough space to mount 4 more especially without running into heat issues and just as before finding a basic enclosure to store 4 drives in was a problem. Since the server is in the loft, having a nice shiny case to store them in wasn’t really necessary, so instead I took a couple of hard drive mounts from some old cases I had lying around and used them instead, not pretty but it works!

drives  IMG_4191

The performance of the drives via a PCI add-in card was never going to be the same as a native SATA interface but for what it’s used for it works well enough, certainly well enough to stream HD content across the network, in fact the only issue I’ve had with it in the year or so of use is the dodgy software that came with it which tends to eat RAM like it's gone out of fashion…