<?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>Richard Walker :: Brisbane IT Professional (Infrastructure / Web)</title>
	<atom:link href="http://www.richardwalker.com.au/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.richardwalker.com.au</link>
	<description></description>
	<lastBuildDate>Thu, 04 Mar 2010 22:24:52 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>[V] is for [V]ictory.</title>
		<link>http://www.richardwalker.com.au/2010/03/05/v-is-for-victory/</link>
		<comments>http://www.richardwalker.com.au/2010/03/05/v-is-for-victory/#comments</comments>
		<pubDate>Thu, 04 Mar 2010 22:22:27 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=100</guid>
		<description><![CDATA[So I got a call from Raj at Telstra Complaints yesterday. They&#8217;re dropping the two hardware charges ($399 a piece) and the early termination fee ($341). He didn&#8217;t mention the month of wireless access I was charged for (incorrectly) so I&#8217;ll have to chase that up. All things considered though, I am grateful for the [...]]]></description>
			<content:encoded><![CDATA[<p>So I got a call from Raj at Telstra Complaints yesterday. They&#8217;re dropping the two hardware charges ($399 a piece) and the early termination fee ($341). He didn&#8217;t mention the month of wireless access I was charged for (incorrectly) so I&#8217;ll have to chase that up. All things considered though, I am grateful for the quick response (despite the last post, the complaint was only sent less than a week ago). Good to know there are still some elements at Telstra interested in good customer support&#8230; unless of course it was more a matter of &#8220;just give him what he wants, it&#8217;s not worth being dragged to the TIO&#8221;. But&#8230; grateful nonetheless.</p>
<p>Don&#8217;t look a gift horse in the mouth, as they say.</p>
<p>VICTORY IS MINE!!</p>
<p><img src="http://www.richardwalker.com.au/wp-content/uploads/2010/03/stewie-150x150.png" alt="stewie" title="stewie" width="150" height="150" class="alignnone size-thumbnail wp-image-103" style="border: none; background: none;" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2010/03/05/v-is-for-victory/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Open letter to Telstra (GRRRRR!!!)</title>
		<link>http://www.richardwalker.com.au/2010/01/29/open-letter-to-telstra-grrrrr/</link>
		<comments>http://www.richardwalker.com.au/2010/01/29/open-letter-to-telstra-grrrrr/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 18:36:11 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=97</guid>
		<description><![CDATA[Dear Telstra,
After much deliberation (about 7 seconds) I have decided to shift my voice services to iiNet, in addition to my data services. This is for a few reasons:
1) They&#8217;re cheaper.
2) Their support is great.
3) When I called, I spoke to Adrian from Perth, not Raj from Mumbai, and Adrian had an Australian accent and [...]]]></description>
			<content:encoded><![CDATA[<p>Dear Telstra,</p>
<p>After much deliberation (about 7 seconds) I have decided to shift my voice services to iiNet, in addition to my data services. This is for a few reasons:</p>
<p>1) They&#8217;re cheaper.<br />
2) Their support is great.<br />
3) When I called, I spoke to Adrian from Perth, not Raj from Mumbai, and Adrian had an Australian accent and could understand what I was saying and vice versa.<br />
4) I didn&#8217;t get cut off halfway through the call (I can no longer count on one hand the number of times that has happened with Telstra in the last month).<br />
5) They understand what a &#8220;generous quota&#8221; actually is and don&#8217;t use the word &#8220;Liberty&#8221; in the same context as &#8220;10gb/month&#8221;.</p>
<p>In addition to that, Telstra also failed to note that I canceled my *original* wireless service within the cooling off period (over $300), and that Telstra&#8217;s lack of accurate information led me to make a purchase of a SECOND wireless service, for which Telstra now expects me to pay full cancellation and hardware costs (over $400). To add insult to injury, Telstra have just billed me for another month of wireless access (~$165) despite the fact I no longer have a wireless service.</p>
<p>In yet another display of blatant ineptitude and disorganisation, getting my voice service connected in the first place was a struggle as Telstra was not in possession of up-to-date cabling records, and insisted that my home address does not, in fact, even exist. A Telstra representative also convinced me that I would be waiting &#8220;years&#8221; for additional ADSL ports to be supplied in my area, but that could be shortened to &#8220;months&#8221; if I switched to a business service, because that sort of build-out tends to be expedited. Less than 2 weeks after getting my landline connected, after Telstra finally sent a technician out to install the line anyway and just not bill me the installation cost if he did, in fact, find an active line (which he did), I was able to order ADSL through iiNet and had it connected in less than a week&#8230; despite the fact that Telstra insisted there was no way I was getting ADSL anytime soon. So essentially, I was sucked in to hopping on a Telstra Wireless plan by a combination of outdated information and outright lies, omissions and exaggeration.</p>
<p>Rest assured I have no intention on paying a single dollar of the ~$1,240 aggregate bill you&#8217;re about to hit me with, save for any costs incurred by *actual usage of service*, i.e. phone line rental, and the minute period of time during which I actually used your wireless service.</p>
<p>I wish to receive an updated bill which takes into account the waiver of fees for the first wireless plan (which was cancelled within Bigpond&#8217;s cooling off period, as confirmed by the representative who processed the order, and for which the associated hardware was returned), and the waiver of cancellation fees for the second wireless plan and associated hardware costs. In return, I am prepared to post back (at Telstra&#8217;s expense) the Bigpond Elite network gateway.</p>
<p>In essence, this leaves the line rental, call costs, and actual pro-rata usage of data services. I am happy to pay for these, as they represent what I actually used.</p>
<p>A copy of this letter is also going to the Telecommunications Industry Ombudsman.</p>
<p>Kind regards,</p>
<p>Richard Walker</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2010/01/29/open-letter-to-telstra-grrrrr/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>MVC Frameworks and modern web development</title>
		<link>http://www.richardwalker.com.au/2009/09/22/mvc-frameworks-and-modern-web-development/</link>
		<comments>http://www.richardwalker.com.au/2009/09/22/mvc-frameworks-and-modern-web-development/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 15:55:39 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Web development]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=90</guid>
		<description><![CDATA[Lately I&#8217;ve had the pleasure of playing around with Ruby on Rails, undoubtedly THE name that comes to mind when you ask about rapid application development in Web 2.0.
My first impression was that it was going to be a pain to learn the ins-and-outs, and that I was in for a steep learning curve as [...]]]></description>
			<content:encoded><![CDATA[<p>Lately I&#8217;ve had the pleasure of playing around with Ruby on Rails, undoubtedly THE name that comes to mind when you ask about rapid application development in Web 2.0.</p>
<p>My first impression was that it was going to be a pain to learn the ins-and-outs, and that I was in for a steep learning curve as I had to both learn the Ruby language, and master the MVC framework Rails at the same time. Coming from a PHP background I knew there was a lot of stuff I would have to learn (and unlearn, in a manner of speaking) in order to program effectively in Rails.</p>
<p>In truth however, I found it easier to get up and running with Rails than I did with Symfony, which is basically a PHP MVC framework that mimicks Rails in terms of its functionality. Symfony is itself, however, a brilliant MVC framework and probably the closest thing to Rails I&#8217;ve found for PHP.</p>
<p>With Rails and Symfony, you start out by designing your database schema, and then can use a number of command-line tools to scaffold your application, either by creating just simple controller classes or going all the way and letting the framework build pages to provide full CRUD (Create, Retrieve, Update, Delete) functionality, which you can then go through with a scalpel and paintbrush and customise to your liking.</p>
<p>In essence, these two MVC frameworks provide all the functionality and libraries needed to instantly turn a YAML database specification into a working application in a matter of minutes.</p>
<p>Why is this SO AWESOME? Simple: it allows developers to focus their attention on delivering a product based around their core business model, rather than wasting time dealing with fundamentals. Think of it as building a beautiful house out of existing materials&#8230;. plaster and timber for the structure, concrete for the foundation, paint for the walls etc. as opposed to building a house by heading off to the nearest timber forest, cutting down trees, cutting the wood to shape, treating the timber, mining limestone and other minerals to create plaster, concrete etc&#8230;.. you get the idea.</p>
<p>Software development has always worked like this in a way&#8230; frameworks get more and more sophisticated, common controls and elements are packaged with development environments to make rapid application development simpler and more effective etc, but it seems that frameworks such as Rails and Symfony go one step further, because just about *everything* you could possibly need for an application is already there, or readily accessible as a plugin, and you can turn a nifty idea for a SaaS application into a reality in no time at all.</p>
<p>Both Rails and Symfony are supported by a fiercely evangelistic community of developers who provide plugins for free to solve a whole host of common software development conundrums, and both are supported by terrific documentation&#8230; I have been able to assemble a basic Rails app from scratch simply by following the Ruby Guides. Not bad for somebody who&#8217;s never written a single line of Ruby code in their entire life.</p>
<p>There&#8217;s one framework I haven&#8217;t mentioned yet: Zend. There&#8217;s a good reason: I don&#8217;t think the Zend framework deserves the title &#8220;Framework&#8221;. I don&#8217;t like Zend. It feels bloated. It feels poorly documented. It feels badly coded (and I&#8217;m not the <a href="http://cameronc.wordpress.com/2007/12/15/the-zend-framework-sucks-and-why-im-moving-to-rails/">only person who feels this way</a>). To me, it feels like the Microsoft of MVC.</p>
<p>Everything about Ruby and Symfony screams &#8220;simplicity&#8221; to me, like the creators intended to turn programming back into a graceful art, and to make people truly passionate about web development. Symfony and Rails are the Zen gardens of web development: minimalistic, spiritual, beautiful and closer to art than software development.</p>
<p>Zend doesn&#8217;t really &#8220;scream&#8221; anything, so much as make developers scream at how frustrating it is to use and develop applications. I&#8217;ve seen Zend code&#8230; it&#8217;s like looking into the gates of hell.</p>
<p>I&#8217;ll stop bad-mouthing the competition now, and simply close by saying: if you&#8217;re passionate about web development, and want to learn a framework that makes developing web 2.0 apps feel more like art than simply cutting code, I implore you to give either Symfony or Rails a decent try. Take a weekend to run through one of the guides. I promise you won&#8217;t be disappointed.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/09/22/mvc-frameworks-and-modern-web-development/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Communication issues in small business</title>
		<link>http://www.richardwalker.com.au/2009/08/20/communication-issues-in-small-business/</link>
		<comments>http://www.richardwalker.com.au/2009/08/20/communication-issues-in-small-business/#comments</comments>
		<pubDate>Wed, 19 Aug 2009 22:09:16 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Business]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=87</guid>
		<description><![CDATA[A good friend/ex-colleague of mine and I got into a discussion recently about some of the woes that accompany being a tech guru in a small business. The number one issue at hand was communication &#8211; trying to interpret the needs of the business (and the managers) and create a solution that made everyone smile.
Unfortunately, [...]]]></description>
			<content:encoded><![CDATA[<p>A good friend/ex-colleague of mine and I got into a discussion recently about some of the woes that accompany being a tech guru in a small business. The number one issue at hand was communication &#8211; trying to interpret the needs of the business (and the managers) and create a solution that made everyone smile.</p>
<p>Unfortunately, developers are terrible at managing the expectations of the boss, and managers are typically not quite as clued in as their technical subordinates with regards to technical limitations. What usually results is a solution which was either a) done within the timeframes required but falls short of expectations, or b) meets expectations to a degree, but took twice as long as intended.</p>
<p>In a larger business this unfortunate phenomenon is mitigated by two things. Firstly, timelines are paradoxically both more expanded/lenient (read: realistic) and also very inflexible&#8230; perhaps not so much a paradox, as the longer timelines may be designed specifically to prevent deadlines slipping&#8230; allocate more time than you need and all is well. The key however, is that while there&#8217;s plenty of time allocated to meet that goal&#8230; The Deadline Is Not Arbitrary. It must be met, on time, every time.</p>
<p>Secondly, an all-important position within the company becomes viable (even essential): there could be a dozen different titles for the position, but what it boils down to is that you have <em>someone who is technically savvy and understands limitations, and has enough experience dealing with/participating in management to effectively manage the expectations of the top brass</em>. Essentially this boils down to having a mediator, a translator who can take the requirements of the business, turn it into a specification the tech guys can understand, while at the same time effectively communicating the technical limitations (and the workload of the tech team) to the boss(es) and keeping their expectations within the bounds of realism.</p>
<p>If you&#8217;re dealing directly with tech staff, you may be inclined to put on your Leader Hat and rally them to nail a deadline they just can&#8217;t manage, whereas dealing with a single person who acts as an authority over your technical assets means you&#8217;re more likely to <em>delegate</em> the management of the project to them, instead of doing it yourself. This means managers can do their job more effectively and not worry themselves with the details, and the tech team can work under the leadership of someone who was once in their shoes.</p>
<p>So how do you fill such a position in a small business? From experience it&#8217;s pretty difficult&#8230; either you get someone who&#8217;s happy to occasionally step over from another role (say, marketing manager or business development manager) or you get a tech guy who can both do the hard work and manage the &#8220;team&#8221;, even if the team is just him/herself and one other.</p>
<p>It&#8217;s a no-brainer that having a separation between management and tech is a good thing, unless you&#8217;re lucky enough to build a team made up of a mixed bag of ex-tech, management etc. where the manager(s) has/have a keen understanding of the tech side of the business that they&#8217;re directing. This is surprisingly rare.</p>
<p>Well, that&#8217;s all I&#8217;ve got on that subject&#8230; I&#8217;d love to hear from you if you have any insight as the &#8220;ultimate solution&#8221; to the problem of communication within a small business still eludes me!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/08/20/communication-issues-in-small-business/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Bing, bing, bing.</title>
		<link>http://www.richardwalker.com.au/2009/08/14/bing-bing-bing/</link>
		<comments>http://www.richardwalker.com.au/2009/08/14/bing-bing-bing/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 15:51:48 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Miscellaneous]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=78</guid>
		<description><![CDATA[Can someone please explain to me why Microsoft/Bing are spidering sites in large volume, from 65.55.0.0, and not identifying themselves as a bot/spider in their user agent?
While you&#8217;re at it&#8230;. explain what sort of impact this has on perceived conversion rates when the conversion:impression ratio ends up being a million miles apart.
Here&#8217;s a handy piece [...]]]></description>
			<content:encoded><![CDATA[<p>Can someone please explain to me why Microsoft/Bing are spidering sites in large volume, from 65.55.0.0, and not identifying themselves as a bot/spider in their user agent?</p>
<p>While you&#8217;re at it&#8230;. explain what sort of impact this has on perceived conversion rates when the conversion:impression ratio ends up being a million miles apart.</p>
<p>Here&#8217;s a handy piece of code for your stats install (if running inhouse or AWStats or something similar):</p>
<p><code><br />
&lt;Directory "/path-to-stats-stuff"&gt;<br />
	Order deny,allow<br />
	Deny from 65.55.0.0/255.255.0.0<br />
	Allow from all<br />
&lt;/Directory&gt;<br />
</code></p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/08/14/bing-bing-bing/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Runcore 32GB SSD into a Vaio P = Win.</title>
		<link>http://www.richardwalker.com.au/2009/08/13/runcore-32gb-ssd-into-a-vaio-p-win/</link>
		<comments>http://www.richardwalker.com.au/2009/08/13/runcore-32gb-ssd-into-a-vaio-p-win/#comments</comments>
		<pubDate>Thu, 13 Aug 2009 11:57:32 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Hardware]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=25</guid>
		<description><![CDATA[So, with the little Vaio P now running a 3D accelerated desktop and working all awesome-like&#8230; I decided the 4200rpm 60GB drive had to go, as this was an obvious performance bottleneck.
I bought a Runcore 32GB 1.8&#8243; ZIF SSD from Solid State Central for $159 and waited a long and painful 14 days for it [...]]]></description>
			<content:encoded><![CDATA[<p>So, with the little Vaio P now running a 3D accelerated desktop and working all awesome-like&#8230; I decided the 4200rpm 60GB drive had to go, as this was an obvious performance bottleneck.</p>
<p>I bought a <a href="http://www.solidstatecentral.com.au/store/index.php?main_page=product_info&amp;cPath=85_86&amp;products_id=229&amp;zenid=59148067f74757ff1ab46b9ba94816a3">Runcore 32GB 1.8&#8243; ZIF SSD from Solid State Central for $159</a> and waited a long and painful 14 days for it to arrive (out of stock, had to come in from overseas).</p>
<p>When it arrived, I obviously tore the box apart like a kid at christmastime.</p>
<p>Anyway, a few words on the package itself&#8230; it comes with a handy external caddy for mounting 1.8&#8243; ZIF drives, as well as coming with a curious USB cable that plugs straight into the SSD itself using some sort of proprietary port up the other end of the drive&#8230;. strange.</p>
<p>Now the bit that REALLY got me was the connector&#8230; ripping the Vaio apart is a piece of cake in itself, but one thing that needs to be noted is that the ZIF connector on the original drive IS INVERTED&#8230; so if you&#8217;re looking at the original drive with the ZIF connector facing up, the conductors are on the bottom edge of the socket. On the SSD, they&#8217;re on the top edge, despite the fact the connector looks extremely similar and is in exactly the same position. <em><strong>EDIT: Apparently some drives ship with the ZIF connector in the correct position&#8230; so look out for this (Thanks Lars).</strong></em></p>
<p>This wasn&#8217;t really a huge issue, except that a) it took me hours to figure it out while I scoured forums for evidence that the drive was actually incompatible, and b) once I had the damn thing in, the Vaio&#8217;s ZIF cable is a little bit squeezed in by the new arrangement, as the hard drive has to be installed essentially flipped over from the original spec.</p>
<p>The whole thing went back together just fine though, and the install etc ran smoothly&#8230; and damn this thing boots up fast. Easily as fast as my desktop, which is good considering we&#8217;re talking about a 1.3ghz Intel Atom vs a Q6600 Core2 Quad.</p>
<p>Obviously this is due to the awesome seek times of SSDs&#8230; the actual throughput of the drive is obviously improved but its the seek time that accounts for the awesome boot times. With no moving parts, SSDs will always outpace mechanical drives in that regard.</p>
<p>So if you&#8217;re ready to drop $950 on a Vaio P and want a relatively cheap performance boost&#8230; GET AN SSD. I went with the cheaper 32GB because I didn&#8217;t really need the space&#8230; I have an external bus-powerd 120GB drive for that&#8230; but the SSD is well worth the money, and you might even get a bit longer battery life out of the P as well.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/08/13/runcore-32gb-ssd-into-a-vaio-p-win/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>Ubuntu 9.04 on the Sony Vaio P  &#8211; with desktop effects!</title>
		<link>http://www.richardwalker.com.au/2009/07/24/ubuntu-904-on-the-sony-vaio-p-with-desktop-effects/</link>
		<comments>http://www.richardwalker.com.au/2009/07/24/ubuntu-904-on-the-sony-vaio-p-with-desktop-effects/#comments</comments>
		<pubDate>Fri, 24 Jul 2009 11:29:46 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Hardware]]></category>
		<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=24</guid>
		<description><![CDATA[Getting Ubuntu running with compiz/Desktop Effects on the Sony Vaio P is now a piece of cake, with a new revision of the Poulsbo/psb driver available for Ubuntu 9.04 (jaunty).]]></description>
			<content:encoded><![CDATA[<p>Picked up one of these fantastic pieces of hardware earlier in the week. It came with Vista Home Basic, which ran&#8230; poorly (refraining from use of expletives and vulgar metaphors).</p>
<p>I promptly wiped the lot and put on Ubuntu but then ran into the issue of hardware support&#8230; turns out the graphics chipset used in this little beast (Intel GMA500) is actually a weird mutation of a PowerVR chipset with some 2D/mpeg acceleration thrown on top. And until recently, the driver support under Linux for this chipset (moniker &#8220;Poulsbo&#8221;) was horrific&#8230;. the best you could ask for was either running under VESA or fbdev, and *maybe* getting the nice 1600&#215;768 resolution (and weird aspect ratio that goes with it) but it was dog slow. Others had success using the &#8220;psb&#8221; driver, but only under 2D.</p>
<p>Today, I&#8217;m going to show you how to run it with full 3D support and composite/desktop effects under Ubuntu.</p>
<p>First obviously, you need to install the damn thing&#8230; seeing as the P doesn&#8217;t have an optical drive, you either need to use uNetBootin to create a bootable flash drive, or do what I did, get lazy and use an external USB optical drive.</p>
<p>Success. I went with XFS for the root filesystem simply because the benchmarks showed it outperforms both Ext3 and Ext4, and considering the P comes with a 4200rpm IDE drive (running in UDMA5, or 100MB/sec) I wanted the best filesystem performance possible&#8230; yes, I could have partitioned judiciously to keep seek times down etc etc but honestly&#8230; I couldn&#8217;t be bothered. I have a 32GB solid state drive in the mail, and that&#8217;ll take care of seek times.</p>
<p>Everything runs perfectly with the install, and there are no freaky drivers needed for any devices except the graphics card. You should end up booting into Ubuntu, but the screen res will be lower (it still has the right aspect ratio however, so it won&#8217;t look squished).</p>
<p>Now&#8230;. fire up Synaptic (System -> Administration -> Synaptic Package Manager) and go to Settings -> Software Sources. Under the &#8220;Third-Party Software&#8221; tab you need to add these two repositories:</p>
<blockquote><p>deb http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main<br />
 deb-src http://ppa.launchpad.net/ubuntu-mobile/ppa/ubuntu jaunty main</p></blockquote>
<p>Thanks to Brian White for this step as it negates the need to copy/paste keys around the place&#8230;. drop to a terminal,  then do the following:</p>
<blockquote><p>gpg –keyserver keyserver.ubuntu.com –recv C6598A30<br />
gpg –export –armor C6598A30 | sudo apt-key add -</p></blockquote>
<p>Back to Synaptic! Click &#8220;reload&#8221; and it should go off and fetch a whole bunch of new package info. When it&#8217;s done, type &#8220;poulsbo-driver&#8221; into the quicksearch field. From the narrowed down list, select poulsbo-driver-2d, poulsbo-driver-3d, and I *think* it should be already selected as a dependency, but also select psb-kernel-headers, psb-firmware, psb-kernel-source and xserver-xorg-video-psb. I&#8217;m uncertain here because I went a slightly roundabout way to get to this point, but still had success.</p>
<p>Click &#8220;Apply&#8221;.</p>
<p>Open up Terminal (Applications -> Accessories -> Terminal) and edit (using vi, nano, whatever editor you like) /boot/grub/menu.lst.</p>
<p>You should find a line that looks like this (your root UUID and kernel version will/may vary)</p>
<blockquote><p>kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=c34d1d57-59d3-4f6f-abc1-fd83aea4 ro quiet splash</p></blockquote>
<p>Change it to this (bold is to emphasise what needs changing)</p>
<blockquote><p>kernel /boot/vmlinuz-2.6.28-13-generic root=UUID=c34d1d57-59d3-4f6f-abc1-fd83aea4 ro quiet <strong>nosplash mem=1500mb</strong></p></blockquote>
<p>This tells grub to force the kernel to recognise only 1500mb of the installed 2GB, leaving 500mb free for the graphics adapter to use. The &#8220;nosplash&#8221; option prevents any sexy graphics being displayed during boot. I&#8217;m not sure if this is *essential* but it was in another write-up that I followed. I may try removing it to see what happens.</p>
<p>Also, edit /usr/bin/compiz and around line 62 you should see something like this:</p>
<blockquote><p>WHITELIST=&#8221;nvidia intel ati radeon i810 fglrx&#8221;</p></blockquote>
<p>Change it to this:</p>
<blockquote><p>WHITELIST=&#8221;<strong>psb</strong> nvidia intel ati radeon i810 fglrx&#8221;</p></blockquote>
<p>This is so compiz will *actually start* and not just die because it feels like it.</p>
<p>Save that file, and reboot&#8230; if all has gone well, you should see GDM firing up in hi-res goodness. If not and you get some message whinging about video settings&#8230; click Ctrl+Alt+1, login with your usual creds, type &#8220;sudo bash&#8221; to get root access (password is the same as your user password) and type &#8220;/etc/init.d/gdm stop&#8221; to kill GDM, then &#8220;modprobe psb&#8221;. If the psb module wasn&#8217;t loaded before, you will see the difference&#8230; the screen res on the console will suddenly go native and the text will be *tiny*. Then just type &#8220;gdm&#8221; to get gdm to start up again.</p>
<p>If you&#8217;re back in, and things look good, and the res is nice and sharp, log in, click System -> Preferences -> Appearance and click the Visual Effects tab. I chose &#8220;Normal&#8221; just to get things started&#8230; if it goes well you should get a message like &#8220;Do you want to keep these settings&#8221; etc&#8230; say yes! If any windows you had open appear to have lost their borders, don&#8217;t fret&#8230; just close whatever app it was and reopen and everything should be fine.</p>
<p>I also installed compizconfig-settings-manager to fine tune the compiz setup&#8230; so I get the rotating desktop etc, and it all looks really nice. All in all, it performs really well on what is a sub-$1000 netbook that uses about 6 watts of power under normal load, so I&#8217;m really impressed.</p>
<p>Some things that worked for me out of the box were wifi (with WPA) and my 3G USB modem&#8230; plugged it in, selected a carrier, and it worked straight away. I think the guys at Ubuntu have really gotten their act together making this a polished OS&#8230; if the only thing needed is a bit of tinkering/tweaking to get a new, poorly supported graphics chipset working&#8230; that&#8217;s pretty good. It performs better under Ubuntu than it did under Vista.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/07/24/ubuntu-904-on-the-sony-vaio-p-with-desktop-effects/feed/</wfw:commentRss>
		<slash:comments>20</slash:comments>
		</item>
		<item>
		<title>Using lighttpd with apache to serve static content</title>
		<link>http://www.richardwalker.com.au/2009/06/26/using-lighttpd-with-apache-to-serve-static-content/</link>
		<comments>http://www.richardwalker.com.au/2009/06/26/using-lighttpd-with-apache-to-serve-static-content/#comments</comments>
		<pubDate>Thu, 25 Jun 2009 14:16:01 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=23</guid>
		<description><![CDATA[There&#8217;s a decent performence boost to be obtained by coupling apache with lighttpd, a lightweight (hence the name) web server with great features and a ridiculously small footprint.
In this example&#8230;. we&#8217;re configuring lighttpd as our forward-facing (port 80) web server, which will use mod_proxy (proxy module) to send any dynamic requests back to apache listening [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s a decent performence boost to be obtained by coupling apache with lighttpd, a lightweight (hence the name) web server with great features and a ridiculously small footprint.</p>
<p>In this example&#8230;. we&#8217;re configuring lighttpd as our forward-facing (port 80) web server, which will use mod_proxy (proxy module) to send any dynamic requests back to apache listening on port 8080, while lighttpd takes care of any and all static content. I won&#8217;t go into the details of *installing* lighttpd or apache as this is beyond the scope of this article.</p>
<p>First of all&#8230;. ports.</p>
<p>In the Apache config (/etc/apache2/ports.conf if you&#8217;re using Debian, or /etc/httpd/conf/httpd.conf if you&#8217;re using RedHat or a derivative, these are just the defaul install locations) you want to find the following line:</p>
<pre>	Listen 80
</pre>
<p>And change it to:</p>
<pre>	Listen 8080
</pre>
<p>That&#8217;s it for the apache config! By default, lighttpd should already be listening on port 80 so we don&#8217;t need to change that.</p>
<p>In lighttpd.conf (wherever your distro of choice chooses to place this file), find the server.modules section, and uncomment (or add, if it&#8217;s not there already) the following line:</p>
<pre>	"mod_proxy",
</pre>
<p>Now, scoot down to the bottom of the file, and we&#8217;ll set up the proxy:</p>
<pre>	$HTTP["url"] !~ "(?i)\.(js|css|gif|jpg|png|ico|txt|swf|mp3|pdf|ps|wav|flv|zip|rar|gz|tar)$" {
		proxy.server = ( "" =&gt; (
			( "host" =&gt; "your-server-ip-here", "port" =&gt; 8080 )
		))
	}
</pre>
<p>Obviously substitute &#8220;your-server-ip-here&#8221; with the IP address of your web server. This is very important, because if you use any virtual hosts, they won&#8217;t like it if you just set host to 127.0.0.1 (or at least they didn&#8217;t in my config).</p>
<p>Which brings me to the next point&#8230;. virtual hosts. If you are serving several domains from the same location and use several different virtual hosts, you will need a virtual host definition for each because lighttpd simply needs to know where to look for your static content! This worked for me (for this site):</p>
<pre>
	$HTTP["host"] =~ "(^|\.)richardwalker\.com\.au$" {
		server.document-root = "/opt/web/richardwalker.com.au"
	}
</pre>
<p>That&#8217;s it&#8230;.. thats a virtual host definition in lighttpd. There are several more options but for the purposes of this demonstation (and of this site), that worked a treat.</p>
<p>All that&#8217;s needed now is to stop both apache and lighttpd, then start them up again.</p>
<p>You might wonder why this approach is beneficial&#8230;.. it is possible to set up apache to use persistent connections, which means it fetches all the content (the root page, the CSS, the images, etc) all in the one connection. This can be troublesome for sites with huge amounts of traffic, as instead of just dropping off when the job is done, persistent connections hang around for a predetermined length of time. Large amounts of concurrent traffic can quickly turn into a large number of persistent connections.</p>
<p>Alternatively, if you leave persistent connections off, you get a connection made to the web server for each item in the HTML that needs fetching&#8230;. the root HTML itself, a CSS file or two, a JS include, all the images&#8230;&#8230;. for each one of those, Apache will fire up a process, load its modules etc, fetch the item, and drop off. This can result in very large chunks from memory being eaten up all at once in bursts, which can slow things down considerably.</p>
<p>There are of course several schools of thought on this sort of thing, and everyone has an opinion about which is better&#8230;. for me, the approach outlined above works perfectly. My lighttpd access log has hits for all the static items, and my apache log has only the single hit, the initial GET request for the HTML itself. Which is exactly the way it should be.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/06/26/using-lighttpd-with-apache-to-serve-static-content/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Providing Web Services &#8211; Lessons Learned.</title>
		<link>http://www.richardwalker.com.au/2009/06/22/providing-web-services-lessons-learned/</link>
		<comments>http://www.richardwalker.com.au/2009/06/22/providing-web-services-lessons-learned/#comments</comments>
		<pubDate>Mon, 22 Jun 2009 04:29:10 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[Business]]></category>
		<category><![CDATA[development]]></category>
		<category><![CDATA[technology]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=22</guid>
		<description><![CDATA[There are some pretty simple do's and don't's when it comes to releasing web services.]]></description>
			<content:encoded><![CDATA[<div>
<p>Thankfully, these lessons haven&#8217;t been learned the hard way &#8211; not entirely anyway.</p>
<p>I&#8217;m not referring to my own web services &#8211; I don&#8217;t provide any of these. I&#8217;m referring to a particular web service I use to create and lodge invoices electronically.</p>
<p>Granted they are working hard to restore their services so I&#8217;ll refrain from outing them, but I&#8217;ll share a few things I&#8217;ve learned, not just with this latest incident but with web services in general.</p>
<p><strong>1. Keep the customers informed.</strong> If you&#8217;re planning an outage period, or things aren&#8217;t going as expected, send a single email to your customer base explaining the planned/estimated outage times, or if applicable, an explanation of what went wrong and what you&#8217;re doing to fix it. While your customers might still be peeved, at least they&#8217;re in the loop.</p>
<p><strong>2. Try and avoid using social networking tools to announce outages.</strong> Twitter is NOT a suitable means by which to communicate outages, as progressive and &#8220;nu-skool&#8221; as this approach may seem.</p>
<p><strong>3. For the love of God, tread carefully when dealing with DNS changes.</strong> DNS, by nature and with regards to change, is a slow, unweildy beast. If you make a mistake and spot it too late (i.e. overnight) the mistake may have already propagated, and fixing it will take just as long (unless you set your TTLs ridiculously low).</p>
<p><strong>4. If you can&#8217;t release a product or revision to the product without a prominent risk of failure, just don&#8217;t.</strong> The old mantra &#8220;real programmers ship&#8221; is as vague as it is foolish&#8230;.. I&#8217;d rather wait another week for an upgrade I might not even notice, than go 24 hours without a crucial service because something went &#8220;bang&#8221;. You can still make ambitious release dates, but just put some real time, effort, and most of all, serious and careful thought, into setting up your development and release infrastructure. If you do things right, announcing an outage for purposes of maintenence/upgrade will be a thing of the past&#8230; your customers won&#8217;t even notice.</p>
<p><strong>5. Prepping a release at 6pm on a Friday evening is a no-no.</strong> Your developers are probably burnt out from a week of frantic preparation, and this sets the stage for errors. I&#8217;ve been told on numerous occasions that shipping a particular feature/product on a particular date is &#8220;important to the business&#8221;. What&#8217;s more important is your image, and having exhausted developers cram something out the door in time for the upper echelons to nod their heads in approval, and then having said product blow up in your face because of an error that got missed, makes you look stupid in the eyes of your customers. Again: <strong>it is always better to ship late than ship broken.</strong> As a customer, I&#8217;d rather see a polished, functional product than a broken, rushed one. A poorly executed release reflects badly on you and your product. Take the time to do it properly.</p>
<p>That&#8217;s it for today&#8217;s rant!</p>
</div>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/06/22/providing-web-services-lessons-learned/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>A Humble Request.</title>
		<link>http://www.richardwalker.com.au/2009/03/03/a-humble-request/</link>
		<comments>http://www.richardwalker.com.au/2009/03/03/a-humble-request/#comments</comments>
		<pubDate>Tue, 03 Mar 2009 08:00:58 +0000</pubDate>
		<dc:creator>Richard Walker</dc:creator>
				<category><![CDATA[linux]]></category>

		<guid isPermaLink="false">http://www.richardwalker.com.au/?p=20</guid>
		<description><![CDATA[Dear Netlogistics,
(CC: Any hosting provider who provides VPS hosting plans)
Please, please, PLEASE include a full-featured set of iptables modules. &#8220;-m state&#8221; and &#8220;-m recent&#8221; at the very least. It&#8217;s the only way to set up a half-decent set of firewall rules.
Thanks,
Internet
]]></description>
			<content:encoded><![CDATA[<p>Dear Netlogistics,</p>
<p>(CC: Any hosting provider who provides VPS hosting plans)</p>
<p>Please, please, PLEASE include a full-featured set of iptables modules. &#8220;-m state&#8221; and &#8220;-m recent&#8221; at the very least. It&#8217;s the only way to set up a half-decent set of firewall rules.</p>
<p>Thanks,</p>
<p>Internet</p>
]]></content:encoded>
			<wfw:commentRss>http://www.richardwalker.com.au/2009/03/03/a-humble-request/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
