<?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>Christopher&#039;s web site &#187; Quick Tips</title>
	<atom:link href="http://chriswoods.co.uk/category/quick-tips/feed/" rel="self" type="application/rss+xml" />
	<link>http://chriswoods.co.uk</link>
	<description>Now in Mode 16!</description>
	<lastBuildDate>Mon, 14 May 2012 00:25:19 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.2</generator>
		<item>
		<title>Tiplet: monitor realtime web site traffic on a Linux server with tmux and tail</title>
		<link>http://chriswoods.co.uk/2012/02/tiplet-monitor-realtime-web-site-traffic-on-a-linux-server-with-tmux-and-tail/</link>
		<comments>http://chriswoods.co.uk/2012/02/tiplet-monitor-realtime-web-site-traffic-on-a-linux-server-with-tmux-and-tail/#comments</comments>
		<pubDate>Thu, 23 Feb 2012 12:48:25 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Comment]]></category>
		<category><![CDATA[Inside The Box]]></category>
		<category><![CDATA[Miscellaneous Whatnots]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=217</guid>
		<description><![CDATA[I run a VPS which has numerous sites on it. Whilst I was trying to pin down the root cause of sporadic hard lockups and runaway memory usage, I settled on a somewhat inefficient (yet very handy) line of code which I run inside a tmux session over a PuTTY SSH connection (two other panes [...]]]></description>
			<content:encoded><![CDATA[<p>I run a VPS which has numerous sites on it. Whilst I was trying to pin down the root cause of sporadic hard lockups and runaway memory usage, I settled on a somewhat inefficient (yet very handy) line of code which I run inside a <a href="http://tmux.sourceforge.net" style="font-family: Lucida Console, Courier New, fixedsys, fixed-width; font-size: 0.9em;">tmux</a> session over a PuTTY SSH connection (two other panes run <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">iftop</span> and <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">watch --interval=0.1 iostat -m</span> for realtime disk I/O).</p>
<p><em>An aside: <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">tmux</span> is like <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">screen</span> on speed, way more extensible and SO MUCH EASIER TO USE, I highly recommend you give it a try if you're a commandline warrior. There's some highly useful tutorials to help you get up to speed - google "tmux tutorial", <a href="http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/">Hawk Host's two-parter</a> has some good stuff in it.</em></p>
<p>To accomplish this I'm taking advantage of the fact that DirectAdmin (which by default provides a base of Apache 2, MySQL and PHP 5) stores its httpd access logs in a common folder: <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">/var/log/httpd/domains/&lt;virtualhost&gt;.log&lt;/a&gt;</span>. I'm combining the <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">tail</span> command with <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">grep</span>'s <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">egrep</span> functionality (<span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">grep -e</span>) and some pattern matching. It's not perfect: I have to occasionally Ctrl+C and restart the command as it stalls out, but it does everything I need.</p>
<p><span id="more-217"></span>Here's my command:</p>
<p><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width; font-size: 0.9em;">tail /var/log/httpd/domains/*.log -f -n 50 | grep -e "GET / HTTP/1\|GET /2011/\|GET /2010/\|GET /2009/\|GET /2012/\|.php HTTP/1\|.html HTTP/1\|.mp3 HTTP/1"</span></p>
<p>To break it down:</p>
<ol>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">tail</span> = invoke tail</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">/var/log/httpd/domains/*.log</span> = read all files ending in *.log from the path <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">/var/log/httpd/domains/</span> (a relative path, or none at all, could be used if you invoke the command in a closer folder)</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">-f</span> = declares it to refresh the screen live as files are updated</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">-n 50</span> = read the last 50 lines from each file (I recommend you set a large scrollback buffer if you want to specify more!)</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">|</span> = pipe symbol, used to append another command - in this case, to perform further processing on tail's raw output</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">grep</span> = invoke grep</li>
<li><span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">-e</span> = behave like "egrep"</li>
<li>the long command (actually several, separated with escaped pipe characters) inside inverted commas = only display lines containing any one of these matching strings</li>
</ol>
<p>Notes: When including multiple desired string matches with <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">grep -e</span>, you need to escape the pipe symbol as it behaves differently used inside regular expressions (which is what grep and egrep use). To do this, you put a backslash directly before the pipe symbol, <span style="font-family: Lucida Console, Courier New, fixedsys, fixed-width;">\|</span> -- if you don't, it'll be ignored, or that match string will be prepended to the one following it (derp).</p>
<p>This accomplishes exactly what I need on this box, I can see requests to site roots, requests to WordPress-based sites running with rewritten URLs (see the year-based URLs) plus any PHP, HTML or MP3 files. You can expand upon this to your heart's content but the default should work quite nicely. You *will* have to do further work on the string if you want to match sites with rewritten URLs if there's no indicator in the URL to show it's a page of content, but that's beyond the scope of this wee article. Hope you find it useful!</p>
<p>---<br />
<strong>Related reading:</strong></p>
<p>Dayid's screen and tmux cheat sheet (Chris: VERY USEFUL!)<br />
<a href="http://www.dayid.org/os/notes/tm.html">http://www.dayid.org/os/notes/tm.html</a></p>
<p>Hawk Host's tmux article: <a href="http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/">Part 1</a> | <a href="http://blog.hawkhost.com/2010/07/02/tmux-%E2%80%93-the-terminal-multiplexer-part-2/">Part 2</a> (Chris: VERY USEFUL!)</p>
<p>screen and tmux compared (with keys)<br />
<a href="http://www.dayid.org/os/notes/tm.html">http://www.dayid.org/os/notes/tm.html</a></p>
<p>Hawk Host TMUX tutorial: <a href="http://blog.hawkhost.com/2010/06/28/tmux-the-terminal-multiplexer/">Part 1</a> | Part 2<br />
Mutelight: Practical tmux<br />
<a href="http://mutelight.org/articles/practical-tmux">http://mutelight.org/articles/practical-tmux</a></p>
<p>Googly-oogly...<br />
<a href="http://www.google.co.uk/search?q=connect+to+defunct+tmux+session">http://www.google.co.uk/search?q=connect+to+defunct+tmux+session</a></p>
<p>SU: Why do I have multiple tmux processes?<br />
<a href="http://superuser.com/questions/259154/why-do-i-have-multiple-tmux-processes">http://superuser.com/questions/259154/why-do-i-have-multiple-tmux-processes</a></p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2012/02/tiplet-monitor-realtime-web-site-traffic-on-a-linux-server-with-tmux-and-tail/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2012/02/tiplet-monitor-realtime-web-site-traffic-on-a-linux-server-with-tmux-and-tail/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiplet: one-click Lock Screen for OS X</title>
		<link>http://chriswoods.co.uk/2011/08/tiplet-one-click-lock-screen-for-os-x/</link>
		<comments>http://chriswoods.co.uk/2011/08/tiplet-one-click-lock-screen-for-os-x/#comments</comments>
		<pubDate>Fri, 05 Aug 2011 09:17:55 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Guides and Tutorials]]></category>
		<category><![CDATA[Miscellaneous Whatnots]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=183</guid>
		<description><![CDATA[It must be in the name... Chris Cook devised an excellent little (Automator-based) scriptlet, self-contained as an .app Obviously (obviously, natch) if you hit Command-Option-Q for Quick User Switch - which is one HELL of a difficult keyboard combo if you can't get your thumb to do the double keypress - plus it will close [...]]]></description>
			<content:encoded><![CDATA[<p>It must be in the name... Chris Cook devised an excellent little (Automator-based) scriptlet, self-contained as an .app Obviously <i>(obviously, natch)</i> if you hit Command-Option-Q for Quick User Switch - which is one HELL of a difficult keyboard combo if you can't get your thumb to do the double keypress - plus it will close all open apps and processes and physically end your login session.</p>
<p><a href="chriscook.me/featured-articles/new-mac-os-x-application-lock-desktop/">Chris Cook's Lock Screen app</a> works great - and still works with 10.5.8 on the MBP1,1 I use at work. Give it a try if you dislike leaving your Mac unlocked whilst you go do other srs bsns.</p>
<p>(I'm also aware that there's umpteen other ways to both lock a workstation and accomplish Fast User Switching without mousing to the option; look <a href="http://superuser.com/questions/44433/create-a-keyboard-shortcut-for-fast-user-switching-in-mac-os-x">here</a> (StackExchange), <a href="http://www.macworld.com/article/49080/2006/01/lockscreen.html">here</a> (MacWorld) and <a href="http://hints.macworld.com/article.php?story=20090831093941225">here</a> (MacWorld again) for starters.</p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2011/08/tiplet-one-click-lock-screen-for-os-x/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2011/08/tiplet-one-click-lock-screen-for-os-x/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiplet: disabling TinyMCE&#039;s mangling of YouTube embed code</title>
		<link>http://chriswoods.co.uk/2010/02/tiplet-disabling-tinymces-mangling-of-youtube-embed-code/</link>
		<comments>http://chriswoods.co.uk/2010/02/tiplet-disabling-tinymces-mangling-of-youtube-embed-code/#comments</comments>
		<pubDate>Thu, 25 Feb 2010 19:39:19 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Guides and Tutorials]]></category>
		<category><![CDATA[Quick Tips]]></category>
		<category><![CDATA[codehack]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=109</guid>
		<description><![CDATA[I've been hacking an install of phpns to make it work a little more neatly with my company's web site (which is a real Frankensite and in BAD need of a rip-and-replace). Anyway, if you use phpns - or any CMS which uses TinyMCE for WYSIWYG text entry / editing - you'll find that if [...]]]></description>
			<content:encoded><![CDATA[<p>I've been hacking an install of <a href="http://phpns.alecwh.com/">phpns</a> to make it work a little more neatly with my company's web site (which is a real Frankensite and in BAD need of a rip-and-replace).</p>
<p>Anyway, if you use phpns - or any CMS which uses <a href="http://tinymce.moxiecode.com/">TinyMCE</a> for WYSIWYG text entry / editing - you'll find that if you embed code like YouTube links in code view, switch back to WYSIWYG view, then switch back to code view again... All your lovely embed codes are gone!</p>
<p>This was <strong><em>really</em></strong> annoying me, so I decided to have a hunt about for a quick 'n dirty solution. After lots of forum reading, a few things were clear:</p>
<ul>
<li>TinyMCE won't let you easily disable its code cleaning / HTML verification, which sucks</li>
<li>Even the TinyMCE devs aren't quite sure how to efficiently stop this from happening</li>
<li>Trying to fully disable its HTML verification / cleanup routines is nigh-on impossible, the codebase is a spider's web of PHP</li>
<li>and by default, it hates all &lt;object&gt; and &lt;embed&gt; tags, even if you have the TinyMCE Flash plugin installed.</li>
</ul>
<p>This can royally screw with your meticulously-entered YouTube embeds. However, on his blog, Akbar neatly demonstrates a simple but effective method to stop TinyMCE eating your embed code - and all you need to do is add the object and embed tags and possible variables... <a href="http://syedgakbar.wordpress.com/2008/01/28/adding-flash-embed-support-in-tinymce-editor/">There's a full demo, with borrowable code, on his web site</a>.</p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2010/02/tiplet-disabling-tinymces-mangling-of-youtube-embed-code/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2010/02/tiplet-disabling-tinymces-mangling-of-youtube-embed-code/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiplet: Recovering a &#039;ghost&#039; domain in DirectAdmin</title>
		<link>http://chriswoods.co.uk/2010/01/tipletrecovering-a-ghost-domain-in-directadmin/</link>
		<comments>http://chriswoods.co.uk/2010/01/tipletrecovering-a-ghost-domain-in-directadmin/#comments</comments>
		<pubDate>Wed, 20 Jan 2010 14:30:57 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Guides and Tutorials]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=57</guid>
		<description><![CDATA[I added a domain name to an account on one of my DirectAdmin-managed servers yesterday, and when I came to tweak some of its settings a few hours later it had mysteriously disappeared from the domains list in the control panel! (I think this was due to a dirty restart of the core DirectAdmin program, [...]]]></description>
			<content:encoded><![CDATA[<p>I added a domain name to an account on one of my DirectAdmin-managed servers yesterday, and when I came to tweak some of its settings a few hours later it had mysteriously disappeared from the domains list in the control panel! (I think this was due to a dirty restart of the core DirectAdmin program, but I'm still not 100% sure). What was strange was that all the files (private and <code>public_html</code>) were still there if I FTPed in, the domain still resolved and loaded if I typed in its URL into a browser - but I couldn't access the control panel settings for it (so no email, no MySQL management etc). A crippled domain.</p>
<p>Even more frustratingly, attempting to rename/delete the domain's folder via FTP or SSH didn't work, and I couldn't re-add the domain to the account as DirectAdmin could (bizarrely) still see that it was already hosting it! Moving/deleting the domain's DNS zone file didn't work, and neither did a DirectAdmin restart. So, Catch 22... What to do?<span id="more-57"></span></p>
<p>I went digging into the server filesystem (using <code>root</code>) and had a look at some of the many catalogue files DirectAdmin uses to remind itself which domains it's hosting. I first checked for a .db file in <code>/var/named/</code> (where the named DNS app stores its zone files for each domain) - the domain's file was still there. I then checked <code>/etc/virtual/domains</code> and <code>/etc/virtual/domainowners</code> (the first file holds a list of domains hosted on the system, and the second shows each domain's owner account), and for some reason while <code>domains</code> still had the problem domain listed, its ownership had disappeared from <code>domainowners</code>.</p>
<p>So, after readding it, saving the file out and restarting DirectAdmin via the control panel's Service Monitor (when logged in as admin), the domain immediately reappeared in the user's control panel and it's working perfectly once again. However, this would've been virtually impossible to fix had I not found some crucial info on the web, including <a href="http://www.binarywebhost.com/forum/index.php?topic=88.0">John's post on Binary Web Host</a>, where I first learnt of the existence of the <code>domains</code> and <code>domainowners</code> files.</p>
<p>Hopefully this helps other people avoid suffering this problem for long if they encounter it - I could find no useful info on the DirectAdmin knowledge base or forums, and it even had my server host stumped too (and they're no cowboys - they had never seen this problem before with DirectAdmin where it hadn't fixed itself after a restart).</p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2010/01/tipletrecovering-a-ghost-domain-in-directadmin/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2010/01/tipletrecovering-a-ghost-domain-in-directadmin/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Cleaning suede or nubuck shoes - what I&#039;ve learnt</title>
		<link>http://chriswoods.co.uk/2010/01/cleaning-suede-or-nubuck-shoes-what-ive-learnt/</link>
		<comments>http://chriswoods.co.uk/2010/01/cleaning-suede-or-nubuck-shoes-what-ive-learnt/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 19:23:22 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Guides and Tutorials]]></category>
		<category><![CDATA[Oddities]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=42</guid>
		<description><![CDATA[How a boxfresh Ronin should look... [December 2010 - it's snowy out there! Suede and nubuck HATES snow, and rock salt to boot (natch). So, protect your shoes BEFORE you destroy them! Get some suede or nubuck protector spray, I mention some later in the article, and give your shoes a good treating before you [...]]]></description>
			<content:encoded><![CDATA[<p><span style="float: right;"><img class="size-medium wp-image-43" title="Etnies Ronin skate shoes (angle profile)" src="http://chriswoods.co.uk/wp-content/uploads/2009/12/B001BXX9HG.01._SL1500_SCRMZZZZZZ_-300x300.jpg" alt="Etnies Ronin skate shoes (angle profile)" hspace="10" vspace="10" width="300" height="300" /><br />
<small><em>How a boxfresh Ronin should look...</small></em></span></p>
<p><em>[December 2010 - it's snowy out there! Suede and nubuck HATES snow, and rock salt to boot (natch). So, protect your shoes BEFORE you destroy them! Get some suede or nubuck protector spray, <a href="#protectorspray">I mention some later in the article</a>, and give your shoes a good treating before you step out! My shoes are still great, and I last protected them almost a year ago. £5 and half an hour will make a big difference.]</em></p>
<p>I recently went out in some brand new trainers (a pair of <a href="http://www.endless.com/Etnies-etnies-Mens-Ronin-Sneaker/dp/B001BXX9O4">Etnies Ronin skate shoes</a>, which are black and white suede/synthetic material mixture with a white trim round the sole). Unsurprisingly, it rained on Saturday evening, and when I came back my shoes were DESTROYED.</p>
<p>Unfortunately, mine weren't quite caked, but were fairly smattered in nasty looking mud. But what to do? Well, after some careful research (and even more careful testing), here's some tips for cleaning these kinds of skate shoes.</p>
<p>Shoes like the Ronins aren't all suede - they have what Etnies describe as an "action leather upper" combined with synthetic, woven sections (for example, the material around the E motif on the side of the shoe is a different fabric). However, in my case, the whole lot was just smothered with nasty, gunky mud.</p>
<p>So, what to do? <span id="more-42"></span></p>
<div style="text-align: center;"><script type="text/javascript"><!--
google_ad_client = "ca-pub-8449111576472658";
/* chriswoods.co.uk - inline text ad 1 */
google_ad_slot = "8533751208";
google_ad_width = 468;
google_ad_height = 15;
//-->
</script><br />
<script type="text/javascript"
src="http://pagead2.googlesyndication.com/pagead/show_ads.js">
</script>
</div>
<p> </p>
<p>Well, first thing's first - DON'T TRY TO CLEAN THE SHOES WHILST THEY'RE STILL WET! All you'll do is rub the dirt right into the fibres, ruining them pretty much forever (or until you get them professionally cleaned which could cost a lot). Resisting the temptation to grab the scrubbing brush, put them in a warm place overnight and let the mud dry completely.</p>
<p>Before you start to remove the mud, you'll need a couple of things:</p>
<ul>
<li><strong>A suede brush</strong> (they come in all shapes and sizes; <a href="http://www.howtocleanthings.com/how-to-clean-suede.htm">a photo of one here</a> - <a href="http://www.timpson.com/shop/c/20/shoe-care/s/150/shoe-accessories/g/337/brushes/p/886/wire-suede-brush">I bought mine from Timpson's</a>)</li>
<li><strong>A suede eraser/cleaning block</strong> (or a soft white pencil eraser like a Staedtler if you can't find <a href="http://www.shoeshinekit.com/kisunuster.html"></a>a suede eraser - again, I got one from my local <a href="http://www.timpson.co.uk/shop/c/20/shoe-care/s/150/shoe-accessories/g/337/brushes/p/929/suede-cleaner-block">Timpson's</a>)</li>
<li><strong>A small dish/bucket/container</strong>, into which you'll put a mix of warm tap water and a small amount of bleach or clear vinegar (<em>not</em> brown malt vinegar!)
<ul>
<li>Optionally, something like the <strong>soapbar-shaped Vanish stain remover bar</strong> (which I used)</li>
</ul>
</li>
<li><strong>A small plastic-bristled scrubbing brush</strong> and/or J-cloth/dishcloth (I just used a J-cloth)</li>
<li><strong>Some paper tissues</strong> / absorbent towels or cloths</li>
<li><a name="protectorspray"></a>Some spray-on suede/leather/nubuck protector (<a href="http://www.amazon.com/Kiwi-SELECT-Suede-Nubuck-Protector/dp/B0010TP3BG">Kiwi</a> and <a href="http://www.shoedoctorshop.co.uk/Punch_Instant_Protector_Spray_200ml.htm">Punch</a> make this stuff, along with loads of shoe shops' own brands - I ended up finding some in Asda)</li>
</ul>
<p>Start by using the suede brush to rub off most of the heavy soiling - you'll be surprised, as long as you brush with the nap of the fibre, just how much comes off once the mud's dried. The suede is also more resilient than you'd think - of course, having coloured or very light suede/nubuck shoes will affect the end result slightly as you may have some more permanent discolouration, but my black shoes looked almost spotless after this first brushing.</p>
<p>I ended up starting off gently, then slowly increasing pressure and speed as I got most of the mud off. To continue, I used the suede eraser - it's quite hard and crumbles easily, taking the dirt with it, so I used that to crack off the more stubborn mud flakes and remove some of the smaller stains and marks.</p>
<p>I grabbed the Vanish stain remover bar (it looks like a bar of soap, but you can rub it onto problem stains), daubing it where necessary for the more heavily soiled areas - of which there were, fortunately, not many. Once that was done, I got some water/bleach mixture onto the J-cloth and used it to thoroughly wash the shoes' outer fabric - NOT completely soaking the shoes or utterly drenching the fabric as that's really bad for it. Being methodical is the key here, and then take the time to then go round the shoes with the paper towels and dab off the excess liquid. Repeat for the other shoe, then leave to dry overnight.</p>
<p>Once completely dry, give your shoes a good spray treatment with the protector - this will help to stop moisture ingress and keep your suede/nubuck/leather looking newer for longer! If you have coloured material be sure to test on a discreet area first, juuuuust in case it adversely affects the dye of the material). Some protectors state that the colour of your shoes may darken slightly after application - sometimes it's just unavoidable, but it's for the best in the long run. After the shoes have dried, use the suede brush to bring up the pile of the fibre again to restore some of its natural look. Finally, enjoy your newly-restored shoes again - without having to resort to professional shoe cleaning services!</p>
<p>However if you do need professional suede/nubuck cleaning, a professional shoemakers like <a href="http://taylormadeshoes.co.uk/">James Taylor and Son in London</a> look like a promising place to begin your search. (Watch <a href="http://www.videojug.com/film/how-to-clean-suede-shoes">their VideoJug feature on cleaning suede shoes</a> - recommended viewing for all suede shoe owners regardless)</p>
<p>So, at all costs:</p>
<ul>
<li>avoid washing your shoes straight away, avoid putting your shoes in the washing machine (AWFUL for both the shoes and the washing machine)</li>
<li>avoid using suede/nubuck cleaner as some people report that it actually spoils the fabric completely</li>
<li>don't leave your shoes wet after cleaning them yourself and</li>
<li>don't forget to BUY A MORE APPROPRIATE PAIR OF SHOES FOR MUDDY WEATHER!</li>
</ul>
<p>I learnt that the hard way so you don't have to (fortunately my shoes are as good as new now). Given all this snowy weather we're having, the amount of mud/snow/grit you'll be getting on your shoes is certainly not good for brand new suede or nubuck, so it pays to protect your footwear before you head out the door <img src='http://chriswoods.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2010/01/cleaning-suede-or-nubuck-shoes-what-ive-learnt/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2010/01/cleaning-suede-or-nubuck-shoes-what-ive-learnt/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Tiplet: Force Ejecting stuck DVDs from Macs</title>
		<link>http://chriswoods.co.uk/2010/01/tiplet-force-ejecting-stuck-dvds-from-macs/</link>
		<comments>http://chriswoods.co.uk/2010/01/tiplet-force-ejecting-stuck-dvds-from-macs/#comments</comments>
		<pubDate>Fri, 08 Jan 2010 18:40:55 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Miscellaneous Whatnots]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=48</guid>
		<description><![CDATA[Once again, the MBP I (have to) use at work encountered a problem: OSX refused to eject a perfectly good audio CD from an external Lite-On DVD burner. I tried the usual things - dragging the disc icon to the Trash, right-clicking and choosing Eject... Nothing worked. Fortunately, the MacRumors Guides site had a page [...]]]></description>
			<content:encoded><![CDATA[<p>Once again, the MBP I (have to) use at work encountered a problem: OSX refused to eject a perfectly good audio CD from an external Lite-On DVD burner. I tried the usual things - dragging the disc icon to the Trash, right-clicking and choosing Eject... Nothing worked.</p>
<p>Fortunately, the MacRumors Guides site had <a href="http://guides.macrumors.com/Force_Eject_a_Stuck_CD_or_DVD">a page with some protips to help eject stuck CDs/DVDs </a>- including a nice drutil command which solved the problem nicely. Once again, the Mac Users community saves the day <img src='http://chriswoods.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2010/01/tiplet-force-ejecting-stuck-dvds-from-macs/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2010/01/tiplet-force-ejecting-stuck-dvds-from-macs/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tiplet: Disabling PHP Safe Mode and open_basedir in DirectAdmin through the control panel</title>
		<link>http://chriswoods.co.uk/2010/01/disabling-php-safe-mode-and-open_basedir-in-directadmin-through-the-control-panel/</link>
		<comments>http://chriswoods.co.uk/2010/01/disabling-php-safe-mode-and-open_basedir-in-directadmin-through-the-control-panel/#comments</comments>
		<pubDate>Mon, 04 Jan 2010 17:05:38 +0000</pubDate>
		<dc:creator>Christopher</dc:creator>
				<category><![CDATA[Miscellaneous Whatnots]]></category>
		<category><![CDATA[Quick Tips]]></category>

		<guid isPermaLink="false">http://chriswoods.co.uk/?p=45</guid>
		<description><![CDATA[One of my many tasks on a daily basis is checking up on various web sites and the servers they're hosted on. I needed to disable Safe Mode for a WordPress but, for the life of me, I couldn't find an easy way to do it via the appropriate Reseller login. (I read a blog [...]]]></description>
			<content:encoded><![CDATA[<p>One of my many tasks on a daily basis is checking up on various web sites and the servers they're hosted on. I needed to disable Safe Mode for a WordPress but, for the life of me, I couldn't find an easy way to do it via the appropriate Reseller login. (I read <a href="http://www.lampdocs.com/blog/2008/05/disabling-php-safemode-and-open_basedir-in-directadmin/">a blog entry on lampdocs</a> but a crucial screenshot was missing and the other instructions weren't very helpful without it!)</p>
<p>As it turns out, it's as simple as three mouseclicks. <span id="more-45"></span>In order to disable Safe Mode and open_basedir you need to log into the DA control panel as the admin (NOT the reseller user). From there, there's a menu option called "PHP SafeMode Configuration" in the Extra Features section - you can set the defaults for new sites, plus selectively enable/disable PHP Safe Mode and open_basedir restrictions for existing sites in a couple of mouseclicks. <img src='http://chriswoods.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>This feature's been present since at least 1.33.7; I'm currently adminning a server running 1.34.4 and the menu option is definitely still there. Hopefully this saves some fellow webmasters some hassle messing around with custom php.ini or VirtualHost containers <img src='http://chriswoods.co.uk/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<div class="google_plus_one"><g:plusone size="small" count="false" url="http://chriswoods.co.uk/2010/01/disabling-php-safe-mode-and-open_basedir-in-directadmin-through-the-control-panel/"></g:plusone></div>]]></content:encoded>
			<wfw:commentRss>http://chriswoods.co.uk/2010/01/disabling-php-safe-mode-and-open_basedir-in-directadmin-through-the-control-panel/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

