<?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>Adam Pierce</title>
	<atom:link href="http://www.doctort.org/adam/feed" rel="self" type="application/rss+xml" />
	<link>http://www.doctort.org/adam</link>
	<description>Maker of Finest Quality Digital Things</description>
	<lastBuildDate>Thu, 24 Jun 2010 01:17:57 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Fear tactics</title>
		<link>http://www.doctort.org/adam/bizarre/372.html</link>
		<comments>http://www.doctort.org/adam/bizarre/372.html#comments</comments>
		<pubDate>Thu, 24 Jun 2010 01:16:46 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Bizarre Stuff]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=372</guid>
		<description><![CDATA[Sometimes I think the world has gone mad.
Does this label imply that all other drink bottles contain leaded plastic?! What will we have next &#8211; Cyanide-free Weet Bix?
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doctort.org/adam/wp-content/uploads/2010/06/leadfreebottle.jpeg"><img class="alignright size-full  wp-image-373" title="Lead-free Bottle" src="http://www.doctort.org/adam/wp-content/uploads/2010/06/leadfreebottle.jpeg" alt="" width="480" height="478" /></a>Sometimes I think the world has gone mad.</p>
<p>Does this label imply that all other drink bottles contain leaded plastic?! What will we have next &#8211; Cyanide-free Weet Bix?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/bizarre/372.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>How much would you pay for a worn out tyre?</title>
		<link>http://www.doctort.org/adam/bizarre/how-much-would-you-pay-for-a-worn-out-tyre.html</link>
		<comments>http://www.doctort.org/adam/bizarre/how-much-would-you-pay-for-a-worn-out-tyre.html#comments</comments>
		<pubDate>Tue, 04 May 2010 08:00:57 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Bizarre Stuff]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/bizarre/how-much-would-you-pay-for-a-worn-out-tyre.html</guid>
		<description><![CDATA[
Yep, for those people who want a tyre swing for their kiddies but are unable to tie a piece of rope onto an old car tyre, you can now buy them pre-assembled at Bunnings!
]]></description>
			<content:encoded><![CDATA[<p><img style="display:block;margin-right:auto;margin-left:auto;" alt="image" src="http://www.doctort.org/adam/wp-content/uploads/2010/05/wpid-Image004.jpg" /></p>
<p>Yep, for those people who want a tyre swing for their kiddies but are unable to tie a piece of rope onto an old car tyre, you can now buy them pre-assembled at Bunnings!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/bizarre/how-much-would-you-pay-for-a-worn-out-tyre.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>OMG, I&#8217;ve been hacked!</title>
		<link>http://www.doctort.org/adam/general/omg-ive-been-hacked.html</link>
		<comments>http://www.doctort.org/adam/general/omg-ive-been-hacked.html#comments</comments>
		<pubDate>Tue, 09 Feb 2010 23:21:55 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=366</guid>
		<description><![CDATA[Apologies to anyone who has logged into this blog in the last few days only to find a link-farming spam page. Seems that someone has managed to pull off a script injection on this site. I&#8217;ve removed the offending code but I still have no idea how they managed it. I&#8217;m investigating&#8230;
]]></description>
			<content:encoded><![CDATA[<p>Apologies to anyone who has logged into this blog in the last few days only to find a link-farming spam page. Seems that someone has managed to pull off a script injection on this site. I&#8217;ve removed the offending code but I still have no idea how they managed it. I&#8217;m investigating&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/omg-ive-been-hacked.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Halloween comes to Sydney</title>
		<link>http://www.doctort.org/adam/general/halloween-comes-to-sydney.html</link>
		<comments>http://www.doctort.org/adam/general/halloween-comes-to-sydney.html#comments</comments>
		<pubDate>Sat, 07 Nov 2009 10:05:10 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=357</guid>
		<description><![CDATA[Halloween usually isn&#8217;t very popular here in Australia but this year it sure was!
Residents of Matthews St, Davidson were inundated by hundreds of kids demanding sugar. My own kids were among the throng, I was surprised how many people were there.
]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doctort.org/adam/wp-content/uploads/2009/11/halloween09.jpg"><img class="size-medium wp-image-358 alignright" title="halloween09" src="http://www.doctort.org/adam/wp-content/uploads/2009/11/halloween09-300x225.jpg" alt="" width="300" height="225" align="right" /></a>Halloween usually isn&#8217;t very popular here in Australia but this year it sure was!<br />
Residents of <a href="http://maps.google.com.au/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=mathews+st+davidson+nsw&amp;sll=-33.830932,151.121052&amp;sspn=0.495665,0.551376&amp;ie=UTF8&amp;hq=&amp;hnear=Mathews+St,+Davidson+NSW+2085&amp;t=h&amp;z=17&amp;iwloc=A">Matthews St, Davidson</a> were inundated by hundreds of kids demanding sugar. My own kids were among the throng, I was surprised how many people were there.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/halloween-comes-to-sydney.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>You can Hire me</title>
		<link>http://www.doctort.org/adam/general/you-can-hire-me.html</link>
		<comments>http://www.doctort.org/adam/general/you-can-hire-me.html#comments</comments>
		<pubDate>Thu, 15 Oct 2009 05:11:54 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=351</guid>
		<description><![CDATA[I&#8217;m looking for a little bit of freelance work at the moment, if you are interested in someone to help you out with digital circuit design, embedded systems design or programming, application development or even web sites or server back end work, drop me a line at adam@siliconsparrow.com. I&#8217;ve put my Resumé online for you [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m looking for a little bit of freelance work at the moment, if you are interested in someone to help you out with digital circuit design, embedded systems design or programming, application development or even web sites or server back end work, drop me a line at <a href="mailto:adam@siliconsparrow.com">adam@siliconsparrow.com</a>. I&#8217;ve put <a href="http://siliconsparrow.com/Adam_Pierce_Resume_2009.pdf">my Resumé</a> online for you to download if you are interested.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/you-can-hire-me.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Textapox is catching</title>
		<link>http://www.doctort.org/adam/general/textapox-is-catching.html</link>
		<comments>http://www.doctort.org/adam/general/textapox-is-catching.html#comments</comments>
		<pubDate>Sun, 20 Sep 2009 23:53:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=347</guid>
		<description><![CDATA[Look out for this new disease sweeping the children of the world. Symptoms include coloured spots on exposed areas of skin and uncontrollable giggling.

]]></description>
			<content:encoded><![CDATA[<p>Look out for this new disease sweeping the children of the world. Symptoms include coloured spots on exposed areas of skin and uncontrollable giggling.</p>
<p style="text-align: center;"><img class="size-full wp-image-348 aligncenter" title="textapox" src="http://www.doctort.org/adam/wp-content/uploads/2009/09/textapox.jpg" alt="" width="420" height="589" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/textapox-is-catching.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python function is not callable</title>
		<link>http://www.doctort.org/adam/nerd-notes/python-function-is-not-callable.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/python-function-is-not-callable.html#comments</comments>
		<pubDate>Wed, 16 Sep 2009 10:39:12 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=343</guid>
		<description><![CDATA[Here&#8217;s a Python gotcha that got me. Here is my function to print out a range of sinusoidal values:

import math

def cycle(centre, range):
        theta = 4.71
        speed = 0.1
        for i in range(0,80):
   [...]]]></description>
			<content:encoded><![CDATA[<p>Here&#8217;s a Python gotcha that got me. Here is my function to print out a range of sinusoidal values:</p>
<pre>
import math

def cycle(centre, range):
        theta = 4.71
        speed = 0.1
        for i in range(0,80):
                theta = theta + speed
                value = centre + (range * math.sin(theta))
                print value
</pre>
<p>I got the following error which confused the hell out of me:</p>
<pre>
Traceback (most recent call last):
  File "cycle2.py", line 11, in <module>
    cycle(0.0,10.0)
  File "cycle2.py", line 6, in cycle
    for i in range(0,80):
TypeError: 'float' object is not callable
</pre>
<p>Can you see it? It took me a while. I&#8217;d assigned a variable called <strong>range</strong> and then tried to call the <strong>range()</strong> function. I&#8217;d overloaded a built-in function. Duh!</p>
<p>I just had to rename my variable and it was good.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/python-function-is-not-callable.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Girls have more stuff</title>
		<link>http://www.doctort.org/adam/bizarre/girls-have-more-stuff.html</link>
		<comments>http://www.doctort.org/adam/bizarre/girls-have-more-stuff.html#comments</comments>
		<pubDate>Wed, 09 Sep 2009 11:11:09 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Bizarre Stuff]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=339</guid>
		<description><![CDATA[I just want to say that women just have more stuff. Here is the state of our dressing table right now, you can just see my stuff in the corner there if you look closely but look at my wife&#8217;s stuff &#8211; handbags and hats and jewellery oh my!

]]></description>
			<content:encoded><![CDATA[<p>I just want to say that women just have more stuff. Here is the state of our dressing table right now, you can just see my stuff in the corner there if you look closely but look at my wife&#8217;s stuff &#8211; handbags and hats and jewellery oh my!<br />
<img src="http://www.doctort.org/adam/wp-content/uploads/2009/09/stuff2.jpg" alt="" title="Our Dressing Table" width="500" height="416" class="alignnone size-full wp-image-340" /></p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/bizarre/girls-have-more-stuff.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More Spreadsheet Tomfoolery</title>
		<link>http://www.doctort.org/adam/general/more-spreadsheet-tomfoolery.html</link>
		<comments>http://www.doctort.org/adam/general/more-spreadsheet-tomfoolery.html#comments</comments>
		<pubDate>Thu, 03 Sep 2009 04:10:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=335</guid>
		<description><![CDATA[I&#8217;m still messing around with my bookkeeping. Here is another nifty formula for OpenOffice Calc. I have a list of revenue and the dates that revenue was received like so:


Date
Amount


10 Jul 2009
$1,080.00


18 Jul 2009
$144.45


30 Jul 2009
$2,248.40


2 Aug 2009
$1,000.00


5 Aug 2009
$522.30


I want to create a month-by-month summary of these figures. Here is the (rather complex) formula [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;m still messing around with my bookkeeping. Here is another nifty formula for OpenOffice Calc. I have a list of revenue and the dates that revenue was received like so:</p>
<table border="1">
<tr>
<th>Date</th>
<th>Amount</th>
</tr>
<tr>
<td>10 Jul 2009</td>
<td>$1,080.00</td>
</tr>
<tr>
<td>18 Jul 2009</td>
<td>$144.45</td>
</tr>
<tr>
<td>30 Jul 2009</td>
<td>$2,248.40</td>
</tr>
<tr>
<td>2 Aug 2009</td>
<td>$1,000.00</td>
</tr>
<tr>
<td>5 Aug 2009</td>
<td>$522.30</td>
</tr>
</table>
<p>I want to create a month-by-month summary of these figures. Here is the (rather complex) formula to make that happen:</p>
<pre>=SUMPRODUCT(A1:A5&gt;=DATEVALUE(&quot;01 Jul 2009&quot;);A1:A5&lt;DATEVALUE(&quot;01 Aug 2009&quot;);B1:B5)</pre>
<p>That formula will give the total of all amounts for July. By repeating this for each month, you can get monthly summaries for the whole year.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/more-spreadsheet-tomfoolery.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Metamorphosis</title>
		<link>http://www.doctort.org/adam/general/metamorphosis.html</link>
		<comments>http://www.doctort.org/adam/general/metamorphosis.html#comments</comments>
		<pubDate>Sun, 16 Aug 2009 12:18:39 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=332</guid>
		<description><![CDATA[
I realise I&#8217;ve been a bit dark lately with my blog with very minimal posting over the last few months. A lot of things have been changing around here. My wife and I have swapped roles. That&#8217;s right, I&#8217;m the housewife now and she has a full-time job.
I&#8217;m still doing some contract work here and [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.doctort.org/adam/wp-content/uploads/2009/08/butterfly.png" alt="A picture of a butterfly" title="butterfly" width="500" height="199" class="size-full wp-image-333" /><br />
I realise I&#8217;ve been a bit dark lately with my blog with very minimal posting over the last few months. A lot of things have been changing around here. My wife and I have swapped roles. That&#8217;s right, I&#8217;m the housewife now and she has a full-time job.</p>
<p>I&#8217;m still doing some contract work here and there but am spending most of my time looking after the kids and doing housework. To be perfectly honest, I&#8217;m enjoying it. Its really nice to take a break from full-time work, the first time I have not been working flat-out in about twelve years.</p>
<p>So where to from here? While kids and housework keep me reasonably busy, I&#8217;m not the kind of guy who can just sit around. So I&#8217;m planning to create some products for sale. I&#8217;ve set up a new site called <a href="http://siliconsparrow.com/">siliconsparrow.com</a> where I will base my professional operations. I am excited about the possibilities.</p>
<p>Unfortunately it means this blog will become a bit neglected. I&#8217;ll only be posting personal and hobby stuff here, and perhaps more housewife-related stuff like recipies!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/metamorphosis.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Parallel port control in Python</title>
		<link>http://www.doctort.org/adam/nerd-notes/parallel-port-control-in-python.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/parallel-port-control-in-python.html#comments</comments>
		<pubDate>Mon, 10 Aug 2009 01:11:13 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=330</guid>
		<description><![CDATA[Controlling the parallel port has always been a pain in Windows 2000, XP and later. In DOS or older versions of Windows you could just write a byte directly to port 0&#215;378 and that was it.
Now you can get the same level of simplicity using inpout32.dll and Python. Go here to download the DLL and [...]]]></description>
			<content:encoded><![CDATA[<p>Controlling the parallel port has always been a pain in Windows 2000, XP and later. In DOS or older versions of Windows you could just write a byte directly to port 0&#215;378 and that was it.</p>
<p>Now you can get the same level of simplicity using inpout32.dll and Python. Go <a href="http://logix4u.net/Legacy_Ports/Parallel_Port/Inpout32.dll_for_Windows_98/2000/NT/XP.html">here</a> to download the DLL and you can access it from Python just as easily as it used to be under DOS. The following example writes the number 5 to the parallel port:</p>
<pre>import ctypes

ctypes.windll.inpout32.Out32(0x378, 5)</pre>
<p></p>
<hr />
<strong>UPDATE:</strong> I have made a simple demo app using this technique. You can download it from my commercial website at <a href="http://siliconsparrow.com/parallel-port-tester-in-python/">http://siliconsparrow.com/parallel-port-tester-in-python/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/parallel-port-control-in-python.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Australian Income Tax Spreadsheet Formula</title>
		<link>http://www.doctort.org/adam/nerd-notes/australian-income-tax-spreadsheet-formula.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/australian-income-tax-spreadsheet-formula.html#comments</comments>
		<pubDate>Wed, 29 Jul 2009 12:47:36 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=328</guid>
		<description><![CDATA[Just a quick note for my future reference. I&#8217;m setting up my budget spreadsheet for the new financial year and I have converted the Australian 2010 income tax rates into a spreadsheet formula. I use OpenOffice, it should work fine in Excel too.
=if(A1&#60;=6000;0;if(a1&#60;=35000;.15*(a1-6000);if(a1&#60;=80000;4350+(.3*(a1-35000));if(a1&#60;=180000;17850+(.38*(a1-80000));55850+(.45*(a1-180000))))))
]]></description>
			<content:encoded><![CDATA[<p>Just a quick note for my future reference. I&#8217;m setting up my budget spreadsheet for the new financial year and I have converted the Australian 2010 income tax rates into a spreadsheet formula. I use OpenOffice, it should work fine in Excel too.</p>
<pre>=if(A1&lt;=6000;0;if(a1&lt;=35000;.15*(a1-6000);if(a1&lt;=80000;4350+(.3*(a1-35000));if(a1&lt;=180000;17850+(.38*(a1-80000));55850+(.45*(a1-180000))))))</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/australian-income-tax-spreadsheet-formula.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>TV addiction</title>
		<link>http://www.doctort.org/adam/general/tv-addiction.html</link>
		<comments>http://www.doctort.org/adam/general/tv-addiction.html#comments</comments>
		<pubDate>Mon, 04 May 2009 06:42:27 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=323</guid>
		<description><![CDATA[
One of the little rules in our house is that kids are not allowed to watch TV before school in the morning.
But these two are so addicted to the glow of a screen, they watch my screen saver and pretend it is a movie!
Sometimes they are quite amusing to watch, they come up with things [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.doctort.org/adam/wp-content/uploads/2009/05/screensavertelly.jpeg"><img title="screensavertelly" src="http://www.doctort.org/adam/wp-content/uploads/2009/05/screensavertelly-300x225.jpg" alt="" width="300" height="225" align="right" /></a></p>
<p>One of the little rules in our house is that kids are not allowed to watch TV before school in the morning.</p>
<p>But these two are so addicted to the glow of a screen, they watch my screen saver and pretend it is a movie!</p>
<p>Sometimes they are quite amusing to watch, they come up with things like &#8220;Oooh, watch out little blob, that big blob is going to get you&#8221; or &#8220;That&#8217;s two cows dancing!&#8221;.</p>
<p>My screen saver is <a href="http://electricsheep.org/">Electric Sheep</a> by the way.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/tv-addiction.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Toshiba vs Dell &#8211; Cashback deals and Customer Service</title>
		<link>http://www.doctort.org/adam/general/toshiba-vs-dell-cashback-deals-and-customer-service.html</link>
		<comments>http://www.doctort.org/adam/general/toshiba-vs-dell-cashback-deals-and-customer-service.html#comments</comments>
		<pubDate>Mon, 13 Apr 2009 00:10:57 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=320</guid>
		<description><![CDATA[I&#8217;ve never done a good &#8216;ol consumer rant on this site so here we go. I&#8217;ll put my grumpy old man hat on&#8230;
A couple of months ago, it so happened that I bought a Toshiba laptop and a Dell screen in the same week. Both products offered a $100 cash-back deal. What happened next showed [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve never done a good &#8216;ol consumer rant on this site so here we go. I&#8217;ll put my grumpy old man hat on&#8230;</p>
<p>A couple of months ago, it so happened that I bought a Toshiba laptop and a Dell screen in the same week. Both products offered a $100 cash-back deal. What happened next showed very dramatically the difference in attitude towards customers of these two companies.</p>
<h2><strong>How the Toshiba cash-back works<br />
</strong></h2>
<p>The cash-back cannot be claimed in the store, you need to go to Toshiba&#8217;s web site and fill in a form.</p>
<p>But there is no form on Toshiba&#8217;s web site. So I <strong>phoned </strong>Toshiba and after the usual phone menu maze and having to hold for quarter of an hour, the Toshiba representative told me I need to go to a <a href="http://www.isd.toshiba.com.au/">different web site</a>.</p>
<p>Next were <strong>several screens of web forms </strong>to fill in including all my personal details, the model number and serial number of the laptop, when I bought it, where I bought it, the address of the shop, the ABN number of the owner of the shop and more and more and more. So then could I submit my claim ? No. They require you to <strong>print out</strong> the forms and then <strong>photocopy</strong> the purchase receipt and <strong>write</strong> a note, put it in a <strong>paper envelope</strong> and <strong>go to the post office</strong> and post it!!  This all took me about two hours.</p>
<p>So Toshiba eliminate people who are not web-savvy, do not have a printer and a photocopier, cannot be bothered spending an hour filling out forms or cannot be bothered going to the post office.</p>
<p>I received my cash-back about <strong>6 weeks</strong> later in the form of a postal money order. I had to physically <strong>go to the bank </strong>and deposit it over the counter so you can add an extra hour to the total time spent by me to claim this money.</p>
<p>You can also add to that, another half an hour I spent writing a letter of complaint about all this to Toshiba. Did I receive so much as an acknowledgement that they received my letter ?  Nope.</p>
<p>From a business point of view I can understand why they do all this. They figure if they make claiming the cash back difficult they can save money because I bet that less than 30% of customers actually go through all that bother. If they sell 1000 laptops, they&#8217;ve just saved $70,000.</p>
<p>Of course, this comes at the expense of aggrivating their own customers who like me, will probably never buy another Toshiba product again. Can you put a dollar value on that kind of customer resentment ?</p>
<h2><strong>How the Dell cash-back works</strong></h2>
<p>Dell credited my VISA card with $100 <strong>the next day</strong>. No forms to fill in, I didn&#8217;t have to do anything. Dell want to keep their customers.</p>
<h2><strong>Summary</strong></h2>
<p>I know who I will choose next time I buy a laptop.</p>
<table border="1">
<tbody>
<tr>
<th>Company</th>
<th>Time I spent applying for the cashback</th>
<th>Time before I received the cashback</th>
</tr>
<tr>
<td><strong>Toshiba</strong></td>
<td>3 hours</td>
<td>6 weeks</td>
</tr>
<tr>
<td><strong>Dell</strong></td>
<td>0</td>
<td>1 day</td>
</tr>
</tbody>
</table>
<p><strong>UPDATE: </strong><a href="http://www.dilbert.com/strips/comic/2009-04-19/">This Dilbert cartoon</a> says it all&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/toshiba-vs-dell-cashback-deals-and-customer-service.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Creating a Debian Kernel Package for v2.6.26</title>
		<link>http://www.doctort.org/adam/nerd-notes/creating-a-debian-kernel-package-for-v2626.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/creating-a-debian-kernel-package-for-v2626.html#comments</comments>
		<pubDate>Thu, 19 Mar 2009 00:47:30 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=317</guid>
		<description><![CDATA[There are so many guides out there on how to make a Linux kernel and so many of them are out of date, I thought I should write down a simple step-by-step of the current way to do it as of early 2009.
My goal here was to compile a new kernel for a Debian 4.0 [...]]]></description>
			<content:encoded><![CDATA[<p>There are so many guides out there on how to make a Linux kernel and so many of them are out of date, I thought I should write down a simple step-by-step of the current way to do it as of early 2009.</p>
<p>My goal here was to compile a new kernel for a Debian 4.0 (Etch) system. You can download pre-built kernels but I wanted to modify some drivers before building it.</p>
<p>Anyway, you will firstly need the source code. Go to the <a href="http://packages.debian.org/etch-backports/">Debian Backports Repository</a> and grab the latest <strong>linux-source</strong> package. Before installing it, you will need to install some tools:</p>
<pre>sudo apt-get install kernel-package fakeroot libncurses5-dev</pre>
<p>Now we can install the source:</p>
<pre>sudo dpkg -i linux-image-2.6.26_dvc.1.2_i386.deb

cd /usr/src

tar jxvf linux-source-2.6.26.tar.bz2

ln -s linux-source-2.6.26 linux

cd linux</pre>
<p>Next you need to configure the kernel. A good way is to simply copy the current kernel configuration:</p>
<pre>cp /boot/config-2.6.18-6-686 ./.config</pre>
<p>Finally, launch the make-kpkg utility. This will configure, compile and package the kernel in a DEB package.</p>
<pre>fakeroot make-kpkg --revision=mycustomkernel-1.0 --config menuconfig --initrd kernel_image</pre>
<p>This will launch the kernel configuration menu first. You can make any configuration changes here but usually the defaults are fine. When it is all done you will have the completed package file in /usr/src.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/creating-a-debian-kernel-package-for-v2626.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Reading a single keystroke with C++ on Linux</title>
		<link>http://www.doctort.org/adam/nerd-notes/reading-single-keystroke-on-linux.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/reading-single-keystroke-on-linux.html#comments</comments>
		<pubDate>Sun, 01 Feb 2009 23:03:05 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=309</guid>
		<description><![CDATA[Just say you want to input a single key from your user such as asking &#8220;Would you like to continue [y/n] ?&#8221; without requiring the user to press ENTER. You&#8217;d think you could do it like this:
char c;
cin >> c;
cout ]]></description>
			<content:encoded><![CDATA[<p>Just say you want to input a single key from your user such as asking <em>&#8220;Would you like to continue [y/n] ?&#8221;</em> without requiring the user to press ENTER. You&#8217;d think you could do it like this:</p>
<pre>char c;
cin >> c;
cout << "You pressed " << c << endl;</pre>
<p>But it doesn't work! The user has to press ENTER before the cin function will complete.</p>
<p>I read all sorts of crazy solutions on the web to fix this, most of which involve using NCURSES but I think that is total overkill. I have found a simpler way.</p>
<p>Now it's not the fault of std::cin or even C++. It's the operating system which buffers the keyboard input, only releasing it to your app when the user whacks ENTER. So what you need to do is tell the OS not to buffer keystrokes. You can do this with the <strong><a href="http://linux.die.net/man/3/tcgetattr">termios</a></strong> functions in Linux. Here is an example:</p>
<pre>// Example for inputting a single keystroke in C++ on Linux
// by Adam Pierce &lt;adam@doctort.org&gt;
// This code is freeware. You are free to copy and modify it any way you like.

#include &lt;iostream&gt;
#include &lt;termios.h&gt;

using namespace std;
main()
{
// Black magic to prevent Linux from buffering keystrokes.
    struct termios t;
    tcgetattr(STDIN_FILENO, &amp;t);
    t.c_lflag &amp;= ~ICANON;
    tcsetattr(STDIN_FILENO, TCSANOW, &amp;t);

// Once the buffering is turned off, the rest is simple.
    cout &lt;&lt; "Enter a character: ";
    char c = cin.get();
    cout &lt;&lt; "Your character was " &lt;&lt; c &lt;&lt; endl;

    return 0;
}
</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/reading-single-keystroke-on-linux.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple Slide Show is now open source</title>
		<link>http://www.doctort.org/adam/general/simple-slide-show-is-now-open-source.html</link>
		<comments>http://www.doctort.org/adam/general/simple-slide-show-is-now-open-source.html#comments</comments>
		<pubDate>Wed, 17 Dec 2008 12:00:39 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=299</guid>
		<description><![CDATA[I&#8217;ve taken that old Simple Slide Show program I wrote years ago and given it a bit of a brush-up. I also changed the licensing so it is open source.
As a bonus, I have added a new feature to allow you to customise the colour and font used in the image captions.
You could use the [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://doctort.org/adam/product/slideshow/"><img src="http://www.doctort.org/adam/wp-content/uploads/2008/12/slideshow.jpeg" alt="" title="Simple Slideshow" width="156" height="115" class="alignright size-full wp-image-301" align="right" /></a>I&#8217;ve taken that old Simple Slide Show program I wrote years ago and given it a bit of a brush-up. I also changed the licensing so it is open source.</p>
<p>As a bonus, I have added a new feature to allow you to customise the colour and font used in the image captions.</p>
<p>You could use the source code from this to make your own more fully-featured slide show application, or just use it as example code for writing whatever. I hope you find it useful.</p>
<p><a href="http://doctort.org/adam/product/slideshow/">CLICK HERE</a> to go to the download page. It&#8217;s free!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/simple-slide-show-is-now-open-source.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Linux is amazingly useful</title>
		<link>http://www.doctort.org/adam/general/linux-is-amazingly-useful.html</link>
		<comments>http://www.doctort.org/adam/general/linux-is-amazingly-useful.html#comments</comments>
		<pubDate>Tue, 09 Dec 2008 06:04:38 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=297</guid>
		<description><![CDATA[It&#8217;s incredible the things you can do in Linux. Here&#8217;s two amazing things I&#8217;ve done today:
Amazing thing #1
I had a corrupted disk and I wanted to run some recovery tools on it but to be safe, I wanted work with a copy of the corrupted disk. So I created a raw copy of the entire [...]]]></description>
			<content:encoded><![CDATA[<p>It&#8217;s incredible the things you can do in Linux. Here&#8217;s two amazing things I&#8217;ve done today:</p>
<p><strong>Amazing thing #1</strong></p>
<p>I had a corrupted disk and I wanted to run some recovery tools on it but to be safe, I wanted work with a copy of the corrupted disk. So I created a raw copy of the entire disk and piped it to a different machine which had enough storage:</p>
<pre>cat /dev/hda1 | netcat -q 1 192.168.0.15 9998</pre>
<p>That created a file of 1128GB in size &#8211; probably the single biggest file I&#8217;ve ever created. It took more than 12 hours to copy to the other machine!</p>
<p>Then I created a loopback device so the system could pretend the file was a real disk:</p>
<pre>losetup /dev/loop0 /home/adam/recovery.raw</pre>
<p>Then I ran xfs_repair on it and recovered all the files. In the old days I would have to physically install a second hard drive in the corrupted box &#8211; did I mention that I did all this remotely from off-site through an ssh session.</p>
<p><strong>Amazing thing #2</strong></p>
<p>I needed to find all the Makefiles for an older version of my projects and update them. This command searches through a bunch of folders for files which contain the string &#8220;1.6&#8243; and loads them all up in a text editor for me. It sure beats manually going through dozens of folders and eyeballing every file.</p>
<pre>find /usr/src -name Makefile | xargs grep -l "1.6" | xargs kate</pre>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/linux-is-amazingly-useful.html/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Networked Warcraft II under DOSBox</title>
		<link>http://www.doctort.org/adam/nerd-notes/networked-warcraft-ii-under-dosbox.html</link>
		<comments>http://www.doctort.org/adam/nerd-notes/networked-warcraft-ii-under-dosbox.html#comments</comments>
		<pubDate>Sun, 07 Dec 2008 10:36:33 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[Nerd Notes]]></category>
		<category><![CDATA[DOSBOX]]></category>
		<category><![CDATA[ipx]]></category>
		<category><![CDATA[warcraft]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=294</guid>
		<description><![CDATA[This is a guest post contributed by Richard Geoffrion. Thanks for sending this Richard, I hope others will find it useful!
First off, thank you so much, Adam, for the primer on getting Warcraft II working under DOSBOX. The “-t cdrom” option was the piece I was missing to get my game to recognize the CD [...]]]></description>
			<content:encoded><![CDATA[<p>This is a guest post contributed by Richard Geoffrion. Thanks for sending this Richard, I hope others will find it useful!</p>
<hr />First off, thank you so much, Adam, for the primer on getting Warcraft II working under DOSBOX. The “-t cdrom” option was the piece I was missing to get my game to recognize the CD and work.</p>
<p>After I installed my game, I wound up copying my entire Warcraft II CD to my <strong>C:\DOSGAMES\WAR2</strong> directory, then I added “mount d c:\dosgames\war2 -t cdrom” to the [autoexec] section. By copying the CD to the same path as the installed game, I don’t have to duplicate the space to hold the files from the CDROM.</p>
<p>As for playing multiplayer Warcraft II in DOSBOX, it could not be made any easier. There is NOTHING that the user has to configure in Microsoft Windows (or Linux…or OSX) to get IPX gaming working under DOSBOX. The DOSBOX team has built an IPX wrapper right into DOSBOX. Once the Warcraft II game is operational on two or more computers on your network you are ready to setup networking in DOSBOX.</p>
<p><strong>Instructions:</strong><br />
<strong>1)</strong> Identify the IP addresses or names of each computer that will be participating in the gaming session. (Windows users: To display the computer’s IP address click START, click RUN, type in “cmd” and click the OK button. At the prompt, type in the command <strong>ipconfig</strong> and press enter. Write down or remember the number on the <strong>IP ADDRESS</strong> line. If you want to know the name of the computer, you can type in the command ”hostname” and press enter to see the name.) (Linux/OSX users: run ifconfig from a terminal (you may have to sudo the command or su to root)</p>
<p><strong>2)</strong> Once you have identified all of the IP addresses (or names) of the computers on your network that will be playing the game, pick one to designate as your IPX SERVER.</p>
<p><strong>3)</strong> *OPTIONAL STEP* Sometimes the Microsoft Windows firewall is turned on and it could interfere with proper communications between the client and the server. If you want to run a test to make sure that everyone can connect to your server, then go to each computer that will be connecting to your designated server and start a windows command prompt. Once the prompt is open, use the ping command along with the IP address of the server -OR- the server computer’s name to make sure that the server can respond to the clients. [Example: " ping 192.168.1.100 " -or- " ping HP-PAV6330 " ]</p>
<p><strong>4)</strong> Start DOSBOX on your designated server. Run the DOSBOX command:</p>
<pre>ipxnet startserver</pre>
<p>That is IT!! That is ALL YOU NEED TO DO on the server! It is THAT SIMPLE!</p>
<p>–we’re almost done!–</p>
<p><strong>5)</strong> Now start DOSBOX on each client computer that will be joining in the multiplayer fun. Once DOSBOX is running we will be using the DOSBOX command ‘IPXNET CONNECT’ but we’ll be adding something to it. We will either add the IP address of the server or the name. If we were to use the IP address or name from the examples in the optional step 3, our DOSBOX command might look something like this:</p>
<pre>C:\&gt; IPXNET CONNECT 192.168.1.100</pre>
<p>-OR-</p>
<pre>C:\&gt; IPXNET CONNECT HP-PAV6330</pre>
<p>At this point, DOSBOX will handle wrapping the IPX packets in TCP/IP.</p>
<p><strong>6)</strong> Start WAR2 on the server, Select Multiplayer, select the IPX Network connection method and<br />
click <strong>CONNECT</strong> then <strong>CREATE GAME.</strong></p>
<p><strong>7)</strong> Start War2 on each client, Select Multiplayer, select the <strong>IPX Network</strong> connection method and click <strong>CONNECT</strong> then <strong>JOIN GAME</strong>.</p>
<p><strong>8)</strong> Begin your game and race your peons out to the unclaimed gold mines to put walls around them to protect them from any players..especially computer players. Oh..wait….that doesn’t belong in this set of instructions! Now who let that slip by quality control?!!?</p>
<p><em><strong>NOTE 1:</strong> It *IS* possible to play WARCRAFT II with a friend across the internet. The variety of the additional steps needed are a bit beyond anyone’s ability to document in a single document but I can briefly outline the requirements below.</em></p>
<p><strong>A)</strong> The gamer who will be the server ( the server user) will have to know their real-world public IP address. If you don’t know your public IP address, you can visit a site that displays your public IP address. A google search on finding your public IP will reveal many. http://www.whatismyip.com is one. [#]</p>
<p><strong>B)</strong> If the server user is behind a router/firewall, then the server user will also need to..</p>
<p>*) know their private IP address. This is the IP address that was discovered in the ‘ipconfig’ command from step 1 above.</p>
<p>*) configure their router/firewall to forward the UDP port 213 –DOSBOX IPX WRAPPER traffic– from their external interface to UDP port 213 on the private IP Address of the computer that is the DOSBOX IPX server.</p>
<p><em><strong>Note 2:</strong> The DOSBOX command ” <strong>IPXNET help</strong> ” will display a list of available networking commands and a small bit of documentation — like the fact that the DEFAULT port for the IPX wrapper in DOSBOX is UDP port 213</em></p>
<p><em><strong>Note 3:</strong> These same networking steps should work for any IPX DOS game that runs in DOSBOX. These steps have been successfully tested with “One Must Fall”. [Google omf21cd.zip to download this free game.]</em></p>
<p>[#] Please avoid http://moanmyip.com if you are ..oh I don’t know… at work setting up for a Christmas LAN party! Of course using that link as a secondary browser-start-up-home-page can be fun.</p>
<p>Happy Retro-Gaming!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/nerd-notes/networked-warcraft-ii-under-dosbox.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Update on TwinHan remote for Mythbuntu 8.10</title>
		<link>http://www.doctort.org/adam/general/update-on-twinhan-remote-for-mythbuntu-810.html</link>
		<comments>http://www.doctort.org/adam/general/update-on-twinhan-remote-for-mythbuntu-810.html#comments</comments>
		<pubDate>Sat, 15 Nov 2008 13:08:37 +0000</pubDate>
		<dc:creator>adam</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://www.doctort.org/adam/?p=281</guid>
		<description><![CDATA[I&#8217;ve just upgraded my HTPC to the new Mythbuntu 8.10. I must say that setup is a helluva lot easier than previous versions of Myth although I found my ATI card did not work at all and I had to exhume an ancient nVidia card from my parts box. And I had to hack the [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.doctort.org/adam/wp-content/uploads/2008/11/twinhanremote.jpg" alt="twinhan remote" align="right" />I&#8217;ve just upgraded my HTPC to the new <a href="http://www.mythbuntu.org">Mythbuntu</a> 8.10. I must say that setup is a helluva lot easier than previous versions of Myth although I found my ATI card did not work at all and I had to exhume an ancient nVidia card from my parts box. And I had to hack the xorg.conf file to make the TV output work so the setup is not 100% seamless.</p>
<p>Anyway, onto the odd device, my TwinHan remote control. Setting this up is much easier under Mythbuntu 8.10. Here&#8217;s the step-by-step:</p>
<p><br clear="all" /></p>
<p><strong>Step 1 &#8211; Configure LIRC</strong></p>
<p>Plug the IR receiver into a USB port. Wait a moment for it to register and then type the following command:</p>
<pre>ls /dev/input/by-id</pre>
<p>It should produce output like this. This step is just to verify the correct device name for the remote.</p>
<pre>usb-Twinhan_Tech_Remote_Control_1111111-event-kbd
usb-Twinhan_Tech_Remote_Control_1111111-event-mouse
usb-Twinhan_Tech_Remote_Control_1111111-mouse</pre>
<p>Now edit the file <strong>/etc/lirc/hardware.conf</strong> and enter values for REMOTE_DRIVER and REMOTE_DEVICE:</p>
<pre>REMOTE_DRIVER="devinput"
REMOTE_DEVICE="/dev/input/by-id/usb-Twinhan_Tech_Remote_Control_1111111-event-kbd"</pre>
<p>Due to a bug in this version of Ubuntu, you will also need to run the following command:</p>
<pre>lshal | grep input.product</pre>
<p>It will spit out a few lines of text. Verify that it produces a line like this:</p>
<pre>  input.product = 'Twinhan Tech Remote Control'  (string)</pre>
<p>Then edit the file <strong>/usr/share/hal/fdi/preprobe/20thirdparty/lirc.fdi</strong> and make it read like so:</p>
<pre>&lt;?xml version="1.0" encoding="UTF-8"?&gt;

&lt;deviceinfo version="0.2"&gt;
  &lt;device&gt;
     &lt;match key="info.product" contains_ncase="Twinhan Tech Remote Control"&gt;
        &lt;merge key="info.ignore" type="bool"&gt;true&lt;/merge&gt;
     &lt;/match&gt;
  &lt;/device&gt;
&lt;/deviceinfo&gt;</pre>
<p>Finally, download this file:</p>
<p><a href="http://www.doctort.org/adam/files/twinhan/lircd.conf">lircd.conf</a></p>
<p>and put it in <strong>/etc/lirc/</strong></p>
<p>At this stage, I had to reboot so that everything loaded properly. Once you have rebooted, you can test the remote control by typing:</p>
<pre>irw</pre>
<p>Now every time you press a key, you should see it printed on the screen. Press Ctrl-C when you are done.</p>
<p><strong>STEP 2 &#8211; Configure MythTV commands</strong></p>
<p>We are getting closer now. The next step is to set up a file called <strong>~/.lirc/mythtv</strong> which contains the mappings between the keys on the remote and the functions in MythTV. Once again, I have already prepared this file which you can download here:</p>
<p><a href="http://www.doctort.org/adam/files/twinhan/lircrc-mythtv">lircrc-mythtv</a></p>
<p>Rename this file to <strong>mythtv</strong> and move it to <strong>~/.lirc/</strong> Once that is done, restart MythTV. Here are the key mappings you will end up with:</p>
<table>
<tr>
<th>Key</th>
<th>Function</th>
</tr>
<tr>
<td>REC</td>
<td>Record</td>
</tr>
<tr>
<td>TELETEXT</td>
<td>OSD</td>
</tr>
<tr>
<td>RECALL</td>
<td>MENU</td>
</tr>
<tr>
<td>PREVIEW</td>
<td>INFO</td>
</tr>
<tr>
<td>REW/FFWD</td>
<td>Forward/backward in MythMusic</td>
</tr>
<tr>
<td>CAPTURE</td>
<td>Previous playlist item in MythMusic</td>
</tr>
<tr>
<td>RECORDLIST</td>
<td>Next playlist item in MythMusic</td>
</tr>
</table>
<p><strong>STEP 3 &#8211; Configure MPlayer</strong></p>
<p>The final step is to configure the mapping between the remote and the commands in MPlayer. Since MPlayer is a separate program, it needs to be configured separately to MythTV. To configure it, we need another lircrc file but this time is has to be called <strong>~/.lirc/mplayer</strong>. Download it from here:</p>
<p><a href="/adam/files/twinhan/lircrc-mplayer">lircrc-mplayer</a></p>
<p>Rename it to <strong>mplayer</strong> and put it in <strong>~/.lirc/</strong> and that should be that! Here are the key mappings for MPlayer:</p>
<table>
<tr>
<th>Key</th>
<th>Function</th>
</tr>
<tr>
<td>MUTE</td>
<td>Mute</td>
</tr>
<tr>
<td>VOL+/-</td>
<td>Adjust volume</td>
</tr>
<tr>
<td>CH+/-</td>
<td>Skip fwd/back 60 seconds</td>
</tr>
<tr>
<td>REW/FFWD</td>
<td>Skip fwd/back 10 seconds</td>
</tr>
<tr>
<td>PREVIEW</td>
<td>Show/hide subtitles</td>
</tr>
<tr>
<td>TELETEXT</td>
<td>Show/hide OSD</td>
</tr>
<tr>
<td>TAB</td>
<td>Cycle through audio tracks</td>
</tr>
</table>
<p>If you do not like the key mappings I have chosen, you may edit the files in ~/.lirc. The format should be fairly easy to follow.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.doctort.org/adam/general/update-on-twinhan-remote-for-mythbuntu-810.html/feed</wfw:commentRss>
		<slash:comments>49</slash:comments>
		</item>
	</channel>
</rss>
