<?xml version="1.0"?>
<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title> blog</title>
		<link>http://hol.net.nz/blog/</link>
		<atom:link href="http://hol.net.nz/blog/" rel="self" type="application/rss+xml" />
		<description></description>

		
		<item>
			<title>Managing Silverstripe Upgrades In Your SVN Projects</title>
			<link>http://hol.net.nz/blog/managing-silverstripe-upgrades-in-your-svn-projects/</link>
			<description>&lt;p&gt;Let's face it: FTP is for the web developers of the '90's; &lt;em&gt;real&lt;/em&gt; developers use SVN (or some other source control software).&lt;/p&gt;
&lt;p&gt;If you haven't heard of SVN and you do any type of file editing at all, you're probably spending far too much time keeping track of changes to files, and having a horrible time of it trying to keep everyone up to date with what you've done lately. I suggest you read &lt;a href=&quot;http://svnbook.red-bean.com/&quot;&gt;the svn book&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;If you &lt;em&gt;do&lt;/em&gt; use SVN to help manage your web development, sooner or later you'll run into the same stumbling block I've just come across:&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;I want to update the site I'm working on to Silverstripe version X.X, but...&lt;/p&gt;
&lt;/blockquote&gt;
&lt;p&gt;Don't worry, &lt;em&gt;mon ami&lt;/em&gt;. I know you might want to:&lt;/p&gt;
&lt;ul&gt;&lt;li&gt;Maintain site-specific hacks automagically without having to repatch every version&lt;/li&gt;
&lt;li&gt;Track the changes of Silverstripe files, as well as your own&lt;/li&gt;
&lt;li&gt;Pick and choose when to update your site&lt;/li&gt;
&lt;li&gt;Be able to update folders across many computers in one fell swoop&lt;/li&gt;
&lt;/ul&gt;&lt;p&gt;We have it all covered below. I learnt most of this from a site on a &lt;a href=&quot;http://imagexmedia.com/blog/2009/1/updating-drupal-using-svn-vendor-branches&quot; target=&quot;_blank&quot;&gt;similar topic for Drupal&lt;/a&gt;, and  modified it to suit Silverstripe and based on my experience. And without further interruption, I bring you the main article:&lt;/p&gt;
&lt;h3&gt;Setting up our SVN environment&lt;/h3&gt;
&lt;p&gt;First up, I'm going to assume you have some basic knowledge of SVN, and you have it all set up in your environment. If you don't, read the svn book I linked earlier. Also, I'm assuming you're using a terminal in a UNIX-like environment. If you're not, you shall have to translate this yourself as required.&lt;/p&gt;
&lt;p&gt;We're using a feature of SVN known as &lt;strong&gt;Vendor Branches&lt;/strong&gt;. Well, I &lt;em&gt;say&lt;/em&gt; feature but it's really just a clever use of the generic features of SVN. Anyways, here's how it's done.&lt;/p&gt;
&lt;h4&gt;Step One: Create the folders where we want to go&lt;/h4&gt;
&lt;p&gt;Create a folder structure similar to the following (I set up a temporary working folder to put all this in):&lt;/p&gt;
&lt;pre&gt;./vendors/&lt;br/&gt;    silverstripe/&lt;br/&gt;        installer/&lt;br/&gt;        modules/&lt;br/&gt;        upgrades/&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;This allows us to store the full installer (to make it super easy to set up new sites), any external modules we use (so we can upgrade them as well), and the files needed to do upgrades of existing sites.&lt;/p&gt;
&lt;h4&gt;Step Two: Start populating the folders with our current version&lt;/h4&gt;
&lt;p&gt;We'll set up both the installer and the upgrades folder with the version we're running. The coolest way to do it is with SVN (of course):&lt;/p&gt;
&lt;pre&gt;svn export http://svn.silverstripe.com/open/phpinstaller/tags/2.4.0 ./vendors/silverstripe/installer/v2.4.0&lt;br/&gt;mkdir ./vendors/silverstripe/upgrades/v2.4.0&lt;br/&gt;cp ./vendors/silverstripe/installer/v2.4.0/{cms,googlesitemaps,sapphire} ./vendors/silverstripe/upgrades/v2.4.0/&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Change the 2.4.0 for whatever version you're currently running.&lt;/p&gt;
&lt;h4&gt;Step Three: Get that sucker up there!&lt;/h4&gt;
&lt;p&gt;Now, we're going to upload that folder into our SVN repository. That's going to create a new structure in the root (alongside tags, branches, and trunk) called &lt;strong&gt;vendors&lt;/strong&gt;. We're also going to keep it nice and organised by having a folder for each version, as well as a folder that links to the current version. We can do that in a few easy commands:&lt;/p&gt;
&lt;pre&gt;svn import vendors http://svn.hol.net.nz/projects/vendors/ -m &quot;Importing Silverstripe vendor release&quot;&lt;br/&gt;svn copy http://svn.hol.net.nz/projects/vendors/silverstripe/installer/v2.4.0 http://svn.hol.net.nz/projects/vendors/silverstripe/installer current -m &quot;Tagging the 2.4.0 release of Silverstripe as current&quot;&lt;br/&gt;svn copy http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades/v2.4.0 http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades current -m &quot;Tagging the 2.4.0 upgrade of Silverstripe as current&quot;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Again, change the version and the url to match your setup. &lt;em&gt;Don't try and use the exact link above or your computer might explode - you have been warned!&lt;/em&gt;&lt;/p&gt;
&lt;h4&gt;Step Four: Cleanup&lt;/h4&gt;
&lt;p&gt;Get rid of your working directory for now - we don't need the full structure anymore&lt;/p&gt;
&lt;pre&gt;rm -rf ./vendors&lt;br/&gt;&lt;/pre&gt;
&lt;h3&gt;Working with our vendor branch&lt;/h3&gt;
&lt;p&gt;Now that we've set up this vendor branch, setting up a new website based on the current version of Silverstripe we have here is incredibly easy:&lt;/p&gt;
&lt;pre&gt;svn copy http://svn.hol.net.nz/projects/vendors/silverstripe/installer/v2.4.0 http://svn.hol.net.nz/projects/clientsite.co.nz/staging -m &quot;Setting up new Silverstripe website&quot;&lt;br/&gt;svn co http://svn.hol.net.nz/projects/clientsite.co.nz/staging /my/local/server/files/clientsite.co.nz&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;In the example I gave I store all my client's websites under their domain name, and in either ./staging or ./live, based on the status of the code.&lt;/p&gt;
&lt;h3&gt;Upgrading Silverstripe&lt;/h3&gt;
&lt;p&gt;So, a new release of Silverstripe has come out, with a bunch of bug fixes and new features that we really want. However, in some of our projects we've changed some of the core files to twist the site to our unique application (I know it's not best practice, but it happens). Lets get our site up to date with the least hassle possible.&lt;/p&gt;
&lt;h4&gt;Step One: Download the core module files&lt;/h4&gt;
&lt;p&gt;We don't need the full installer in this case as we are upgrading our sites. So we'll download the three modules that are distributed separately.&lt;/p&gt;
&lt;pre&gt;svn export http://svn.silverstripe.com/open/modules/cms/tags/2.4.1/ ss-2.4.1/cms&lt;br/&gt;svn export http://svn.silverstripe.com/open/modules/googlesitemaps/tags/0.1.5/ ss-2.4.1/googlesitemaps&lt;br/&gt;svn export http://svn.silverstripe.com/open/modules/sapphire/tags/2.4.1/ ss-2.4.1/sapphire&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Note you can see the individual versions of the modules by checking the svn:externals properties for the installer (easiest way is to browse to &lt;a href=&quot;http://open.silverstripe.org/browser/phpinstaller/tags/2.4.1&quot;&gt;http://open.silverstripe.org/browser/phpinstaller/tags/2.4.1&lt;/a&gt;)&lt;/p&gt;
&lt;h4&gt;Step Two: Update the vendor branch&lt;/h4&gt;
&lt;p&gt;To do this next step we need a file called &quot;svn_load_dirs.pl&quot; which generally comes with SVN. If you can’t find it search for &quot;svn_load_dirs.pl.in&quot; and rename it &quot;svn_load_dirs.pl&quot;. If you can’t find that either you can download &lt;a href=&quot;http://svn.collab.net/repos/svn/trunk/contrib/client-side/svn_load_dirs/svn_load_dirs.pl.in&quot;&gt;svn_load_dirs.pl.in&lt;/a&gt; and rename it &quot;svn_load_dirs.pl&quot; You may need to edit the file to point it to the location where &quot;svn&quot; lives. To find out where svn lives type (usually '/usr/bin/svn'):&lt;/p&gt;
&lt;pre&gt;which svn&lt;/pre&gt;
&lt;p&gt;Then change the line that reads:&lt;/p&gt;
&lt;pre&gt;my $svn = '@SVN_BINDIR@/svn';&lt;/pre&gt;
&lt;p&gt;to&lt;/p&gt;
&lt;pre&gt;my $svn = '/usr/bin/svn';&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Place that script somewhere handy, then run&lt;/p&gt;
&lt;pre&gt;/path/to/svn_load_dirs.pl http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades/ current ss-2.4.1 -t v2.4.1 _no_auto_exe&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;This script will look at a (source) set of files in an svn repository,  compare it to a (destination) set of files, and then automate whatever  adds, changes, and deletes are necessary to make the source like the  destination. It will check the changes in for you, and it will tag the  changeset for you. We add the -no_auto_exe option to stop it from incorrectly thinking a lot of the files have svn:executable set. You will get a list of files deleted and added and are given the opertunity to specify them as simply being moved - this is optional. So now we will have the following folders in  our repository:&lt;/p&gt;
&lt;pre&gt;http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades/current&lt;br/&gt;http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades/v2.4.1&lt;br/&gt;http://svn.hol.net.nz/projects/vendors/silverstripe/upgrades/v2.4.0&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Note that current and v2.4.1 are essentially the same.&lt;/p&gt;
&lt;p&gt;You probably also want to update the installer files. I like to keep this fresh and pristine, with no trace of previous versions, so I'd usually run through the following commands:&lt;/p&gt;
&lt;pre&gt;svn rm http://svn.hol.net.nz/projects/vendors/silverstripe/installer/current -m &quot;Making way for new installer version&quot;&lt;br/&gt;svn export http://svn.silverstripe.com/open/phpinstaller/tags/2.4.1 ss-installer-2.4.1&lt;br/&gt;svn import ss-installer-2.4.1/ http://svn.hol.net.nz/projects/vendors/silverstripe/installer/v2.4.1 -m &quot;Uploading SS 2.4.1&quot;&lt;br/&gt;svn copy http://svn.hol.net.nz/projects/vendors/silverstripe/installer/v2.4.1 http://svn.hol.net.nz/projects/vendors/silverstripe/installer/current -m &quot;Tagging SS 2.4.1 as current&quot;&lt;br/&gt;&lt;/pre&gt;
&lt;h4&gt;Step Thee: Update your sites&lt;/h4&gt;
&lt;p&gt;You can do this on each of your sites as and when you are ready. You'll need to check out your site's working directory if you haven't already done so.&lt;/p&gt;
&lt;pre&gt;svn co http://svn.hol.net.nz/projects/clientsite.co.nz/staging clientsite.co.nz&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Now we will merge the differences between v2.4.0 and v2.4.1 into our client's site.&lt;/p&gt;
&lt;pre&gt;cd clientsite.co.nz&lt;br/&gt;svn merge http://svn.oxynet.co.nz/projects/vendors/silverstripe/upgrades/v2.4.0 http://svn.oxynet.co.nz/projects/vendors/silverstripe/upgrades/current .&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Don't forget the '.' at the end - it's kinda important.&lt;/p&gt;
&lt;p&gt;Now, if you have modified any of the core files you may have to resolve conflicts before you can commit the client's code back into SVN. This is done as normal (again, check &lt;a href=&quot;http://svnbook.red-bean.com/&quot;&gt;the svn book&lt;/a&gt; if you need help).&lt;/p&gt;
&lt;p&gt;Make sure you test the site, do the /dev/build and everything else specified in the upgrade notes.&lt;/p&gt;
&lt;p&gt;Finally, when we're happy we commit our changes back to SVN.&lt;/p&gt;
&lt;pre&gt;svn commit -m &quot;Upgraded clientsite.co.nz from SS 2.4.0 to SS 2.4.1&quot;&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt; &lt;/p&gt;</description>
			<pubDate>Thu, 29 Jul 2010 11:30:00 +1200</pubDate>
			
			
			<guid>http://hol.net.nz/blog/managing-silverstripe-upgrades-in-your-svn-projects/</guid>
		</item>
		
		<item>
			<title>Reset all passwords in an Active Directory OU</title>
			<link>http://hol.net.nz/blog/reset-all-passwords-in-an-active-directory-ou/</link>
			<description>&lt;p&gt;Sometimes we need to reset everyone's password on the network - for instance if we are doing a server/network migration and we need to access everyones accounts. With this little cmd snippet you can easily tweak it to reset everyone in a particular OU's password:&lt;/p&gt;
