<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">

  <title><![CDATA[Barry Price]]></title>
  <link href="http://www.barryprice.co.uk/atom.xml" rel="self"/>
  <link href="http://www.barryprice.co.uk/"/>
  <updated>2012-05-04T16:16:51+07:00</updated>
  <id>http://www.barryprice.co.uk/</id>
  <author>
    <name><![CDATA[Barry Price]]></name>
    
  </author>
  <generator uri="http://octopress.org/">Octopress</generator>

  
  <entry>
    <title type="html"><![CDATA[Apple File Server on Ubuntu 12.04]]></title>
    <link href="http://www.barryprice.co.uk/2012/05/04/apple-file-server-on-ubuntu-12-dot-04/"/>
    <updated>2012-05-04T15:55:00+07:00</updated>
    <id>http://www.barryprice.co.uk/2012/05/04/apple-file-server-on-ubuntu-12-dot-04</id>
    <content type="html"><![CDATA[<p>As with <a href="http://www.barryprice.co.uk/2012/05/04/fun-with-btrfs/">the last post</a>, this is another quick write-up of how to get Ubuntu 12.04 on my home server to play nicely.</p>

<p>Specifically, this one deals with running a file server accessible from my desktop, which is a Mac running OSX Lion.</p>

<!--more-->


<p>Yes, we could use <a href="http://www.samba.org/">Samba</a>, but I don&#8217;t have any Windows machines, and I like keeping things simple.  Using <a href="http://netatalk.sourceforge.net/">netatalk</a> and <a href="http://avahi.org/">avahi</a> removes all that Windows-related unpleasantness, and also seems more efficient - files certainly seem to transfer much faster than they did using Samba.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo apt-get install netatalk avahi-daemon
</span></code></pre></td></tr></table></div></figure>


<p>That was easy.</p>

<p>There are, of course, a few tweaks:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo editor /etc/netatalk/afpd.conf
</span></code></pre></td></tr></table></div></figure>


<p>Add this line to the bottom of that file:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>- -tcp -noddp -uamlist uams_dhx.so,uams_dhx2_passwd.so -nosavepassword -setuplog <span class="s2">&quot;default log_info /var/log/afpd.log&quot;</span>
</span></code></pre></td></tr></table></div></figure>


<p>Next, define the actual shares:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo editor /etc/netatalk/AppleVolumes.default
</span></code></pre></td></tr></table></div></figure>


<p>Scroll to the bottom of the file, comment out the default home directory share, and replace it with this one, plus extra lines for any other directories you want to share:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="c"># The line below sets some DEFAULT, starting with Netatalk 2.1.</span>
</span><span class='line'>:DEFAULT: options:upriv,usedots
</span><span class='line'>
</span><span class='line'><span class="c"># By default all users have access to their home directories.</span>
</span><span class='line'><span class="c">#~/                     &quot;Home Directory&quot;</span>
</span><span class='line'>
</span><span class='line'><span class="c"># End of File</span>
</span><span class='line'>
</span><span class='line'>~/           <span class="s2">&quot;Home Directory&quot;</span> cnidscheme:dbd
</span><span class='line'>/opt/storage <span class="s2">&quot;Storage&quot;</span>        cnidscheme:dbd
</span></code></pre></td></tr></table></div></figure>


<p>Finally, restart the services:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo /etc/init.d/netatalk restart
</span><span class='line'>sudo restart avahi-daemon
</span></code></pre></td></tr></table></div></figure>


<p>Now if you open a Finder window on your Mac, you should see the server show up under the Shared section - click onit, log in using your Ubunutu username/password, and viola - there are your shares.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Fun with btrfs]]></title>
    <link href="http://www.barryprice.co.uk/2012/05/04/fun-with-btrfs/"/>
    <updated>2012-05-04T01:04:00+07:00</updated>
    <id>http://www.barryprice.co.uk/2012/05/04/fun-with-btrfs</id>
    <content type="html"><![CDATA[<p>I&#8217;d read a few things about <a href="https://btrfs.wiki.kernel.org/index.php/Main_Page">btrfs</a>, and since the latest Ubuntu release (12.04 LTS) apparently supports having the root filesystem on btrfs, I decided to give it a whirl on my home server.</p>

<p>Here are the instructions, so that I remember how I did it next time. Anyone else reading this, feel free to make use of it, but I won&#8217;t be held responsible if you break your computer - there may well be errors, large or small :)</p>

<!--more-->


<p>The first nice thing about btrfs is that it replaces the <a href="http://en.wikipedia.org/wiki/Mdadm">md software RAID tools</a>, as well as completely replacing <a href="http://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)">LVM</a>.  Neither are much fun to work with, and I shan&#8217;t miss them.</p>

<p>I have a <a href="http://global.shuttle.com/products/productsDetail?productId=1409">Shuttle SH55J2</a> at home, with a couple of mismatched hard drives (160Gb and 1Tb) and 16Gb of RAM.</p>

<p>I decided to set up the drives like this:</p>

<p>/dev/sda1 = 160Gb partition for RAID-1</p>

<p>/dev/sdb1 = 160Gb partition for RAID-1</p>

<p>/dev/sdb2 = 840Gb non-redundant partition for downloads and storage of unimportant things</p>

<p>This gives me 160Gb for the basic OS which is mirrored across both drives, so even if a hard drive dies my computer will still work.</p>

<p>The other 840Gb I can use for messing around with virtual machines, temporary file share storage, etc.</p>

<p>No swap for now, because I have 16Gb of RAM.</p>

<p>First gotcha - the Ubuntu install process does not support setting up a btrfs RAID1 system.  It will allow you to install to a btrfs partition, but only as DUP/RAID0.</p>

<p>The fix: once the installer gets to the screen where it asks you about partitioning, press Ctrl+Alt+F2 to get to a prompt, and set up the RAID manually:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>mkfs.btrfs -L root -m raid1 -d raid1 /dev/sda1 /dev/sda2
</span><span class='line'>btrfs device scan
</span><span class='line'><span class="nb">exit</span>
</span></code></pre></td></tr></table></div></figure>


<p>Then Ctrl+Alt+F1 and back to the installer, and select manual partitioning.</p>

<p>Select the btrfs partition at /dev/sda1 - choose btrfs, mount as &#8216;/&#8217;, bootable flag on, and DO NOT FORMAT.  The installer will warn you about existing files on the disk, but you&#8217;ve only just created the filesystem so there is nothing there to worry about.</p>

<p>Under mount options, select &#8216;noatime&#8217;, we will add other options later (they&#8217;re not selectable from the installer).</p>

<p>The installer will automatically create two subvolumes, whether you like it or not - @ for the root FS, and @home for /home.</p>

<p>Once the install is done, you&#8217;ll reboot and be met with a scary warning message from grub:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>error: sparse file not allowed
</span></code></pre></td></tr></table></div></figure>


<p>It tells you to press any key to continue, but it&#8217;ll actually continue by itself if you just wait and press nothing.  Still annoying though, so we&#8217;ll fix that first.</p>

<p>It&#8217;s actually a known bug, listed <a href="https://bugs.launchpad.net/ubuntu/+source/grub2/+bug/736743">here</a>.</p>

<p>The fix - edit the file /etc/grub.d/00_header and comment out these six lines:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>cat <span class="s">&lt;&lt; EOF</span>
</span><span class='line'><span class="s">if [ -s \$prefix/grubenv ]; then</span>
</span><span class='line'><span class="s">  set have_grubenv=true</span>
</span><span class='line'><span class="s">  load_env</span>
</span><span class='line'><span class="s">fi</span>
</span><span class='line'><span class="s">EOF</span>
</span></code></pre></td></tr></table></div></figure>


<p>becomes:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'><span class="c">#cat &lt;&lt; EOF</span>
</span><span class='line'><span class="c">#if [ -s \$prefix/grubenv ]; then</span>
</span><span class='line'><span class="c">#  set have_grubenv=true</span>
</span><span class='line'><span class="c">#  load_env</span>
</span><span class='line'><span class="c">#fi</span>
</span><span class='line'><span class="c">#EOF</span>
</span></code></pre></td></tr></table></div></figure>


<p>Then:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo update-grub
</span></code></pre></td></tr></table></div></figure>


<p>Reboot, and all should be well.</p>

<p>Now, we&#8217;ll add those extra mount options to /etc/fstab:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>/dev/sda1 /     btrfs noatime,subvol<span class="o">=</span>@,compress<span class="o">=</span>lzo,space_cache,autodefrag,inode_cache     0 1
</span><span class='line'>/dev/sda1 /home btrfs noatime,subvol<span class="o">=</span>@home,compress<span class="o">=</span>lzo,space_cache,autodefrag,inode_cache 0 2
</span></code></pre></td></tr></table></div></figure>


<p>The &#8216;noatime,subvol=XYZ&#8217; part should have been there already - I added the &#8216;compress=lzo,space_cache,autodefrag,inode_cache&#8217; to make it faster or set it on fire or something.</p>

<p>Finally, apply all of the above:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
</pre></td><td class='code'><pre><code class='bash'><span class='line'>sudo mount -o remount /
</span><span class='line'>sudo mount -o remount /home
</span><span class='line'>sudo btrfs filesystem balance
</span></code></pre></td></tr></table></div></figure>

]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Ko Lanta]]></title>
    <link href="http://www.barryprice.co.uk/2012/03/19/ko-lanta/"/>
    <updated>2012-03-19T13:40:00+07:00</updated>
    <id>http://www.barryprice.co.uk/2012/03/19/ko-lanta</id>
    <content type="html"><![CDATA[<p>As I continue to studiously avoid Thailand&#8217;s most popular tourist destinations (I still haven&#8217;t been to Samui, Phuket, or even the Grand Palace), I found myself drawn back to the south.  I&#8217;d only been to this part of the country once before, spending a week or so on Phi Phi with a friend for <a href="http://www.barryprice.co.uk/2009/01/07/happy-new-year/">New Year 2009</a>.</p>

<p>This time, my destination was the rather more sedate <a href="http://wikitravel.org/en/Ko_Lanta">Ko Lanta</a>.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6791250386/"><img src="http://farm8.staticflickr.com/7047/6791250386_84fc102013_z.jpg" alt="On the beach by barryprice, on Flickr" /></a></p>

<!--more-->


<p>Flying from Bangkok down to Krabi allows a great view if you manage to snag a window seat on the right-hand-side of the plane.  I got lucky.</p>

<p>Krabi airport has a massage shop in the arrivals area.  This struck me as odd.</p>

<p>From the airport, a taxi all the way to the hotel cost ฿2,300, including the two ferry crossings.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6937364051/"><img src="http://farm8.staticflickr.com/7063/6937364051_67c413f963_z.jpg" alt="Crossing - Krabi to Lanta by barryprice, on Flickr" /></a></p>

<p>The first ferry crossing took our taxi from the mainland to Ko Lanta Noi (เกาะลันตาน้อย), the smaller of the two islands.  A short drive, and then a second ferry crossing to Ko Lanta Yai (เกาะลันตาใหญ่).</p>

<p>Our hotel was a short further drive down the west coast of the island, just past the end of Long Beach.  Quiet?  Utter silence.  Apart from a cat, on which the volume appeared to be broken.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6937367177/"><img src="http://farm8.staticflickr.com/7065/6937367177_7dca0e72bc_z.jpg" alt="Hotel Cat by barryprice, on Flickr" /></a></p>

<p>From the sleepy quiet of the hotel, we walked north along the main road until we came to a dirt path that led to a seafood restaurant right on the beach.  As in, sand under the table. Great food. The waves softly lapped at the shore as we ate. We couldn&#8217;t see them, but we could hear them.</p>

<p>The second day was hotter than it really had any right to be. I felt the need to verify that the hotel&#8217;s American Breakfast was awful, as is traditional in this part of the world. It did not let me down - the eggs were fried on the bottom but still raw and runny on top (the white, not the yolk).  The ham was grey.  The sausage had escaped from an underwhelming hot dog.  All was well with the world.</p>

<p>After breakfast, we headed north and found a perfect deserted beach.  We swam in the sea, and I got horribly sunburnt, as is traditional.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6791251256/"><img src="http://farm8.staticflickr.com/7039/6791251256_1c94407733_z.jpg" alt="On the beach by barryprice, on Flickr" /></a></p>

<p>Later, we took the hotel&#8217;s shuttle bus up to the main town of Saladan, and wandered around the local shops and a rather touristy market.</p>

<p>Apparently, somebody likes gin and tonic.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6781538560/"><img src="http://farm8.staticflickr.com/7197/6781538560_614022e82a_o.jpg" alt="Gin &amp; Tonic #1 by barryprice, on Flickr" /></a></p>

<p><a href="http://www.flickr.com/photos/barryprice/6927660349/"><img src="http://farm8.staticflickr.com/7185/6927660349_f906840726_z.jpg" alt="Gin &amp; Tonic #2 by barryprice, on Flickr" /></a></p>

<p><a href="http://www.flickr.com/photos/barryprice/6781542924/"><img src="http://farm8.staticflickr.com/7065/6781542924_22f79704ce_z.jpg" alt="Gin &amp; Tonic #3 by barryprice, on Flickr" /></a></p>

<p>I, too, like gin and tonic.  I now also like Ko Lanta.</p>

<p>We had lunch at a café on Klong Dao beach, then walked along the main stretch for a while. These houses caught my eye.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6927866807/"><img src="http://farm8.staticflickr.com/7064/6927866807_f181f5ab58_o.jpg" alt="Technicolor by barryprice, on Flickr" /></a></p>

<p>Then a tuk-tuk back to the hotel, to lounge by the pool and read a book or two. Taking a shower, in the outdoor, roofless bathroom, I noticed wild monkeys watching me from over the wall, with thoughtful expressions on their faces. I wonder what they were thinking.  I did ask, but their responses were vague and poorly-formed.</p>

<p>Dinner was at Baan Pad Thai, a muslim restaurant down the road from the hotel, and was exquisite.</p>

<p>If day two had been slow, day three ground to a standstill.  A slow stroll back to the beach, where men and birds were fishing.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6791253618/"><img src="http://farm8.staticflickr.com/7038/6791253618_a5c28e9dfa_z.jpg" alt="Fishing by barryprice, on Flickr" /></a></p>

<p>Lunch was over at Meeting Point, a great little family-run restaurant and guest house. The spicy seafood salad (ยำทะเล) was both nuclear-hot and delicious.</p>

<p>More loafing followed, along with a massage, and then a final dinner - we cheated, and had pizza.</p>

<p>All that was left was for one last sleep, one last breakfast, and to check out and clamber aboard the minibus back to the airport.</p>

<p>And no, Krabi airport does not have a massage shop in the departures area.  Genius.</p>

<p>In the queue to board the plane, a surly middle-aged French woman declared &#8220;I am not pushing in!&#8221;, as she pushed in front of me. She definitely was though.</p>

<p>Ko Lanta is an absolutely beautiful place to escape, unwind, relax, and basically just stop.  Yes, there are tourists, but the island&#8217;s big enough that you can avoid them - the further south you go, the fewer people you will encounter.</p>

<p>It&#8217;s a bit of a trek from Bangkok, but well worth the effort.  I will definitely be back.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Winter in the West]]></title>
    <link href="http://www.barryprice.co.uk/2012/03/15/winter-in-the-west/"/>
    <updated>2012-03-15T14:34:00+07:00</updated>
    <id>http://www.barryprice.co.uk/2012/03/15/winter-in-the-west</id>
    <content type="html"><![CDATA[<p>My previous trip to New York and Connecticut had been in July/August - glorious.  I had never been in January.  It&#8217;s a little colder.</p>

<!--more-->


<p>Last time around, I stopped off in Copenhagen with time to explore the city. This time, I had a quick layover in Narita, Japan.  No time to leave the airport, but plenty of time to take in the weirdness.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6719299775/"><img src="http://farm8.staticflickr.com/7174/6719299775_e5a1c11fb5_z.jpg" alt="May all become happiness by barryprice, on Flickr" /></a></p>

<p>I think <a href="http://www.fly-ana.com">ANA</a> is my new favourite airline. The in-flight entertainment system has an A/V socket to plug in your iPod/iPhone/iPad and play your own music or videos on their screen (careful now), and you can recharge power via USB at the same time.  I&#8217;d seen this on some Etihad flights before, but it seems to be standard on ANA (it was on all 4 of my flights). Very nice.</p>

<p>Soon enough, I found myself walking out of JFK towards the car, and realised I was suddenly very cold indeed - a feeling I hadn&#8217;t experienced for about six years.  It was nice - for about five minutes. After the initial excitement had passed, it was no longer pleasant - just cold.</p>

<p>I was soon warm enough in the car though, but it was fascinating looking at the scenery as we made our way north to Stamford, CT.  The trees had shed their leaves for winter - they simply don&#8217;t do that in Bangkok.  A forgotten sight. Arriving in Stamford though, it was still cold outside.</p>

<p>Remember, I&#8217;d gone six years without feeling cold.  In March 2010, we&#8217;d had a mild snap in Bangkok - 18˚C (64.4˚F), and I had complained that it was a bit chilly. Back in the USA though, the temperature had dropped below zero. As time went on, I became convinced that this was, in fact, the coldest place on earth, and as cold as anybody could possibly be.</p>

<p>And then it snowed.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6737933881/"><img src="http://farm8.staticflickr.com/7157/6737933881_f5c0a35a7e_z.jpg" alt="Snowy Stamford barryprice, on Flickr" /></a></p>

<p>And two things happened.  Firstly, and not very astonishingly, I discovered that Thai shoes are not snow-proof.</p>

<p>Secondly, and very astonishingly indeed to this Briton, things just carried on as usual.  Normally a light sprinkling of frost is enough to bring the entire UK public transport system grinding to a halt.  Trains will be delayed by several hours, or (more likely) will stop running completely.  Road surfaces become lethally treacherous, local councils sheepishly admit that they didn&#8217;t buy any grit, and society has to take a week off while we wait for the thin glazing of snow to melt.</p>

<p>In America, they just carry on as usual through a foot of snow. The trains keep on running, the roads are kept clear, and life goes on.</p>

<p>Once I got over the time difference and the jet lag (the day I landed was effectively 36 hours long), I had a really good trip.</p>

<p>American food gets a bad rap, but if you avoid McDonalds you can eat incredibly well for very little money.  The only problem is the enormous portion sizes, but if you are capable of stopping eating when you&#8217;re full, then it&#8217;s not such a problem. Heck of a waste though.</p>

<blockquote><p>The meal is not over when I&#8217;m full. The meal is over when I hate myself.</p><footer><strong>Louis CK</strong> <cite><a href='http://en.wikiquote.org/wiki/Louis_CK#Chewed_Up'>Chewed Up</a></cite></footer></blockquote>


<p>I always take advantage of the shopping opportunities when I&#8217;m stateside, this time I picked up a <a href="http://en.wikipedia.org/wiki/Nook_Simple_Touch">Nook Simple Touch</a> for $99 from Barnes &amp; Noble.</p>

<p>I already have an iPad which I can use to read .epub books using the iBooks app, but the iPad is just slightly too heavy to read for hours on end (as I discovered during my 20+ hours of flying time). It&#8217;s not heavy enough to make it impossible - just enough to be annoying.</p>

<p>The Nook is much lighter (212g vs 601g), reads the same .epub files that I already own without any conversion required, and has a few other advantages too.</p>

<p>The iPad also has a glossy, reflective screen, so doesn&#8217;t work too well in direct sunlight.  In comparison, the Nook has an e-ink screen, so you need a light source to read on it, but it really is just like reading a paper page - plus the battery lasts for weeks rather than hours. I picked up a 16Gb micro SD card for $50 while I was there - that will probably hold more books than I can read in a lifetime.   Now I just need to find some time to read&#8230;</p>

<p>Taking the train up the local Metro North line to Bethel, CT to visit friends was impressive - the trains run on time, even through snow, and the tickets are far cheaper than you&#8217;d pay in the UK to take a delayed train (or quite possibly a bus replacement service).</p>

<blockquote><p>I finally managed to reach the station<br/>Only to find that the bus replacement service had broken down<br/>After wondering to myself whether or not it should actually be called a train replacement service<br/>I walked out onto the concourse</p><footer><strong>Half Man Half Biscuit</strong> <cite><a href='http://www.chrisrand.com/hmhb/csi-ambleside/national-shite-day/'>National Shite Day</a></cite></footer></blockquote>


<p><a href="http://www.flickr.com/photos/barryprice/6737935097/"><img src="http://farm8.staticflickr.com/7034/6737935097_9c83216250_z.jpg" alt="Snowy Stamford barryprice, on Flickr" /></a></p>

<p>In short, an enjoyable trip, but I think I&#8217;ll try to visit in the summer again next time.</p>

<p>Here&#8217;s to another 6 years of cold-free living.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Ocho años and Octopress]]></title>
    <link href="http://www.barryprice.co.uk/2012/02/20/ocho-and-octo/"/>
    <updated>2012-02-20T14:25:00+07:00</updated>
    <id>http://www.barryprice.co.uk/2012/02/20/ocho-and-octo</id>
    <content type="html"><![CDATA[<p>It&#8217;s eight years since I first visited Thailand, and will soon be six years since I left the UK to come and live here.</p>

<p>Non, je ne regrette rien.</p>

<!--more-->


<p>Thailand has been tremendously good to me.  No country is perfect, certainly not for everyone.  Indeed, if one country ever did get it right, it would quickly sink into the sea as the entire population of the world swarmed to move there.</p>

<p>But for me, I would certainly much rather be here than in any other country I have ever visited.</p>

<p>More on this subject as the anniverary of my permanent move approaches.</p>

<p>Coincidentally, it&#8217;s also about eight years since I started fiddling with <a href="http://wordpress.org/">Wordpress</a>, the CMS which until recently powered this website.  I&#8217;ve dallied with other systems, including <a href="http://www.movabletype.org/">Movable Type</a>, <a href="http://www.blosxom.com/">Bloxsom</a> and <a href="http://habariproject.org/">Habari</a>, but it&#8217;s been Wordpress for the vast majority of the past 8 years.</p>

<p>Recently I&#8217;ve been trying to streamline my digital lifestyle.  I&#8217;ve lost too many songs, photos, streams of words over the years because I&#8217;d only saved them in one place, which then became suddenly&#8230; inaccessible.</p>

<p>Physical fragility is only one problem though - the other is fragility of formats.  There are versions of Microsoft Word that can no longer read documents created in certain previous versions of Microsoft Word.  Ten years or so ago, I spent weeks digitising all of my audio CDs into the <a href="http://en.wikipedia.org/wiki/Vorbis">Ogg Vorbis</a> format, which I was convinced would soon become the dominant audio format.  It didn&#8217;t.</p>

<p>Meanwhile, plain text files written two decades ago on Amiga computers, or creaky MS-DOS PCs, or indeed anything that can read/write straight ASCII files are still perfectly legible.  Simple is good.</p>

<p>And while dynamic data-driven websites obviously have their uses, it has always struck me as terminally stupid that so many websites are dynamic for no good reason.</p>

<p>For a typical Wordpress site, the content is stored in a MySQL database as a blob of (usually crufty) HTML or XHTML, and so every time a visitor wants to read the content, a mass of PHP code sets off its arduous journey to retrieve the content from the database and dynamically generate an alphabet soup of HTML, JavaScript, CSS and other such ingredients so that the browser can display the content.</p>

<p>The next time the page is requested, it does it all again. Generates the same code from the same ingredients. All day, it generates the same page over and over again.</p>

<p>Not any more. It seems more sensible to simply create the page once, and leave it there.</p>

<p><a href="http://octopress.org/">Octopress</a>, incorporating <a href="http://jekyllrb.com/">Jekyll</a>, generates plain old HTML from <a href="http://daringfireball.net/projects/markdown/syntax">Markdown</a> - which itself is almost plain text.  Comments are now offloaded to <a href="http://disqus.com/">Disqus</a>. And the whole shebang is now hosted on <a href="http://aws.amazon.com/cloudfront/">Amazon Cloudfront</a> via <a href="http://aws.amazon.com/s3/">S3</a> - I don&#8217;t even need a web server any more.</p>

<p>Simple is good.</p>

<p><a href="http://www.jerome-bernard.com/blog/2011/08/20/quick-tip-for-easily-deploying-octopress-blog-on-amazon-cloudfront/">Instructions here</a></p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[How Flooded Is Bangkok?]]></title>
    <link href="http://www.barryprice.co.uk/2011/10/30/how-flooded-is-bangkok/"/>
    <updated>2011-10-30T01:07:36+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/10/30/how-flooded-is-bangkok</id>
    <content type="html"><![CDATA[<p>On a Saturday night, when I really should have been watching football, I noticed <a href="https://twitter.com/#!/Vanalli">Vanalli</a> and <a href="https://twitter.com/#!/thai101">thai101</a> discussing the Bangkok floods on Twitter&#8230; <!--more--></p>

<blockquote class="twitter-tweet tw-align-center" data-in-reply-to="130268495203155968"><p>@<a href="https://twitter.com/Vanalli">Vanalli</a> Good question. A smart coder could do a rough calc with an updated flood map. Count blue pixels vs non-blue. I&#8217;m not smart tho.</p>&mdash; Rikker Dõckum (@thai101) <a href="https://twitter.com/thai101/status/130269706937573376" data-datetime="2011-10-29T13:08:13+00:00">October 29, 2011</a></blockquote>


<script src="http://www.barryprice.co.uk//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>They are smart.  They just aren&#8217;t Perl nerds. This is probably a good thing, as it means they don&#8217;t spend their Saturday nights writing Perl code&#8230; That would be sad. Ahem.</p>

<p>I hacked up a quick script that would scan through every pixel in a given image, count all of the pixels that were mostly blue, and report that back as a percentage. But I didn&#8217;t have a decent map to work from.</p>

<p>Soon enough though, @thai101 came up with this one (click to embiggen):</p>

<p><a href="http://twitpic.com/77nr7x"><img src="http://i.imgur.com/INZPu.png" alt="Share photos on twitter with Twitpic" /></a></p>

<p>This was created by cropping Bangkok itself out of <a href="http://www.gisthai.org/map-galery/Flood54/flood%2027%20oct%202554.jpg">this larger image</a>.</p>

<p>The script I&#8217;d put together failed on two counts - I hadn&#8217;t considered that Bangkok is not rectangular (d&#8217;oh), and I&#8217;d assumed the flood pixels would be blue.  They&#8217;re not - they&#8217;re turquoise.  Which means that we&#8217;re not looking for &#8220;mostly blue&#8221; pixels - we&#8217;re looking for pixels which are very blue AND very green, but not very red.</p>

<p>That&#8217;s why the first run came up with a figure of 9%, which looked wrong - and was.</p>

<p>A few tweaks later though, it turns out that <strong>21.19%</strong> of the pixels in that cropped image, discounting the white pixels, are approximately turquoise.</p>

<p>This is, of course, not the most scientific of investigations:</p>

<blockquote class="twitter-tweet tw-align-center" data-in-reply-to="130301661364224000"><p>@<a href="https://twitter.com/barryprice">barryprice</a> Text covers some areas, jpg compression fuzzies it up, and already out of date. Not ideal, but enough for a rough estimate.</p>&mdash; Rikker Dõckum (@thai101) <a href="https://twitter.com/thai101/status/130317605465628672" data-datetime="2011-10-29T16:18:32+00:00">October 29, 2011</a></blockquote>


<script src="http://www.barryprice.co.uk//platform.twitter.com/widgets.js" charset="utf-8"></script>


<p>But it&#8217;s the best guess I&#8217;ve seen so far.</p>

<p>It&#8217;d be very interesting to run it daily and see how things are developing, if we can get hold of good enough source data in a timely manner.</p>

<p>For now though, here&#8217;s the Perl code for anyone who wants to check my work:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
<span class='line-number'>54</span>
<span class='line-number'>55</span>
<span class='line-number'>56</span>
<span class='line-number'>57</span>
<span class='line-number'>58</span>
<span class='line-number'>59</span>
<span class='line-number'>60</span>
<span class='line-number'>61</span>
</pre></td><td class='code'><pre><code class='perl'><span class='line'><span class="c1">#!/usr/bin/perl</span>
</span><span class='line'>
</span><span class='line'><span class="k">use</span> <span class="nn">Modern::</span><span class="n">Perl</span><span class="p">;</span>
</span><span class='line'><span class="k">use</span> <span class="nn">Image::</span><span class="n">Magick</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$fileName</span> <span class="o">=</span> <span class="nv">$ARGV</span><span class="p">[</span><span class="mi">0</span><span class="p">];</span>
</span><span class='line'>
</span><span class='line'><span class="k">if</span> <span class="p">(</span><span class="o">!</span><span class="nb">defined</span><span class="p">(</span><span class="nv">$fileName</span><span class="p">))</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>    <span class="nb">die</span><span class="p">(</span><span class="s">&quot;No filename given&quot;</span><span class="p">);</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$image</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">Image::</span><span class="n">Magick</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$t</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>    <span class="c1"># count turquoise pixels</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$w</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>    <span class="c1"># count white pixels</span>
</span><span class='line'>
</span><span class='line'><span class="nv">$image</span><span class="o">-&gt;</span><span class="n">Read</span><span class="p">(</span><span class="nv">$fileName</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$height</span> <span class="o">=</span> <span class="nv">$image</span><span class="o">-&gt;</span><span class="n">Get</span><span class="p">(</span><span class="s">&#39;height&#39;</span><span class="p">);</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$width</span>  <span class="o">=</span> <span class="nv">$image</span><span class="o">-&gt;</span><span class="n">Get</span><span class="p">(</span><span class="s">&#39;width&#39;</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$total_pixels</span> <span class="o">=</span> <span class="nv">$width</span> <span class="o">*</span> <span class="nv">$height</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="c1"># loop around every row</span>
</span><span class='line'><span class="k">for</span> <span class="k">my</span> <span class="nv">$x</span> <span class="p">(</span><span class="mi">1</span> <span class="o">..</span> <span class="nv">$height</span><span class="p">)</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>    <span class="c1"># loop around every pixel on this row</span>
</span><span class='line'>    <span class="k">for</span> <span class="k">my</span> <span class="nv">$y</span> <span class="p">(</span><span class="mi">1</span> <span class="o">..</span> <span class="nv">$width</span><span class="p">)</span>
</span><span class='line'>    <span class="p">{</span>
</span><span class='line'>        <span class="c1"># get color values</span>
</span><span class='line'>        <span class="k">my</span> <span class="nv">$pixel</span> <span class="o">=</span> <span class="nv">$image</span><span class="o">-&gt;</span><span class="n">Get</span><span class="p">(</span><span class="s">&quot;pixel[$x,$y]&quot;</span><span class="p">);</span>
</span><span class='line'>        <span class="k">my</span> <span class="nv">@p</span> <span class="o">=</span> <span class="nb">split</span><span class="p">(</span><span class="sr">/,/</span><span class="p">,</span> <span class="nv">$pixel</span><span class="p">);</span>
</span><span class='line'>
</span><span class='line'>        <span class="c1"># p[0] is the red val, p[1] is the green val, p[2] is the blue val</span>
</span><span class='line'>
</span><span class='line'>        <span class="c1"># if white (ish) - check for pixels where RGB are all &gt;87.5% &#39;on&#39;:</span>
</span><span class='line'>        <span class="k">if</span> <span class="p">((</span><span class="nv">$p</span><span class="p">[</span><span class="mi">0</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">57343</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nv">$p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">57343</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nv">$p</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">57343</span><span class="p">))</span>
</span><span class='line'>        <span class="p">{</span>
</span><span class='line'>            <span class="nv">$w</span><span class="o">++</span><span class="p">;</span>
</span><span class='line'>        <span class="p">}</span>
</span><span class='line'>
</span><span class='line'>        <span class="c1"># if turquoise - check for green &amp; blue both more than 75% &#39;on&#39;:</span>
</span><span class='line'>        <span class="k">elsif</span> <span class="p">((</span><span class="nv">$p</span><span class="p">[</span><span class="mi">1</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">49152</span><span class="p">)</span> <span class="o">&amp;&amp;</span> <span class="p">(</span><span class="nv">$p</span><span class="p">[</span><span class="mi">2</span><span class="p">]</span> <span class="o">&gt;</span> <span class="mi">49152</span><span class="p">))</span>
</span><span class='line'>        <span class="p">{</span>
</span><span class='line'>            <span class="nv">$t</span><span class="o">++</span><span class="p">;</span>
</span><span class='line'>        <span class="p">}</span>
</span><span class='line'>    <span class="p">}</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="n">say</span> <span class="s">&quot;Total pixel count, $total_pixels&quot;</span><span class="p">;</span>
</span><span class='line'><span class="n">say</span> <span class="s">&quot;Found $t turquoise pixels, and $w white pixels&quot;</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$pct_ignored</span> <span class="o">=</span> <span class="nv">$w</span> <span class="o">/</span> <span class="nv">$total_pixels</span> <span class="o">*</span> <span class="mi">100</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="n">say</span> <span class="nb">sprintf</span> <span class="s">&quot;%.2f%% of total pixels are white - ignoring&quot;</span><span class="p">,</span> <span class="nv">$pct_ignored</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$not_ignored</span>    <span class="o">=</span> <span class="nv">$total_pixels</span> <span class="o">-</span> <span class="nv">$w</span><span class="p">;</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$pct_turquoise</span> <span class="o">=</span> <span class="nv">$t</span> <span class="o">/</span> <span class="nv">$not_ignored</span> <span class="o">*</span> <span class="mi">100</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="n">say</span> <span class="nb">sprintf</span> <span class="s">&quot;%.2f%% of non-white pixels are turquoise&quot;</span><span class="p">,</span> <span class="nv">$pct_turquoise</span><span class="p">;</span>
</span></code></pre></td></tr></table></div></figure>


<p></p>

<p>And here&#8217;s the output:</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
</pre></td><td class='code'><pre><code class='console'><span class='line'><span class="go">Total pixel count, 195210</span>
</span><span class='line'><span class="go">Found 11806 turquoise pixels, and 139482 white pixels</span>
</span><span class='line'><span class="go">71.45% of total pixels are white - ignoring</span>
</span><span class='line'><span class="go">21.19% of non-white pixels are turquoise</span>
</span></code></pre></td></tr></table></div></figure>


<p>Thresholds are entirely arbitrary, all errors are my own.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Staying Dry]]></title>
    <link href="http://www.barryprice.co.uk/2011/10/28/staying-dry/"/>
    <updated>2011-10-28T18:00:37+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/10/28/staying-dry</id>
    <content type="html"><![CDATA[<p><a href="http://www.flickr.com/photos/barryprice/6285802456/"><img src="http://farm7.static.flickr.com/6104/6285802456_6acef437aa_z.jpg" alt="" /></a> <!--more--></p>

<p>I spent this past weekend in Phnom Penh, Cambodia. Not to get away from the floods here in Bangkok though - I&#8217;d booked it long ago after seeing a cheap deal on Air Asia.  Although Cambodia has also suffered badly from floods this year, its capital remains unaffected for now.</p>

<p>But back in Bangkok now, it&#8217;s rather a different story.  The influx from the North reached Don Muang airport a few days ago. That&#8217;s the city&#8217;s second airport - the vast majority of flights go through Suvarnabhumi International Airport, which is completely safe and unaffected.</p>

<p>A few cheap carriers were still running domestic flights from Don Muang. Those services have now moved to the international airport.</p>

<p>So those &#8220;Bangkok airport flooded&#8221; headlines are a little misleading - it would be like reading &#8220;London airport flooded&#8221; and then finding out that only Stanstead was affected, and that Gatwick &amp; Heathrow were both absolutely fine.</p>

<p>The government&#8217;s Flood Relief Operations Centre (FROC), however, is based at Don Mueang airport.  So the flood response centre is flooded.  The irony meter&#8217;s pegged on that one.</p>

<p>Three of the city&#8217;s 50 districts have received evacuation orders, with evacuation also suggested for some residents of a few areas of a fourth.  So 90% of the city has not been evacuated.  Where it&#8217;s bad, it&#8217;s very bad.  But everywhere else, life goes on almost as normal.  Things could get worse over the next few days - but for now, nobody knows.</p>

<p>There are still a few empty shelves in shops, but this is improving by the day - Tops supermarket at All Seasons Place had plenty of drinking water for sale this morning, although there may not be much left now.  Shoppers who don&#8217;t mind getting ripped off can easily find a few bottles of exotic imports such as Perrier if they&#8217;re prepared to pay the extra money for it.</p>

<p>But the city will cope, one way or another.  The supermarket chain Big C has begun ordering staples such as bottled water from Malaysia to make up for the domestic shortfall (many industrial estate and warehouses north of Bangkok were flooded, affecting the supply chain).</p>

<p>Meantime, the filtered water available from the vending machines all over the city for just ฿1 per litre seems to be fine.  It&#8217;s coming out clear, with no residue or sediment and no smell.  The Thais all seem happy enough to drink it, and they&#8217;ve far more experience with this kind of thing than I have.</p>

<p>I live about 6 miles from the river.  The streets remain bone dry.</p>

<p>A few people have left town for a long weekend - I know two westerners who&#8217;ve fled to Pattaya and Phuket.  But Pattaya also has supply problems, with bottled water hard to find - one KFC down there has even run out of chicken!  For myself, and the vast majority who remain in Bangkok, life continues pretty much as usual.</p>

<p>It&#8217;s a nice hot day, with a light breeze and no rainclouds visible. I may even go for an ironic swim.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Water, water, every where]]></title>
    <link href="http://www.barryprice.co.uk/2011/10/20/water-water-every-where/"/>
    <updated>2011-10-20T18:00:10+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/10/20/water-water-every-where</id>
    <content type="html"><![CDATA[<p><a href="http://www.theatlantic.com/infocus/2011/10/worst-flooding-in-decades-swamps-thailand/100168/"><img src="http://i.imgur.com/PQhwC.jpg" alt="Worst flooding in decades swamps Thailand" /></a> <!-- more --></p>

<blockquote><p>Water, water, every where, And all the boards did shrink;<br/>Water, water, every where, Nor any drop to drink</p><footer><strong>Samuel Taylor Coleridge</strong> <cite>The Rime of the Ancient Mariner</cite></footer></blockquote>


<p>You may have noticed that Thailand is suffering its worst floods in fifty years.</p>

<p>If not, click on the picture above or <a href="http://www.theatlantic.com/infocus/2011/10/worst-flooding-in-decades-swamps-thailand/100168/">follow this link</a> to see some very powerful photos from The Atlantic.</p>

<p>Ironically, the chief problem here in central Bangkok is fast becoming not one of too much water, but one of too little.</p>

<p>The flood barriers are failing to the north of the city, and the government has decided to &#8220;sacrifice&#8221; Eastern Bangkok.</p>

<blockquote><p>The drainage of floodwaters through eastern Bangkok will affect seven of its districts, namely Sai Mai, Klong Sam Wa, Kannayao, Min Buri, Lat Krabang, Bang Khen and Nong Chok.<br/>The government also wants to drain floodwaters through three canals in inner Bangkok, namely the Song Ton Noon, Saen Saep and Prawet canals.</p><footer><strong>Bangkok Post</strong> <cite><a href='http://www.bangkokpost.com/news/local/262211/govt-sacrifices-eastern-bangkok'>Govt Sacrifices Eastern Bangkok</a></cite></footer></blockquote>


<p>The Saen Saep canal runs within half a mile of my home. I vividly remember it <a href="http://www.barryprice.co.uk/2006/10/11/a-damp-party/">flooding onto the streets back in 2006</a>.</p>

<p>So there&#8217;s certainly going to be plenty of water around.  But we can&#8217;t drink flood water.</p>

<p>The supermarkets in Thonglor all ran out of drinking water several days ago, as panic-buying continues.  Instant noodles and tinned foods are flying off the shelves, as people stock up for the siege.</p>

<p>I was able to buy a pack of twelve 500ml bottles from a local supermarket the other day, but I&#8217;ve drunk 9 of them already.</p>

<p>I went out to buy more today, but the local general store is closed, and the local 7-Eleven has no water at all.  The supermarkets may have some, or they may not - I will investigate later today, I only popped out for 5 minutes.</p>

<p>For now, I&#8217;ve filled my empty bottles with boiled tap water.  I should be able to continue doing that indefinitely - unless the flood water gets into the water supply, or we lose electricity (no pumping).  I wouldn&#8217;t fancy drinking the flood water, boiled or otherwise.</p>

<p>Yes, today I could take a taxi around the city - or even out of the city - to buy water elsewhere.  Most of the country remains unaffected, after all.  But if the situation worsens, and those roads become blocked?</p>

<p>Of course there&#8217;s plenty of ways to get my water in other forms - I can drink iced tea, and soft drinks, and fruit juice and of course beer.  Bars and restaurants remain open - for now.</p>

<p>But if the water has run out already, how long will those others last?  KFC have already stopped delivering Pepsi with food orders, as their stocks have run dry.</p>

<p>Some chain restaurants have closed down because their food was all pre-prepared at an industrial estate that&#8217;s now underwater.</p>

<p>Hopefully the remaining supply lines will remain open long enough to last us until the floods recede.</p>

<p>Bangkok. It&#8217;s never boring.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Steve Jobs]]></title>
    <link href="http://www.barryprice.co.uk/2011/10/06/steve-jobs/"/>
    <updated>2011-10-06T08:30:11+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/10/06/steve-jobs</id>
    <content type="html"><![CDATA[<blockquote><p>No one wants to die. Even people who want to go to heaven don&#8217;t want to die to get there. And yet death is the destination we all share. No one has ever escaped it. And that is as it should be, because Death is very likely the single best invention of Life. It is Life&#8217;s change agent. It clears out the old to make way for the new. Right now the new is you, but someday not too long from now, you will gradually become the old and be cleared away. Sorry to be so dramatic, but it is quite true.</p>

<p>Your time is limited, so don&#8217;t waste it living someone else&#8217;s life. Don&#8217;t be trapped by dogma — which is living with the results of other people&#8217;s thinking. Don&#8217;t let the noise of others&#8217; opinions drown out your own inner voice. And most important, have the courage to follow your heart and intuition. They somehow already know what you truly want to become. Everything else is secondary. <a href="http://www.huffingtonpost.com/2011/10/05/steve-jobs-stanford-commencement-address_n_997301.html">#</a></p></blockquote>

<p>&#8211;Steve Jobs
1955-2011</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[UK & Ireland 2011]]></title>
    <link href="http://www.barryprice.co.uk/2011/08/31/uk-ireland-2011/"/>
    <updated>2011-08-31T17:54:45+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/08/31/uk-ireland-2011</id>
    <content type="html"><![CDATA[<p><a href="http://www.flickr.com/photos/barryprice/6025340310/"><img src="http://farm7.static.flickr.com/6204/6025340310_35d2ff3258_z.jpg" alt="Good morning Britain" /></a> <!--more--></p>

<p>I was just about packed, but the sole had been flapping off my trainer for a couple of days already.  I still had half an hour before I had to leave for Bangkok airport, so I figured I had time to fix it.</p>

<p>I applied superglue to both surfaces, pressed them together, put the shoe on the floor, and realised that I&#8217;d superglued all the fingers of my right hand together.</p>

<p>And so it began.</p>

<p>Lots of soapy water, tugging, swearing and picking later, I was <del>no longer</del> <em>less</em> sticky.  I decided not to take the trainers with me after all, as they were obviously cursed.</p>

<p><strong>Bangkok to Manchester, via Abu Dhabi</strong></p>

<p>And so to the airport, for flights one and two of a mere six this year - far more manageable than last summer&#8217;s very silly nine-flight world tour.</p>

<p>The first leg was Bangkok to Abu Dhabi - I sat next to a very pleasant Emirati chap and his wife, who hardly spoke to me all through the flight until we landed, when he invited me to his home for dinner.  Taken rather aback, I had to regretfully decline, as I had only an hour or two before catching my next flight to Manchester.</p>

<p>That went fine, and the automated immigration machine at Manchester Airport eventually (with much coaxing) accepted my passport, thus I was once again admitted into the land of my birth by a robot.  Folks, we are living in the future.</p>

<p>On to the train station, a quick stop in the station café to pick up a Private Eye, a bag of Mini Cheddars and a bottle of lemon Fanta (all luxuries unavailable to me in Thailand), and onto the train to Southport.</p>

<p>Once there, I was relieved to find that O2 do in fact sell Micro-SIM cards on Pay As You Go, so I was able to pop one of those into my iPhone (no international roaming on my Thai contract SIM).</p>

<p>I&#8217;d tried to figure this out ahead of time, but the <a href="http://shop.o2.co.uk/tariffs/Pay_and_Go">O2 shop website</a> helpfuly redirects any visitors outside the UK to <a href="http://shop.o2.co.uk/errors/permissionDeniedPage.html">a page</a> that simply states &#8220;Unfortunately, we are unable to sell to countries outside the UK&#8221;.</p>

<p>Which is very, very, very stupid, but hey.  Technology company in crap website shocker.  Film at 11.  Yes, I can use a VPN or a proxy to bypass the problem.  But I really shouldn&#8217;t have to.</p>

<p>If O2&#8217;s PAYG packages weren&#8217;t so wonderfully brilliant (it&#8217;s not unlimited data, but it&#8217;s way more than I can use in 2 weeks, for a mere £20), then I&#8217;d boycott them&#8230;</p>

<p>iPhone back online and chores taken care of, I took a cab to my brother&#8217;s house to meet my new niece - and some rather splendid kittens.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6013496657/"><img src="http://farm7.static.flickr.com/6029/6013496657_e793d45317_z.jpg" alt="Kitteh!" /></a></p>

<p>To my shame, I see now that I took 37 photos of the kittens, and 2 of my new niece. I am a bad uncle.</p>

<p>My brother has a Nintendo Wii, on which he has somehow managed to install the original Super Mario Bros.  He and I played that game as kids in the early &#8217;90s, and it&#8217;s just as frustrating today as it ever was back then. Great fun.</p>

<p>A trip to McDonalds with the kids, then to the park, with a stop at the pub on the way back, and my avuncular duties were over with for the day.  Into another taxi, to another pub run by an old pal, where I&#8217;d be holing up for the next two weeks.  I like staying in pubs.</p>

<p>The next few days saw me catching up with old friends, eating Proper English Breakfasts, reacquainting myself with Proper English Fish &amp; Chip Shops, realising that a pint of lager in Southport is far cheaper than a pint of lager in Bangkok, and taking full advantage.</p>

<p>I now outweigh Northern England.</p>

<p>During this time, armed police <a href="http://en.wikipedia.org/wiki/Death_of_Mark_Duggan">killed Mark Duggan</a> in Tottenham, and all hell broke loose.</p>

<p><a href="http://www.guardian.co.uk/world/picture/2011/aug/07/eyewitness-riots-in-tottenham?CMP=twt_ipd#"><img src="http://static.guim.co.uk/sys-images/guardian/Pix/pictures/2011/8/7/1312716098933/Riot-in-Tottenham-London-002.jpg" alt="Eyewitness: Riots in Tottenham" /></a></p>

<p>Southport is, of course, far too middle-class for rioting, so we just watched it on TV instead.</p>

<p>There were a few minor scuffles in South Liverpool, which was a bit of a worry as I&#8217;d be taking flight three from Liverpool airport, but as it turned out I once again missed all of the action.</p>

<p><strong>Liverpool to Derry</strong></p>

<p>And so with my trip about half-way through, I found myself reading the newspaper and drinking the coffee in the photo at the top of the page, waiting for my RyanAir flight from Liverpool to Derry, to visit my mother and stepfather.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6087894451/"><img src="http://farm7.static.flickr.com/6197/6087894451_0724e9aced_z.jpg" alt="" /></a></p>

<p>I&#8217;d been to Derry airport before, but hadn&#8217;t even been into the city itself.  We took a long walk along the river Foyle, and then into the city itself and around the walls.</p>

<p>There was some kind of historic re-enactment in progress, where people in traditional costume were standing around and startling tourists by pretending that <a href="http://en.wikipedia.org/wiki/Siege_of_Derry">the siege</a> was still going on.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6087896181/"><img src="http://farm7.static.flickr.com/6202/6087896181_ace2c4a1b3_z.jpg" alt="" /></a></p>

<p>It&#8217;s a beautiful place, and well worth seeing if you&#8217;re ever in Northern Ireland.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6088448936/"><img src="http://farm7.static.flickr.com/6203/6088448936_809f278b8c_z.jpg" alt="" /></a></p>

<p>After a nice cup of tea, it was back to the car for the long drive out to my Mum&#8217;s place in rural Donegal, a very nice bungalow which is also home to two tremendously beautiful cats (but don&#8217;t they know it).</p>

<p><a href="http://www.flickr.com/photos/barryprice/6088962050/"><img src="http://farm7.static.flickr.com/6183/6088962050_3b1053f2c3_z.jpg" alt="" /></a></p>

<p>And to Padjo, perhaps the world&#8217;s oldest dog.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6088959826/"><img src="http://farm7.static.flickr.com/6184/6088959826_6c53e0b9d8_z.jpg" alt="" /></a></p>

<p>And so quiet, peace, tranquility and isolation became the main features of my environment for the first time in years, which was nice until I wanted to check my email.</p>

<p>We drove out to Letterkenny one night to watch the very funny <a href="http://www.imdb.com/title/tt1540133/">The Guard</a> at the cinema, which I had thought was directed by Martin McDonagh until I looked up the link - turns out it was his brother, John Michael McDonagh.  A very funny film.</p>

<p>Some fantastic home-cooked food continued the good work begun by Southport&#8217;s various eateries, and I began to wonder whether I&#8217;d fit into my seat on the already rather cramped RyanAir flight back to Liverpool.</p>

<p>A day out to <a href="http://en.wikipedia.org/wiki/Slieve_League">Slieve League</a> rounded off my time in Ireland.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6088473393/"><img src="http://farm7.static.flickr.com/6185/6088473393_1ec272f273_z.jpg" alt="" /></a></p>

<p>Some great views and beautiful countryside, but unfortunately there was more fog than I have ever seen in my life - which makes for some very grey photos!</p>

<p><a href="http://www.flickr.com/photos/barryprice/6088483557/"><img src="http://farm7.static.flickr.com/6088/6088483557_d1d6a6f4b8_z.jpg" alt="" /></a></p>

<p><strong>Derry to Liverpool</strong></p>

<p>Back to England on flight four, where the fires had by now gone out, for further pubbery, shopping and taking full final desperate advantage of such exotic treats as Quavers, Lucozade and Ginsters pasties.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6034943117/"><img src="http://farm7.static.flickr.com/6131/6034943117_7b5dec0f15_z.jpg" alt="We all live in a..." /></a></p>

<p>All too soon, the football season began (it&#8217;s a novelty to watch football during daylight hours), time ran out, and I returned to Manchester for flights five and six - the long journey home.</p>

<p><strong>Manchester to Bangkok, via Abu Dhabi</strong></p>

<p>The transition, it seems, is finally complete after five years.  England is still a nice enough place to visit, but only because friends and family live there. England no longer felt like home.  But returning to Thailand felt exactly like coming home.</p>

<p>I finally seem to have more friends in Thailand than in England, although of course my close friends in England are the dearest if no longer the nearest.</p>

<p>If my friends and family all spontaneously moved to France, Denmark, China or California, then I&#8217;d happily visit that country every year instead.  I don&#8217;t think I&#8217;d miss the UK in particular.</p>

<p>Ireland&#8217;s a slightly different case in that it was never home in the first place - although I have Irish citizenship, I have never lived there.  So that&#8217;s always been more of a holiday than a homecoming.</p>

<p>The political situation in the UK is particularly depressing now - it&#8217;s alarming how swiftly unrest can bring out the inner fascist in people I&#8217;d have assumed were rather more enlightened. My Facebook news feed during the riots became a very depressing read.</p>

<p>If you have a society that produces people who are so disaffected that they&#8217;re prepared to behave like that, you need to fix society.  Locking people up is not going to fix the problem.  What happens when the prisons are full? The UK prison population is already at a record high&#8230;</p>

<p>Sobering stuff.</p>

<p>Still, I&#8217;ll be back to visit every year or so as long as I  have friends and family there.  But England now feels less like &#8220;my&#8221; country, and more like just somewhere I used to live.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Barry's Five Rules of International Travel]]></title>
    <link href="http://www.barryprice.co.uk/2011/08/02/barrys-five-rules-of-international-travel/"/>
    <updated>2011-08-02T14:25:53+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/08/02/barrys-five-rules-of-international-travel</id>
    <content type="html"><![CDATA[<ol>
<li><p>I will not eat anything rated higher than 1,000 on <a href="http://en.wikipedia.org/wiki/Scoville_scale">the Scoville scale</a> during the 24 hours preceding take-off</p></li>
<li><p>I will do everything in my power to avoid police attention in countries where they write in their own special alphabet</p></li>
<li><p>In countries where security guards routinely carry machine guns, I will not carry anything more valuable than a machine gun</p></li>
<li><p>I will not attempt to upgrade the OS on my laptop, nor the firmware on my iPod, iPad, iPhone, or iAnything during the 24 hours preceding take-off</p></li>
<li><p>I will not attempt to use superglue on the day that I am due to fly</p></li>
</ol>


<p>That is all.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Oh, snap]]></title>
    <link href="http://www.barryprice.co.uk/2011/06/28/oh-snap/"/>
    <updated>2011-06-28T18:38:51+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/06/28/oh-snap</id>
    <content type="html"><![CDATA[<p>You know when you attempt to walk past the fridge, but you catch your little toe on the corner, and you collapse in agony, curling into a foetal ball and whimpering, convinced that your toe is at the very least broken, and possibly entirely severed from your foot? <!--more--></p>

<p>And then you look down, through the tears and anguish, and see that actually it&#8217;s fine, and you&#8217;re just being a big girl?</p>

<p>Well, this was a bit like that.  Apart from the &#8220;actually it&#8217;s fine&#8221; part.</p>

<p><img src="http://s3.amazonaws.com/barryprice/blog_images/foot1.png" alt="What I expected to see" /><br/>
What I expected to see</p>

<p><img src="http://s3.amazonaws.com/barryprice/blog_images/foot2.png" alt="What I expected to see" /><br/>
What I actually saw</p>

<p>I had always wanted to break a bone.  In doing so, I had finally fulfilled both of my medical ambitions (the other was to <a href="http://www.barryprice.co.uk/2005/03/15/wipeout/">take a ride in an ambulance</a>).  Unlike the ambulance ride, this was less fun than I had anticipated.</p>

<p>Fortunately, I had been out drinking with a pal, and so a sort of alcoholic anaesthesia dulled the pain as I stared, shocked, at my defective digit.  It seemed, to my rather generously-lubricated mind, that this state of affairs must be corrected, and quickly.  So I raised my leg, gave the toe a good whack with my right fist, which had the twin immediate effects of both resetting the joint, and making me fall over.</p>

<p>All that was left to do was to tape it to the toe next door, which I did carefully and deliberately with the finest elastoplast.  I then threw on socks and shoes, and walked to 7-Eleven to buy some drinks, which is what I&#8217;d been looking for in the fridge in the first place.  I&#8217;d guess the walk is a half-mile round trip.  It didn&#8217;t really hurt.  I am manly when I&#8217;m tipsy.</p>

<p>Sober, I am rather less manly. I awoke convinced that I&#8217;d lost a leg, and have been hobbling forlornly since.</p>

<p>This brings to an end my dual quests to experience both an ambulance ride and a broken bone, and so I can now proudly say that at the age of just thirty-two, I have achieved all of my medical ambitions.</p>

<p>I now intend to live forever, without ever visiting another hospital.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Linode Kernel Check]]></title>
    <link href="http://www.barryprice.co.uk/2011/06/04/linode-kernel-check/"/>
    <updated>2011-06-04T01:44:18+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/06/04/linode-kernel-check</id>
    <content type="html"><![CDATA[<p>[Update: Linode changed their data format on 3 August 2011 which broke this script - it has now been amended.]</p>

<p>[Update 2: And again on 22 August 2011. Amended again.]</p>

<p>[Update 3: I am no longer a Linode customer. I enjoyed using Linode very much, but <a href="http://aws.amazon.com">AWS</a> gives me more features for less money.]</p>

<p>I host this site on a Linode, because it&#8217;s like having my own dedicated server, running whatever distro I like (Debian, in my case), for twenty bucks a month. <!--more--></p>

<p>One of the many advantages of Debian is its insanely awesome package management.  However, one of the very few disadvantages of running a Linode as opposed to a real dedicated server, is that your kernel package is managed from outside the VM, rather than within.</p>

<p>So you have a fairly standard Debian install, but without a linux-kernel package installed.  Your kernel, along with your memory and virtual disks, is managed through the Linode website.</p>

<p>I&#8217;m on the debian-security-announce mailing list, so I get an email whenever a security/bugfix update is released.  I can then patch my boxes as necessary.</p>

<p>However, Linode don&#8217;t seem to have a similar list for when they make updated kernels available.</p>

<p>So unless I go to the Linode management website on a regular basis, I wouldn&#8217;t know that an updated kernel is available.</p>

<p>Enter Perl.</p>

<figure class='code'><figcaption><span></span></figcaption><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
<span class='line-number'>3</span>
<span class='line-number'>4</span>
<span class='line-number'>5</span>
<span class='line-number'>6</span>
<span class='line-number'>7</span>
<span class='line-number'>8</span>
<span class='line-number'>9</span>
<span class='line-number'>10</span>
<span class='line-number'>11</span>
<span class='line-number'>12</span>
<span class='line-number'>13</span>
<span class='line-number'>14</span>
<span class='line-number'>15</span>
<span class='line-number'>16</span>
<span class='line-number'>17</span>
<span class='line-number'>18</span>
<span class='line-number'>19</span>
<span class='line-number'>20</span>
<span class='line-number'>21</span>
<span class='line-number'>22</span>
<span class='line-number'>23</span>
<span class='line-number'>24</span>
<span class='line-number'>25</span>
<span class='line-number'>26</span>
<span class='line-number'>27</span>
<span class='line-number'>28</span>
<span class='line-number'>29</span>
<span class='line-number'>30</span>
<span class='line-number'>31</span>
<span class='line-number'>32</span>
<span class='line-number'>33</span>
<span class='line-number'>34</span>
<span class='line-number'>35</span>
<span class='line-number'>36</span>
<span class='line-number'>37</span>
<span class='line-number'>38</span>
<span class='line-number'>39</span>
<span class='line-number'>40</span>
<span class='line-number'>41</span>
<span class='line-number'>42</span>
<span class='line-number'>43</span>
<span class='line-number'>44</span>
<span class='line-number'>45</span>
<span class='line-number'>46</span>
<span class='line-number'>47</span>
<span class='line-number'>48</span>
<span class='line-number'>49</span>
<span class='line-number'>50</span>
<span class='line-number'>51</span>
<span class='line-number'>52</span>
<span class='line-number'>53</span>
</pre></td><td class='code'><pre><code class='perl'><span class='line'><span class="c1">#!/usr/bin/perl</span>
</span><span class='line'>
</span><span class='line'><span class="k">use</span> <span class="nn">Modern::</span><span class="n">Perl</span><span class="p">;</span>    <span class="c1"># enforce sane practices</span>
</span><span class='line'><span class="k">use</span> <span class="nn">WebService::</span><span class="n">Linode</span><span class="p">;</span> <span class="c1"># talk to Linode API</span>
</span><span class='line'>
</span><span class='line'><span class="k">use</span> <span class="n">constant</span> <span class="n">DEBUG</span> <span class="o">=&gt;</span> <span class="mi">0</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$running_uname</span> <span class="o">=</span> <span class="sx">qx{uname -r}</span><span class="p">;</span>    <span class="c1"># get running kernel version</span>
</span><span class='line'><span class="nb">chomp</span> <span class="nv">$running_uname</span><span class="p">;</span>          <span class="c1"># remove trailing &lt;cr&gt;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$apikey</span> <span class="o">=</span> <span class="s">&#39;YOUR_API_KEY&#39;</span><span class="p">;</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$linodeid</span> <span class="o">=</span> <span class="s">&#39;YOUR_LINODE_ID&#39;</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$matchlatest</span> <span class="o">=</span> <span class="s">&#39;Latest 2.6&#39;</span><span class="p">;</span>   <span class="c1"># this is what we want</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$hide64bit</span> <span class="o">=</span> <span class="s">&#39;x86_64&#39;</span><span class="p">;</span>     <span class="c1"># but not this (we run i386)</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$api</span> <span class="o">=</span> <span class="k">new</span> <span class="nn">WebService::</span><span class="n">Linode</span><span class="p">(</span> <span class="n">apikey</span> <span class="o">=&gt;</span> <span class="nv">$apikey</span> <span class="p">);</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$avail_kernels</span> <span class="o">=</span> <span class="nv">$api</span><span class="o">-&gt;</span><span class="n">avail_kernels</span><span class="p">();</span>  <span class="c1"># array of hashes</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$latest_id</span> <span class="o">=</span> <span class="mi">0</span><span class="p">;</span>   <span class="c1"># prep vars</span>
</span><span class='line'><span class="k">my</span> <span class="nv">$latest_label</span> <span class="o">=</span> <span class="s">&#39;&#39;</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">for</span> <span class="k">my</span> <span class="nv">$kernel</span> <span class="p">(</span><span class="nv">@$avail_kernels</span><span class="p">)</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>  <span class="c1"># skip if x86_64</span>
</span><span class='line'>  <span class="k">next</span> <span class="k">if</span> <span class="p">((</span><span class="nb">index</span><span class="p">(</span><span class="nv">$kernel</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&#39;label&#39;</span><span class="p">},</span> <span class="nv">$hide64bit</span><span class="p">))</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">);</span>
</span><span class='line'>  <span class="c1"># skip if not Latest Paravirt</span>
</span><span class='line'>  <span class="k">next</span> <span class="k">unless</span> <span class="p">((</span><span class="nb">index</span><span class="p">(</span><span class="nv">$kernel</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&#39;label&#39;</span><span class="p">},</span> <span class="nv">$matchlatest</span><span class="p">))</span> <span class="o">&gt;=</span> <span class="mi">0</span><span class="p">);</span>
</span><span class='line'>  <span class="nv">$latest_id</span> <span class="o">=</span> <span class="nv">$kernel</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&#39;kernelid&#39;</span><span class="p">};</span>   
</span><span class='line'>  <span class="nv">$latest_label</span> <span class="o">=</span> <span class="nv">$kernel</span><span class="o">-&gt;</span><span class="p">{</span><span class="s">&#39;label&#39;</span><span class="p">};</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'>
</span><span class='line'><span class="n">say</span> <span class="s">&quot;Latest available kernel is #$latest_id, &#39;$latest_label&#39;.&quot;</span> <span class="k">if</span> <span class="n">DEBUG</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">my</span> <span class="nv">$latest_uname</span> <span class="o">=</span> <span class="nv">$latest_label</span><span class="p">;</span>
</span><span class='line'><span class="nv">$latest_uname</span> <span class="o">=~</span> <span class="sr">s/^.*\((.*)\).*$/$1/</span><span class="p">;</span>  <span class="c1"># parse out string in brackets</span>
</span><span class='line'>
</span><span class='line'><span class="n">say</span> <span class="s">&quot;Latest uname is $latest_uname, you are running $running_uname.&quot;</span> <span class="k">if</span> <span class="n">DEBUG</span><span class="p">;</span>
</span><span class='line'>
</span><span class='line'><span class="k">if</span> <span class="p">(</span><span class="nv">$latest_uname</span> <span class="ow">ne</span> <span class="nv">$running_uname</span><span class="p">)</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;You are running kernel $running_uname, &quot;</span><span class="p">;</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;but the latest available kernel is $latest_uname.&quot;</span><span class="p">;</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;\n\n&quot;</span><span class="p">;</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;Please check your settings at http://manager.linode.com &quot;</span><span class="p">;</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;and restart your Linode.&quot;</span><span class="p">;</span>
</span><span class='line'>  <span class="k">print</span> <span class="s">&quot;\n\n&quot;</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span><span class='line'><span class="k">else</span>
</span><span class='line'><span class="p">{</span>
</span><span class='line'>  <span class="n">say</span> <span class="s">&quot;No action required.&quot;</span> <span class="k">if</span> <span class="n">DEBUG</span><span class="p">;</span>
</span><span class='line'><span class="p">}</span>
</span></code></pre></td></tr></table></div></figure>


<p>I always want to run the &#8220;Latest 2.6&#8221; kernel for i386 (I&#8217;m running the smallest VM, with limited memory, and i386 is a better fit than x86_64 in these circumstances).</p>

<p>So I list all the available kernels, and skip over all the ones that don&#8217;t match &#8220;Latest 2.6&#8221;, then skip the x86_64 kernels too.</p>

<p>This leaves me with a list of one, which I then compare against the actual running kernel.</p>

<p>I could have used the Linode API to get the currently configured kernel, but that only tells me what&#8217;s in the config file - it doesn&#8217;t tell me what is actually running <em>right now</em>.  Config changes don&#8217;t take place until a reboot, so I could update my config file and forget to reboot, and still be on an older kernel.  Capturing the currently running kernel info is the only way to avoid this.</p>

<p>I run the above in a daily cron job at 9am.  If I&#8217;m running the latest kernel, nothing happens.</p>

<p>But if there&#8217;s a new kernel available, I get an email telling me about it.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[The Drums live in Bangkok]]></title>
    <link href="http://www.barryprice.co.uk/2011/05/25/the-drums-live-in-bangkok/"/>
    <updated>2011-05-25T18:00:28+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/05/25/the-drums-live-in-bangkok</id>
    <content type="html"><![CDATA[<p>I hadn&#8217;t heard much of their music, although I knew the name.  That&#8217;s one of the problems with being an expat in Asia - you become completely disconnected from the music scene of the West, particularly anything that could possibly be construed as &#8220;indie&#8221;. <!--more--></p>

<p>Here&#8217;s a photoset to illustrate my realisation of precisely why professional music photographers do not use their iPhones for gig photography.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5757414532/"><img src="http://farm6.staticflickr.com/5228/5757414532_f27ea1ae46_z.jpg" alt="The Drums" /></a></p>

<p>Locals get sniffy when I criticise the homogeny of the local music scene - their defense is normally along the lines of &#8220;but we have <em>both</em> kinds of music here - hip-hop <em>and</em> techno&#8221;.  There are a few decent bands about - local rockabilly/psychobilly band Trix &#8216;o&#8217; Treat (music video <a href="http://www.youtube.com/watch?v=it0r3eAeWDk">here</a>) are well worth watching - but engaging acts are few and far between, at least for this ageing indie kid.</p>

<p>Grumbles aside, the opportunity to see an up-and-coming Western band playing in practically my own back yard was too great to pass up.</p>

<p>The gig was at Muse, a very smart nightclub on the dangerously trendy Thonglor 10, and was sponsored by Federbräu, a not-very-tasty German lager. This of course meant that no other beers were available.  Waiters with ice buckets worked the crowd though, saving us from having to walk to the bar, and at ฿100 a bottle, it could have been far worse.  At least it wasn&#8217;t Chang.</p>

<p>The band were an hour late on stage, as is prophesied, but worth the wait.  The appreciation of music is, of course, entirely subjective.  I&#8217;ve always liked the quote &#8220;writing about music is like dancing about architecture&#8221;, although it&#8217;s <a href="http://home.pacifier.com/~ascott/they/tamildaa.htm">rather a mystery as to who first came up with it</a>.</p>

<p>That said, I&#8217;ll try it.  Despite being a dead ringer for Gareth Keenan from out of The Office, Jonathan Pierce has enough about himself to carry off the frontman duties with aplomb while the rest of the band get on with the unfashionable business of actually playing the music.</p>

<p><img src="http://i.imgur.com/S7aF0.jpg" alt="" /></p>

<p>Jonathan Pierce from out of The Drums, yesterday</p>

<p>Doors had opened at 8pm, the band had been due at 9pm but delayed until 10pm, and it was all over by 11pm.  Which meant that I spent two-thirds of my time in the venue not watching the band, and three-thirds of it drinking Federbräu, but still - a surprisingly enjoyable experience.</p>

<p><img src="http://i.imgur.com/Zk1yt.jpg" alt="" /></p>

<p>Gareth Keenan from out of The Office, yesterday</p>

<p>The music itself sounds like a chirpy Joy Division, if such a thing can be imagined.  Apart from &#8220;Down By The Water&#8221;, which sounds like a thoroughly fed-up and gloomy Joy Division.  Skip.  And yes, although Joy Division were rather before my time (I was one year old when Ian Curtis died), I heard &#8220;Love Will Tear Us Apart&#8221; played sufficiently often in 90s indie clubs to investigate the rest of their repertoire.</p>

<p>My pal, also full of Federbräu, described the Drums sound as being more like &#8220;The Cure in a good mood&#8221;, progressing later to &#8220;80s but good&#8221;.  Lo-fi 80s-era indie meets electro, is my best effort.  All of which, of course, means nothing at all.</p>

<p>That said, if we were to attach any gravity to my booze-addled opinion of what constitutes &#8220;cool&#8221; in an art that I am no longer qualified to practice, I would say that those ignorant to this band could do far worse than to sit in the corner and listen to &#8220;Let&#8217;s Go Surfing&#8221; (<a href="http://www.youtube.com/watch?v=XdyJUrEJD9U">video</a>), &#8220;Best Friend&#8221; (<a href="http://www.youtube.com/watch?v=Jpm4eJ6l1n4">video</a>) and &#8220;Forever And Ever Amen&#8221; (<a href="http://www.youtube.com/watch?v=_T_arHUAJfc">video</a>) until they enjoy it.</p>

<p>The set itself was tight, well-balanced and apparently effortless, which is the real trick of course - nonchalantly making the very difficult seem enormously easy.  Would certainly see again.</p>

<p>Here&#8217;s to more contemporary* Western indie acts in Thonglor sometime soon. Hopefully sponsored by a tastier beverage.</p>

<p>*Not The Eagles.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Penang & Langkawi]]></title>
    <link href="http://www.barryprice.co.uk/2011/05/22/penang-langkawi/"/>
    <updated>2011-05-22T20:09:32+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/05/22/penang-langkawi</id>
    <content type="html"><![CDATA[<p>The archipelago of <a href="http://wikitravel.org/en/Langkawi">Langkawi</a> had come recommended by a few people, all of whose identities are now lost in the mists of time.  I do know that after I booked the trip, I asked the people who I <em>thought</em> had recommended it for tips.  Responses included <em>&#8220;Never been there. Looks nice though&#8221;</em>, <em>&#8220;Yes, I went there but never left the resort, so can&#8217;t recommend anything&#8221;</em>, <em>&#8220;No, I was going to go but didn&#8217;t&#8221;</em>, and of course <em>&#8220;I think there were monkeys, but I was drunk&#8221;</em>. <!--more--></p>

<p><a href="http://www.flickr.com/photos/barryprice/5702991636/"><img src="http://farm6.static.flickr.com/5269/5702991636_3051ae0846_z.jpg" alt="There are too many sunset photos" /></a></p>

<p>Due to the intricacies of Air Asia&#8217;s flight schedules, flying to Langkawi and thus avoiding a long (and vomit-inducing, if previous trips are any measure) boat trip required a detour via Penang.</p>

<p>I spent a night in Penang in August 2007, and hadn&#8217;t planned on ever going back.  Not because it was a particularly <em>bad</em> place, but because, <a href="http://www.barryprice.co.uk/2010/11/19/singapore/">like Singapore</a>, I saw no reason to return having crossed it off my &#8220;to go to&#8221; list - of all of the cities in the world.  Why go to a dull city twice when there are so many others to check out?</p>

<p>Still, if another night in Penang was unavoidable, at least this time I could do it in rather more style.</p>

<p>On my previous trip, I&#8217;d stayed on Chulia Street, in the backpacker ghetto. I&#8217;d decided to rough it, as it was only for one night. And so I had eventually found myself sharing a 30 ringgit (฿300) room with a small lizard. The bathroom lightswitch was, for some reason, behind the wardrobe.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702974766/"><img src="http://farm6.static.flickr.com/5186/5702974766_2f0c8d1f94_z.jpg" alt="Pool, looking over the sea to mainland Malaysia" /></a></p>

<p>This time around, I fared rather better - we stayed in a deluxe suite at the Northam - still in Georgetown but over in the business district.  A great suite - I&#8217;ve lived in smaller apartments.  However, given the total lack of restaurants, bars or any visible forms of life in the area, we tried to walk to Chulia Street for dinner. With no cell service, Google Maps wasn&#8217;t an option, so we had to rely on my vague four-year-old memory of Penang&#8217;s geography. We gave up after a mile of bad pavements, turned back, and discovered the Northam Beach Café directly opposite our hotel, which was great.</p>

<p>I was astonished when I later found that we&#8217;d been going in exactly the right direction, and were only half a mile short.</p>

<p>Up and out the next morning via a particularly grim breakfast buffet, and aboard a surprisingly busy 20-minute flight to Langkawi International Airport.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702407089/"><img src="http://farm6.static.flickr.com/5301/5702407089_11837cfa5c_z.jpg" alt="On the tarmac at Langkawi" /></a></p>

<p>There are some beautiful places in Asia.  There are also some remarkably ugly places.  Langkawi is, thankfully, one of the former.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702982250/"><img src="http://farm4.static.flickr.com/3539/5702982250_1dd64d87d1_z.jpg" alt="View from cable car's middle station" /></a></p>

<p>After the layover in Penang, we only had two nights in Langkawi, and much remains to be explored. After checking into the Holiday Villa resort and scoffing a tasty lunch nearby, the rest of the first day was spent up in the mountains, braving the alarmingly wobbly <a href="http://www.langkawicablecar.com.my/">Langkawi Cable Car</a>.</p>

<p>Half-way up the hill, there&#8217;s a platform where you can get out and admire the view.  And what a view.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702413621/"><img src="http://farm3.static.flickr.com/2341/5702413621_1b77dd4966_z.jpg" alt="View from cable car's middle station" /></a></p>

<p>After the break, time to get back into a cable car for the final stretch to the top.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702983842/"><img src="http://farm6.static.flickr.com/5309/5702983842_cf11bd55ea_z.jpg" alt="View from cable car's middle station" /></a></p>

<p>The fun doesn&#8217;t end there though.  There&#8217;s a very steep set of stairs carved into the mountainside, and if you lurch down them, you eventually get to the <a href="http://www.wackyarchives.com/featured/the-malaysia-sky-bridge.html">Langkawi Sky Bridge</a>.</p>

<p>The Langkawi Sky Bridge is a very silly bridge indeed.  It hangs over the valley, a mile up, basically balancing on itself. If bridges had expressions, this one would be looking rather pleased with itself, as if mocking the onlooking laws of gravity.</p>

<p>But the view from there is just&#8230;</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702985440/"><img src="http://farm6.static.flickr.com/5181/5702985440_724f4aeaa4_z.jpg" alt="View from the Langkawi Sky Bridge" /></a></p>

<p>Well, it looks like that.  Stunning.</p>

<p>Walking back up the jungle stairs was rather less fun than walking down them, but we made it, panting, to the top, took in one last vista of forests, waterfalls, beaches and the Andaman Sea, then flopped into a cable car and rode all the way back down, worrying only slightly at the lurching bumps, sways and wobbles.</p>

<p>In the taxi back to the hotel, we saw a couple of monkeys dash across the road - the mother had a baby monkey clinging to her front, with its arms wrapped around her neck.  Adorable, and far too fast-moving to photograph, sadly.  But yes, there are monkeys. Monkeys are cool.</p>

<p>That evening saw us retire to the hotel, where we had a decent Italian dinner at &#8220;Mario’s Italian Restaurant&#8221;.  Not cheap by Asian standards, but Western portions make for a good feed!</p>

<p>Saturday was spent relaxing with gusto.  After a quick sojourn to the wonderfully crap &#8220;M Cafe&#8221; for a very late &#8220;American breakfast&#8221; (turkey sausage, stone cold baked beans, processed cheese omelette, jam on toast), we headed to the beach and stayed there, bar a swift sojourn in the pool.</p>

<p>Due to the layout of the area, this is essentially a private beach for hotel guests.  There&#8217;s a bar on the beach, and some extremely tame birds and cats came to enjoy the view with us for a while.</p>

<p>The pool was a short walk away when we wanted to cool off, and there was another bar in the pool.  Not <em>by</em> the pool, but <em>in</em> the pool.  Submerged barstools surrounded it, and I enjoyed a cold Heineken while sat in the swimming pool, which was a first.</p>

<p>Sunset arrived, a sight of which I took far too many photos.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5702424391/"><img src="http://farm3.static.flickr.com/2488/5702424391_93901e0397_z.jpg" alt="There are too many sunset photos" /></a></p>

<p>Darkness fell, and we headed to a nearby Malaysian/Thai restaurant called Maya for dinner, where I had a fantastic beef curry which I think may have been <a href="http://en.wikipedia.org/wiki/Rendang">rendang</a>. As the owners were Muslim, they did not serve alcohol, but customers were welcome to bring their own alcoholic drinks with them - another first.</p>

<p>Our time was up all too quickly in the end, and all that was left was to fly back to Bangkok the next day, with a brief stop in Penang.  I think I could easily spend a week or two in Langkawi without getting bored, although perhaps at a hotel which doesn&#8217;t charge 40 ringgit (฿400) per day for internet - I only pay ฿599 for a whole month at home!  Although the hotel was beautiful, it was also the only hotel I&#8217;ve come across over 5 years in Asia that didn&#8217;t even provide free water in the room.  Water&#8217;s cheap enough, of course, but it was a symptom of the overall attitude - even the complimentary drink coupons we received on check-in were only valid for 3 hours per day, and only redeemable for non-alcoholic drinks&#8230;</p>

<p>So we&#8217;ll be back, but to another hotel.  I could skip the night in Penang next time, but until someone starts offering direct flights from Bangkok to Langkawi (I don&#8217;t expect this to happen), we&#8217;ll always need to stop somewhere.  Perhaps next time I&#8217;ll check out <a href="http://wikitravel.org/en/Kuala_Lumpur">Kuala Lumpur</a> on the way there&#8230;</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Five Years In Thailand]]></title>
    <link href="http://www.barryprice.co.uk/2011/04/30/five-years-in-thailand/"/>
    <updated>2011-04-30T15:32:53+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/04/30/five-years-in-thailand</id>
    <content type="html"><![CDATA[<p>Well, that was a bit of a blur.</p>

<p>Five years ago today, I packed the unsold remains of my life into a suitcase, carefully rolling my trusty <a href="http://www.barryprice.co.uk/2005/10/20/mac-mini/">Mac Mini</a> up in a beach towel, looked back one last time at the little Victorian two-up two-down mid-terrace that had been home, took a deep breath, then headed to Heathrow airport where I took a one-way flight to Bangkok, Thailand.<!--more--></p>

<p><a href="http://www.flickr.com/photos/33465428@N02/4256818117/"><img src="http://farm5.static.flickr.com/4038/4256818117_800f40e35a_z.jpg" alt="Eva Air Boeing 747-400" /></a></p>

<p>I wasn&#8217;t the only single male on that Eva Air flight, but at 27 I was certainly the youngest - and hopefully one of the less creepy-looking.</p>

<p>Thailand draws in different people in different ways. The balding, bloated divorcés on my flight could have been coming to see the temples, the markets, the beaches&#8230;  but probably weren&#8217;t.</p>

<h2>Stigma</h2>

<p>Thailand&#8217;s image in the eyes of the great unwashed was one of smut and innuendo back then, and remains similarly so today. It&#8217;s the one thing I wish I could do more to address.</p>

<p>Five years on, every time I return to the UK, there will always be the same reaction, at least once - &#8220;Thailand? Bangkok?! Oh, you dirty bugger&#8221;.  Any protest on my part is interpreted as a <em>protest too much</em>&#8230;</p>

<p>Granted, a very few will find something else to say. Some will mention the tsunami of 2004. Others might mention the red-shirt riots of 2010.  Last time around, one woman spoke at great length about the terrible palace massacre of 2001.</p>

<p>When I told her that she was mistaken, she chastised me for not knowing the history of my adopted homeland.  She was, of course, <a href="http://en.wikipedia.org/wiki/Nepalese_royal_massacre">thinking of Nepal</a>&#8230;  but there was no telling her.</p>

<p>All I&#8217;ve found to counter the &#8220;dirty bugger&#8221; brigade is to ask whether they&#8217;ve been. When they inevitably reply that they haven&#8217;t, I can say with some justification, &#8220;no, I didn&#8217;t think so&#8221;.  Of course they do have a point, but it&#8217;s worth noting that Bangkok&#8217;s foreigner-friendly &#8220;red light district&#8221; is effectively concentrated on three small streets, in a gargantuan city of some ten to fifteen million people.  Pattaya is another story, of course, but that&#8217;s a topic for another day&#8230;</p>

<p>But aside from the distance from friends and family, or rather from the time and money it takes to overcome that distance, those reactions from strangers are really the only things I would change, given the opportunity.</p>

<p>And let&#8217;s be honest, if we were all to live our lives in such a way as to ensure the approval of strangers, what a waste that would be.</p>

<h2>Ups</h2>

<p>So having dealt with the downsides - the distance and the dullards, what of the ups?</p>

<p>Firstly, and these are in no particular order, I&#8217;ve managed to spend five entire years not ever being cold, not even once.  Okay, slightly nippy twice, during my first two trips back to England, in April and October 2007.  Now, I ensure that I only visit England in July and August.</p>

<p>I spent twenty-seven years not enjoying the cold of England.  Now, aged thirty-two, the very idea of being &#8220;cold&#8221; is not just a dim and distant memory, but is actually becoming a totally alien concept.</p>

<p>Then of course there&#8217;s the difference in buying power.  For less than I used to pay for that two-up two-down in England, I get an apartment with two double-bedrooms, two bathrooms, front and rear balconies, kitchen and lounge/diner, and a cupboard larger than some of my previous bathrooms.  And a maid who comes in four times a week.  I haven&#8217;t had to wash a plate, hang up a shirt or pick up an iron in years.</p>

<p>Oh, and there&#8217;s a swimming pool.  Which is nice.</p>

<p>As my depressingly girthsome waistline will attest, this is a fine city in which to eat.  The expats will of course complain that their favourite dishes are either sub-standard here, or entirely unavailable.  I sympathise, to a degree - to take an example, there&#8217;s nothing like a good English fish and chip shop.  Bangkok has at least two fish and chip shops - each of them being, of course, nothing like a good English fish and chip shop.</p>

<p>Just the idea of walking into a warm shop at dusk, out of the cold (the what?), eyeing the Hollands Pies posters on the walls, listening to the sound of happily bubbling oil, taking in the smell of fresh fish frying, the agonising choice between a pie, or fish, or a cheeky sausage (to jumbo or not to jumbo?)&#8230; you get the idea.</p>

<p>But I can accept the trade-off.  I can have that experience every time I return to the UK, treasure it, go five times in a week if I want to, and then take the rest of the year off.</p>

<p>In return, I obviously get the best Thai food in the world, but on top of that I get fantastic and affordable Japanese, Korean, Chinese, as well as numerous surprisingly decent Italian restaurants, reasonably authentic (so I&#8217;m told) Tex/Mex food, on top of pricey but decent British pub grub, a thousand pizzerias, the usual fast food chains (McDonalds&#8217;s, Burger King, Pizza Hut, KFC), and generally speaking an amazingly good level of service.</p>

<p>Yes, good service.  Sure, we&#8217;re quick to complain when a Thai earning less than a dollar an hour misunderstands a foreigner ordering foreign food in a foreign language, but look at what we can do here.</p>

<p>I can, from my sofa, order food from restaurants that have their own delivery service. That part&#8217;s easy.  More impressively, I can also arrange for one of the local dedicated food delivery services to send a rider to a restaurant that <em>doesn&#8217;t</em> do delivery, place my order, and bring me the food.</p>

<p>Some of the above can be done twenty-four hours a day.  Want a Big Mac delivered to your door at 4.30am?  No problem.  This is a dangerous service to have available, of course, but it&#8217;s there.  Menu price, plus ฿20 for delivery.  Lethal.</p>

<p>I joined a national chain of gyms a while back, and paid ฿10,699 for lifetime membership.  Given the above, I need to make the effort to get back there more often&#8230;  or at least to the pool!</p>

<h2>V.I.P.</h2>

<p>Leading on from the food delivery stuff, is the level of service available over here, if you don&#8217;t mind shelling out a little extra.  You can watch a movie for ฿100 in a regular cinema here.  The IMAX screen at Paragon is a little more expensive - I think around ฿300 or so. It was the only way to watch Avatar though.</p>

<p>But treat yourself to the VIP experience at SFWorld in CentralWorld, and you&#8217;ll shell out ฿700.  For this, you get access to the VIP lounge before the movie - free <del>rich imperialist tit-bits</del> snacks and drinks, followed by unlimited popcorn and soft drinks in the theatre itself - topped up by the at-seat service staff.</p>

<p>Oh, and your seat is a fully reclining double sofa.  With a duvet.</p>

<p>That&#8217;s just the cinemas - splash out a little on drinking and dining and similar levels of extraordinary pampering are available.  Bangkok is possibly the best city in the world in which to find yourself bored with a modest disposable income.</p>

<h2>พูดภาษาไทย</h2>

<p>Thai is a fascinating, if challenging language.</p>

<p>There are forty-four consonants, and thirty-two vowels.  At least, according to some people.  Others would argue that there are forty-two and thirty, respectively.  It&#8217;s complicated.  And then there are the tones&#8230;</p>

<p>I am nowhere near fluent, and after five years, I really should be a lot better.  That said, pretty much every other westerner I know here is even worse at it than I am.</p>

<p>I can spell my name without having to think too hard: แบร์รี่. Although that&#8217;s the American pronunciation (&#8220;bear-y&#8221;), not the Northern English, which I guess would be บาร์รี่ (I thought บัรืรี่, or perhaps even บรรรี่, but was laughed at by my dear native speaker). But of course that sounds faintly ridiculous coming from the mouths of Thais, who will happily correct me if I spell it any other way than the American pronunciation anyway.</p>

<p>Thai has several &#8220;loan-words&#8221; from English, but Thai being Thai, they are pronounced in certain tones.  Get the tone wrong with any Thai word, and the whole meaning changes - or disappears entirely.</p>

<p>A particularly evil example:</p>

<p>English: New wood doesn&#8217;t burn, does it?</p>

<p>Thai: ไม้ใหม่ไม่ไหม้ไหม</p>

<p>Transliteration: &#8220;Mai mai mai mai mai?&#8221;</p>

<p>This is a great reason to not even attempt to write Thai using the latin (English) alphabet.  We simply don&#8217;t have the ability to handle Thai while still thinking in English.</p>

<p>One of the big differences with Thai is that the vowels are set in stone.  While regional accents still vary here as much as they do in Western countries, they do so far more subtly.</p>

<p>In England, North and South will argue over whether the &#8220;a&#8221; in &#8220;bath&#8221; is pronounced &#8220;a&#8221; as in &#8220;hat&#8221;, or &#8220;a&#8221; as in &#8220;barge&#8221;.  In Thailand, there is one vowel - or combination - to spell out every possible vowel-sound. The whole <a href="http://english.stackexchange.com/questions/5254/most-pronunciations-for-one-english-letter-sequence">&#8220;ough&#8221; problem</a> is unthinkable in Thai. If the vowels are spelt the same, they <strong>will</strong> be pronounced the same.</p>

<p>Most words, I still can&#8217;t spell.  I recognise them when I see them, usually pronounce them correctly, but couldn&#8217;t write them down without seeing them first.  There is only one way to read what&#8217;s written, but there are seemingly many ways to write what is heard.  Perhaps in another five years.</p>

<h2>Everywhere Else</h2>

<p>In the five years before I moved to Thailand, I visited:</p>

<ul>
<li><p>Ireland (3 times)</p></li>
<li><p>Italy</p></li>
<li><p>Tenerife</p></li>
<li><p>Thailand (3 times)</p></li>
</ul>


<p>In the past five years, since moving to Thailand, I have visited:</p>

<ul>
<li><p>Australia</p></li>
<li><p>Cambodia (10+ times)</p></li>
<li><p>Denmark</p></li>
<li><p>Hong Kong (twice)</p></li>
<li><p>Ireland</p></li>
<li><p>Laos (5+ times)</p></li>
<li><p>Macau</p></li>
<li><p>Malaysia</p></li>
<li><p>The Philippines</p></li>
<li><p>Singapore</p></li>
<li><p>USA</p></li>
<li><p>UK (4 times)</p></li>
</ul>


<p>And there&#8217;s so much to see within Thailand itself.  I still haven&#8217;t set a foot into most of her 76 provinces.</p>

<p>So far, I&#8217;ve actually spent a decent amount of time in (rather than just driven through):</p>

<ol>
<li><p>Chiang Mai</p></li>
<li><p>Ratchaburi</p></li>
<li><p>Prachuap Khiri Khan</p></li>
<li><p>Samut Songkhram</p></li>
<li><p>Nong Khai</p></li>
<li><p>Ubon Ratchathani</p></li>
<li><p>Trat</p></li>
<li><p>Chonburi</p></li>
<li><p>Rayong</p></li>
<li><p>Krabi</p></li>
</ol>


<p>Plus Bangkok itself - which is a special case, and not a province.  Ten down, sixty-six to go.</p>

<p>Still not a bad haul, though.  Perhaps I&#8217;d have spread my wings and travelled a lot more if I&#8217;d remained in the UK.  But even so, I&#8217;d have been far more likely to potter around Europe instead.  Not that this is a bad thing - Europe can be beautiful.  But the countries are all basically the same - they just speak different languages.  Whereas Asia is like travelling to another planet.</p>

<p>Of course, I wonder whether I was ever likely to remain in Europe after that first trip to Thailand.  Obviously I didn&#8217;t, but it&#8217;s interesting to wonder &#8220;what if&#8221;&#8230;</p>

<p>All things considered though, aside from weathering smutty remarks in English pubs for a week or two every summer, I wouldn&#8217;t change a thing.</p>

<p>Will I be here in another 5 years?</p>

<p>I never expected to be here for the first five.  So no predictions from me on that front.</p>

<p>Here&#8217;s to the future!</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[A tiny tech tip for pv and du on OSX]]></title>
    <link href="http://www.barryprice.co.uk/2011/04/09/a-tiny-tech-tip-for-pv-and-du-on-osx/"/>
    <updated>2011-04-09T02:45:24+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/04/09/a-tiny-tech-tip-for-pv-and-du-on-osx</id>
    <content type="html"><![CDATA[<p>There is a UNIX tool called <a href="http://www.ivarch.com/programs/pv.shtml">pv</a>.  It&#8217;s pretty cool.</p>

<p>You can install it on OSX via <a href="http://mxcl.github.com/homebrew/">HomeBrew</a>, which is pretty cool itself.</p>

<p>What is not so cool is that the Apple-supplied version of <strong>du</strong> does not support the <strong>-b</strong> flag, being BSD-esque rather than GNUful. Which is a rant for another day. This means that the standard example of how to use <strong>pv</strong> to give a progress bar for the tarring up of a large directory under UNIX <em>doesn&#8217;t work under OSX</em>. <!--more--></p>

<p>Do this. they say:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>tar -cf - . | pv -s $(du -sb . | awk '{print $1}') | gzip &gt; out.tgz</span></code></pre></td></tr></table></div></figure>


<p>And we do, only to be met with this:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
<span class='line-number'>2</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>du: illegal option -- b
</span><span class='line'>usage: du [-H | -L | -P] [-a | -s | -d depth] [-c] [-h | -k | -m | -g] [-x] [-I mask] [file ...]</span></code></pre></td></tr></table></div></figure>


<p>Although one can compile install the GNU coreutils package via HomeBrew for a version of <strong>du</strong> that does support <strong>-b</strong>, that seemed like overkill in this situation.</p>

<p>The simple fix, instead, is just to use the <strong>-k</strong> option for <strong>du</strong>, and to stick a 1024 multiplier into the <strong>awk</strong> statement to fix the numbers, thus:</p>

<figure class='code'><div class="highlight"><table><tr><td class="gutter"><pre class="line-numbers"><span class='line-number'>1</span>
</pre></td><td class='code'><pre><code class=''><span class='line'>tar -cf - . | pv -s $(du -sk . | awk '{print $1*1024}') | gzip &gt; out.tgz</span></code></pre></td></tr></table></div></figure>


<p>I couldn&#8217;t find any other mention of this online, so thought I&#8217;d write it up here for the next Mac user who googles the error.</p>

<p>And also to confuse my mother, who has no idea what I do for a living.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Laem Mae Phim]]></title>
    <link href="http://www.barryprice.co.uk/2011/04/07/laem-mae-phim/"/>
    <updated>2011-04-07T18:02:21+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/04/07/laem-mae-phim</id>
    <content type="html"><![CDATA[<p>Tucked away over in Rayong province, a little way short of Rayong Town, lies a small town called Laem Mae Phim.  A very small town, in fact.  It&#8217;s more like a road.</p>

<p>On one side of the road - the beach with its overhanging restaurants and bars. On the other side - the hotels and a handful of shops.  And for a weekend trip, I didn&#8217;t need anything more. <!--more--></p>

<p><a href="http://www.flickr.com/photos/barryprice/5545615377/"><img src="http://farm6.static.flickr.com/5260/5545615377_67221eca19_z.jpg" alt="Wooden contraption" /></a></p>

<p>The journey would be relatively straightforward, the hotel website <a href="http://www.villa-bali.net/gettin_there.htm">assured me</a>.  Take the bus from Ekamai to Laem Mae Phim, via Klaeng, and you&#8217;ll be there in 3 hours.</p>

<p>So we went to the bus station, approached the window above which hung a sign saying &#8220;Laem Mae Phim&#8221;, and were told in no uncertain terms that such a bus did not exist.</p>

<p>This is Thailand. I have long since ceased to be surprised.</p>

<p>We took the bus to Klaeng anyway, figuring we could hire a local bus, taxi, songthaew, tuk-tuk or <em>something</em> to take us the final step of the journey&#8230;</p>

<p>&#8230;only to discover that Klaeng has no buses, no taxis, no songthaews, and no tuk-tuks.</p>

<p>It does have motorcycle taxis though.  The girlfriend and I hopped onto the back of two motorcycles for the 18km journey to Laem Mae Phim.  It cost us ฿150 each, making the final 18km slightly more expensive than the previous 187km, but again - this is Thailand&#8230;</p>

<p><strong>Villa Bali</strong></p>

<p>Villa Bali is a nice hotel with a well-stocked bar/restaurant, a spa, a swimming pool, and a bunch of very nice Balinese-style bungalow-huts.  Although each building houses only a single room (plus en-suite), it&#8217;s a good-sized bedroom, featuring a four-poster bed with built-in mosquito nets, a small-ish but working TV, a well-stocked mini-fridge, a desk and chair for my laptop, and a comfy window seat to boot.  Plus a very decent-sized balcony/deck out front, where we could sit and listen to the waves lapping at the beach across the road with a few beers in the evenings.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5546198856/"><img src="http://farm6.static.flickr.com/5098/5546198856_95dbf39285_z.jpg" alt="Balinese style huts" /></a></p>

<p>We limped, windswept, off our motorcycles on a Friday evening.  The ride from Klaeng had been fast, wobbly and uncomfortable.  I did amuse myself on the way though, by instinctively letting go of the bag containing my ฿90,000 laptop in order to catch the ฿99 sunglasses whose arm had slipped out of the neck of my tshirt in the wind.  Mercifully, nothing was dropped.</p>

<p>We checked in, and enjoyed a great dinner at the attached restaurant - until the dire cover band started up anyway.  We took that as a signal to move on, and wandered along the beach road, checking the bars and restaurants on the way.</p>

<p><strong>Phish Café</strong></p>

<p>None of them particularly stood out, aside from the very nice <a href="http://www.phishcafe.com/">Phish Café</a>.  That&#8217;s not to say that nowhere else was worth going - more that they all seemed pretty similar.   Lots of very fresh fish &amp; seafood restaurants, like you&#8217;d expect in a coastal town, and for some reason lots of middle-aged Swedish people drinking cocktails and enthusing loudly in Swedish.</p>

<p>Phish Café had the nicest view of the sea, the best service, and the funkiest décor. So that was our drinking base for the weekend. They have lanterns in the trees out on the back deck&#8230;</p>

<p><a href="http://www.flickr.com/photos/barryprice/5546192492/"><img src="http://farm6.static.flickr.com/5292/5546192492_e572dea67f_z.jpg" alt="Lanterns in a tree" /></a></p>

<p><strong>The Beach</strong></p>

<p>Saturday was spent on the beach, eating fresh Thai food and drinking under the parasols, in between ventures into the sea - bliss:</p>

<p>After the beach, we returned to Phish Café to watch the sun set over a couple of beers.</p>

<p><a href="http://www.flickr.com/photos/barryprice/6886258361/"><img src="http://farm8.staticflickr.com/7205/6886258361_1143cfc518_z.jpg" alt="Sunset over the sea" /></a></p>

<p>After a lazy day, we didn&#8217;t get around to looking for dinner until about 10pm, which is when most places seem to close for the night.  We found just one restaurant open after 10pm on the whole stretch! Granted, 10pm is rather late for dinner, but we Bangkokians are used to being able to get beer, pad thai, burritos or a Big Mac at 4.30am or whatever time we want them&#8230;</p>

<p>After breakfast on Sunday, it was time to return to Bangkok, we discovered that there was a direct minibus service to and from Victory Monument in Bangkok, right to our hotel car park.  ฿200 per person, each way, and no motorbikes required.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Phnom Penh Twice]]></title>
    <link href="http://www.barryprice.co.uk/2011/03/15/phnom-penh-twice/"/>
    <updated>2011-03-15T18:49:02+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/03/15/phnom-penh-twice</id>
    <content type="html"><![CDATA[<p>Eventually, I will run out of things to say about Cambodia, or at least its capital. By my reckoning, these were my fifth and sixth trips to Phnom Penh, three months apart.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5181888139/"><img src="http://farm2.static.flickr.com/1364/5181888139_5d1c4ee2f5_z.jpg" alt="National Musem, Phnom Penh" /></a> <!--more--></p>

<p>In November 2010, I travelled there alone, then I returned in February of 2011 with a friend who was making his first visit.</p>

<p>Just over four years since my first trip to Phnom Penh, it&#8217;s amazing how much the city has changed. Along the riverside, a handful of &#8220;Happy Herb&#8221; pizza shops remain, <del>but unlike back then, the only green herbs destined for your margherita these days are oregano and basil</del> <em>[Gordon corrects me, in the comments &#8211; BP]</em>.</p>

<p>A few of the $10 guesthouses remain, but more and more luxury hotels and apartments are popping up in between them.  More and more &#8220;hostess&#8221; bars seem to be popping up closer to the riverside, although it&#8217;s thankfully still a far more reserved &#8220;scene&#8221; than Pattaya or Patpong.</p>

<p>One of my favourite movies, <a href="http://www.imdb.com/title/tt0164003/">City of Ghosts</a>, was filmed in Phnom Penh a decade ago.</p>

<p>Gérard Depardieu&#8217;s bar is still there, although it&#8217;s now a restaurant:</p>

<p><a href="http://www.flickr.com/photos/barryprice/5182420206/"><img src="http://farm5.static.flickr.com/4067/5182420206_44af098d40_z.jpg" alt="Gérard Depardieu's bar from City of Ghosts" /></a></p>

<p>But the hotel where Matt Dillon stayed (and had his sunglasses stolen by an urban monkey) now lies vacant behind a cast-iron fence, apparently scheduled for demolition.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5182960127/"><img src="http://farm5.static.flickr.com/4151/5182960127_48fbe76831_z.jpg" alt="Matt Dillon's hotel from City of Ghosts" /></a></p>

<p>After the genocide and &#8220;year zero&#8221; policies of Pol Pot&#8217;s Khmer Rouge, it&#8217;s amazing how far they have come in such a short time, and although there are still plenty of bizarre sights to be seen, it&#8217;s remarkable how few of them are specific to Cambodia.  Life in South East Asia can sometimes feel like just one long series of daily &#8220;WTF&#8221; moments&#8230;</p>

<p><a href="http://www.flickr.com/photos/barryprice/5183562686/"><img src="http://farm2.static.flickr.com/1003/5183562686_4042788c2d_z.jpg" alt="Ministry of Cult and Religion" /></a></p>

<p>But the pot-holed clay streets that I remember from my first visit are being paved, the riverside itself has been refurbished, and although the market still pongs somewhat, a surprisingly beautiful city is beginning to emerge from the chaos.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5183571008/"><img src="http://farm2.static.flickr.com/1282/5183571008_23a4233ff2_z.jpg" alt="Riverside view" /></a></p>

<p>The February trip though, was about remembering.  I didn&#8217;t want to force my pal to visit Choeung Ek and S-21, but neither did I want to dissuade him.  I think everyone should see both - but only when they&#8217;re ready.  By the third day, he was.</p>

<p>Although there were <a href="http://en.wikipedia.org/wiki/The_Killing_Fields">several sites across Cambodia where a total of 1,386,734 of the Khmer Rouge&#8217;s victims were slaughtered</a>, the site at Choeung Ek has become the tourism face of &#8220;The Killing Fields&#8221;, even though &#8220;only&#8221; 17,000 of those more-than-a-million victims were executed on this site.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5425187790/"><img src="http://farm6.static.flickr.com/5216/5425187790_5f91cbc67a_z.jpg" alt="The Killing Fields" /></a></p>

<p>It is a pretty depressing place, of course, although ironically the scenery is quite beautiful if you can take in the view while blocking out its history - not an easy thing to accomplish. Better writers have written more on those tragic events than I&#8217;ll ever be able to, so all I will say is that anyone wanting to understand could do a lot worse than starting by reading <a href="http://www.amazon.com/exec/obidos/ASIN/0060856262/ref=nosim/barryprice-21">this book</a>. It doesn&#8217;t make for pleasant reading, but it will help you to understand what happened.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5425209466/"><img src="http://farm6.static.flickr.com/5095/5425209466_26080b8277_z.jpg" alt="The Killing Fields" /></a></p>

<p>After the inevitable gift shop, a tuk-tuk ride to S-21, the site of the former school-turned-prison where thousands were killed.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5424614825/"><img src="http://farm6.static.flickr.com/5258/5424614825_9040cca8d8_z.jpg" alt="The Killing Fields" /></a></p>

<p>Although there is a great deal more at this grisly site, the memory most bring away with them is that of the stark, black-and-white photographs of the victims.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5425227050/"><img src="http://farm6.static.flickr.com/5136/5425227050_3caaa57789_z.jpg" alt="S21 Genocide Museum" /></a></p>

<p>Like police mugshots. the blank faces of men and women, young and old, boys and girls and babies, look into a camera for the last time.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5425226116/"><img src="http://farm6.static.flickr.com/5291/5425226116_952309ae21_z.jpg" alt="S21 Genocide Museum" /></a></p>

<p>And then you lose count, and then remember that every single one of these faces was a person, whose only crime was to be born in the wrong country at the wrong time. And every single one of them was murdered.</p>

<p><a href="http://www.flickr.com/photos/barryprice/5424626513/"><img src="http://farm6.static.flickr.com/5294/5424626513_ec4c90ebc9_z.jpg" alt="S21 Genocide Museum" /></a></p>

<p>And then, as you stagger, dazed out of S21, or the Tuol Sleng Genocide Museum, your tuk-tuk driver will grin and ask you whether you cried.  &#8220;English lady always cry&#8221;, he says. &#8220;Sometimes man cry too&#8221;.</p>

<p>And of course, it would have been far too heart-breaking and poetic to leave it there, so he&#8217;ll then let out an embarrassed cough and try to sell you a dodgy massage at some back-street brothel instead of just taking you back to the hotel. Tuk-tuk drivers will be tuk-tuk drivers, after all.</p>

<p>But still, it&#8217;s worth the trip.</p>
]]></content>
  </entry>
  
  <entry>
    <title type="html"><![CDATA[Epic Trip Part Three - England and Ireland]]></title>
    <link href="http://www.barryprice.co.uk/2011/01/29/epic-trip-part-three-england-and-ireland/"/>
    <updated>2011-01-29T14:50:20+07:00</updated>
    <id>http://www.barryprice.co.uk/2011/01/29/epic-trip-part-three-england-and-ireland</id>
    <content type="html"><![CDATA[<p>After a little over two weeks in the USA, it was time to head East to Europe - to Ireland, and the UK.</p>

<p><a href="http://www.flickr.com/photos/barryprice/4927254903/"><img src="http://farm5.static.flickr.com/4143/4927254903_338fea30c4_z.jpg" alt="Maghery beach" /></a></p>

<!--more-->


<p>I had never missed a plane before in my life, so I was almost excited when I landed late in Dublin and found that I&#8217;d missed my connection in Dublin. Almost.</p>

<p>I had 3 hours to kill, and a €10 voucher (&#8220;as a apology from us&#8221;) with which to do so.</p>

<p>In Dublin Airport.</p>

<p>There&#8217;s a challenge.</p>

<p><strong>Three hours in Dublin</strong></p>

<p>The overpriced coffee was a little less annoying, as it came out of the voucher, but at least it was scorchingly hot.  I was able to warm myself on it (more enjoyable than drinking it) as I stood huddled outside smoking my evil cigarettes and wishing I&#8217;d had a layover in Honolulu instead of Dublin.  Although that would have made for a substantially longer flight.  Yes, it was August.  No, Dublin isn&#8217;t any warmer in August.</p>

<p>My USA SIM card wasn&#8217;t working, my Thai SIM card was in my checked luggage, and so with no phone or internet access, I had little else to do but smoke another cigarette. And another.</p>

<p>Normally I&#8217;d leave security and check-in until the last minute, as being bored stood outside an airport with a cigarette  is nowhere near as bad as being bored at a departure gate and not allowed to smoke.</p>

<p>But it was so cold, and I was so tired, that with a break in tradition, I went through to departures an hour or so earlier than I&#8217;d usually have done.  Only to find that the café had a heated smoking area, where I spent the next hour with a much tastier brew of coffee and a smug grin on my face.</p>

<p>Finally, I flew to Manchester. Flight number five of nine for the trip.  Just over the half-way point.</p>

<p><strong>Two Days in England</strong></p>

<p>Arrived in Manchester with no problems - my luggage was last out, but at least it appeared.  I took the train to Southport, bought myself a PAYG SIM card, and took a taxi to my brother&#8217;s house, where I&#8217;d be staying for the weekend.</p>

<p>After a well-earned snooze, which was quite an achievement with my 5 year-old niece who I hadn&#8217;t seen for a year in the house, I was able to reacquaint myself with the pubs of my youth. And the kebab shop.</p>

<p>On Sunday, I did the same again, but with pizza.</p>

<p>On Monday, it was time for my brother, his wife, my niece and I to head to Liverpool Airport for flight number six of my trip - this time, to Derry.</p>

<p><strong>Ireland, Properly</strong></p>

<p><a href="http://www.flickr.com/photos/barryprice/4927242035/"><img src="http://farm5.static.flickr.com/4137/4927242035_e7792e2a23_z.jpg" alt="DSC00889" /></a></p>

<p>Rural Ireland has some of the most beautiful scenery in the world.  And my dear mother has managed to make her home in one of the most spectacular parts of all.</p>

<p><a href="http://www.flickr.com/photos/barryprice/4927244933/"><img src="http://farm5.static.flickr.com/4099/4927244933_672e04edd5_z.jpg" alt="DSC00893" /></a></p>

<p>I would, of course, go insane if I had to live there for much more than a week, but there is no better retreat to unwind and enjoy the tranquility of The Quiet Life.</p>

<p><a href="http://www.flickr.com/photos/barryprice/4927848936/"><img src="http://farm5.static.flickr.com/4141/4927848936_05d7749ae5_z.jpg" alt="DSC00904" /></a></p>

<p>Over the next few days, we went to the beach, had Real Guinness at a Proper Irish Pub (hint: shamrock/leprechaun count: 0), and went to the mussel grounds to pick fresh mussels (and a few oysters) for a really fresh lunch.</p>

<p><a href="http://www.flickr.com/photos/barryprice/4927852752/"><img src="http://farm5.static.flickr.com/4073/4927852752_ed68c92d37_z.jpg" alt="Mussel grounds" /></a></p>

<p>And then of course, it was over almost as soon as it had begun.  Flight seven was from Derry back to Liverpool, where I was heading back a day or two earlier than the rest of the family, as I&#8217;d only a little over a week left, and still so much to do.</p>

<p><strong>England Again</strong></p>

<p>After returning to England, within a couple of days it was as if I&#8217;d never left.  I&#8217;ve lived in Thailand for more than four years, but I guess I haven&#8217;t quite gone native yet - I was surprised how easily I could readjust to the UK lifestyle, although a couple of weeks on holiday in August is a lot more pleasant than a couple of weeks working in January!</p>

<p><a href="http://www.flickr.com/photos/barryprice/4928389597/"><img src="http://farm5.static.flickr.com/4119/4928389597_e06c886965_z.jpg" alt="The Promenade" /></a></p>

<p>I was delighted to learn that a friend has graduated from spending money in pubs to making money running a pub, and what&#8217;s more, had a spare room in the flat above the pub.  I spent far too much of the next week either above the pub, or in it.</p>

<p>Still, there is nothing like returning to the town of your youth, and nothing like revisiting the old haunts with old friends.  There was an awful lot of this, alongside perhaps slightly too much Proper English Beer.  But then I was on vacation, after all.</p>

<p><a href="http://www.flickr.com/photos/barryprice/4928390033/"><img src="http://farm5.static.flickr.com/4093/4928390033_aa9786c7f5_z.jpg" alt="The Marine Lake" /></a></p>

<p>My August trips to England will continue - there is no better time to be there.  But I don&#8217;t think I&#8217;ll spend 35 days on the road again anytime soon.  There&#8217;s nothing quite like coming home to one&#8217;s own bed and bathroom.</p>

<p>After spending five weeks on two of the continents that I don&#8217;t live on, I hopped onto flight eight - a momentary layover in Copenhagen - and flight nine - to the continent on which I do.  Asia is, and will remain a world away from the West. It still seems like another planet to me, and whilst I always enjoy travel, I&#8217;ll always enjoy coming home to Thailand.</p>
]]></content>
  </entry>
  
</feed>

