<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>wekadesign &#187; mysql</title>
	<atom:link href="http://www.wekadesign.co.nz/tag/mysql/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.wekadesign.co.nz</link>
	<description>web apps that solve problems</description>
	<lastBuildDate>Sun, 20 Jun 2010 04:08:13 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>MySQL Replication on Ubuntu with DRBD</title>
		<link>http://www.wekadesign.co.nz/2010/01/15/mysql-replication-on-ubuntu-with-drbd/</link>
		<comments>http://www.wekadesign.co.nz/2010/01/15/mysql-replication-on-ubuntu-with-drbd/#comments</comments>
		<pubDate>Thu, 14 Jan 2010 21:45:31 +0000</pubDate>
		<dc:creator>Mike McMurray</dc:creator>
				<category><![CDATA[Sys Admin]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[drbd]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[replication]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.wekadesign.co.nz/blog/?p=81</guid>
		<description><![CDATA[I&#8217;ve been looking around for some easy and open-source ways to handle database replication for a handful of small but important MySQL databases. A few options were viable but usually included too many config changes for things like creating a new database. DRDB on a Linux server seems to be one of the fastest and [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been looking around for some easy and open-source ways to handle database replication for a handful of small but important MySQL databases. A few options were viable but usually included too many config changes for things like creating a new database. <a href="http://www.drbd.org" target="_blank">DRDB</a> on a Linux server seems to be one of the fastest and easiest methods to handle database synchronisation for DR purposes, so this is the subject of this post. The content is a combination of two main sources from <a href="http://marksitblog.blogspot.com/2007/07/mysql-5-high-availability-with-drbd-8.html" target="_blank">Mark Schoonover</a> and the <a href="https://help.ubuntu.com/9.04/serverguide/C/drbd.html" target="_blank">Ubuntu server guide</a> and the gotchas I found along the way.</p>
<p>This post will show you how to create two MySQL servers that automatically replicate all their databases using DRBD. With Heartbeat installed on a third machine you&#8217;ll have basic fail over protection as well (we&#8217;ll do this in another post). Only one of the database servers will be active at any one time.<span id="more-81"></span></p>
<p>To follow along exactly, you&#8217;ll need the following items set up or readily at hand:</p>
<ul>
<li>VMware Server or ESXi, etc to host the virtual machines we use. You could just as easily use physical machines if you have the hardware lying around.</li>
<li>Ubuntu 9.04 server &#8211; other versions or distros should work just as well but you may have to make some changes to the steps as you go through.</li>
<li>Some basic skills in cmd-line usage of Ubuntu and MySQL.</li>
<li>Being Ubuntu we&#8217;re using a whole heap of <em>sudo</em> prefixed commands here. If you want to drop them out, you can switch to a root session with <em>sudo -s</em>.</li>
</ul>
<p>Start things off by creating a virtual machine<em> </em> with 512MB RAM and two 2GB disks attached. One disk will be for the OS and one will be used as the data location for MySQL. You can change the RAM or disk sizes as you like but we will be duplicating this machine so don&#8217;t use up all your RAM and disk space with the first one.</p>
<p>Install Ubuntu 9.04 server onto this machine and name it <em>node0</em> (that&#8217;s n-o-d-e-zero if the font isn&#8217;t clear). Just use one of the disks for the OS and don&#8217;t format or prepare the second one yet. You can also leave out the LAMP and other installation packages for now as we&#8217;ll grab what we need later.</p>
<p>Once the install is complete, reboot the node0 server, login, run a package update and install MySQL and DRBD with,</p>
<pre>sudo apt-get update
sudo apt-get upgrade
sudo apt-get install mysql-server mysql-client drbd8-utils heartbeat</pre>
<p>You&#8217;ll have to download roughly 45MB of packages for those four items and the extras that come with them.</p>
<p>You now have one server configured with the software we need to do the rest. Depending on your luck, you now have two options for creating the node1 virtual machine.</p>
<h3><strong>1. Duplicate the Virtual machine in VMware</strong></h3>
<p>To make things easy, we&#8217;ll simply copy the<em> node0</em> machine in VMware to create our <em>node1</em>. Make sure you shutdown the <em>node0</em> machine in VMware and (assuming your VMware server host is Ubuntu too) open up a cmd prompt and run,</p>
<pre>cd /var/lib/vmware/Virtual\ Machines
sudo cp -r node0 node1</pre>
<p>Once that&#8217;s completed, you should be able to open the <em>node0.vmx</em> file that&#8217;s in the new node1 folder using VMware console. VMware will add the &#8216;new&#8217; virtual machine to it&#8217;s inventory and you&#8217;ll probably have to rename it as VMware will have kept the same <em>node0</em> name.</p>
<p>Start up your new node1 machine and watch for VMware to prompt you about the machine ID. You&#8217;ll need to say you copied the VM to create a new virtual machine ID in VMware.</p>
<p>Log in to node1 and change the server name in /etc/hostname and /etc/hosts files, so the two servers don&#8217;t get confused over their identities. Shutdown node1 for the changes to take effect. While the server is offline, edit it&#8217;s VMware configuration to remove the NIC and then re-add it. You need to do this to keep the virtual networking in VMware happy.</p>
<p>Depending on how you network is configured, it may be a good idea to set both servers to have static IP addresses. If you don&#8217;t want to do this, make sure you know their IPs and add them to the &#8220;other&#8221; server&#8217;s /etc/hosts file. This will mean that <em>node0</em> can reach<em> node1</em> by it&#8217;s DNS name and vice versa. Test it&#8217;s all working with a ping from each machine to the other.</p>
<h3><strong>2. Repeat the Ubuntu Installation</strong></h3>
<p>OK, so maybe your virtual machine just didn&#8217;t want to be duplicated like mine. If so, just create a new VMware guest config with the same settings as the first and install Ubuntu server the same way.</p>
<h3><strong>3. Disk Configuration</strong></h3>
<p>Now that we have our two node servers configured and the required apps installed, let&#8217;s practice safe-virtualisation by taking a VMware snapshot of both servers. Then if it all blows up in the next few steps, at least we&#8217;ll have something to go back to.</p>
<p>Let&#8217;s create a new disk partition on that extra virtual hard disk we added to both our machines. On both<em> node0</em> and <em>node1</em> use fdisk to add a Linux type 83 partition.</p>
<pre>sudo fdisk /dev/sdb</pre>
<p>Press p to make sure you have the right disk and there are no current partitions. Press n and create a primary partition with the ID of 1, accept the other default options. Press w to save the changes and exit fdisk.</p>
<h3><strong>4. Configure DRBD</strong></h3>
<p>We can now configure DRBD to use this empty partition space we&#8217;ve created. Like many other Linux apps we need to set up DRBD by editing a config file &#8211; <em>/etc/drbd.conf</em></p>
<p>On <em>node0</em>, make your <em>drbd.conf</em> file look something like the file linked below. There are plenty a massive number of other settings and comments but these are the key ones &#8211; assuming you&#8217;ve used the same disk names as above and apply your own network addresses. My server IPs were node0:192.168.0.17 and node1:192.168.0.18 so replace those with your information. Take your time to read through at least some of this file as other things like disconnects on failures may come in handy.</p>
<p><a href="http://www.wekadesign.co.nz/blog/wp-content/uploads/2010/01/drbd.txt">drbd.conf</a></p>
<p>From <em>node0</em>, copy that <em>drbd.conf</em> file to your home directory (~) on <em>node1</em> using the scp command,</p>
<pre>sudo scp /etc/drbd.conf node1:~</pre>
<p>You&#8217;ll have to accept the RSA key for<em> node1</em> if you haven&#8217;t SSH&#8217;d between those servers yet.</p>
<p>And on <em>node1</em> we need to move that file to the correct place,</p>
<pre>sudo mv ~/drbd.conf /etc/</pre>
<p>DRBD will now start, but we need to prepare the partition we created earlier so that DRBD can use it. Turn off <em>node1</em> and on <em>node0</em> do this,</p>
<pre>sudo drbdadm create-md mysql</pre>
<p>Restart <em>node0</em> and log back in again. Typing &#8216;yes&#8217; to DRBD&#8217;s timeout will speed things up. You&#8217;ll see some warnings about using the &#8216;drbd-peer-outdater&#8217; in a mode where something else needs root privileges. Just ignore that for now and we&#8217;ll make those changes later.</p>
<p>Run <em>cat /proc/drbd</em> on <em>node0</em> to have a look at the messages logged when drbd started up. We can see that <em>node0</em> is in an unknown state as it can&#8217;t see what&#8217;s happening on <em>node1</em> properly. So lets sort out <em>node1</em>.</p>
<p>On <em>node1</em> create the drbd file system just like a couple of minutes ago,</p>
<pre>sudo drbdadm create-md mysql</pre>
<p>And restart DRBD on node1 to make sure it&#8217;s using that new data,</p>
<pre>sudo /etc/init.d/drbd restart</pre>
<p>Run <em>cat /proc/drbd</em> again to check the status on both <em>node0</em> and <em>node1</em> and you should see that they are both connected and set as secondary with an inconsistent status. If you don&#8217;t see that then give both nodes a reboot and try again. If you still don&#8217;t see that output, start back tracking and check the previous steps.</p>
<p>At this stage both nodes are essentially looking at each other but don&#8217;t know who is the primary so they&#8217;re not going to do anything. By running the following command on <em>node0</em> you make that machine the primary and data will start to be replicated straight away.</p>
<pre>sudo drbdadm -- --overwrite-data-of-peer primary mysql</pre>
<p>You can either use <em>cat /proc/drbd</em> or <em>watch -n1 cat /proc/drbd</em> to view the status of the replication as it happens. This may take some time, even for the relatively small 2GB of empty space we are using, as DRBD will replicate every block in the device /dev/mysql. Between the VMs on an old P4 with a PATA disk I was seeing about 2.8 MB/s.</p>
<p>When you ran that command to set the primary, you probably got some messages about the heartbeat program requiring root privileges to run drbdsetup and drbdmeta. Do that now to get rid of those warnings.</p>
<pre>sudo chgrp haclient /sbin/drbdsetup
sudo chmod o-x /sbin/drbdsetup
sudo chmod u+s /sbin/drbdsetup
sudo chgrp haclient /sbin/drbdmeta
sudo chmod o-x /sbin/drbdmeta
sudo chmod u+s /sbin/drbdmeta</pre>
<h3>Prepare, Mount &amp; Test the DRBD Device</h3>
<p>Now although we have our two nodes talking and set as primary and secondary, the disk space is not formatted or mounted for any apps (i.e. MySQL) to use. So we first format our <em>/dev/drbd0</em> device with ext3 and a nice filesystem label.</p>
<pre>sudo mkfs.ext3 -L mysql /dev/drbd0</pre>
<p>Then we create the mount point on <em>node0</em> and mount the new filesystem. Whatever gets dropped into <em>/mnt/mysql</em> will magically be synchronised from the primary node to the secondary.</p>
<pre>sudo mkdir /mnt/mysql
sudo mount /dev/drbd0 /mnt/mysql</pre>
<p>To test our new setup copy some files and folders into <em>/mnt/mysql</em> and unmount the DRBD device. We then switch the primary <em>node0</em> to be the secondary and jump onto the <em>node1</em> server.</p>
<pre>sudo cp -r ~ /mnt/mysql
sudo umount /mnt/mysql
sudo drbdadm secondary mysql</pre>
<p>Now move to the <em>node1</em> server and create the same mount point, mount our DRBD device and we&#8217;ll see what&#8217;s inside.</p>
<pre>sudo mkdir /mnt/mysql
sudo mount /dev/drbd0 /mnt/mysql</pre>
<p>Like magic you should now see that same data you copied on <em>node0</em>, has appeared in the same device on <em>node1</em>.</p>
<p>Now switch the roles back again so <em>node0</em> is the primary and <em>node1</em> is the secondary, and delete the test data in <em>/mnt/mysql</em>.</p>
<h3>Configure MySQL</h3>
<p>The core settings for MySQL is in a file called /etc/mysql/<em>my.cnf</em> and it&#8217;s this file that we are going to edit to tell MySQL to use our DRBD device to store it&#8217;s databases, indexes and logs.</p>
<p>At this point it&#8217;s <strong>very important</strong> that you do not have any MySQL databases already running on <em>node0</em> or <em>node1</em> &#8211; none that you want to keep anyway. Let&#8217;s stop the MySQL server and backup our original MySQL settings so we can then make changes on <em>node0</em>.</p>
<pre>sudo /etc/init.d/mysql stop
cd /etc/mysql
sudo cp my.cnf myold.cnf</pre>
<p>Open up the <em>my.cnf</em> file in your favorite text editor like vi or nano, and change the datadir option as below. If you have logging enabled, or will at some point, you may want to synchronise the log files as well. For more information on other options in this file see the <a href="http://dev.mysql.com/doc/refman/5.1/en/option-files.html" target="_blank">MySQL documentation</a>.</p>
<pre>datadir = /mnt/mysql/data</pre>
<p>Save <em>my.cnf</em> and make the same changes on <em>node1</em>. We have to repeat this as these files aren&#8217;t in out replicating DRBD device.</p>
<p>Run the following commands to set the correct permissions on the new location and also update the AppArmor settings to allow access. This is important else the <em>mysql</em> user and group will not be able to access the new directory properly and you will get errors. Trying to restart the MySQL daemon at the moment will fail.</p>
<pre>sudo chown -R mysql:mysql /mnt/mysql
sudo nano /etc/apparmor.d/usr.sbin.mysqld</pre>
<p>On the bottom of the list of locations, add the following (within the curly closing bracket } ),</p>
<pre>/mnt/mysql/data/ r,
/mnt/mysql/data/** rwk,</pre>
<p>Restart AppArmor to pick up the new locations for MySQL,</p>
<pre>sudo /etc/init.d/apparmor restart</pre>
<p>Make the same changes to AppArmor on <em>node1</em> &#8211; again these changes are server based and not automatically replicated.</p>
<p>We should try and move the previous databases into the new location with the following commands. Repeat the first copy command for any other databases you might have. (That <em>mysql</em> directory we&#8217;re copying first is the MySQL system database.)</p>
<pre>sudo cp -r /var/lib/mysql/mysql /mnt/mysql/data/
...
sudo chown -R mysql:mysql /mnt/mysql/data/*</pre>
<p>The last thing to do is restart MySQL and check it&#8217;s working.</p>
<pre>sudo /etc/init.d/mysql start</pre>
<p>If this gives permission errors about the <em>debian-sys-maint</em> user, check your permissions and/or restart the server. Restarting MySQL might not be enough.</p>
<p>Connect to mysql as the <em>root</em> user and let&#8217;s just create a new database and table to test things before we do another manual fail-over to <em>node1</em>.</p>
<pre>mysql -u root -p
create database drbdtest;
use drbdtest;
create table users (id INTEGER(9), name VARCHAR(255));
exit;</pre>
<p>You can now see your new database files in <em>/mnt/mysql/data/drbdtest</em>. So we fail-over from <em>node0</em> to <em>node1</em> again, just for practice. <strong>We must stop the mysql server before we unmount the DRBD device</strong> else very bad things may happen.</p>
<pre>sudo /etc/init.d/mysql stop
sudo umount /mnt/mysql
sudo drbdadm secondary mysql</pre>
<p>and over on <em>node1</em> . . .</p>
<pre>sudo drbdadm primary mysql</pre>
<p>And check those database files are there with the mysql client or looking in <em>/mnt/mysql/data/drbdtest.</em></p>
<h3>Conclusion</h3>
<p>So we can see that this will save us (with some manual intervention), when our MySQL storage falls over. But wouldn&#8217;t it be nice if there was an automated way to make this happen? See the next article on using Heartbeat to make this happen.</p>
<h3>Potential Issues</h3>
<p>If you try and mount <em>/dev/drbd0</em> and get an error about the device being read-only, check that the DRBD node you&#8217;re on is in the correct mode i.e. primary or secondary.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wekadesign.co.nz/2010/01/15/mysql-replication-on-ubuntu-with-drbd/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Installing a Windows Dev Box</title>
		<link>http://www.wekadesign.co.nz/2006/05/14/installing-a-windows-dev-box/</link>
		<comments>http://www.wekadesign.co.nz/2006/05/14/installing-a-windows-dev-box/#comments</comments>
		<pubDate>Sun, 14 May 2006 05:46:24 +0000</pubDate>
		<dc:creator>Mike McMurray</dc:creator>
				<category><![CDATA[Sys Admin]]></category>
		<category><![CDATA[Web Apps]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[how-to]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[subversion]]></category>

		<guid isPermaLink="false">http://wekadesign.co.nz/blog/?p=17</guid>
		<description><![CDATA[In the interest of saving this for future reference, here&#8217;s is a general how-to for installing a Windows based Web development server. The reason for running up a Windows server as opposed to the typical LAMP alternative on Windows was due to frustration. The older Ubuntu server I had just made it very difficult to [...]]]></description>
			<content:encoded><![CDATA[<p>In the interest of saving this for future reference, here&#8217;s is a general how-to for installing a Windows based Web development server.</p>
<p>The reason for running up a Windows server as opposed to the typical LAMP alternative on Windows was due to frustration. The older Ubuntu server I had just made it very difficult to install the versions of PHP and MySQL that I wanted.</p>
<p>Applications I used were:<br />
Apache 2.0.55<br />
PHP 4.4.2<br />
MySQL 4.1.18<br />
Subverison 1.3<br />
<span id="more-17"></span></p>
<p><strong>Download</strong><br />
The application packages you need to download are:<br />
<a href="http://www.apache.org">apache</a>_2.0.55-win32-x86-no_ssl.msi<br />
<a href="http://www.mysql.com">mysql</a>-essential-4.1.18-win32.msi<br />
<a href="http://www.php.net">php</a>-4.4.2-Win32.zip<br />
<a href="http://subversion.tigris.org">svn</a>-1.3.0-setup.exe<br />
<a href="http://dark.clansoft.dk/~mbn/svnservice/">svnservice </a>(to run Subversion as a Windows service/daemon)</p>
<p><strong>Installation</strong><br />
Now we&#8217;ve downloaded the right files we need to install them. for the most part this involves double-clicking the installer package and clicking Next a few times.</p>
<p>Install MySQL and use the Server Config tool to set options including Network Access.<br />
Install Apache to the default location.<br />
Unzip the PHP files to c:\php folder.<br />
Install Subversion using the package defaults.<br />
Unzip the SVNService tool to the Subversion folder and copy the <code>SVNService.exe</code> file to the <code>bin</code> directory.</p>
<p><strong>Configuration</strong></p>
<p><strong>PHP</strong><br />
In the <code>c:\php</code> folder, copy the file <code>php.ini-recommended</code> to <code>php.ini</code>. Change the line that says,<br />
<code>doc_root = </code><br />
to read<br />
<code>doc_root = c:\progra~1\apache~1\apache\htdocs</code></p>
<p>Set the error reporting to a more appropriate level by changing the line that reads,<br />
<code>error_reporting  =  E_ALL</code><br />
to<br />
<code>error_reporting  =  E_ERROR|E_PARSE</code></p>
<p>Copy <code>php.ini</code> to your Windows folder eg. <code>c:\windows\</code></p>
<p>Add the directory path <code>c:\php</code> to your system PATH variable, through My Computerâ†’Propertiesâ†’Advanced<br />
Apache</p>
<p>Open the file c:\progra~1\apache~1\apache\conf\httpd.conf and add the following lines,<br />
<code>LoadModule php4_module "c:/php/php4apache2.dll"</code><br />
and further down,<br />
<code>AddType application/x-httpd-php .php</code></p>
<p><strong>Edit:</strong> I neglected to add in some other lines when writing this. In the Apache conf file&#8217;s Module section add,<br />
<code>LoadModule dav_svn_module "C:/Program Files/Subversion/bin/mod_dav_svn.so"</code><br />
<code>LoadModule authz_svn_module "C:/Program Files/Subversion/bin/mod_authz_svn.so"</code><br />
Of course you should change the path to match that of the library files in your Subversion install folder.</p>
<p>Create a file in <code>c:\progra~1\apache~1\apache\htdocs</code> called <code>test.php</code>. In that file place this text,</p>
<p><code>&lt;?php</code><br />
<code>phpinfo();</code><br />
<code>?&gt;</code></p>
<p>Restart the server</p>
<p>Open your browser and go the URL <em>http://your_server/test.php</em>.</p>
<p>You should see a page listing the current PHP settings. If not, check that the Apache service is running and that you can browse to http://. If that works then check the PHP configuration.</p>
<p><strong>Subversion</strong><br />
Create a folder to hold your Subversion repository eg. <code>c:\svn</code>. In that folder create your folder structure for your code. Check the Subversion docs for the guidelines on how to do this the best way. To simply create a new repository called &#8216;project&#8217; type the following line at a command prompt.<br />
<code>svnadmin create c:\svn\project</code></p>
<p>At a command prompt type,<br />
<code>svnservice -install -d -r c:\svn\project</code><br />
which installs and starts the SVN service and tells it to run as a daemon (-d) and point to your code repository (-r xxxxx).</p>
<p>Open up Apache&#8217;s config file again (httpd.conf) and add the following code at the bottom of the file,<br />
<code>&lt;Location /subversion&gt;<br />
DAV svn<br />
SVNPath c:/svn/project<br />
AuthType Basic<br />
AuthName "Subversion Repository"<br />
AuthUserFile conf/svnusers.conf<br />
Require valid-user<br />
&lt;/Location&gt;</code><br />
This tells Apache that any requests for http://your_server/subversion, will use web_dav to look at your code repository at <code>c:\svn\project</code> and only let authorized users see it.</p>
<p>Now we still need to tell Apache who is allowed to view our Subversion repository and who can read and write to our repo(sitory) too. At the cmd prompt again change directory to your Apache conf folder and type,<br />
<code>htpasswd -c svnusers.conf username</code><br />
making sure you replace the &#8216;username&#8217; with your real username. You&#8217;ll be asked to provide a password for that user which Apache will use.</p>
<p>And in the &#8216;project&#8217; repo at <code>c:\svn\project</code> open the <code>conf</code> folder and edit the svnserve.conf file with a text editor. Uncomment a few lines until you have at least,<br />
<code>[general]<br />
anon-access = read  ## Can be none, read, write<br />
auth-access = write   ## Can be none, read, write<br />
password-db = passwd  ## Filename of users store<br />
realm = My Project</code></p>
<p>Now we need to create a <code>passwd </code>file to store the usernames and password used to control access to the repository. It&#8217;s a s imple as a text file with the lines below in it. Add extra users on new line but watch that both username and password are case sensitive.<br />
<code>[users]<br />
myuser= mypassword</code></p>
<p><strong>Extras</strong><br />
If you are unable to connect to the MySQL server using PHPMyAdmin or similar and receive a message like,<br />
<em>Error 1251: &#8220;Client does not support authentication protocol requested by server; consider upgrading MySQL client&#8221;</em>, do not despair.</p>
<p>From a MySQL prompt on your server run the command below for each affected user@machine combination.</p>
<p><code>SET PASSWORD FOR user@localhost = OLD_PASSWORD('password');</code></p>
<p>Making sure you replace the &#8216;user&#8217; and &#8216;password&#8217; with your own details.</p>
<p><strong>Conclusion</strong><br />
Hope that all made sense, if not just leave a comment.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.wekadesign.co.nz/2006/05/14/installing-a-windows-dev-box/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