&lt;pre&gt;dsquery user -startnode &quot;ou=Inner Org Unit,ou=Outer Org Unit,dc=DomainName,dc=local&quot; | dsmod user -pwd NewPassword -mustchpwd yes&lt;br/&gt;&lt;/pre&gt;</description>
			<pubDate>Thu, 15 Jul 2010 16:00:00 +1200</pubDate>
			
			
			<guid>http://hol.net.nz/blog/reset-all-passwords-in-an-active-directory-ou/</guid>
		</item>
		
		<item>
			<title>Reset Administrator Password on SBS 2008</title>
			<link>http://hol.net.nz/blog/reset-administrator-password-on-sbs-2008/</link>
			<description>&lt;p&gt;So you've managed to loose your admin password for your SBS Server 2008 eh? Well in my case, a faulty keyboard caused an incorrect password to be set. Whatever the reason you need to reset the password, I'll assume you're doing this for Good, and not Evil.&lt;/p&gt;
&lt;p&gt;A quick google round came up with the usual password reset programs, but they only work on local passwords, not ones stored in Active Directory, so they were no good. Eventually I stumbled across the method. Credit goes &lt;a href=&quot;http://www.woutware.com/blog/post/How-to-reset-the-domain-administrator-password-on-Windows-Server-2008-with-just-the-Windows-Installation-Disk.aspx&quot;&gt;here&lt;/a&gt;, but I like to keep useful tips on this site (more for myself than anything).&lt;/p&gt;
&lt;h2&gt;Things you'll need:&lt;/h2&gt;
&lt;ul&gt;&lt;li&gt;Physical access to the server&lt;/li&gt;
&lt;li&gt;Your 2008 install DVD&lt;/li&gt;
&lt;/ul&gt;&lt;h2&gt;Step One: Launch recovery console&lt;/h2&gt;
&lt;p&gt;Put your install DVD in the drive and reboot the server. Make sure you press the key to boot off the DVD. Once it loads, choose your language, then click Repair your computer. Click Command Prompt&lt;/p&gt;
&lt;h2&gt;Step Two: Do a bit of file jiggery-pokery&lt;/h2&gt;
&lt;p&gt;Run the following commands in the command prompt:&lt;/p&gt;
&lt;pre&gt;C:&lt;br/&gt;cd windows\system32&lt;br/&gt;move Utilman.exe Utilman.bak&lt;br/&gt;copy Cmd.exe Utilman.exe&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Basically we're moving Utilman out of the way temporarily and replacing it with cmd.exe (command prompt). Close the command prompt and click Reboot.&lt;/p&gt;
&lt;h2&gt;Step Three: Do the password reset&lt;/h2&gt;
&lt;p&gt;Start up your server as normal, and after you press CTRL-ALT-DELETE and have the login screen up, press Windows-U and the command prompt will come up. Type the following:&lt;/p&gt;
&lt;pre&gt;net user [username] [password]&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Where [username] is the username you want to reset the password for, and [password] is the new password. Close the command prompt and log in with the new password!&lt;/p&gt;
&lt;h2&gt;Step Four: Close that back-door&lt;/h2&gt;
&lt;p&gt;We want to move the files back to where they were, otherwise anyone could go Windows-U to get an administrator's command prompt. Unfortunately Utilman.exe is a protected file so you can't move it back while in Windows. Reboot back into the recovery console as in Step One, and run the following commands:&lt;/p&gt;
&lt;pre&gt;C:&lt;br/&gt;cd windows\system32&lt;br/&gt;del Utilman.exe&lt;br/&gt;move Utilman.bak Utilman.exe&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;All done! Reboot and pat yourself on your back.&lt;/p&gt;</description>
			<pubDate>Sat, 24 Apr 2010 10:48:00 +1200</pubDate>
			
			
			<guid>http://hol.net.nz/blog/reset-administrator-password-on-sbs-2008/</guid>
		</item>
		
		<item>
			<title>HOL changes!</title>
			<link>http://hol.net.nz/blog/hol-changes/</link>
			<description>&lt;p&gt;HOL has undergone a migration to the fantastic New Zealand-based open-source cms that is &lt;a href=&quot;http://silverstripe.org&quot;&gt;SilverStripe&lt;/a&gt;! It was a bit of an effort, but it could have been a lot harder.&lt;/p&gt;

&lt;p&gt;I'm looking forward to adding some new bling that the Sapphire framework gives me.&lt;/p&gt;

&lt;h2&gt;Migrating Magic&lt;/h2&gt;
&lt;p&gt;A few people have asked how I managed to get all my blog pages from my ModX database into Silverstripe. After looking through the database I decided that it wasn't practical to import data directly into the database, as the &lt;abbr title=&quot;Object-Relational Model&quot;&gt;ORM&lt;/abbr&gt; makes it too complex. Instead, I looked for a programmatical way to do this.&lt;/p&gt;

&lt;p&gt;I'm not yet sure how to bootstrap the Sapphire API for temporary scripts so I don't know how to harness the Sapphire framework outside of building modules, so instead I looked at how blogs were posted in the first place. I firebugged the blog post form and found that it sent data to &lt;code&gt;/blog/BlogEntryForm&lt;/code&gt;. It was easy enough to find the variables that I needed, then turn them into a URL that I could loop through the blog posts I'd exported into a csv file with phpMyAdmin and call. &lt;/p&gt;

&lt;p&gt;The end URL format was &lt;code&gt;/blog/BlogEntryForm?ID=&amp;amp;Author=Al&amp;amp;Title=My+Blog+Post&amp;amp;Content=This+is+my+blog+content&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;&lt;i&gt;Hint: it's a lot easier if you use &lt;code&gt;urlencode()&lt;/code&gt; to put all the '+'s in etc&lt;/i&gt;&lt;/p&gt;</description>
			<pubDate>Mon, 09 Mar 2009 20:05:22 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/hol-changes/</guid>
		</item>
		
		<item>
			<title>HOL gets CAPTCHA&#39;d</title>
			<link>http://hol.net.nz/blog/hol-gets-captchad/</link>
			<description>&lt;p&gt;My god, I checked my moderation queue for blog comments and I had nearly 1000 spam comments waiting for me! Nothing that a good DELETE FROM in the database can't fix, but there might have been some real comments hidden in there! (I did find a few, and exluded them from the deletion. If I missed you I'm sorry and I don't hate you).&lt;/p&gt;
&lt;p&gt;So now I've added a CAPTCHA code to the comment submission process. I'm sorry if that causes resentment, but you'll just have to tough it out.&lt;/p&gt;
&lt;p&gt;Also, I'm very sorry about being so slow to reply to comments. For some reason I haven't been getting emails to let me know about new comments. Hopefully I've fixed that now.&lt;/p&gt;</description>
			<pubDate>Thu, 12 Feb 2009 21:59:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/hol-gets-captchad/</guid>
		</item>
		
		<item>
			<title>Resolve .local domains with DNS</title>
			<link>http://hol.net.nz/blog/resolve-local-domains/</link>
			<description>&lt;p&gt;Many Linux distros come pre-configured with zeroconf, which lets machines resolve each other in a peer-to-peer manner. This is fine, except they chose the .local domain, which will conflict with any .local domain you may have set up in DNS.&lt;/p&gt;
&lt;h2&gt;Zeroconf: designed for no setup&lt;/h2&gt;
&lt;p&gt;...unless you're already set up, in which case it is a real PITA.&lt;/p&gt;
&lt;p&gt;It can't have been &lt;em&gt;really&lt;/em&gt; that hard to choose something less likely to cause issues (.zeroconf maybe?), but we've got to live with it.&lt;/p&gt;
&lt;h2&gt;A bit of background&lt;/h2&gt;
&lt;p&gt;Any security expert knows that you're a lot better off having a private IP range for your local computers. Not only does this save on IPv4 addresses by 'hiding' them behind a router,&amp;nbsp; it also makes it much more difficult for attackers to access remotely. And if you're going to have local IPs it makes sense to have a private DNS server. And if you have a private DNS server you don't want the FQDN to conflict with anything on the net (ie it shouldn't end with .com, .co.nz etc). So you choose something friendly and close to home. .local even. Even Microsoft recommend your Active Directory domain ends with .local.&lt;/p&gt;
&lt;p&gt;So, it is fairly reasonable to assume that when people create a local DNS server, they are going to give it a .local domain. And if you're already set up you don't want to have to change it. So here's how you don't have to.&lt;/p&gt;
&lt;h2&gt;Let me see the .local, dammit!&lt;/h2&gt;
&lt;p&gt;It's actually pretty simple. As root, edit&amp;nbsp;&lt;/p&gt;
&lt;pre&gt;/etc/nsswitch.conf 
&lt;/pre&gt;
&lt;p&gt;Find the line that says&lt;/p&gt;
&lt;pre&gt;hosts:&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; files mdns4_minimal [NOTFOUND=return] dns 
&lt;/pre&gt;
&lt;p&gt;and change it to :&lt;/p&gt;
&lt;pre&gt;hosts:      files dns mdns4_minimal [NOTFOUND=return]
&lt;/pre&gt;
&lt;p&gt;Done!&lt;/p&gt;</description>
			<pubDate>Thu, 05 Feb 2009 22:32:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/resolve-local-domains/</guid>
		</item>
		
		<item>
			<title>Installing and configuring Kubuntu Intrepid Ibex (8.10)</title>
			<link>http://hol.net.nz/blog/kubuntu-intrepid/</link>
			<description>&lt;p&gt;So, the latest and greatest version of the greatest Distro ever is out (haha flamebait :P), and I thought it would be good to document how my install went, so others might be able to get their system up and running nicely. But first:&lt;/p&gt;
