<?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>Tom Walsham</title>
	<atom:link href="http://www.tomwalsham.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.tomwalsham.com</link>
	<description>Tech stuff, sophistry and nonsense</description>
	<lastBuildDate>Fri, 04 Nov 2011 21:00:09 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>On Rolling Your Own Blog Engine</title>
		<link>http://www.tomwalsham.com/2010/08/27/on-rolling-your-own-blog-engine/</link>
		<comments>http://www.tomwalsham.com/2010/08/27/on-rolling-your-own-blog-engine/#comments</comments>
		<pubDate>Fri, 27 Aug 2010 21:49:02 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[blogging]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[hacking]]></category>
		<category><![CDATA[plugins]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=75</guid>
		<description><![CDATA[Why rolling your own blog engine is a fun (and counterproductive) thing to do.  Why the six year evolution of tomwalsham.com has ended up on Wordpress]]></description>
			<content:encoded><![CDATA[<p>Lets take a trip back in time through several aeons of www strata, to a year known as 2004. In Internet terms this was another world entirely &#8211; YouTube was months away from its initial founding in February 2005. Twitter was but a twinkle in the eye of a young hacker named Jack Dorsey (no relation to Englebert Humperdinck). Back then, the hottest idea for public communication on the Web was still blogging, even though it was a fairly well-matured concept by that point.</p>
<p><a href="http://www.tomwalsham.com/wp-content/uploads/2010/08/me_desk.jpg"><img class="size-medium wp-image-77  alignright" title="2 CRTs - 1337! And oh my the hair." src="http://www.tomwalsham.com/wp-content/uploads/2010/08/me_desk-300x224.jpg" alt="Happy coder" /></a></p>
<p>Towards the end of the year I picked up an ego domain &#8211; tomwalsham.com &#8211; and decided to give this blogging malarkey a go.  I like to think I have a creative hand, I&#8217;m certainly never short on opinion and I like pontificating.  I&#8217;d also recently moved to a country where winter <em>really means </em>winter, allowing for lots of shut-in time with t&#8217;interweb.  I was going to use my creative urge to spew forth my rants, ideas, code projects and general nerdery to the hopefully listening public.</p>
<p>So, why 5 1/2 years later do I have very little to show for that original spark?  What could have derailed such a promising career in online self-publishing, leading to a pitiful 70 posts having been published and a hit count still some way below 100,000.</p>
<p>There were a few major factors I can put my finger on, which I will put in order of increasing influence:</p>
<ul>
<li>A new job which has taken the majority of my creative and/or code output for the past 5 years</li>
<li>My other side projects being rather more fun than shouting at imaginary people from an ego-hilltop</li>
<li>Having offspring &#8211; she (rightfully!) dominates my non-work time</li>
<li><strong>Rolling my own Blog engine</strong></li>
</ul>
<p>Work and child commitments were contributory factors, and my side-interest in <a title="zombie costume" href="http://www.zombiemaker.com" target="_blank">zombie fx</a> took rather more of my web-publishing energy, but they did not strike the fatal blow.  I fell into a trap that <a href="http://haacked.com/archive/2006/10/06/Rolling_Your_Own_Blog_Engine.aspx" target="_blank">many</a> <a href="http://www.codinghorror.com/blog/2006/10/on-frameworkitis.html" target="_blank">people</a> <a href="http://stackoverflow.com/questions/471940/why-does-every-man-and-his-dog-want-to-code-a-blogging-engine" target="_blank">have</a> also over the same period &#8211; the natural counterpoint to an ego project for a programmer &#8211; writing your own blog engine.</p>
<p>I&#8217;d dabbled previously in blogging around the the turn of the millennium &#8211; a quick &#8216;n&#8217; dirty Perl implementation with some very rudimentary file-based post control.  It starts fairly simply.  The idea of using a hosted blogging service for somebody whose career path was moving from sysadmin to web developer just didn&#8217;t <em>feel</em> right. There were plenty of FOSS projects out there, but in 2005 there was no &#8216;one&#8217; contender for convenience. WordPress, Movable Type, Typo3 &#8211; all had their benefits and drawbacks and were not the mature projects they are today, in particular vis a vis the supporting ecosystem of plugin devs.  Templating/theming was also not well separated yet in these engines, and I&#8217;d been building CSS-based sites for 4 years already at that point &#8211; I wasn&#8217;t about to be confined by someone else&#8217;s tag soup. So I broke ground on Walsham Blog v0.1</p>
<p><a href="http://www.tomwalsham.com/wp-content/uploads/2010/08/DSCN6316.jpg"><img class="size-medium wp-image-78 alignleft" title="DSCN6316" src="http://www.tomwalsham.com/wp-content/uploads/2010/08/DSCN6316-300x225.jpg" alt="" /></a></p>
<p>To begin with the blog engine is more consuming than the content; putting in the basics &#8211; some simple scaffolding and a layout engine &#8211; was easy enough, but the roadmap seemed to grow ever bigger every time I fired up the text editor.  With half a jealous eye on the enormous steps made in the &#8216;real&#8217; CMS over the years,  began to find myself fighting a one-way Cold War against worldwide Open Source communities; toiling to develop elements only to find some dedicated team of hackers had released an amazing, fully functional, open source system just prior to you completing your half-arsed effort.  Glancing shiftily towards the door, you shamefully swap it in for your past weeks of hard work.  Case in point was my own rich text editor developed for &#8216;WalshamBlog&#8217; which was at the super advanced level of <strong>bold</strong>, <em>italic, </em>and unordered lists when TinyMCE matured enough to fully unscratch that personal itch.</p>
<p>While they&#8217;re both driven by similar concepts, personal projects tend to have different aims, motivations and requirements than &#8216;work&#8217; projects.  At work the priority is <em>just get it done</em>, so with a few minor exceptions (simple non-techie FOSS Project Management/Bug/Collaboration software really doesn&#8217;t exist, <em>still</em>) I use the status quo free-as-in-speech implementation. Over the past few years the community expansion on many of these projects, particularly with regards to plugins, has accelerated to an amazing level of polish, complexity and extensibility.  Recent work-related blogs executed with WordPress have brought me back round to the idea that blogging could be a fun and potentially helpful thing to do, and that if I&#8217;m going to do it, WordPress (particularly version 3 with custom taxonomies) is the way forward.</p>
<p>So it came to pass, and the roadmap for WalshamBlog v0.(5?) is being finally retired. Glancing through the list, here are some of the notable elements I can ceremoniously cross of the roadmap for WalshamBlog:</p>
<ul>
<li>Anti-spam! (I had 12,000 spammy user accounts at last check)</li>
<li>Posting from Android</li>
<li>Gravatar</li>
<li>Trackbacks</li>
<li>Image management</li>
<li>A million extra fun little things that won&#8217;t eat up a weekend implementing</li>
</ul>
<p>So here I am on WordPress.  I&#8217;m finally ready to discard my &#8216;Hello World&#8217; of multiply refactored features, fun and informative though it was to do.  I&#8217;ve finally written the requisite cathartic &#8216;why rolling your own blog is a bad idea&#8217; post which most self-cms-ers end with, and as I type in the elegant input system of WP3 and seamlessly inline images, I can&#8217;t help but feel that <em>nothing of value was lost</em>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2010/08/27/on-rolling-your-own-blog-engine/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Smooth image resizing in Internet Explorer with CSS</title>
		<link>http://www.tomwalsham.com/2008/08/26/smooth-image-resizing-in-internet-explorer-with-css/</link>
		<comments>http://www.tomwalsham.com/2008/08/26/smooth-image-resizing-in-internet-explorer-with-css/#comments</comments>
		<pubDate>Tue, 26 Aug 2008 23:28:58 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=18</guid>
		<description><![CDATA[A method to improve the quality of images when dynamically resized with CSS or javascript by the browser, targeted for Internet Explorer 7]]></description>
			<content:encoded><![CDATA[<p>
With the advent of Firefox 3, which introduced the Cairo image library to its rendering engine, web developers now have access to smooth image scaling within the browser.  This means you can take an image larger than you need and resize it with CSS to fit &#8211; especially useful in producing fluid expandable layouts for variable resolutions [more on that another time].
</p>
<p>
Sadly there&#8217;s always a caveat, and as usual that caveat is Internet Explorer. The dynamic image scaling in IE has always been ugly.<br />
After some application of google-fu to solving this problem, I discovered a fix for IE7. There is a little-known proprietary setting (isn&#8217;t there always!) &#8211; that for some reason wasn&#8217;t applied as the default &#8211; that allows you to access the &#8216;interpolation mode&#8217; of the browser resize.
</p>
<p>
The <a href='http://msdn.microsoft.com/en-us/library/ms530822(VS.85).aspx'>page at MSDN</a> explains the two methods of use &#8211; an MS proprietary CSS selector:</p>
<blockquote><p>
img { -ms-interpolation-mode : bicubic; }
</p></blockquote>
<p>And the Javascript method:</p>
<blockquote><p>
object.style.msInterpolationMode = &#8220;bicubic&#8221;;
</p></blockquote>
<p>If for some reason you like the terrible standard rendering method, you can of course set these values back to &#8216;nearest-neighbor&#8217;.
</p>
<p>
There are still some issues with this method. Firstly it doesn&#8217;t seem to work on png at all (see tux below).  Secondly, it can end up rendering some gifs a bit too smooth (see MCFC badge below). For me it&#8217;s at its best when resizing jpegs (including scaling up!), and most noticeable when they&#8217;re Jpegs with text. The <a href='http://icanhascheezburger.com/' target='_blank'>Lolcatters</a> will be happy.
</p>
<p>
So &#8211; a quick demo for those of you browsing in IE7 &#8211; here&#8217;s some samples in Jpeg, gif and png format, with text and images to demonstrate the difference this makes.  In the example I&#8217;ve used inline styles, but to implement this in general you would just put the following in your stylesheet:</p>
<blockquote><p>
img { -ms-interpolation-mode : bicubic; }
</p></blockquote>
<p>
If you don&#8217;t have access to IE7, here&#8217;s <a href='./bicubic/bicubic_example.png' target='_blank'>a screencap of the example</a>.
</p>
<p><h3>Jpeg</h3>
<div style='margin-bottom: 10px;text-align: center;width: 160px;border:solid 1px #000;'>
50% Scaling<br />
<img src='/bicubic/test.jpg' style='width: 75px;' alt='50 percent scale - regular' /><br />
<img src='/bicubic/test.jpg' style='width: 75px; -ms-interpolation-mode: bicubic;' alt='50 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 320px;border:solid 1px #000;'>
100% Scaling<br />
<img src='/bicubic/test.jpg' style='width: 150px;' alt='100 percent scale - regular' /><br />
<img src='/bicubic/test.jpg' style='width: 150px; -ms-interpolation-mode: bicubic;' alt='100 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 390px;border:solid 1px #000;'>
125% Scaling</p>
<p><img src='/bicubic/test.jpg' style='width: 188px;' alt='125 percent scale - regular' /><br />
<img src='/bicubic/test.jpg' style='width: 188px; -ms-interpolation-mode: bicubic;' alt='125 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<h3>Gif</h3>
<div style='margin-bottom: 10px;text-align: center;width: 160px;border:solid 1px #000;'>
50% Scaling<br />
<img src='/bicubic/test.gif' style='width: 75px;' alt='50 percent scale - regular' /><br />
<img src='/bicubic/test.gif' style='width: 75px; -ms-interpolation-mode: bicubic;' alt='50 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 320px;border:solid 1px #000;'>
100% Scaling<br />
<img src='/bicubic/test.gif' style='width: 150px;' alt='100 percent scale - regular' /><br />
<img src='/bicubic/test.gif' style='width: 150px; -ms-interpolation-mode: bicubic;' alt='100 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 390px;border:solid 1px #000;'>
125% Scaling<br />
<img src='/bicubic/test.gif' style='width: 188px;' alt='125 percent scale - regular' /><br />
<img src='/bicubic/test.gif' style='width: 188px; -ms-interpolation-mode: bicubic;' alt='125 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<h3>Png</h3>
<div style='margin-bottom: 10px;text-align: center;width: 160px;border:solid 1px #000;'>
50% Scaling<br />
<img src='/bicubic/test.png' style='width: 75px;' alt='50 percent scale - regular' /><br />
<img src='/bicubic/test.png' style='width: 75px; -ms-interpolation-mode: bicubic;' alt='50 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 320px;border:solid 1px #000;'>
100% Scaling<br />
<img src='/bicubic/test.png' style='width: 150px;' alt='100 percent scale - regular' /><br />
<img src='/bicubic/test.png' style='width: 150px; -ms-interpolation-mode: bicubic;' alt='100 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<div style='margin-bottom: 10px;text-align: center;width: 390px;border:solid 1px #000;'>
125% Scaling<br />
<img src='/bicubic/test.png' style='width: 188px;' alt='125 percent scale - regular' /><br />
<img src='/bicubic/test.png' style='width: 188px; -ms-interpolation-mode: bicubic;' alt='125 percent scale - bicubic' /><br />
<br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Regular</span><br />
<span style='display:block;float:left;font-size: 0.7em;width: 50%;overflow: hidden;whitespace:nowrap;'>Bicubic</span></p>
<div style='clear:both;'></div>
</div>
<p>
In Firefox 2 this should still look ok, and will be great in FF3. For those of you still in IE6 land there&#8217;s nothing I can do for you. The lack of PNG transparency, and apparently only a 15% market share means I&#8217;ve abandonded IE6 for non-commercial projects &#8211; hell you must be used to seeing a pretty ugly web anyway. The hacks that exist to &#8216;fix&#8217; IE6 are too cludgy to use without a financial reason.
</p>
<p>
This fix will be useful for usage in anything with lots of random sized images &#8211; such as in my <a href='http://tomwalsham.com/post.php?id=70'>CSS Vertical Align</a> &#8216;neat thumbs&#8217; example.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2008/08/26/smooth-image-resizing-in-internet-explorer-with-css/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Cross Browser CSS Vertical Align</title>
		<link>http://www.tomwalsham.com/2008/07/10/cross-browser-css-vertical-align/</link>
		<comments>http://www.tomwalsham.com/2008/07/10/cross-browser-css-vertical-align/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 22:35:39 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[design]]></category>
		<category><![CDATA[images]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=17</guid>
		<description><![CDATA[A technique for vertically aligning elements with CSS, to emulate table behaviour, across FF2, FF3, IE6, IE7, Opera et al.]]></description>
			<content:encoded><![CDATA[<p>I have frequently been asked, when converting people from Dreamweaver + Tables to pure CSS layouts, how to emulate the vertical alignment behaviour seen in table-cells.  Due to Firefox&#8217;s lack of support for inline-block, and IE&#8217;s lack of support for table-cell, this has been a pretty intractable problem. I had a cause to have a bash at it today &#8211; given the task of creating neatly laid out image thumbnail galleries from unknown-sized images, without resorting to server side image-sniffing, and have cobbled together the following solution:<br />
<a href="/cssalign/index.php" target="_blank">Pure CSS Thumbnails From Random Sized Images</a></p>
<p>I should point out here for the purists that it is not _pure_ css. It uses a single &#8216;expression&#8217; for IE6 to get around the lack of Max-Height &#8211; a truly insoluble item I believe. It also relies on a couple of lesser known -moz selectors for FF2 which for some reason lacked inline-block. These are: display: -moz-inline-box and -moz-inline-stack.</p>
<p>For the rest, I think you are better looking at <a href="/cssalign/index.php" target="_blank">the example</a>, which has heavily commented CSS included.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2008/07/10/cross-browser-css-vertical-align/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Union Filesystems for MythTv</title>
		<link>http://www.tomwalsham.com/2008/03/10/union-filesystems-for-mythtv/</link>
		<comments>http://www.tomwalsham.com/2008/03/10/union-filesystems-for-mythtv/#comments</comments>
		<pubDate>Mon, 10 Mar 2008 14:40:34 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Fuse]]></category>
		<category><![CDATA[Linux]]></category>
		<category><![CDATA[MythTV]]></category>
		<category><![CDATA[Toys]]></category>
		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=16</guid>
		<description><![CDATA[The end result of a snowy saturday spent trying to merge distributed filesystems for Myth Video, with Unionfs, aufs and funionfs under Ubuntu Gutsy]]></description>
			<content:encoded><![CDATA[<p>I have had a MythTv system running for some years now, having wanted one ever since I chanced across an install in the downtown Toronto apartment of a guy who was donating me an old box (200Mhz Pentium, without even a CD-ROM drive) for linux experimentation.
</p>
<p>
Myth is a free/open source DVR, or &#8216;TiVo for tightarsed techies&#8217;, which functions primarily as a video and music centre, but also for photo galleries, RSS reader, weather etc. Similar to Windows MCE but more powerful and as a consequence slightly more painful to maintain.
</p>
<p>
This maintenance is often refered to by the concept of &#8216;WAF&#8217; or &#8220;Wife Acceptance Factor&#8221;, as failure to achieve WAF has been the undoing of many a techie project over the years.  Thus any glitches or limits in functionality that may affect WAF are high on the list of things to iron out.  I have managed to convert our entire house to a pure Ubuntu shop with minimal flaws, but I dread the occasional call I get at work when the Myth box has overheated and shutdown, and I still need to walk through some manual (vnc / mount) type things to get it back up.
</p>
<p>
One longstanding WAF issue relates to video folders in MythVideo. As the amount of media has increased, it has spread from the Myth backend to some nfs mounts on other boxes, and the horribly hackish way that had been achieved was folders symlinked as &#8220;Newer&#8221;,&#8221;Newest&#8221; etc., containing subdirectories of TV shows and movies, all showing up as separate trees in the root of the video section, and making navigation somewhat painful.
</p>
<p>
I was thinking of reorganising my files to accomodate this, copying all shows on one drive, documentaries on another, etc. This had the obvious flaw of relying on predetermining how large a given collection would grow, as well as just being pretty ungraceful. Raid/LVM was not an option, due to the multiple machines housing the files, and additionally without proper redundancy you run the risk of losing all files with a single disk failure. Buying new boxen was also not, due to the financial necessities that having an infant brings.
</p>
<p>
Then I encountered UnionFS.  The idea sounded great &#8211; multiple filesystems / structures can be conjoined in to one tree, with the filesystem &#8216;overlay&#8217; essentially representing them as one to the OS.  Thus I could have 3 folders in different physical locations, all labeled &#8216;TV&#8217;, containing different content, and UnionFS would make one large &#8216;TV&#8217; folder containing all of the files.
</p>
<p>
This seems to be a server technology that has primarily been used for the liveCD/diskless set, to enable such clever things as nonexistant root partitions being mounted from elsewhere. As such you would think it would be fairly well set up, documented, and reliable. Apparently not. Documentation is sparse, implementations sparser still, and apart from being installed as default in Ubuntu Gutsy I couldn&#8217;t get much further than a basic single mount command to play with. As for known bugs, much was made of using read-only branches as there are horrors which &#8220;could even RESULT IN DATA LOSS&#8221;, which is fine as these various disks are already accessible by the different machines adding content, and the test I did with a few simple local folders seemed ok. Until I added nfs into the mix.
</p>
<p>
On mounting a remote filesystem, and attempting to ls the tree, I was initially fine until I listed the &#8216;Movies&#8217; directory. At this point the vnc server hung (and apparently the box). ssh was locked out. There was an almighty kernel &#8216;oops&#8217;. Apart from the general swearing, a few key phrases from the resulting messes I encountered follow:
</p>
<ul>
<li>Unable to handle kernel NULL pointer dereference</li>
<li>call trace</li>
<li>sys_readahead</li>
<li>mount: special device none does not exist</li>
<li>on attempt to umount &#8211; &#8220;device is busy&#8221;</li>
</ul>
<p>
To cut a huge story slight less huge, I gave up after a few hours googling. I then tried aufs, &#8220;Another Union File System&#8221; as it is called, in the great tradition of badly named unix programs.  This is supposed to be installed by default in the next Ubuntu LTS release (Hardy Heron), but then again, UnionFS was released in Gutsy and was pretty broken.  Now I am no slowpoke these days with linux, but I couldn&#8217;t even work it due to lack of docs. &#8220;unknown filesystem type aufs&#8221; was one of the many errors I encountered, and following some compile-hell, I gave up.
</p>
<p>
Finally I encountered funionfs. This is mentioned as an afterthough on FUSE (Filesystem in Userspace), and as apparently is so with all of these union file systems, is horrendously documented, and relies on much prodding to check if it will work.  The mount syntax is essentially similar to the other two discussed, but the crux of all of this ended up with the following simple method to get conjoined filesystems across nfs shares in Gutsy:</p>
<p>tom@Bender:~$ sudo apt-get install funionfs<br />
tom@Bender:~$ mkdir ~/Myth<br />
tom@Bender:~$ sudo mount -t fuse -o dirs=/mount/Zoidberg/Myth:/mount/Nibbler/Myth:/home/tom/Videos -o allow_other funionfs#NONE /home/tom/Myth
</p>
<p>
I am posting this in the hope it may increase WAF in your vicinity.  The end-result is pretty damn seamless, and will make adding new media a simple process, even with fresh filestores. This sort of transparent filesystem joining is something I hope will become increasingly easy and transparent in the future, with Apple&#8217;s grey(white) boxes and networked optical drives etc currently leading the way in the super-user-friendly variety.  Gutsy and MythBuntu are not the best of friends right now, and I will approach Hardy with trepidation due to the inevitable breakage that will occur. That said, Linux has come a long way since I tried net-installing a floppy-bootstrapped slackware on a P200 some years ago due to a machine which didn&#8217;t even have a CD-ROM drive.
</p>
<p>
*Update* Funnily enough, just a couple of days after posting this I see that <a href="http://www.mythtv.org/wiki/index.php/Release_Notes_-_0.21" rel='nofollow'>Myth Tv 0.21</a> has added a feature called &#8220;Storage groups&#8221;.  This suggests that it does a similar function at the application level, but I cannot yet find sensible docs to figure out if this is a better solution.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2008/03/10/union-filesystems-for-mythtv/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Safari On Windows</title>
		<link>http://www.tomwalsham.com/2007/06/11/safari-on-windows/</link>
		<comments>http://www.tomwalsham.com/2007/06/11/safari-on-windows/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 12:26:32 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[fonts]]></category>
		<category><![CDATA[Safari]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=15</guid>
		<description><![CDATA[Apple today announced they have ported their Safari browser to Windows.]]></description>
			<content:encoded><![CDATA[<p>Safari For Windows</p>
<p>In a brief moment between projects today, I had a glance at the beeb&#8217;s RSS feed, only to see &#8220;Apple announces Windows browser&#8221;. So on I click, assuming I&#8217;ll see some roadmap for a <strong>Safari Windows port</strong> as has been rumoured on and off for years. But No! No roadmap, but a <a href="http://www.apple.com/safari/download/">full public beta</a>.
</p>
<p>
Is it surprising that they have ported it? No, it&#8217;s been rumoured for a while, and frankly anything that makes the Windows user more comfortable with Mac UI design will ease transitions. Well, that&#8217;s as maybe, but what surprised me about this was that it was done totally by stealth. I am a bit of a news junkie, and always keep up to date with a huge range of tech site news &#8211; /., el Reg, and more frivolous ones &#8211; boingboing, digg etc.  I haven&#8217;t even heard a rumour of this until it drops on the BBC (via Jobs at a SanFran apple dev. conference).
</p>
<p>
Why do I care that they did a stealth release? Well, essentially no matter how well coded a browser is, there&#8217;s always its own little quirks. As a webdeveloper, it helps to know the quirks for all browsers above a ~1% market share. The more browsers, the more competition which is great, but I prefer to pick up their idiosyncrasies as they gradually gain mindshare. Firefox was a good example, Opera has always been around, and now that Ubuntu is pushing forward on the desktop, it&#8217;s worth taking a look at whether that has issues (Media integration with Firefox being one).
</p>
<p>
With this release though, there&#8217;s a certain instant Mac fanbase trapped at work on Windows PCs who will jump at it. Then there&#8217;s the inevitable&#8230; Jobs is a great marketer, so he wants a good marketshare what does he do? Integrate some minor part of iTunes into Safari, and BLAM. 5-10% marketshare from the iPod fanboi contingent.
</p>
<p>
First in my line of weird quirks?<br />
For some reason unbeknownst to me, the default font that Safari chooses is a rather illegible &#8220;Brady Bunch&#8221; font from the depth of my font repository.<br />
<a href="/common/safari_brady_bunch.gif" title="windows safari" target="_blank"><img src="/common/safari_thumb.gif" alt="Safari On Windows" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2007/06/11/safari-on-windows/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Warning – visiting this web site may harm your computer!</title>
		<link>http://www.tomwalsham.com/2006/11/24/warning-visiting-this-web-site-may-harm-your-computer/</link>
		<comments>http://www.tomwalsham.com/2006/11/24/warning-visiting-this-web-site-may-harm-your-computer/#comments</comments>
		<pubDate>Fri, 24 Nov 2006 11:57:31 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[malware]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[Web]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=14</guid>
		<description><![CDATA[Google implements Badware warnings into search results]]></description>
			<content:encoded><![CDATA[<p>Try this link, and click the top result: <a href="http://www.google.com/search?q=bugs+lyrics+lyricsandsongs">http://www.google.com/search?q=bugs+lyrics+lyricsandsongs</a></p>
<p>You should find that rather than immediately getting the lyrics to Pearl Jam&#8217;s &#8216;Bugs&#8217;, you get a warning about potential bugs.  If it is not operating in your local google, this link <a href="http://www.google.com/interstitial?url=http://www.lyricsandsongs.com/song/817.html">should show you the google error page</a> I am getting.</p>
<p>
___<br />
Warning &#8211; visiting this web site may harm your computer!<br />
<br />
You can learn more about harmful web content and how to protect your computer at StopBadware.org.<br />
<br />
Suggestions:</p>
<p>* Return to the previous page and pick another result.<br />
* Try another search to find what you&#8217;re looking for.</p>
<p>Or you can continue to http://www.lyricsandsongs.com/song/817.html at your own risk.</p>
<p>Advisory provided by Google<br />
<br />____
</p>
<p>
Now I&#8217;m not sure where I stand on this. On the good side, this stops people from maliciously infecting machines if the user is foolish enough to use IE on the open internet &#8211; the online equivalent of procuring prostitutes in phuket without prophylactics &#8211; or they compulsively click &#8220;Yes please download my dodgy software&#8221; </p>
<p>The obvious &#8216;con&#8217;s of this are it is purely reliant on the quality of Badware.org&#8217;s data, potentially open to abuse by interested parties, and also opens doors to further censorship potentially in the future&#8230;(Warning &#8211; visiting this web site may harm your Mind! &#8211; immediately occurs.)<br />
<br />
I won&#8217;t enter into a tedius discussion of potential liabilities GOOG could face as a result &#8211; that can be left to Slashdot &#8211; but I will say if you&#8217;re worried about censorship of your search results, then <a href="http://en.wikipedia.org/wiki/Google_censorship">Google is already doing that</a> (although under litigious duress usually).</p>
<p>In all I&#8217;d still say it falls under &#8216;do no evil&#8217;&#8230;but probably going to annoy me more than anything, as I&#8217;m now (apart from one sandboxed testing machine at work) a pure <a href="http://www.ubuntu.org">Ubuntu</a> operation, so it&#8217;s one more click for no gain.<br />
If it cleans up the interweb a bit though, a good thing, though people will no doubt always find idiotic ways to infect themselves.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2006/11/24/warning-visiting-this-web-site-may-harm-your-computer/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Exporting mail from Opera’s M2 email client and Importing to Thunderbird</title>
		<link>http://www.tomwalsham.com/2006/08/16/exporting-mail-from-operas-m2-email-client-and-importing-to-thunderbird/</link>
		<comments>http://www.tomwalsham.com/2006/08/16/exporting-mail-from-operas-m2-email-client-and-importing-to-thunderbird/#comments</comments>
		<pubDate>Wed, 16 Aug 2006 09:04:53 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[Mozilla]]></category>
		<category><![CDATA[Opera]]></category>
		<category><![CDATA[Thunderbird]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=13</guid>
		<description><![CDATA[A brief howto on Opera exporting and Thunderbird importing for email]]></description>
			<content:encoded><![CDATA[<p>This is brief guide to Exporting email from Opera&#8217;s M2 client and importing into Thunderbird, this guide assumes you&#8217;re running on a windows system (XP for this example).
</p>
<p>
A nice Slovakian chap named Vello emailed me to ask if I had any idea how to do this.  As it happens, when I was <a href="http://www.tomwalsham.com/post.php?id=38">switching from Opera to Firefox</a> I had cause to do exactly this &#8211; rather than keep the (admittedly rather nice) M2 client for my email, I decided to have a go with Thunderbird &#8211; the companion email client to Firefox.
</p>
<p>
Thunderbird only has an import function from set clients (Outlook, Outlook Express, Eudora, Communicator 4.x), and has no generic function for importing just &#8216;Mail&#8217;.  I had seen rumour that using Eudora as a go-between with Opera and Thunderbird would work, but it sounded convoluted. Turns out it&#8217;s much more simple than that.
</p>
<p>
<small>Disclaimer: This may not work in your setup. It was tested under Windows XP, Opera 9 &#038; Thunderbird 1.5.  Even with this setup there is a small chance you could lose your email, if this happens, it&#8217;s not my fault <img src='http://www.tomwalsham.com/wp-includes/images/smilies/icon_biggrin.gif' alt=':-D' class='wp-smiley' /> <br />
Always make a backup of important things, mails, etc, before fiddling with your system, and make sure to backup the mbs files you export from opera</small>
</p>
<hr />
<p>
So&#8230;you have folders you would like to export from opera.  I will use 3 folder for this example. 2 are standard Opera folders: &#8220;Received&#8221; + &#8220;Sent&#8221;.  One will be a custom folder: &#8220;Work&#8221; (you may not have custom folders, in which case it&#8217;s even easier).
</p>
<p>
&bull; First you export the folders you want from Opera (Right-click->Export), which will give you 3 files:  Received.mbs , Sent.mbs , Work.mbs
</p>
<p>
These &#8216;mbs&#8217; files are actually standard Unix mbox files, which are in fact what Thunderbird uses. Stupidly though, its &#8216;import&#8217; utility is just from other programs, so we have to do this manually.
</p>
<p>
&bull; Create your new account in Thunderbird&#8230;(tools->account settings->Add account)&#8230;put in all your settings&#8230;make sure you _Un-check_ the &#8216;Use Global Folders&#8217; option if you want to keep multiple email accounts separate.<br />
<br />
If you have a custom folder (&#8216;Work&#8217; in this example), create that now in your new account.</p>
<p>Now you close Thunderbird.
</p>
<p>
&bull; If doing this on Windows XP, then navigate to folder that is like:<br />
c:/Documents And Settings/YOUR_USER/Application Data/Thunderbird/Profiles/xbsfhafaf.default/Mail/pop.yourPOPserver.com/
</p>
<p>
In this folder you will see sets of 2 files for each mail folder&#8230;there is one with &#8216;.msf&#8217; extension&#8230;this is just the data about the folder.<br />
Then there is one with no extension &#8211; this is the actual mails for that &#8216;mail folder&#8217;.
</p>
<p>
&bull; All we need to do is replace these &#8216;no extension&#8217; files with our &#8216;mbs&#8217; files, and rename them properly (keep a backup though <img src='http://www.tomwalsham.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' /> . So in my example:</p>
<ul>
<li>Delete Inbox  (no extension)  &#8212;&#8211;>   copy+paste &#8216;Received.mbs&#8217; into folder &#8212;-> Rename to &#8216;Inbox&#8217;</li>
<li>Delete Sent  (no extension)  &#8212;&#8211;>   copy+paste &#8216;Sent.mbs&#8217; into folder &#8212;-> Rename to &#8216;Sent&#8217;</li>
<li>Delete Work  (no extension)  &#8212;&#8211;>   copy+paste &#8216;Work.mbs&#8217; into folder  &#8212;-> Rename to &#8216;Work&#8217;</li>
</ul>
<p>
Now open Thunderbird, and all your mail should appear. Hurrah! for Tom you cry in wonderment.
</p>
<p>
It may all look &#8216;unread&#8217;&#8230;so quickly &#8216;right-click -> Mark folder as read&#8217; if you want to correct that.
</p>
<p>
This should hopefully have worked. If there&#8217;s any bits that don&#8217;t, send me details of your setup and what went wrong (tom_walsham AT yahoo DOT com &#8211; assuming your email still works <img src='http://www.tomwalsham.com/wp-includes/images/smilies/icon_wink.gif' alt=';-)' class='wp-smiley' />  , and I can modify these instructions accordingly.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2006/08/16/exporting-mail-from-operas-m2-email-client-and-importing-to-thunderbird/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Disable IE update that causes “Click to activate and use this control”</title>
		<link>http://www.tomwalsham.com/2006/04/12/disable-ie-update-that-causes-click-to-activate-and-use-this-control/</link>
		<comments>http://www.tomwalsham.com/2006/04/12/disable-ie-update-that-causes-click-to-activate-and-use-this-control/#comments</comments>
		<pubDate>Wed, 12 Apr 2006 09:57:49 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[patents]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=12</guid>
		<description><![CDATA[A microsoft patch to disable the irritating functionality caused by the april patch, often installed by automatic update]]></description>
			<content:encoded><![CDATA[<p>So, I have <a href="http://www.tomwalsham.com/post.php?id=60">mentioned a brief fix for webmasters</a> to get your sites fixed if having issues with &lt;object&gt;, &lt;embed&gt; and &lt;applet&gt; tags, which are handled by ActiveX in Internet Explorer.</p>
<p>But we all know there&#8217;s no way that all sites using these will update their code, so as a user you&#8217;re stuck with this irritating functionality?</p>
<p>Well, hope is at hand, from the arms of&#8230;er&#8230;microsoft.   <a href="http://support.microsoft.com/kb/917425#E0QB0ABAAA">They offer a patch</a> for corporate admins to disable this &#8216;added functionality&#8217; while they get their webapps up to scratch. Which is nice.</p>
<p>Now they&#8217;ll probably disable this in a later rollout, but I&#8217;ll keep my ear to the ground on future fixes, as it looks like this issue isn&#8217;t going away soon.</p>
<p>Obviously, the better recommendation I can offer is just to <a href="http://www.getFirefox.com">use Firefox</a> as your browser.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2006/04/12/disable-ie-update-that-causes-click-to-activate-and-use-this-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>More on the Click To Activate And Use This Control issue</title>
		<link>http://www.tomwalsham.com/2006/04/12/more-on-the-click-to-activate-and-use-this-control-issue/</link>
		<comments>http://www.tomwalsham.com/2006/04/12/more-on-the-click-to-activate-and-use-this-control-issue/#comments</comments>
		<pubDate>Wed, 12 Apr 2006 09:42:52 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[patents]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=11</guid>
		<description><![CDATA[The latest microsoft patch cycle has included the eolas patent resolving ie patch. Here's how to fix your pages to work again]]></description>
			<content:encoded><![CDATA[<p>So, <a href="http://www.tomwalsham.com/post.php?id=59">as previously noted</a>, a ridiculous software patent victory by Eolas has meant Microsoft have been forced to change the way embedded controls function.</p>
<p>Well the bad news for webmins is that the latest patch cycle has rolled this in with the MS06-013 patch (to fix a critical bug).  So now any content embedded with the &lt;object&gt; , &lt;embed&gt; or &lt;applet&gt; tags cannot be interacted with without &#8216;activating&#8217; them first.  The messages read: &#8220;Click To Activate And Use This Control &#8220;, or &#8220;Press Spacebar or Enter to activate this control&#8221; (if the control has focus, or you are using keyboard navigation.</p>
<p>So what to do? Well, there is a simple fix, which involves a trivial piece of javascript to squirt the code in there. This is apparently not covered by the patent. So, lets take my penguin flash at the top for example:</p>
<p>The original code looks like this:<br />
&lt;object type=&#8221;application/x-shockwave-flash&#8221;<br />
data=&#8221;./flash/Snow.swf&#8221; width=&#8221;705&#8243; height=&#8221;202&#8243;&gt;<br />
&lt;param name=&#8221;movie&#8221;<br />
value=&#8221;./flash/Snow.swf&#8221; /&gt;<br />
&lt;/object&gt;</p>
<p>We replace this with a javascript function call:<br />
<br />
&lt;script type=&#8221;text/javascript&#8221;&gt;squirtFlash();&lt;/script&gt;
</p>
<p>
Up in the &lt;head&gt; we link to an external file: <br />
&lt;script type=&#8221;text/javascript&#8221; src=&#8221;./squirt.js&#8221;&gt;&lt;/script&gt;</p>
<p>And then we create a file in the same directory &#8216;squirt.js&#8217; with this:<br />

<pre>
function squirtFlash()
{
document.write('&lt;object type="application/x-shockwave-flash"
data="./flash/Snow.swf" width="705" height="202"&gt;\n');
document.write('&lt;param name="movie"
value="./flash/Snow.swf" /&gt;\n');
document.write('&lt;/object&gt;\n');
}
</pre>
</p>
<p>
So, Robert is your father&#8217;s brother.</p>
<p>It is obviously possible to code a more interesting piece of js to cover varying eventualities which I will stick up here later, but this quickie shot should cover occasional &lt;object&gt; use.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2006/04/12/more-on-the-click-to-activate-and-use-this-control-issue/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Click To Activate And Use This Control</title>
		<link>http://www.tomwalsham.com/2006/04/12/click-to-activate-and-use-this-control/</link>
		<comments>http://www.tomwalsham.com/2006/04/12/click-to-activate-and-use-this-control/#comments</comments>
		<pubDate>Wed, 12 Apr 2006 09:41:55 +0000</pubDate>
		<dc:creator>tom</dc:creator>
				<category><![CDATA[Tech]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[browsers]]></category>
		<category><![CDATA[Flash]]></category>
		<category><![CDATA[IE]]></category>
		<category><![CDATA[patents]]></category>

		<guid isPermaLink="false">http://wp3.tomwalsham.com/?p=10</guid>
		<description><![CDATA[Microsoft, having lost a patent dispute with Eolas, have modified ActiveX to require a click for embedded content, like Flash, or Media]]></description>
			<content:encoded><![CDATA[<p>So, you browse to a website, and you see some interesting looking Flash content, or a video. You want to interact with it, but on mousing over the item in Internet Explorer you get this message &#8220;Click to  activate and use this control&#8221;.  or perhaps &#8220;Press ok to continue loading the content of this page&#8221;.<br />
<br />
Damn, that&#8217;s annoying. Well, basically, Microsoft lost a patent dispute with Eolas, reagrding embedding media in webpages. This means they&#8217;ve &#8216;updated&#8217; your computer to require this click for any interaction with embedded media.<br />
<br />
So! What can you do?<br />
<br />
I could go into lengthy discussions about webmasters updating code (links to follow), or I could say &#8220;live with it&#8221;&#8230;which would be harsh.<br />
<br />
The simplest fix for this is to merely install Firefox. Eolas don&#8217;t have an issue with free and open, well written software.<br />
<br />
Over 50 percent of people visiting this site already use Firefox.<br />
Firefox works just like IE, only better, faster, and with more interesting features&#8230;.and you don&#8217;t have to click every time you want to see something interesting online.<br />
<br />
So. I will be <a href="http://www.tomwalsham.com/post.php?id=60">blogging on the methods of updating your pages</a> shortly, but for now the fix is simple.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.tomwalsham.com/2006/04/12/click-to-activate-and-use-this-control/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