&lt;h2&gt;The hardware:&lt;/h2&gt;
&lt;p&gt;The machine I'm installing this on is also my gaming machine, so it is dual booting Vista Ultimate x64. It also currently has Kubuntu 8.04, though I didn't use it much because it was too ugly and broken for my liking.&lt;/p&gt;
&lt;p&gt;Specs are as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU: Intel Dual Core E8400 @ 3.00 GHz&lt;/li&gt;
&lt;li&gt;Motherboard: Asus P5E (Intel X38 Northbridge/ ICH9R Southbridge)&lt;/li&gt;
&lt;li&gt;Memory: 2 GB DDR2-1200&lt;/li&gt;
&lt;li&gt;Video: Gigabyte ATi Radeon HD 3870 + Sapphire ATi Radeon HD 3870 &lt;/li&gt;
&lt;li&gt;Storage: 2x Seagate 320GB SATA2 HDD w/ 16mb cache in striped RAID &lt;/li&gt;
&lt;li&gt;Sound: Creative X-FI Extreme Music&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;It would be pretty straight-forward, apart from the X-Fi sound card, and the fakeraid requirement for dualbooting. I am wanting to re-format my linux partitions and keep Vista happy.&lt;/p&gt;
&lt;p&gt;So, without further ado,&lt;/p&gt;
&lt;h2&gt;The install&lt;/h2&gt;
&lt;p&gt;I download the x86 live installer .iso from the nearest mirror. I'm still very suspicious of x64 on linux at this stage, and will continue to be until Java, Flash, and Skype (among others) are sorted out.&lt;/p&gt;
&lt;p&gt;So, freshly burnt CD in drive, I give 8.04 one last wave good by and hit the reset button. The CD boot prompt is pretty much the same as the last version, and still miles behind Redhat-based loaders (such as OpenSUSE), but never mind. So I boot up and get the age old progress bar doing its thing. That disappears and I expect any minute to be be landed into the live CD.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Uh oh. My monitor light is blinking in a way I don't like. I try the old CTRL-ALT-BACKSPACE trick to no avail. Hmmm. I reboot, and choose 'Safe graphics' under the F4 menu. This time, we're off. I wish it would do that automatically though - how hard can it be to detect that a display mode isn't working and revert back to safe? Or, dare I say - the windows way of starting off in safe graphics mode then prompting to change once everything is loaded is a very good way to handle it.&lt;/p&gt;
&lt;p&gt;Nevermind, I'm now in the live environment, and I have to say - KDE4.1 is a hell of a lot nicer and complete looking than KDE4. I'm quite impressed. There's no real Kubuntu styling though (save for a forum-signature-like Kubuntu image in the Kicker menu). After using distros such as OpenSUSE 11, which completely immerses you in a uniform look and feel, Kubuntu just seems bland. I only wish I had a decent design sense so I could help out in this area! But, at the end of the day you can't complain about the default KDE4.1 look.&lt;/p&gt;
&lt;p&gt;So I fire up the Ubiquity installer and set off. All is well until I get to the hard-drives bit. It seems Ubiquity still doesn't support fakeraid. I was dreading a return to&amp;nbsp; my &lt;a href=&quot;http://hol.net.nz/[~13~]&quot;&gt;Kubuntu With Fakeraid&lt;/a&gt; page, but then I found that the alternate cd fully supports fakeraid! &lt;strong&gt;Why isn't this noted somewhere on the download page?&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Never mind, it only takes a few more minutes to download the alternate .iso. I also note that the New Zealand mirrors now show up as an option to download from, but they don't work... maybe this is just a temporary thing. No worries - I get it from across the ditch just fine.&lt;/p&gt;
&lt;p&gt;The alternate cd install is fine for people who don't mind ugly terminal-based graphics, like me. Sure enough, when it comes to partitioning the installer prompts me that it found some fakeraids and would I like to enable them. Yes! This is waay easier than the last install - thanks guys!!&lt;/p&gt;
&lt;h2&gt;First boot, first trouble&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;OK, so the installer is all done, and I restart the computer. Hmmm... even though the grub installer recognised the Vista OS it didn't add it into the boot menu. Never mind - I can deal with that, but it might trip up new users (I'll detail how I fixed this in a wee bit).&lt;/p&gt;
&lt;p&gt;The machine boots up the Kubuntu loading screen, then uh-oh - that blinking monitor light is back! However, we can fix that now we have a loaded system. Hit CTRL-ALT-F1 and you get the console login screen. Do your login, then install the graphics drivers. I have a couple of ATi cards, so I run&lt;/p&gt;
&lt;pre&gt;al@grif:~$ apt-cache search fglrx
&lt;/pre&gt;
&lt;p&gt;This gives me a list of the packages that might help with my card.&lt;/p&gt;
&lt;pre&gt;fglrx-modaliases - Identifiers supported by the ATI graphics driver
jockey-common - user interface and desktop integration for driver management
jockey-gtk - GNOME user interface and desktop integration for driver management
jockey-kde - KDE user interface and desktop integration for driver management
xserver-xorg-video-radeon - X.Org X server -- ATI Radeon display driver
fglrx-amdcccle - Catalyst Control Center for the ATI graphics accelerators
fglrx-kernel-source - Kernel module source for the ATI graphics accelerators
xorg-driver-fglrx - Video driver for the ATI graphics accelerators
xorg-driver-fglrx-dev - Video driver for the ATI graphics accelerators (devel files)
&lt;/pre&gt;
&lt;p&gt;Sweet! that looks promising. I install&lt;/p&gt;
&lt;pre&gt;al@grif:~$ sudo apt-get install xorg-driver-fglrx fglrx-amdcccle
&lt;/pre&gt;
&lt;p&gt;Once that's done it's thing, I run&lt;/p&gt;
&lt;pre&gt;al@grif:~$ sudo  aticonfig --intitial
&lt;/pre&gt;
&lt;p&gt;And now you can either restart, or just run&lt;/p&gt;
&lt;pre&gt;al@grif:~$ startx
&lt;/pre&gt;
&lt;p&gt;Before you restart though, lets fix up the boot loader not showing Vista. Open up the menu.lst file in your favourite editor&lt;/p&gt;
&lt;pre&gt;al@grif:~$ sudo nano -w /boot/grub/menu.lst
&lt;/pre&gt;
&lt;p&gt;Put the following text either before the bit that says &quot;### BEGIN AUTOMAGIC KERNELS LIST&quot; (if you want Vista at the top), or after &quot;### END DEBIAN AUTOMAGIC KERNELS LIST&quot;. &lt;strong&gt;DO NOT PUT IT INBETWEEN THIS BLOCK! YOUR COMPUTER WILL EXPLODE!&lt;/strong&gt;&lt;/p&gt;
&lt;pre&gt;title&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Windows Vista Ultimate
root&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; (hd0,0)
makeactive
chainloader&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; +1
&lt;/pre&gt;
&lt;p&gt;Save and exit by hitting CTRL-X . Now when you boot you should see Vista in there as well as Ubuntu.&lt;/p&gt;
&lt;h2&gt;Second boot - video working, now where is sound?&lt;/h2&gt;
&lt;p&gt;Now that I can boot into either OS, and have graphics I'm a bit more comfortable with how things are going. Next task is to get sound working. To make things difficult I have a Creative X-Fi, one of the worst supported sound cards in Linux (c'mon Creative dammit!). The only reason I keep it is because it is awesome when gaming.&lt;/p&gt;
&lt;p&gt;I do have a sound card that came with my motherboard that is reasonable (and supported out of the box), but I don't want to have to switch my speakers back and forth all the time.&lt;/p&gt;
&lt;p&gt;The solution is to use OSS. OSS is getting more and more support these days thanks to them re-releasing their code as opensource (and the fact that it is sooo much better designed and writen than ALSA). In saying that, I couldn't find an OSS package in the repos, so I had to compile it. It's not too hard though, and &lt;a href=&quot;https://help.ubuntu.com/community/OpenSound&quot;&gt;https://help.ubuntu.com/community/OpenSound&lt;/a&gt; details the steps to follow in a very clear way. I had to reboot for sound to work, as there still seems to be a bit of rough edges between phonon and OSS. The sound control panel applet doesn't really work any more either. But I don't care - I have sound!&lt;/p&gt;
&lt;h2&gt;Overall - the review&lt;/h2&gt;
&lt;p&gt;I'm going to finish off this bit soon - I promise!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Fri, 07 Mar 2008 14:57:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/kubuntu-intrepid/</guid>
		</item>
		
		<item>
			<title>The Little Browser That Wouldn&#39;t</title>
			<link>http://hol.net.nz/blog/the-little-browser-that-wouldnt/</link>
			<description>&lt;p&gt;When Firefox first came out it was such a breath of fresh air compared to Internet Explorer. Now its feeling like that same air has been kept in a box for the last year or so and has gone a little stale.&lt;/p&gt;
&lt;p&gt;I use Firefox to do my work, which is creating and managing websites. I spend most of my time with the &lt;a href=&quot;http://www.getfirebug.com/&quot;&gt;Firebug&lt;/a&gt; extension open, and also use the &lt;a href=&quot;http://users.skynet.be/mgueury/mozilla/&quot;&gt;HTML validator&lt;/a&gt; extension extensively as well (notice that all these pages validate - check the links in the footer). For the most part, I love it. But, as the saying goes it only takes a little bit of urine to wreck the wine. Lately I've been irked by some issues that seem to have been around for a while.&lt;/p&gt;
&lt;h2&gt;Memory&lt;/h2&gt;
&lt;p&gt;If I open up my Task Manager on my Vista laptop, or the ProcessTable on my KDE System Guard and sort my processes by memory use, guess which app is usually up the top? Its our little wonderchild, who seems to have gotten a little fat of late.&lt;/p&gt;
&lt;p&gt;In Vista, with only two tabs open (I usually have many more), Firefox is using about 107mb of my main memory, plus another 144mb of virtual memory. In KDE, it's using 133mb of main memor, and 235mb of virtual memory!! Contrast this with IE7 which with two tabs open is using 43mb of main memory and 108mb of virtual memory, and IE6 which is running on an XP virtual machine ticking along at only 32mb memory/23mb virtual memory.&lt;/p&gt;
&lt;h2&gt;Stability&lt;/h2&gt;
&lt;p&gt;It never used to be this way; Firefox has always been pretty reliable. Except lately, Gmail crashes on every second access attempt, as well as other pages crashing it. Now I know Google like to develop funky javascript code, but browsers should not let client side scripts do anything bad enough to crash!&lt;/p&gt;
&lt;p&gt;My other stability irk is that every now and again, usually while running the Linux version of Firefox, new pages will appear to take the time to load, but Firefox won't update the screen to show that new page. You click on a link and the status bar shows the progress, then its all done - except you still see the old page. Closing down all the browser windows, waiting until the Firefox thread finishes (which is an annoying while after the last window closes), then reopening Fx and reloading all the tabs you had open. Annoying, huh? Worst part is it isn't an actual crash so no error report gets generated, and it's kinda hard to reproduce the problem, as it seems to happen fairly randomly.&lt;/p&gt;
&lt;h2&gt;Speed&lt;/h2&gt;
&lt;p&gt;I've nothing to conclusively test this against, but Firefox just &lt;em&gt;feels&lt;/em&gt; slower these days. Of course, this is purely subjective, but then again, what really matters is the overal user experience isn't it? It doesn't really matter to me if any particular browser is any percent faster in loading time, javascript processing, page rendering, etc, until I notice a difference. And to be honest, right now I'm looking for alternatives.&lt;/p&gt;
&lt;h2&gt;In the end&lt;/h2&gt;
&lt;p&gt;At the end of the day, I'm not going to leave Fx until I find something as good as (or better than) Firebug. It has to be one of the most useful tools for a web developer, so I'm prepared to stay in the Fx camp and whinge until there is a better alternative or the Fx team sort out their little issues.&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Mon, 28 Jan 2008 17:42:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/the-little-browser-that-wouldnt/</guid>
		</item>
		
		<item>
			<title>X-Fi nally on Kubuntu! Time to throw out the secondary sound card</title>
			<link>http://hol.net.nz/blog/x-fi-nally-on-kubuntu/</link>
			<description>&lt;p&gt;Finally! I have my X-Fi Extreme Music working in Kubuntu. Now I don't have to have a second soundcard installed just to get me linux sound.&lt;/p&gt;
&lt;h2&gt;Warning&lt;/h2&gt;
&lt;p&gt;OSS (used here) only provides &lt;strong&gt;beta&lt;/strong&gt; support for the X-Fi at the moment. All the usual yada-yad applies about installing this - it may blow up your hard drive, computer, house, or city. I take no responsibility.&lt;/p&gt;
&lt;h2&gt;How to install&lt;/h2&gt;
&lt;p&gt;I can't be bothered writing it all out this time - just follow the instructions &lt;a title=&quot;Ubuntu Forums - X-fi driver howto&quot; href=&quot;http://ubuntuforums.org/showpost.php?p=4874981&amp;amp;postcount=2&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;</description>
			<pubDate>Mon, 28 Jan 2008 17:42:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/x-fi-nally-on-kubuntu/</guid>
		</item>
		
		<item>
			<title>My First ModX Snippet - PrevNextLinks</title>
			<link>http://hol.net.nz/blog/my-first-modx-snippet/</link>
			<description>&lt;p&gt;I wanted something like what modx has as navigation in its help section, but couldn't find a snippet that did it. So I wrote my own.&lt;/p&gt;
&lt;h2&gt;PrevNextLinks.php.snippet&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;It's nothing majorly fancy, but its the first time I've actually written a snippet rather than just nicking other peoples and tinkering. Basically what it does is create the Previous and Next post links that you can probably see below the page header. I've tried to make it as adaptable as possible so it is useful to others, and not just me.&lt;/p&gt;
&lt;p&gt;You can &lt;a class=&quot;broken&quot; href=&quot;http://hol.net.nz/assets/files/PrevNextLinks.php.txt&quot;&gt;download it from here&lt;/a&gt;. Once you've downloaded it, create a new snippet called PrevNextLinks and copy and paste the text into it.&lt;/p&gt;
&lt;h2&gt;Usage&lt;/h2&gt;
&lt;p&gt;Just place the call&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[!PrevNextLinks!]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;on your page where you want the links to appear. If you look at the code in the snippet there are several config settings that let you change the sorting order, the link text, the classes that are wrapped around the links etc. You can do this from your snippet call, like&lt;/p&gt;
&lt;p&gt;&lt;code&gt;[!PrevNextLinks? &amp;amp;sortBy=`menuindex` &amp;amp;sortDir=`DESC`!]&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Or just change the defaults in the snippet.&lt;/p&gt;
&lt;p&gt;Let me know if you find this usefull!&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Thu, 24 Jan 2008 19:06:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/my-first-modx-snippet/</guid>
		</item>
		
		<item>
			<title>Introducing ATi Graphics Cards and Kubuntu</title>
			<link>http://hol.net.nz/blog/ati-graphics-cards-and-kubuntu/</link>
			<description>&lt;p&gt;I've had bad experiences with ATi cards and Linux before. Happily it was not the case this time. Here's how I set up my Sapphire ATi Radeon 3870 HD. I also throw in the desktop effects install at the end.&lt;/p&gt;
&lt;h2&gt;To change, or not to change&lt;/h2&gt;
&lt;p&gt;First up, you don't actually have to do this at all! The default open source driver works fine for most situations. That said, if you're like me and like bling and games you will really really want to use the 3D accelerator on that card of yours.&lt;/p&gt;
&lt;p&gt;Now that we've decided we want to go to the dark side of proprietary drivers, the first step is to download them.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a href=&quot;http://ati.amd.com/support/drivers/linux/linux-radeon.html&quot;&gt;http://ati.amd.com/support/drivers/linux/linux-radeon.html&amp;nbsp;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Put it somewhere the installer can create temporary files (your home directory is a good place). Now open up Konqueror and make it executable (change the file name to match your one).&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo +x ati-driver-installer-7-11-x86.x86_64.run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And then execute it!&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo ./ati-driver-installer-7-11-x86.x86_64.run&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;After it verifies the file contents a window will pop up and guide you through the installation. You can pretty much just click 'Next' through the entire installation.&lt;/p&gt;
&lt;p&gt;Once thats done, we need to do our initial config. This will overwrite the display, screen and monitor sections of our xorg.conf file (not as bad as nVidia though - it rewrites &lt;em&gt;everything&lt;/em&gt;, including my keyboard settings!!) so you may wish to back up the file first.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo aticonfig --initial -f&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;And we're done! Restart your X server by logging out then pressing Alt-E, or just press CTRL-ALT-BACKSPACE, then log back in again. You'll see in the K menu the ATI Catalyst Control Center, and you can now play with your desktop effects, 3D screensavers, and games. Enjoy!&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;broken lightbox-set&quot; title=&quot;Control Center in K menu&quot; href=&quot;http://hol.net.nz/assets/images/kmenu.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/kmenu-thumb.png&quot; alt=&quot;Control Center in K menu&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;Control conter welcome screen&quot; href=&quot;http://hol.net.nz/assets/images/control1.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/control1-thumb.png&quot; alt=&quot;Control Center Screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;Graphics card information&quot; href=&quot;http://hol.net.nz/assets/images/control2.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/control2-thumb.png&quot; alt=&quot;Control Center Screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;Monitor information and settings&quot; href=&quot;http://hol.net.nz/assets/images/control3.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/control3-thumb.png&quot; alt=&quot;Control Center Screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;h2&gt;Enable compiz&lt;/h2&gt;
&lt;p&gt;We have to whitelist our driver, as it's not confirmed to work in all cases. This translates to possible crashes. I'll update this after a while to say how stable it is. Open up the compiz file in kate&lt;/p&gt;
&lt;p&gt;&lt;code&gt;kdesu kate /usr/bin/compiz&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Edit the line below the one that says 'WHITELIST=...' add fglrx to it. Mine looks like this&lt;/p&gt;
&lt;pre&gt;WHITELIST=&quot;fglrx nvidia intel ati radeon i810&quot;
&lt;/pre&gt;
&lt;p&gt;Then save the file.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;In Ubuntu, now all you need to do is select Desktop Effects and you're done. Kubuntu however is holding out for KDE4 which brings its own bling. This means in Kubuntu you need to do it a little more manually.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get install compiz compiz-kde compizconfig-settings-manager librsvg2-common&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now press ALT-F2 and type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;compiz --replace&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The settings config is in K-&amp;gt;Settings-&amp;gt;Advanced Desktop Effect Settings. The screenshots below are a little more impressive.&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;broken lightbox-set&quot; title=&quot;Get your desktop angle on&quot; href=&quot;http://hol.net.nz/assets/images/compiz1.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/compiz1-thumb.png&quot; alt=&quot;Compiz screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;The windows taste like wiggly&quot; href=&quot;http://hol.net.nz/assets/images/compiz2.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/compiz2-thumb.png&quot; alt=&quot;Compiz screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;The alternative to Alt-Tab (slower to use but sexier)&quot; href=&quot;http://hol.net.nz/assets/images/compiz3.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/compiz3-thumb.png&quot; alt=&quot;Compiz screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt; &lt;a class=&quot;broken lightbox-set&quot; title=&quot;I has fire on mah screen&quot; href=&quot;http://hol.net.nz/assets/images/compiz4.png&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/compiz4-thumb.png&quot; alt=&quot;Compiz screenshot&quot; width=&quot;100&quot; height=&quot;100&quot; /&gt;&lt;/a&gt;&lt;/p&gt;</description>
			<pubDate>Thu, 24 Jan 2008 12:12:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/ati-graphics-cards-and-kubuntu/</guid>
		</item>
		
		<item>
			<title>My essential XP software installation list</title>
			<link>http://hol.net.nz/blog/essential-xp-software/</link>
			<description>&lt;p&gt;This list is kind of the younger, skinnier, not-any-good-at-sports-or-maths brother of my &lt;a href=&quot;http://hol.net.nz/blog/essential-kubuntu-software/&quot;&gt;essential Kubuntu software&lt;/a&gt; list. XP doesn't come with bugger all software, so the first thing to do is get some.&lt;/p&gt;
&lt;p&gt;This list details a whole lot of great free software which makes windows a bit more bearable.&lt;/p&gt;
&lt;h2&gt;The list&lt;/h2&gt;
&lt;h3&gt;Firefox&lt;/h3&gt;
&lt;p&gt;First and formost: Firefox. You can get it &lt;a href=&quot;http://getfirefox.com&quot;&gt;from here&lt;/a&gt;. This, and Windows update are the only sites I'll go to using IE - it's just too risky. Alternatives to Firefox on Windows are Opera and Safari.&lt;/p&gt;
&lt;h3&gt;Avg Free &lt;/h3&gt;
&lt;p&gt;Now we have a safer browser, lets get some anti-virus. Browse to &lt;a href=&quot;http://free.grisoft.com&quot;&gt;http://free.grisoft.com&lt;/a&gt;. I actually think that the free version is better than the full one, as there is less stuff to slow down our computer.&lt;/p&gt;
&lt;h3&gt;Daemon Tools&lt;/h3&gt;
&lt;p&gt;We all get the need to run an ISO straight off the hard disk (or network) sometimes, and as Windows can't do this on it's own (Linux users can insert mock here), we need Daemon Tools. You can grab it from &lt;a href=&quot;http://daemon-tools.cc&quot;&gt;www.daemon-tools.cc&lt;/a&gt; &lt;/p&gt;
&lt;h3&gt;Tweak UI&lt;/h3&gt;
&lt;p&gt;From the bowels of Microsoft comes a PowerToy that is actually quite good. It lets you change settings that previously required mucking around in the registry. I also find the auto-login quite good as it means I'm protected from the network with passwords, but I don't have to type it in to boot. You can get the PowerToys &lt;a href=&quot;http://www.microsoft.com/windowsxp/downloads/powertoys/xppowertoys.mspx&quot;&gt;from here&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;7z&lt;/h3&gt;
&lt;p&gt;7z is Winzip on steroids, and its open source too. Grab it from &lt;a href=&quot;http://www.7-zip.org&quot;&gt;www.7-zip.org&lt;/a&gt;. &lt;/p&gt;
&lt;h3&gt;Spybot - Search &amp;amp; Destroy&lt;/h3&gt;
&lt;p&gt;Yeah, its got a cool name. And it keeps your computer squeaky clean. Get it from &lt;a href=&quot;http://www.safer-networking.org&quot;&gt;www.safer-networking.org&lt;/a&gt;.&lt;/p&gt;
&lt;h2&gt;And we're good&lt;/h2&gt;
&lt;p&gt;Now you get to buy most of the rest of the software you want to use. As always, if anyone has any other useful programs they always use, let me know!&lt;/p&gt;</description>
			<pubDate>Fri, 18 Jan 2008 12:30:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/essential-xp-software/</guid>
		</item>
		
		<item>
			<title>My essential Kubuntu software installation list</title>
			<link>http://hol.net.nz/blog/essential-kubuntu-software/</link>
			<description>&lt;p&gt;Unlike Windows, Kubuntu comes with a large amount of software already installed, like OpenOffice, Amarok, Kaffeine, etc. However I always find I need to install a few more, and whats more, its pretty much always the same. I figured then it would be easier to keep this list online so I can find it, and other people can use it and make suggestions on it too.&lt;/p&gt;
&lt;h2&gt;The list&lt;/h2&gt;
&lt;p&gt;All this will need to go on one line but I've presented it like this so it's possible to read.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&lt;strong&gt; sudo apt-get install &lt;/strong&gt;&lt;br /&gt; nfs-common  &lt;br /&gt; wine  &lt;br /&gt; firefox  &lt;br /&gt; gimp  &lt;br /&gt; sun-java6-jre sun-java6-plugin sun-java6-fonts&lt;br /&gt; eclipse&lt;br /&gt; apache2 php5 mysql-server mysql-client phpmyadmin&lt;br /&gt; kde-devel kde-devel-extras kdesvn&lt;br /&gt; synaptic&lt;br /&gt; libxine1-ffmpg avifile-mjpeg-plugin avifile-player gstreamer0.10-pitfdll&lt;br /&gt; libwavpack1 libxine1-plugins libxvidcore4&lt;br /&gt; kdeaddons&lt;br /&gt; msttcorefonts&lt;br /&gt; &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;There will undoubtably be others, and I'll add to this list as I remember them.&lt;/p&gt;
&lt;p&gt;Don't forget after installing eclipse to edit the /etc/eclipse/java_home file and change it so java6 is at the top of the list, otherwise it will make you want to kill yourself.&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Fri, 18 Jan 2008 08:34:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/essential-kubuntu-software/</guid>
		</item>
		
		<item>
			<title>The joys of rebuilding a PC</title>
			<link>http://hol.net.nz/blog/rebuilding-a-pc/</link>
			<description>&lt;p&gt;Installing update 1 of 86... Do not power off or unplug your computer...&lt;/p&gt;
&lt;p&gt;Sigh. Actually, I'm not really that worried that there are lots of updates. For one thing, it shows that there are still some developers active at Microsoft (they didn't all get put off by Steve Ballmer). What does annoy me is the number of system restarts I need to do to get Windows up and running. So far, I restarted for the second stage of install, at the end of install, three times for my Asus motherboard driver installs, once for my ATi install, and twice for Windows Updates. Thats, er nine restarts just to get to the point I can start to install my apps and games (and many of those will 'need' restarts too!). It annoys me how so many software developers put arbitrary restart prompts at the end of their un/install processes. They just don't need to! Windows can restart individual services like Linux can too, and files that are still in use can bloody well stay there until I choose to restart thanks!&lt;/p&gt;
&lt;p&gt;Lets contrast that with Kubuntu shall we? I put the CD in and the operating system loads. All by itself. No restarts so far. I choose to permanently install and go through the wizard. At the end, I get the choice of restarting into the installed system or staying on the Live version for now. And if I click restart later, I'm not prompted every ten minutes to restart (on a timed prompt that if you miss it, your computer restarts no less). Once I finish what I was doing (oh yes, I was surfing the net &lt;em&gt;while&lt;/em&gt; I was installing the operating system - bugger watching glorified statements from Microsoft saying how good the operating system is while installing), I restart my computer. And there we are!! That was, ah, one restart if I counted right. True, I didn't count doing my updates afterwards (and there are quite a lot) but they don't need restarts. Either the update is applied automatically, or in the case of core system bits like the kernel, it paitently waits until the next time you restart.&lt;/p&gt;
&lt;p&gt;And they say Linux isn't ready for the desktop....&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Thu, 17 Jan 2008 22:21:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/rebuilding-a-pc/</guid>
		</item>
		
		<item>
			<title>Grif gets an upgrade</title>
			<link>http://hol.net.nz/blog/grif-gets-an-upgrade/</link>
			<description>&lt;p&gt;As I posted in &lt;a href=&quot;http://hol.net.nz/blog/00000080-bytes-of-pain&quot;&gt;00000080 bytes of pain&lt;/a&gt;, my main PC (Grif) has been having issues, which turn out to be memory related. The nice folks at &lt;a href=&quot;http://unleash.co.nz&quot;&gt;Unleash&lt;/a&gt; have given me some temporary memory while my dud memory is being returned under warranty. It turns out all I had was DDR1, but my motherboard supports 1 &amp;amp; 2, so I've got a 1GB stick of DDR2 at the moment. Meanwhile I've been busy ordering upgraded parts. I've got 2x 1GB sticks of Kingston goodness on its way, as well as a couple of 320GB SATA2 drives with a lovely 16mb of cache.&lt;/p&gt;
&lt;p&gt;I also ordered a Asus P5E motherboard which arrived today. As Intel haven't changed their sockets for a while my venerable old P4 3.2GHz fits this new one, so I've decided to hold off on a new CPU till the Intel E8400 comes into NZ next month.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;a class=&quot;broken lightbox&quot; title=&quot;Shiny new motherboard&quot; href=&quot;http://hol.net.nz/assets/images/new-mobo.jpg&quot;&gt;&lt;img src=&quot;http://hol.net.nz/assets/images/new-mobo-thumb.jpg&quot; alt=&quot;New motherboard. Click for a larger view&quot; width=&quot;200&quot; height=&quot;143&quot; /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;You can't see from this angle, but this motherboard has another full speed (16x) PCIe slot just above the bottom PCI slot. It's just begging for another HD3870 - I can hear it! Also, I have to say I'm impressed with this camera of Jess's - that CPU fan is doing 2200RPM and its not even blurred!&lt;/p&gt;
&lt;p&gt;It wasn't all smooth sailing putting this bad boy in though. The SATA and ATA connectors on this motherboard aim off the side of the board instead of the usual vertical orientation. I later realised that this is to make sure there is room for big-assed graphics cards, but I had other problems. My case is a no-screw jobby and this includes the motherboard which is on a removable tray. The release grip nicely blocked my ATA connector so I couldn't attach my optical drives.&amp;nbsp; Grim. Oh well, nothing a mini hacksaw can't fix. Now I have half a release grip but its all I need, and at least I have my optical drives again.&lt;/p&gt;
&lt;p&gt;I've taken out my Sound Blaster X-Fi eXtreme Music in favour of the SoundMax ADI1988 PCIe card which was included with the motherboard, as it means I can have surround sound in Linux :). I'll trial the sound quality in Windows games and see what I think - I may end up putting the SB back in to take advantage of its 10,000 transistors.&lt;/p&gt;
&lt;p&gt;Speaking of Linux, guess which operating system didn't bat an eye at the new motherboard? Hah, and guess which operating system BSOD's on boot at the moment? Not that hard really is it. I'm holding off re-installing windows till my new harddrives arrive, so no games for now (except MotoX).&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Wed, 16 Jan 2008 19:48:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/grif-gets-an-upgrade/</guid>
		</item>
		
		<item>
			<title>Backup your LAMP with rsync</title>
			<link>http://hol.net.nz/blog/backup-your-lamp/</link>
			<description>&lt;p&gt;Continuing with the backup theme of my last post, I've needed to back up our local &lt;abbr title=&quot;Linux Apache MySQL PHP&quot;&gt;LAMP&lt;/abbr&gt; server because its starting to hold some important data. Maybe I'm getting paranoid because of my first hard drive failure in 10 years (the last one was a 2GB HDD that got progressively larger areas of dead sectors, so it was a nice gradual death). Maybe I've just been taught a lesson and am starting to do what I always should have done anyway. In any case, here is the little script I wrote:&lt;/p&gt;
&lt;h2&gt;The script&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;&lt;code&gt;#!/bin/sh&lt;br /&gt; # System + MySQL backup script using rsync&lt;br /&gt; #&lt;br /&gt; # Copyright (c) 2008 Al Twohill&lt;br /&gt; # This script is licensed under GNU GPL version 2.0 or above&lt;br /&gt; # &lt;br /&gt; ###Adjust these variables as you need ###&lt;br /&gt; #&lt;br /&gt; #The directories to back up&lt;br /&gt; DIRS=&quot;/home /etc /var/www&quot;&lt;br /&gt; #&lt;br /&gt; #The MySQL login details&lt;br /&gt; MUSER=&quot;root&quot;&lt;br /&gt; MPASS=&quot;mypassword&quot;&lt;br /&gt; MHOST=&quot;localhost&quot;&lt;br /&gt; #&lt;br /&gt; #Temp location to store MySQL Dumps&lt;br /&gt; MYTEMP=&quot;/tmp/mysql.bak&quot;&lt;br /&gt; #&lt;br /&gt; #Location to backup to&lt;br /&gt; BACKTO=&quot;/mnt/backup&quot;&lt;br /&gt; #&lt;br /&gt; #&lt;br /&gt; ### The script (you shouldn't need to edit this) ###&lt;br /&gt; MYSQL=&quot;$(which mysql)&quot;&lt;br /&gt; MYSQLDUMP=&quot;$(which mysqldump)&quot;&lt;br /&gt; GZIP=&quot;$(which gzip)&quot;&lt;br /&gt; &lt;br /&gt; ### Start MySQL Backup ###&lt;br /&gt; # Get all databases name&lt;br /&gt; DBS=&quot;$($MYSQL -u $MUSER -h $MHOST -p$MPASS -Bse 'show databases')&quot;&lt;br /&gt; for db in $DBS&lt;br /&gt; do&lt;br /&gt; FILE=/tmp/mysql.bak/mysql-$db.gz&lt;br /&gt; $MYSQLDUMP -u $MUSER -h $MHOST -p$MPASS $db | $GZIP -9 &amp;gt; $FILE&lt;br /&gt; done&lt;br /&gt; ### Dump backup using rsync ###&lt;br /&gt; rsync -aHk $DIRS $MYTEMP $BACKTO&lt;br /&gt; ### All done ###&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It's nice and simple and should be fairly straightforward. However, this is not a one-size-fits-all solution, so I'll step through what I did so you can adjust for your needs.&lt;/p&gt;
&lt;h2&gt;The lowdown&lt;/h2&gt;
&lt;p&gt;The first bit is really straightforward, we just create some variables and assign them values.&lt;/p&gt;
&lt;p&gt;&quot;DIRS&quot; is a space-separated list of the directories we want to back up. On a typical LAMP server this is probably all you need, but its easy enough to amend.&lt;/p&gt;
&lt;p&gt;Next up we have the details we need to login to the database. Obviously because we store our password in plaintext we must make sure that our backp script is readable only by root.&lt;/p&gt;
&lt;p&gt;&quot;MYTEMP&quot; is where we temporarily store the dumps of our databases. Again, as the database dumps are (gzipped) plaintext, we should make sure this folder is only accessible by root.&lt;/p&gt;
&lt;p&gt;Finally in our variable list is where to backup to (&quot;BACKTO&quot;). You can use any value in here that fits in with an rsync destination. For more information on this, see &lt;a href=&quot;http://samba.anu.edu.au/rsync/&quot;&gt;http://samba.anu.edu.au/rsync/&lt;/a&gt;, and also &lt;a href=&quot;http://hol.net.nz/blog/backups-are-go&quot;&gt;this post&lt;/a&gt;. I'm using /mnt/backup because I have a remote filesystem mounted there, but you could just as easily rsync directly to a remote host (if the host supports it).&lt;/p&gt;
&lt;h2&gt;The nitty gritty&lt;/h2&gt;
&lt;p&gt;Now we come to how the script really works. We now get the necessary commands to perform our operations, using a nifty bit of code I found &lt;a href=&quot;http://www.cyberciti.biz/tips/how-to-backup-mysql-databases-web-server-files-to-a-ftp-server-automatically.html&quot;&gt;here&lt;/a&gt; (and some other code also came from here - just rewritten for my needs).&lt;/p&gt;
&lt;p&gt;MySQL is a little tricky to back up, as if you just take the db files you'll need to start and stop the entire database service to do backups/restores, which isn't ideal - especially if you have several databases on the server. To get around this we use the tool mysqldump, which does what it says - it dumps its databases into a text file. We could make this bit of the script a little less complicated and dump the &lt;em&gt;entire&lt;/em&gt; set of databases into one file, but I like this method better as it makes it really easy to restore individual databases.&amp;nbsp; So, we execute 'show databases' to get a list of all the dbs we need to back up, then we loop through that list dumping each one into it's own gzipped file. Neat!&lt;/p&gt;
&lt;p&gt;Finally, we actually rsync everything away, the directories we wanted at the start and the mysqldump temp directory of to our destination. One crontab entry later and we're happy! Rsync takes care of seeing what has changed where and makes this whole process pretty efficient.&lt;/p&gt;
&lt;p&gt;Happy backupping everyone!&amp;nbsp;&lt;/p&gt;</description>
			<pubDate>Mon, 14 Jan 2008 22:37:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/backup-your-lamp/</guid>
		</item>
		
		<item>
			<title>Zimbra backups are go</title>
			<link>http://hol.net.nz/blog/backups-are-go/</link>
			<description>&lt;p&gt;My Zimbra server's hard drive burnt out the other week while I was on holiday in Nelson. Crap no backups! Luckily I had only recently downgraded from my Network Edition trial to the Open Source edition, which involved backing up the old install. Hence how my &lt;a href=&quot;http://hol.net.nz/blog/zimbra-on-ubuntu/&quot;&gt;Zimbra on Ubuntu tutorial&lt;/a&gt; came about.&lt;/p&gt;
&lt;p&gt;Now that my email is back up and running I don't want the same thing to happen to me again. I consider myself extremely lucky I only lost 2 weeks worth of emails (and it was holidays so not much was there during that time). While the NE has automatic live backups, the FOSS edition doesn't. So, time to get my A into G and build myself a backup script.&lt;/p&gt;
&lt;h2&gt;Stolen from the horses mouth&lt;/h2&gt;
&lt;p&gt;The inspiration for my script came from the &lt;a href=&quot;http://wiki.zimbra.com/index.php?title=Open_Source_Edition_Backup_Procedure&quot;&gt;Zimbra wiki&lt;/a&gt;, so kudoes to those guys who helped out with that. Mine is a bit different, because I didn't set up my LVM with free space available to do snapshots, and fixing that means resizing my root partition, which I'm not in the mood for at the moment. Besides, I really want a backup before I start mucking with my partitions...&lt;/p&gt;
&lt;h2&gt;How it works &lt;/h2&gt;
&lt;p&gt;The methodolgy is quite simple really:&lt;/p&gt;
&lt;ol&gt;&lt;li&gt;Stop Zimbra&lt;/li&gt;
&lt;li&gt;Rsync /opt/zimbra to somewhere on the local harddrive (this is faster and means we can restart Zimbra sooner and receive our emails again)&lt;/li&gt;
&lt;li&gt;Start Zimbra (in the background, so we can keep going with the script)&lt;/li&gt;
&lt;li&gt;Rsync from the local backup to my other server's backup area&lt;/li&gt;
&lt;li&gt;Call it a day and go to bed (its after 3.30am when this runs)&lt;/li&gt;
&lt;/ol&gt;&lt;p&gt;Here is the script in full. You can copy and paste it into a file and make it executable. Only allow root access to this file though, as we don't want other users arbitrarily restarting our precious Zimbra server at all hours of the day do we?&lt;/p&gt;
&lt;p&gt;#!/bin/bash&lt;br/&gt; #&lt;br/&gt; #    Script to backup Zimbra OSS by stopping the service and&lt;br/&gt; #    rsyncing to a destination, then restarting the service&lt;br/&gt; #    This script is partially based on the scripts at &lt;br/&gt; #     http://wiki.zimbra.com/index.php?title=Open_Source_Edition_Backup_Procedure&lt;br/&gt; #&lt;br/&gt; #    Copyright (C) 2008 Al Twohill &lt;br/&gt; #&lt;br/&gt; #    This program is free software; you can redistribute it and/or modify&lt;br/&gt; #    it under the terms of the GNU General Public License version 2 as&lt;br/&gt; #    published by the Free Software Foundation.&lt;br/&gt; #&lt;br/&gt; #    This program is distributed in the hope that it will be useful,&lt;br/&gt; #    but WITHOUT ANY WARRANTY; without even the implied warranty of&lt;br/&gt; #    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the&lt;br/&gt; #    GNU General Public License for more details.&lt;br/&gt; #&lt;br/&gt; #    You should have received a copy of the GNU General Public License&lt;br/&gt; #    along with this program; if not, write to the Free Software&lt;br/&gt; #    Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA&lt;br/&gt; #    Or download it from http://www.gnu.org/licenses/old-licenses/gpl-2.0.html&lt;br/&gt; #### Modify these values as required for your installation&lt;br/&gt; # local dir to backup to while zimbra is stopped&lt;br/&gt; localPath=/opt/backup&lt;br/&gt; # remote directory to backup to (as defined by rsync) (leave blank to skip)&lt;br/&gt; remotePath=zmbackup@sarge::zmbackup/&lt;br/&gt; # password file to use with rsync (leave blank if not required)&lt;br/&gt; passwordFile=/opt/backup-password&lt;br/&gt; # use rysnc verbosely (leave blank to keep it quiet)&lt;br/&gt; V=&lt;br/&gt; #### You shouldn't need to modify below here&lt;br/&gt;&lt;br/&gt; say() {&lt;br/&gt;         MESSAGE_PREFIX=&quot;zimbra backup:&quot;&lt;br/&gt;         MESSAGE=&quot;$1&quot;&lt;br/&gt;         TIMESTAMP=$(date +&quot;%F %T&quot;)&lt;br/&gt;         echo -e &quot;$TIMESTAMP $MESSAGE_PREFIX $MESSAGE&quot;&lt;br/&gt;         logger -t $log_tag -p $log_facility.$log_level &quot;$MESSAGE&quot;&lt;br/&gt;         logger -t $log_tag -p $log_facility_mail.$log_level &quot;$MESSAGE&quot;&lt;br/&gt;         }&lt;br/&gt; error ()  {&lt;br/&gt;         MESSAGE_PREFIX=&quot;zimbra backup:&quot;&lt;br/&gt;         MESSAGE=&quot;$1&quot;&lt;br/&gt;         TIMESTAMP=$(date +&quot;%F %T&quot;)&lt;br/&gt;         echo -e $TIMESTAMP $MESSAGE &amp;gt;&amp;amp;2&lt;br/&gt;         logger -t $log_tag -p $log_facility.$log_level_err &quot;$MESSAGE&quot;&lt;br/&gt;         logger -t $log_tag -p $log_facility_mail.$log_level_err &quot;$MESSAGE&quot;&lt;br/&gt;         exit&lt;br/&gt;         }&lt;br/&gt; say &quot;backup started&quot;&lt;br/&gt; say &quot;stopping the Zimbra services, this may take some time&quot;&lt;br/&gt; /etc/init.d/zimbra stop || error &quot;error stopping Zimbra&quot;&lt;br/&gt; say &quot;rsyncing the snapshot to the local directory $localPath&quot;&lt;br/&gt; rsync -aHk$V --delete /opt/zimbra/ $localPath || &quot;error during local rsync but continuing script&quot;&lt;br/&gt; say &quot;restarting Zimbra in the background&quot;&lt;br/&gt; (/etc/init.d/zimbra start &amp;amp;&amp;amp; say &quot;Zimbra: Services background startup completed&quot;) || error &quot;services background startup FAILED&quot; &amp;amp;&lt;br/&gt; if [[ $remotePath != &quot; ]]&lt;br/&gt;         then say &quot;begining rsync to remote directory&quot;&lt;br/&gt;         rsync -aHk$V  --delete --password-file=$passwordFile $localPath $remotePath&lt;br/&gt; fi&lt;br/&gt; say &quot;finished backup script&quot;&lt;/p&gt;
&lt;p&gt;The main thing you really need to watch out for is doing the remote rsync. If you don't need that, you can just set remotePath to blank and it will skip it, but otherwise you need to make sure that you have the &lt;em&gt;rsync daemon&lt;/em&gt; running on the remote machine. Using the standard rsync over ssh means that you have to enter the password manually, which we don't want to do. We like sleep.&lt;/p&gt;
&lt;h2&gt;Configure that daemon&lt;/h2&gt;
&lt;p&gt;Its really easy to have your daemon going in Ubuntu. First off, create the user you're going to use for your backups. It's good to do this so that if the account gets compromised they can't do anything else, as we give the account bugger all privleges.&lt;/p&gt;
&lt;p&gt;sudo useradd -d /files/backup/zimbra -s /bin/false zmbackup&lt;/p&gt;
&lt;p&gt;The -s /bin/false means this user can't log into a shell in on the server, which is what we want. Now give that user a password.&lt;/p&gt;
&lt;p&gt;sudo passwd zmbackup&lt;/p&gt;
&lt;p&gt;Next, we can create our rsync config files. Create and edit the rsyncd.config file&lt;/p&gt;
&lt;p&gt;sudo nano /etc/rsyncd.conf&lt;/p&gt;
&lt;p&gt;Create your rsync module in there. My /etc/rsyncd.conf looks like this:&lt;/p&gt;
&lt;pre&gt;[zmbackup]&lt;br/&gt;uid = zmbackup&lt;br/&gt;gid = zmbackup&lt;br/&gt;path = /files/backup/zimbra&lt;br/&gt;comment = ZM Backup area&lt;br/&gt;auth users = zmbackup&lt;br/&gt;secrets file = /etc/rsyncd.secrets&lt;br/&gt;readonly = false&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;Really easy actually. It looks a lot like the Samba config file (hmmm, now why could that b? (; )  Basically we just set theh uid and gid's to our backup user, the path to the backup user's home directory (make sure that this user can actually write to this directory), then there is the rsync daemon authentication information. We need to authenticate with rsync's own mechinism to get access to the module. The auth users is just a space delimited list of allowable usernames, then the secrets file holds the login information. Finally we need readonly to be false if we want to write to the thing.&lt;/p&gt;
&lt;p&gt;Next up, create your secrets file.&lt;/p&gt;
&lt;p&gt;sudo nano /etc/rsyncd.secrets&lt;/p&gt;
&lt;p&gt;In this file, you put in the entries for the usernames and passwords you want to allow. Use the format&lt;/p&gt;
&lt;pre&gt;username:password&lt;br/&gt;&lt;/pre&gt;
&lt;p&gt;And put each username on a new line. Finally we want to lock down these files to stop pesky users from snooping at our authentication.&lt;/p&gt;
&lt;p&gt;sudo chown root:root rsyncd.* &amp;amp;&amp;amp; sudo chmod 660 rsyncd.*&lt;/p&gt;
&lt;h2&gt;Get ready to go!&lt;/h2&gt;
&lt;p&gt;We've done all our configuring, lets get the ball rolling! You'll need to enable the rsync daemon service in Ubuntu.&lt;/p&gt;
&lt;p&gt;sudo nano /etc/default/rsync&lt;/p&gt;
&lt;p&gt;Change &quot;RSYNC_ENABLE=false&quot; to &quot;RSYNC_ENABLE=true&quot; then save and close.  Now we can start the service&lt;/p&gt;
&lt;p&gt;sudo /etc/init.d/rsync start&lt;/p&gt;
&lt;p&gt;Now we can do a test run from our Zimbra machine. If that works fine, then set up a crontab to have it go every night, at a time that you don't receive important email. &lt;/p&gt;</description>
			<pubDate>Wed, 09 Jan 2008 18:46:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/backups-are-go/</guid>
		</item>
		
		<item>
			<title>00000080 bytes of pain and suffering</title>
			<link>http://hol.net.nz/blog/00000080-bytes-of-pain/</link>
			<description>&lt;p&gt;My computer has started suffering from BSOD's recently. A memory test reveals that one part of the memory is failing its check by 00000080 each time. Sigh. Luckily Kingston has a lifetime warranty, although I'm probably going to have to deal with a smaller amount of DDR1 while it is being returned to base. Good thing my motherboard supports both DDR1 &amp;amp; 2.&lt;/p&gt;
&lt;p&gt;Still, I'm not that happy. I can't wait till the money from my last website comes through and I can get that new motherboard/cpu/memory combo I've been coverting for the past month. At the moment I'm looking at:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;http://ascent.co.nz/productspecification.aspx?ItemID=356472&quot;&gt;Intel Core 2 Duo E6750 2.67GHz&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ascent.co.nz/productspecification.aspx?ItemID=360518&quot;&gt;Asus P5E Motherboard&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://ascent.co.nz/productspecification.aspx?ItemID=348297&quot;&gt;Kingston HyperX 2GB DDR2&lt;/a&gt;&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Yeah I know its only DDR2 and not DDR3 but DDR3 is so ridiculously expensive!&amp;nbsp; Once I get a bit richer, I'll probably get a twin brother for my &lt;span id=&quot;ctl00_Content_ProductStocks_lblTitle&quot;&gt;&lt;a href=&quot;http://ascent.co.nz/productspecification.aspx?ItemID=361224&quot;&gt;Sapphire HD 3870 Video Card&lt;/a&gt;, and a new screen. I quite like the look of this &lt;a href=&quot;http://ascent.co.nz/productspecification.aspx?ItemID=354129&quot;&gt;AOC 210V&lt;/a&gt;. If anyone has any experience of any of these items I'd be really keen to hear it.&lt;/span&gt;&lt;/p&gt;</description>
			<pubDate>Tue, 08 Jan 2008 22:54:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/00000080-bytes-of-pain/</guid>
		</item>
		
		<item>
			<title>New site layout with dynamic sizing</title>
			<link>http://hol.net.nz/blog/new-site-layout/</link>
			<description>&lt;p&gt;Most designers want their websites to be pixel perfect and look exactly the same across every computer, operating system, and browser possible. Not me! I prefer usability. Introducing my new dynamic layout.&lt;/p&gt;
&lt;p&gt;Pretty much all the positioning is done using &lt;em&gt;ems&lt;/em&gt;, which means it scales nicely depending on the font size you want. I leave the user to set their desired font size in their own browsers, as they are most likely to be familiar with that if they need that function. I only specify a font size in px on body - the rest are percentages of that. This stops the browsers from doing weird things with my pre and code blocks, and puts browsers on an even footing to begin with. Try resizing your font - in most browsers you can hold CTRL and scroll your mousewheel to do this. IE7 seems to do it's own funny zooming so if you make the font smaller the background doesn't stick to the bottom of the window, but all the other browsers behave.&lt;/p&gt;
&lt;p&gt;Unfortunately IE6 buggers up this styling quite badly, especially with the transparent PNG I use to create my background effect. Oh well, I'm not that worried about IE6 to be perfectly honest. I'd like them to realise that they're using a crappy browser, while still be able to access the content so with a bit of clever conditional commenting I have hidden my stylesheets from &lt;a href=&quot;http://jedi.org/p4/l10n/infobar/&quot;&gt;no-IE information bar&lt;/a&gt;. Go on, view my site in IE6 - I dare you! (Its actually a good way to see how this site layout shows without css, how Google would see it. Notice the content at the top, and the menu at the bottom?).&lt;/p&gt;
&lt;p&gt;For those folk who have the decency to not have IE6 on their computer, here is a screenshot you can mock:&lt;br /&gt; &lt;img style=&quot;width: 40em;&quot; src=&quot;http://hol.net.nz/assets/images/suck-it-ie6.jpg&quot; alt=&quot;IE6 view&quot; /&gt;&lt;/p&gt;
&lt;p&gt;Also, largely as a result of deciding to not continue styled support for IE6, this site is now valid XHTML 1.1 with no CSS hacks. Click on the links in the footer to test this.&lt;/p&gt;</description>
			<pubDate>Tue, 08 Jan 2008 22:47:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/new-site-layout/</guid>
		</item>
		
		<item>
			<title>Installing Kubuntu with fakeraid</title>
			<link>http://hol.net.nz/blog/kubuntu-with-fakeraid/</link>
			<description>&lt;p&gt;&lt;em&gt;Updated! This page now reflects Kubuntu Hardy Heron (8.04 LTS)&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;There's a few howto's about the net that detail how to install Ubuntu with fakeraid but this one focuses on Kubuntu. Unfortunately its a bit of extra work installing *buntu with fakeraid, and it involves stepping into the terminal. Don't worry, I make it fairly clear what you need to do, but if you don't feel up to it you may find it easier to simply install Kubuntu onto it's own hard drive.&lt;/p&gt;
&lt;p&gt;Information in this guide came from three locations:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;&lt;a href=&quot;https://help.ubuntu.com/community/FakeRaidHowto&quot;&gt;https://help.ubuntu.com/community/FakeRaidHowto&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;&lt;a href=&quot;http://wiki.eyermonkey.com/My_Ubuntu_%287.10%29_Installation&quot;&gt;http://wiki.eyermonkey.com/My_Ubuntu_%287.10%29_Installation&lt;/a&gt;&lt;/li&gt;
&lt;li&gt;and my own trial-and-error&amp;nbsp;&lt;/li&gt;
&lt;/ul&gt;
&lt;h2&gt;System specs&lt;/h2&gt;
&lt;p&gt;My PC is in the middle of an upgrade at the moment, but my new motherboard and harddrives have arrived so the rest of the hardware won't affect my install. Here are the current specs:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;CPU: Intel Dual Core E8400 @ 3.00 GHz&lt;/li&gt;
&lt;li&gt;Motherboard: Asus P5E (Intel X38 Northbridge/ ICH9R Southbridge)&lt;/li&gt;
&lt;li&gt;Memory: 2 GB DDR2-1200&lt;/li&gt;
&lt;li&gt;Video: Gigabyte ATi Radeon HD 3870 + Sapphire ATi Radeon HD 3870 &lt;/li&gt;
&lt;li&gt;Storage: 2x Seagate 320GB SATA2 HDD w/ 16mb cache&lt;/li&gt;
&lt;li&gt;Sound: Creative X-FI Extreme Music &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;The ICH9R gives us the Intel Matrix raid (well, fakeraid). I have my two harddrives configured in RAID0 (striping) as this is my gaming/development machine and I care more about speed and space than redundancy. I don't think it really matters in the end which raid style you choose, the setup process is the same.&lt;/p&gt;
&lt;p&gt;I've already installed Windows Vista (good ol' Technet, otherwise it would still be XP) on the machine, with the C: drive taking up 100GB and D: taking 300GB. That leaves about 200GB for Kubuntu, which is roughly 10x more than I really need. Oh well, I'll get over it ;)&amp;nbsp;&lt;/p&gt;
&lt;h2&gt;Getting started&lt;/h2&gt;
&lt;p&gt;First, we need a Kubuntu CD. Check &lt;a href=&quot;http://www.kubuntu.org/download.php&quot;&gt;here &lt;/a&gt;for the latest and greatest distro out. Download that badboy and burn it onto a disc. Start up the computer and put the disc in. If the boot menu doesn't show you might need to adjust your BIOS settings. Check your manual. When the boot menu does come up, select&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Run Kubuntu without affecting your computer&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and let it boot up. The *buntu Gutsy Gibbon blank screen problem seems to have been resolved, but if your screen goes into standby, try pressing Esc a couple of times. You'll either land on the desktop, or have a terminal screen showing the boot process. If you have the desktop, well done go to the next step. Otherwise, from the terminal screen hold down ALT and press F2. This will give you a terminal prompt. From here, type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;startx&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;and press Enter. This should take you to the desktop and we're ready to proceed. Note that this is a Live environment so you can surf the web, listen to music etc from here on in. Much better than the Windows install ;)&lt;/p&gt;
&lt;h2&gt;Getting our RAID on&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;If you were to go ahead and install now you would run into trouble when you choose where to install. Rather than our single raid device, you'd see two harddrives. This is because Linux has a much greater knowledge of hardware than Windows. Windows needed a special driver disk just to be able to detect that the disks were there! Nevertheless, we want to be able to share our raid with Windows so that we can see the files on there and vice versa.&lt;/p&gt;
&lt;p&gt;First up we need to enable the extra repos. Go to K-&amp;gt;System-&amp;gt;Adept Manager, and choose Adept-&amp;gt;Manage Repositories. On the first tab there, check the two boxes that aren't already checked (universe and multiverse). Reload when prompted. It might take a wee while. Once thats done, type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;dmraid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;into the search field of Adept. It should show up in the list below. Select it, and click &quot;Request Install&quot;. Click &quot;Apply Changes&quot; and wait. This will install (temporarily) the software we need to see our raid device.&lt;/p&gt;
&lt;p&gt;Once thats done, check that Kubuntu has found your raid. Open up Konsole and run&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls /dev/mapper&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You should see &quot;control&quot; plus some other entries. The format of the other entries are chipset_raidID_raidName. Then if you've already got some partitions in the raid they will be listed too. For instance, I get&lt;/p&gt;
&lt;pre&gt;control isw_bbjehfheah_GRIF isw_bbjehfeah_GRIF1 isw_bbjehfheah_GRIF2
&lt;/pre&gt;
&lt;p&gt;So in this instance, &quot;isw&quot; is the chipset, &quot;bbjehfheah&quot; is the raid ID, and &quot;GRIF&quot; is the name I gave to the raid set in the BIOS setup. The last two entries are my Windows C: and D: partitions already set up in the raid.&lt;/p&gt;
&lt;p&gt;The current GUI tools don't work very well with fakeraid, so we have to use the command line. No fear! Its actually pretty easy. First up, we create our partitions.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo fdisk /dev/mapper/isw_bbjehfheah_GRIF&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;(obviously replace the last bit with what your entry).&amp;nbsp;&lt;/p&gt;
&lt;p&gt;Type 'p' and press enter to give you information about your partitions. For instance, I get&lt;/p&gt;
&lt;pre&gt;Disk /dev/mapper/isw_bbjehfheah_GRIF: 640.1 GB, 640141230090 bytes
....
....
Device  Boot    Start          End            Blocks   Id  System
/dev/mapper/isw_bbjehfheah_GRIF1    *            1      13054    104856223+   7  HPFS/NTFS
/dev/mapper/isw_bbjehfheah_GRIF2           13055      52115    313757482+   7  HPFS/NTFS
&lt;/pre&gt;
&lt;p&gt;This confirms that we're looking at a 640 GB array with two NTFS partitions already on it. All good.&lt;/p&gt;
&lt;p&gt;I've got 200GB to play with, so I'm going to lay it out as follows:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;512M for swap&lt;/li&gt;
&lt;li&gt;50GB for /home&lt;/li&gt;
&lt;li&gt;100GB for /&lt;/li&gt;
&lt;li&gt;The rest I will leave for future use &lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;You don't need to have a separate partition for /home, but I think it would be handy for my preferences and documents to survive reinstalls. At minimum you need a swap partition of around 512mb, plus a root (/) partition.&lt;/p&gt;
&lt;p&gt;Because hard disks can only have four primary partitons and I've already used two with my Windows install, we have to put the swap and the /home inside an extended partition. No matter, lets do it.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;n&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;For a new partition. Then&lt;/p&gt;
&lt;p&gt;&lt;code&gt;p&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;to choose a Primary partition.&amp;nbsp; We then choose partition number 3. (Don't forget to adjust these values to suit your own needs. If you don't have Windows you can just create each partition as a primary, starting from 1.&lt;/p&gt;
&lt;p&gt;For our First cylinder, just leave as default (press enter). For last cylinder, enter&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+102400M&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;to create a 100GB partition (100 x 1024). It doesn't have to be exactly that, you can just enter, say +100000M if you like then fill up the extra space with the last drive.&lt;/p&gt;
&lt;p&gt;Create the extended partition. Choose 'n', then 'e'. Choose the next partition number if you need to. Keep the defaults for both the start and end values. Remember, the extended partition is just a container for real partitions that allows us to go over the four partition limit.&lt;/p&gt;
&lt;p&gt;Now type 'n' again to create a new logical partition in that extended one. Leave the first cylinder as default,&amp;nbsp; and use&lt;/p&gt;
&lt;p&gt;&lt;code&gt;+51200M&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;As the end size. Lastly, we need to create our swap space. Same process: type 'n', press Enter, then '+512M'.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;The last step we need to do in fdisk is set the swap partition type. Type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;t&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then choose the swap partition. In my case it is&lt;/p&gt;
&lt;p&gt;&lt;code&gt;6&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then enter the hex code for the swap type&lt;/p&gt;
&lt;p&gt;&lt;code&gt;82&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;You can check your partion layout by typing p. You should get something like this:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;Command (m for help): p &lt;br /&gt; Disk /dev/mapper/isw_bbjehfheah_GRIF: 640.1 GB, 640141230080 bytes &lt;br /&gt; 255 heads, 63 sectors/track, 77826 cylinders &lt;br /&gt; Units = cylinders of 16065 * 512 = 8225280 bytes &lt;br /&gt; Disk identifier: 0xf83df83d &lt;br /&gt; &amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; Device Boot      Start&amp;nbsp;&amp;nbsp;&amp;nbsp; End&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      Blocks&amp;nbsp;   Id&amp;nbsp;  System &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF1   *&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;           1&amp;nbsp;       13054   104856223+ &amp;nbsp;   7&amp;nbsp;  HPFS/NTFS &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 13055&amp;nbsp;       52115   313757482+ &amp;nbsp;   7&amp;nbsp;  HPFS/NTFS &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF3&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;           52116&amp;nbsp;       64565   100004625&amp;nbsp;&amp;nbsp;   83&amp;nbsp;  Linux &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;           64566&amp;nbsp;       77826   106518982+ &amp;nbsp;   5&amp;nbsp;  Extended &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF5&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;           64566&amp;nbsp;       70791&amp;nbsp;    50010313+&amp;nbsp;  83&amp;nbsp;  Linux &lt;br /&gt; /dev/mapper/isw_bbjehfheah_GRIF6&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 70792&amp;nbsp;       70854&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;      506016&amp;nbsp;   82&amp;nbsp;  Linux swap / Solaris &lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now we simply 'w'rite the partition to disk and exit.&amp;nbsp; You might get a message saying &quot;WARNING: Re-reading the partition table failed&quot; - this wasn't a problem in Gutsy, but it did affect me. Check if your extra partitons have been created by running&lt;/p&gt;
&lt;p&gt;&lt;code&gt;ls /dev/mapper&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;again. If like me, they didn't show up you will need to reboot your computer, install dmraid again, then continue on to the next step. (Annoying I know!)&lt;/p&gt;
&lt;p&gt;Next, we need to format our / and /home partitions.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo mkfs -t ext3 /dev/mapper/isw_bbjehfheah_GRIF3&lt;br /&gt; sudo mkfs -t ext3 /dev/mapper/isw_bbjehfheah_GRIF5&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Then format and activate the swap:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo mkswap /dev/mapper/isw_bbjehfheah_GRIF6&lt;br /&gt; sudo swapon /dev/mapper/isw_bbjehfheah_GRIF6&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Do the install, yeah!&amp;nbsp;&lt;/h2&gt;
&lt;p&gt;We can close the terminal for now and go back to the GUI. Click on the Install icon on the desktop. Choose your language, then your location. Next, choose your keyboard layout. Use the default unless you have reason not to (for instance, I prefer the Dvorak layout, thanks to &lt;a href=&quot;http://dvzine.org/&quot;&gt;this zine&lt;/a&gt;). Choose Manual partitioning.&lt;/p&gt;
&lt;p&gt;Here you will see all your partitions listed out twice. The first lot is just under /dev/mapper/isw_bbjehfheah_GRIF, while the second lot have the numbers at the end. You'll also notice that the first lot have 'unknown' as their used amount, while the others have real values. With Hardy you only need to fix the swap partiton, with previous versions you have to fix all of them. Right click on the partition, click 'Edit Partition', and change Use as to &quot;dontuse&quot;.&lt;/p&gt;
&lt;p&gt;Now go through and sort out the real partitions. You want to edit the lines that are tabbed slightly (they already have guessed values). Change _GRIF3's mount point to '/' and check the format? box., and change&amp;nbsp; _GRIF5's mount point to '/home'. You can check the format? box for /home too if you really like.&amp;nbsp; Click next, and fill in your personal details. Click next, and the installer will give you the summary of the settings you chose. Make sure that they are correct, then click Install.&lt;/p&gt;
&lt;p&gt;Go grab yourself a beer, you deserve it (and this bit takes a while). Because its a live cd, you might have noticed that the installer is just an ordinary program, which means you can run other programs as well as the installer, like the Konqueror internet browser. So at least you can keep yourself occupied.&lt;/p&gt;
&lt;p&gt;Previus kubuntu's would stop around about the 94-95% mark, with a message saying &quot;Executing 'grub-install (hd0)' failed. This is a fatal error&quot;. Hardy doesn't do that, but it is just hiding the error for some odd reason. Click Ok if it appears, and finish the install. Don't restart now, we still have to fix grub. Grub is the boot loader that lets us a) load linux, and b) choose other operating systems to load, so it's kind of important&lt;/p&gt;
&lt;p&gt;Because the OS is running off the cd at the moment, we need to translate that into our newly installed system. Open up Konsole again, and enter the following&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo mount --bind /dev /target/dev&lt;br /&gt; sudo mount -t sysfs sysfs /target/sys&lt;br /&gt; sudo mount --bind /proc /target/proc&lt;br /&gt; sudo cp /etc/apt/sources.list /target/etc/apt&lt;br /&gt; sudo cp /etc/resolv.conf /target/etc&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now that the target system is prepped, we can 'chroot' into it&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo chroot /target&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;We need to install our raid install into our new system.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;apt-get update &amp;amp;&amp;amp; apt-get install dmraid&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Copy the grub files into place&lt;/p&gt;
&lt;p&gt;&lt;code&gt;cp /usr/lib/grub/i386-pc/* /boot/grub&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now we're ready to do the grub setup.&amp;nbsp;&lt;/p&gt;
&lt;p&gt;&lt;code&gt;grub&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Let grub know where our hard drive is:&lt;/p&gt;
&lt;p&gt;&lt;code&gt;device (hd0) /dev/mapper/isw_bbjehfheah_GRIF&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now if you run&lt;/p&gt;
&lt;p&gt;&lt;code&gt;find /boot/grub/stage1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;you should see&lt;/p&gt;
&lt;pre&gt; (hd0,2)
&lt;/pre&gt;
&lt;p&gt;or something similar. Use that result in place of the next few commands.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;root (hd0,2)&lt;br /&gt; setup (hd0)&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;It should say succeeded near the end of the output after doing the 'setup' line. If it didn't, try again and make sure you set the device right, and use the correct root. Once you're done, you can exit grub by typing&lt;/p&gt;
&lt;p&gt;&lt;code&gt;quit&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now that the boot loader is installed, lets configure it how we like it.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;&amp;nbsp;update-grub&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Answer 'y' if it asks you to generate the menu.lst file for you. Next we edit that file to our liking. Be carefull doing this, as this file contains the information needed for Linux (and Windows if installed) to boot.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /boot/grub/menu.lst&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Go through that file and change any occurances of (hd0,0) to what you set as root before. In my case this is (hd0,2). If you have Windows installed you'll want to add a boot stanza for that too. Scroll down to below where it says &quot;### END DEBIAN AUTOMAGIC KERNELS LIST&quot; and put in the following&lt;/p&gt;
&lt;p&gt;&lt;code&gt;title Windows XP&lt;br /&gt; rootnoverify (hd0,0)&lt;br /&gt; chainloader +1&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Change the (hd0,0) if Windows isn't on the first partition. You'll also need to comment out the line that says 'hiddenmenu' and you might want to change the timeout to be more than 3 seconds. Type CTRL-X to save and exit, then restart the computer with your fingers crossed. You may also want to pull out the cd before it tries to boot again.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;shutdown -r now&lt;/code&gt;&lt;/p&gt;
&lt;h2&gt;Just about done....&lt;br /&gt;&lt;/h2&gt;
&lt;p&gt;When it starts back up you should get the boot menu allowing you to choose Linux or Windows. Yay! Boot up into Linux and lets do get this thing ready. Remove the cdrom from the update sources to stop being prompted to insert the cd to install software. You can do this by editing /etc/apt/sources.list, or going K-&amp;gt;System-&amp;gt;Adept Manager, then selecting Adept-&amp;gt;Manage Repositories-&amp;gt;Third-Party Software, and unchecking the cdrom line&lt;/p&gt;
&lt;p&gt;Now you can either update using the update-manager, or running&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo apt-get update &amp;amp;&amp;amp; sudo apt-get dist-upgrade&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;We want to be able to access our windows partitions so lets create some mount points for them. If I have only one partition, I just put it as /windows. If I have more than one, I generally use /windows/c and /windows/d etc.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo mkdir -p /windows/c&lt;br /&gt; sudo mkdir /windows/d&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now we are going to edit the fstab file, which is another critical file. It tells Linux where to find it's file systems, so if you botch it up you'll have to reload from the Live CD. Take a backup of it if you're not totally confident with this file.&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo cp /etc/fstab /etc/fstab.bak&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;Now we can edit this file and add our mount lines to the bottom&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo nano /etc/fstab&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;The lines I've added look like this&lt;/p&gt;
&lt;pre&gt;/dev/mapper/isw_bbjehfheah_GRIF1   /windows/c    ntfs   defaults,rw   0   0
/dev/mapper/isw_bbjehfheah_GRIF2   /windows/d    ntfs   defaults,rw   0   0
&lt;/pre&gt;
&lt;p&gt;Adjust yours as needed. Save the file then run&lt;/p&gt;
&lt;p&gt;&lt;code&gt;sudo mount -a&lt;/code&gt;&lt;/p&gt;
&lt;p&gt;&amp;nbsp;&lt;strong&gt;IF YOU GET ANY ERRORS RUNNING THIS COMMAND RESTORE YOUR BACKUP FSTAB AND TRY AGAIN. &lt;/strong&gt;There should be no output from the command if the file is correct. Afterwards you can see if it has correctly mounted the Windows file systems by browsing to the /windows folders.&lt;/p&gt;
&lt;h2&gt;And we're done!&lt;/h2&gt;
&lt;p&gt;Congratulations! From here you should have a working installation and be able to see your windows files. Nice work. If you struggled with any of this or have ideas for improvement of this tutorial, feel free to leave a comment on the right side of this page.&lt;/p&gt;</description>
			<pubDate>Mon, 07 Jan 2008 23:57:00 +1300</pubDate>
			
			
			<guid>http://hol.net.nz/blog/kubuntu-with-fakeraid/</guid>
		</item>
		

	</channel>
</rss>