<?xml version='1.0' encoding='UTF-8'?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><feed xmlns='http://www.w3.org/2005/Atom' xmlns:openSearch='http://a9.com/-/spec/opensearchrss/1.0/' xmlns:georss='http://www.georss.org/georss' xmlns:gd='http://schemas.google.com/g/2005' xmlns:thr='http://purl.org/syndication/thread/1.0'><id>tag:blogger.com,1999:blog-5705714</id><updated>2011-09-09T16:38:58.543+01:00</updated><category term='holiday'/><category term='france'/><category term='barcelona'/><category term='cycling'/><category term='camel'/><category term='bordeaux'/><category term='photos'/><category term='alpaca'/><category term='glynde'/><category term='farm'/><category term='llama'/><title type='text'>Alex's blog</title><subtitle type='html'>Rigidly defined areas of doubt and uncertainty.</subtitle><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/posts/default'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default?max-results=100'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>49</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>100</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-5705714.post-2339644545363858003</id><published>2009-01-22T23:33:00.005Z</published><updated>2009-01-23T10:18:58.196Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='barcelona'/><category scheme='http://www.blogger.com/atom/ns#' term='bordeaux'/><category scheme='http://www.blogger.com/atom/ns#' term='photos'/><category scheme='http://www.blogger.com/atom/ns#' term='cycling'/><category scheme='http://www.blogger.com/atom/ns#' term='holiday'/><category scheme='http://www.blogger.com/atom/ns#' term='france'/><title type='text'>More old holiday snaps</title><content type='html'>The last of my old photos scanned into flickr.  These are from my cycling trip from Bordeaux to Barcelona in 2001. Possibly the best time I've ever had.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/alexfarran/sets/72157612790210149/"&gt;&lt;img src="http://farm4.static.flickr.com/3323/3215597409_07916d5ef5.jpg" alt="bordeaux_to_barcelona_0001" width="500" height="331" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;And this is a little video I made with animoto.&lt;br /&gt;&lt;br /&gt;&lt;script type="text/javascript" src="http://widgets.clearspring.com/o/46928cc51133af17/497902c2d4a1de49/46928cc555223312/1041767c/-cpid/ce3a1ff2b6160b7b/autostart/false/widget.js"&gt;&lt;/script&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-2339644545363858003?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/2339644545363858003/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=2339644545363858003' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/2339644545363858003'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/2339644545363858003'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2009/01/more-old-holiday-snaps.html' title='More old holiday snaps'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3323/3215597409_07916d5ef5_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-8239869734663929880</id><published>2008-11-30T17:06:00.007Z</published><updated>2008-11-30T18:47:27.158Z</updated><category scheme='http://www.blogger.com/atom/ns#' term='farm'/><category scheme='http://www.blogger.com/atom/ns#' term='camel'/><category scheme='http://www.blogger.com/atom/ns#' term='glynde'/><category scheme='http://www.blogger.com/atom/ns#' term='cycling'/><category scheme='http://www.blogger.com/atom/ns#' term='alpaca'/><category scheme='http://www.blogger.com/atom/ns#' term='llama'/><title type='text'>Camel spotting</title><content type='html'>On one of my shorter, hillier cycle routes I pass by Glyndebourne Farm, home to some of the more exotic animals in the Sussex Downs.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/alexfarran/3071459142/" title="Camel by Alex Farran, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3217/3071459142_d059077d12.jpg" alt="Camel" height="375" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;That's Mo, according wikipedia he's a &lt;a style="font-weight: bold;" href="http://en.wikipedia.org/wiki/Bactrian_camel"&gt;Bactrian Camel&lt;/a&gt; (&lt;i&gt;Camelus bactrianus&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;Other members of the genus &lt;a href="http://en.wikipedia.org/wiki/Camel"&gt;&lt;span style="font-weight: bold;"&gt;Camelus&lt;/span&gt;&lt;/a&gt; to be found roaming across the downs are at least one &lt;a href="http://en.wikipedia.org/wiki/Llama"&gt;&lt;span style="font-weight: bold;"&gt;Llama&lt;/span&gt;&lt;/a&gt; (&lt;i&gt;Lama glama&lt;/i&gt;) and a herd of &lt;span style="font-weight: bold;"&gt;&lt;a href="http://en.wikipedia.org/wiki/Alpaca"&gt;Alpaca&lt;/a&gt; &lt;/span&gt;(&lt;i&gt;Vicugna pacos&lt;/i&gt;).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.flickr.com/photos/alexfarran/3070628263/" title="Alpacas by Alex Farran, on Flickr"&gt;&lt;img src="http://farm4.static.flickr.com/3046/3070628263_4df8071b50.jpg" alt="Alpacas" height="375" width="500" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;The farm is run by &lt;a href="http://www.atlanticalpacas.co.uk/aboutus.html"&gt;EP Cambridge UK&lt;/a&gt; (Formerly Atlantic Alpacas).  According to their website they have open days.  Might be a fun day out.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-8239869734663929880?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/8239869734663929880/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=8239869734663929880' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/8239869734663929880'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/8239869734663929880'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2008/11/camel-spotting.html' title='Camel spotting'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm4.static.flickr.com/3217/3071459142_d059077d12_t.jpg' height='72' width='72'/><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-4786954856597496169</id><published>2008-10-23T19:42:00.001+01:00</published><updated>2008-10-23T21:42:58.097+01:00</updated><title type='text'>Virtual Iraq</title><content type='html'>I crossed the river and made my way past the offices, warehouses and light industrial units to Unit 9, Phoenix.  Security was light - a smile was all I needed to get in.  The battered doorway opened just wide enough to let one person through at a time - Low light levels are an essential part of this operation.  Inside the dusty concrete warehouse an empty grease stained plastic chair faced me across a table covered in glossy leaflets and magazines.  I flicked through them before turning round to take in the scene.&lt;br /&gt;&lt;br /&gt;Two Virtual Humans introduced themselves as Sergeant Star and Ra'id.  Star was relaxed and jokey, he tried to persuade me to sign up, but I declined.  Ra'id was not at all happy to be there and became agitated if I asked too many questions.&lt;br /&gt;&lt;br /&gt;I moved on to the training area.  Here 'Warriors' are immersed in the sights, sounds and smells of the front line to prepare them for their assignments.   Sights like a severed foot, smells like burning rubber and sounds like screaming.  All painstakingly reproduced from real life samples.&lt;br /&gt;&lt;br /&gt;The line between training and rehabilitation is a blurred one.  The same technologies are employed for both.  It's all part of the same game.  The head of the project, Skip Rizzo, explained to me that returning Warriors often had a hard time adapting to civilian life. A pothole in the road is the IED that killed their friends, crowds are dangerous so they stay at home, commercial Hummers are a cruel joke.  To put these men back together Skip's lab has developed a high tech version of Prolonged Exposure Therapy.  They found that their patients were better able to deal with their traumas in the familiar environment of a video game.&lt;br /&gt;&lt;br /&gt;Projected onto the back wall of the warehouse a version of the game ran in a loop.   A small boy stood in front of it, entranced.   He waved back at the virtual Iraqi boy in the market.&lt;br /&gt;&lt;br /&gt;I made my way round once more to try and assimilate everything I'd seen.  Then out into the sunlight, said thanks and goodbye and returned to the world I live in every day.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;That, more or less, was my experience of the Virtual Iraq exhibition by &lt;a href="http://www.lisabarnard.co.uk/"&gt;Lisa Barnard&lt;/a&gt;.  It really is a bit of trip down the rabbit hole.  It's on every saturday and sunday until November 15th at Unit 9 Phoenix Place, Lewes.&lt;br /&gt;&lt;br /&gt;&lt;iframe marginheight="0" marginwidth="0" src="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=phoenix+place&amp;amp;sll=50.875629,0.017858&amp;amp;sspn=0.078856,0.221443&amp;amp;g=phoenix+place&amp;amp;ie=UTF8&amp;amp;s=AARTsJphKSEdKWFZWL-1h3TyN8YwVddjeQ&amp;amp;ll=50.87986,0.014076&amp;amp;spn=0.009477,0.018239&amp;amp;z=15&amp;amp;iwloc=addr&amp;amp;output=embed" frameborder="0" height="350" scrolling="no" width="425"&gt;&lt;/iframe&gt;&lt;br /&gt;&lt;small&gt;&lt;a href="http://maps.google.com/maps?f=q&amp;amp;hl=en&amp;amp;geocode=&amp;amp;q=phoenix+place&amp;amp;sll=50.875629,0.017858&amp;amp;sspn=0.078856,0.221443&amp;amp;g=phoenix+place&amp;amp;ie=UTF8&amp;amp;ll=50.87986,0.014076&amp;amp;spn=0.009477,0.018239&amp;amp;z=15&amp;amp;iwloc=addr&amp;amp;source=embed" style="color: rgb(0, 0, 255); text-align: left;"&gt;View Larger Map&lt;/a&gt;&lt;/small&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-4786954856597496169?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/4786954856597496169/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=4786954856597496169' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/4786954856597496169'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/4786954856597496169'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2008/10/virtual-iraq.html' title='Virtual Iraq'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-3185557387467627921</id><published>2008-10-14T14:36:00.005+01:00</published><updated>2008-10-14T19:11:21.290+01:00</updated><title type='text'>Bonfire night is coming</title><content type='html'>&lt;a href="http://www.flickr.com/photos/alexfarran/60498673/" title="An effigy of Pope Paul V by Alex Farran, on Flickr" style="margin: 0pt 10px 5px 0pt; float: left;"&gt;&lt;img src="http://farm1.static.flickr.com/24/60498673_cd42af0322_m.jpg" alt="An effigy of Pope Paul V" height="180" width="240" /&gt;&lt;/a&gt; It's getting close to my favourite time of year in Lewes.  The signs are already there - smugglers on every corner selling programmes for their bonfire society, strange goings on  behind the pubs they use as their bases, and &lt;a href="http://www.rocketfm.org.uk/"&gt;Rocket FM&lt;/a&gt; has started up again.&lt;br /&gt;&lt;br /&gt;This Friday (17th Oct)  I'm going to the &lt;a href="http://www.vivalewes.com/home/"&gt;costume competition&lt;/a&gt; to get a better look at the characters that will be parading up and down the streets on the 5th.&lt;br /&gt;&lt;br /&gt;Here's something I wrote about my experience of the 5th back in 2001, when it was still all new to me:&lt;br /&gt;&lt;br /&gt;I got to the high street at around 7:00, just before the parade started.  A very excitable Asian student was next to me in the crowd, sat on his friends shoulders filming everything with his camcorder.  An old hippy with a guitar approached him and sang a short song about him and his camera.  A little further up the road someone gave the international distress signal by releasing a rocket into the air, and was duly visited by one of the many policeman in the area.&lt;br /&gt;&lt;br /&gt;After a couple of exchanges on mobile phones and some hand waving I met my friend Paul and soon the parade was underway.  Flaming torches, beer, fancy dress, marching bands, crowds shifting like the tide as the parade came and went, while the tannoy shouted out instructions to move back. I didn't see many tableaux this year, just one of what looked like a cows head.  The parade seemed to end rather suddenly just as it had got going.  Apparently Cliffe burnt a giant effigy of Osama Bin Laden, but I didn't find out about that until I saw the review of tomorrow's papers on Newsnight.&lt;br /&gt;&lt;br /&gt;On to the bonfire and the fireworks.  The Waterloo society's site is close to my house and is free.  One day I'll get tickets to see Cliffe's, but not this year.  The parade must have finished early because they hadn't even set light to the bonfire yet.  Paul was pleased to note that there was a big sign halfway up it saying "Hello Paul".  How nice of them to wait for him to arrive before starting!  We got a burger, hot dog and some chips from one of the vans - served by the most humungously fat red-faced man I've ever seen - and watched as the bonfire boys threw burning torches at the bonfire.  The fireworks hadn't started yet, but plenty of people had brought their own.  Eventually the Waterloo society procession marched in, led by a Bishop and three priests (wearing safety goggles) who started the fireworks display by standing on a scaffold pulpit flanked by two burning crosses.  They set off bangers right where they were standing and to shouts of "Burn the Pope!" dodged rockets and bangers being hurled at them.  Rather them than me!  But I assume they knew what they were doing as it happens every year, and just couldn't help myself laughing.&lt;br /&gt;&lt;br /&gt;The fireworks began with some of those floaty ones that drift down on parachutes.   As the spent fireworks drifted into the crowd, eager hands reached up to grab them - and then pulled back suddenly when they touched the still hot firework.   The smart people reached for the strings of the parachute.   That's how Paul caught one.   And so it continued into the night, with two other firework displays clearly visible through the one we were watching.&lt;br /&gt;&lt;br /&gt;This morning as I cycled to the bus stop the fire was still burning, but by this evening the only reminders of what had happened were a pile of ashes and a few empty beer cans outside Tesco that the clean-up teams had missed.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-3185557387467627921?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/3185557387467627921/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=3185557387467627921' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/3185557387467627921'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/3185557387467627921'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2008/10/bonfire-night-is-coming.html' title='Bonfire night is coming'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><media:thumbnail xmlns:media='http://search.yahoo.com/mrss/' url='http://farm1.static.flickr.com/24/60498673_cd42af0322_t.jpg' height='72' width='72'/><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-7388046127642391018</id><published>2008-10-06T10:50:00.002+01:00</published><updated>2008-10-06T11:08:25.501+01:00</updated><title type='text'>Holiday snaps</title><content type='html'>Inspired by (and slightly jealous of) Lucy's &lt;a href="http://triffid.org/photos/"&gt;photos&lt;/a&gt; of her extensive travels around the world  I picked out some of my favourite photos from back when I still went on holiday, scanned them in and posted them to &lt;a href="http://www.flickr.com/photos/alexfarran/collections/72157607765452799/"&gt;flickr&lt;/a&gt;.  More to come soon, I've started with the earliest.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-7388046127642391018?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/7388046127642391018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=7388046127642391018' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/7388046127642391018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/7388046127642391018'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2008/10/holiday-snaps.html' title='Holiday snaps'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-2542535886661112364</id><published>2008-06-27T09:55:00.003+01:00</published><updated>2008-06-27T10:40:00.292+01:00</updated><title type='text'>Great support from unfuddle</title><content type='html'>I've recently started using &lt;a href="http://unfuddle.com/"&gt;unfuddle&lt;/a&gt; to manage my projects.  It's very good, but nothing's perfect so I clicked their handy feedback button and sent this little message&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;When I have a lot of windows open in tabs it's hard to tell which is which because they all start with 'Unfuddling...'.  It would be better for me if the more specific page name came first.&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The next morning I got a reply:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;Alex,&lt;br /&gt;&lt;br /&gt;Thanks for your feedback.&lt;br /&gt;&lt;br /&gt;I can understand how this could be annoying. As such, we have moved the "Unfuddling" portion to the end of the title so that browser tabs can be more easily distinguished from each other.&lt;br /&gt;&lt;br /&gt;If you have any other comments or questions, please do not hesitate to let us know.&lt;br /&gt;&lt;br /&gt;Best Regards,&lt;br /&gt;&lt;br /&gt;David&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;This brought to mind something that &lt;a href="http://twitter.com/madmotive"&gt;Jon&lt;/a&gt; said at &lt;a href="http://thewerks.org.uk/"&gt;the werks&lt;/a&gt; last week.  He had a similar experience with &lt;a href="http://www.freeagentcentral.com/"&gt;FreeAgent&lt;/a&gt;.  Without him even contacting them, they sent an email saying something like this 'We see that you've had a problem with our service.  Could you let us know what you were doing at the time so we can fix it.'&lt;br /&gt;&lt;br /&gt;This is the kind of service that the internet makes possible.  Something that Paul Graham noted in &lt;a href="http://paulgraham.com/road.html"&gt;The Other Road Ahead&lt;/a&gt; (scroll down to Support).  Good to see that the idea is catching on.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-2542535886661112364?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/2542535886661112364/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=2542535886661112364' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/2542535886661112364'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/2542535886661112364'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2008/06/great-support-from-unfuddle.html' title='Great support from unfuddle'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-9080030252879473710</id><published>2007-12-09T11:42:00.000Z</published><updated>2007-12-09T12:22:31.157Z</updated><title type='text'>The simplest template engine that could possibly work</title><content type='html'>In &lt;a href="http://blog.teamschnitzel.com/2007/04/07/templates-are-code-too/"&gt;Templates Are Code, Too&lt;/a&gt; Hendrik explains in detail why the last thing the world needs is another template engine.  So here's mine.&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;function template($template, $data) {&lt;br /&gt;  extract($data);&lt;br /&gt;  ob_start();&lt;br /&gt;  include $template;&lt;br /&gt;  return ob_get_clean();&lt;br /&gt;}&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;That's all you need to write a template engine in PHP, because PHP is a template engine.  You write your templates like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&lt;br /&gt;&amp;lt;html&amp;gt;&lt;br /&gt;  &amp;lt;head&amp;gt;&lt;br /&gt;    &amp;lt;title&amp;gt;&amp;lt;?=$title?&amp;gt;&amp;lt;/title&amp;gt;&lt;br /&gt;  &amp;lt;/head&amp;gt;&lt;br /&gt;  &amp;lt;body&amp;gt;&lt;br /&gt;    &amp;lt;h1&amp;gt;&amp;lt;?=$title?&amp;gt;&amp;lt;/h1&amp;gt;&lt;br /&gt;  &amp;lt;/body&amp;gt;&lt;br /&gt;&amp;lt;/html&amp;gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;And call them like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;echo template("template.tpl", array("title" =&gt; "Hello, world!"));&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;br /&gt;&lt;br /&gt;And you can combine them like this:&lt;br /&gt;&lt;pre&gt;&lt;br /&gt;&amp;lt;?php&lt;br /&gt;$content = template("content.tpl", &lt;br /&gt;                     array("heading" =&gt; "Content heading", &lt;br /&gt;                           "body" =&gt; "content body"));&lt;br /&gt;echo template("container.tpl",&lt;br /&gt;               array("title" =&gt; "Hello, world!",&lt;br /&gt;                     "content" =&gt; $content));&lt;br /&gt;?&amp;gt;&lt;br /&gt;&lt;/pre&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-9080030252879473710?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/9080030252879473710/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=9080030252879473710' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/9080030252879473710'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/9080030252879473710'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/12/simplest-template-engine-that-could.html' title='The simplest template engine that could possibly work'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-491751498089886357</id><published>2007-08-05T21:17:00.000+01:00</published><updated>2007-08-05T21:36:52.966+01:00</updated><title type='text'>Personality test</title><content type='html'>Personality tests, such as Myers Briggs, are a popular tool in the workplace.  They replace vague subjective feelings with scientific measurements.    But how far should we trust them?  I recommend you try the &lt;a href="http://forer.netopti.net/"&gt;Forer Personality Test.&lt;/a&gt;  You'll probably learn something important.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-491751498089886357?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/491751498089886357/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=491751498089886357' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/491751498089886357'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/491751498089886357'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/08/personality-test.html' title='Personality test'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-6686797769230719494</id><published>2007-07-24T12:16:00.000+01:00</published><updated>2007-07-24T12:57:46.002+01:00</updated><title type='text'>If you're not using a framework, you're doing it wrong</title><content type='html'>I'm really enjoying learning Rails at the moment.  One of the things that strikes me about it is how easily it meshes with my own ideas.  This is what I would have written if I had the skill and the time.  Suddenly a huge chunk of infrastructure code doesn't have to be written.&lt;br /&gt;&lt;br /&gt;What Rails gives you is flexibility.  Many people write their own libraries of code, or CMS systems from scratch, or use one of the major open source projects as a basis for their applications.  Within the limited domain of these programs you can have pretty good productivity, but it's hard to adapt them to changing requirements without major rewrites or hacks.  In Rails on the other hand, the infrastructure is cleanly separated from the application code.  There is a lot less to change so refactoring is far cheaper.&lt;br /&gt;&lt;br /&gt;For all but the simplest "Hello world" application I'd recommend using a good framework.  It will have already solved your problems before you even knew they existed.  Rails is my choice, but there are others.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-6686797769230719494?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/6686797769230719494/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=6686797769230719494' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/6686797769230719494'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/6686797769230719494'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/07/if-youre-not-using-framework-youre.html' title='If you&apos;re not using a framework, you&apos;re doing it wrong'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-8943256928601850135</id><published>2007-07-16T19:54:00.000+01:00</published><updated>2007-07-16T20:22:51.942+01:00</updated><title type='text'>I've joined a gym</title><content type='html'>Five weeks ago I decided to visit a gym for the first time.  My local leisure centre has a 'kickstart' programme of five weekly appointments with an instructor to get you started.  For someone like me who's never used a gym before it's a real help to have someone to guide you.&lt;br /&gt;&lt;br /&gt;The idea of going to a gym never appealed to me before, but I'm actually rather enjoying it.  The great thing that a gym has to offer is variety.  Everything you need is all in one place.  That helps to keep it from getting boring too.  I don't do more than ten minutes or two sets on any one exercise.&lt;br /&gt;&lt;br /&gt;No measureable results yet, but I definitely feel fitter, and I'm able to exercise harder now than I could when I started, and that's the measurement that counts.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-8943256928601850135?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/8943256928601850135/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=8943256928601850135' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/8943256928601850135'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/8943256928601850135'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/07/ive-joined-gym.html' title='I&apos;ve joined a gym'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-141846180854893819</id><published>2007-03-23T08:29:00.000Z</published><updated>2007-03-23T09:06:52.591Z</updated><title type='text'>How to herd cats</title><content type='html'>&lt;a href="http://www.tuxdeluxe.org/node/91"&gt;The Good Soldier Skat&lt;/a&gt; is a great essay in which I found much to sympathise with.  In it &lt;a href="http://tuxdeluxe.org/taxonomy/term/22"&gt;Richard Hillesley&lt;/a&gt; contrasts a traditional regulated bureaucratic business with the freedom of open source projects.  It's not so much a case for open source software as the idea of trusting and freeing your workers. Companies really should look to successful open source projects to see how to organise and motivate their own teams. It means letting go of some control, which is a risk, but the benefits could be much greater.&lt;br /&gt;&lt;br /&gt;Via &lt;a href="http://programming.reddit.com/"&gt;programming.reddit&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;See also &lt;a href="http://www.hup.harvard.edu/catalog/WEBSUC.html"&gt;The Success of Open Source&lt;/a&gt; and &lt;a href="http://dreamsongs.com/IHE/"&gt;Innovation Happens Elsewhere&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-141846180854893819?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/141846180854893819/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=141846180854893819' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/141846180854893819'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/141846180854893819'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/03/how-to-herd-cats.html' title='How to herd cats'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-3643991336400641285</id><published>2007-03-19T09:45:00.000Z</published><updated>2007-03-19T10:51:03.420Z</updated><title type='text'>The Pyramids are crap</title><content type='html'>The Pyramids are crap.  Egyptians should be embarrassed by these massive monuments to stupidity.  They're a constant reminder of how utterly useless the ancient Egyptians were at architecture.  What's the very simplest way to build a tall structure that won't fall over?  Pile the bricks on top of each other.  And that's essentially what the pyramids are.  Big piles of bricks.&lt;br /&gt;&lt;br /&gt;The only thing you should be impressed by is the fact that the Pharaohs had such resources and power at their command that they could be so wasteful with them.  I'm sure the slaves worked as hard as any man can, and the pyramid building operation was run as fast as it possibly could be.  All that hard work.  What a waste.  It only goes to show that hard work doesn't pay off.&lt;br /&gt;&lt;br /&gt;I'm not going to build any pyramids.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-3643991336400641285?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/3643991336400641285/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=3643991336400641285' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/3643991336400641285'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/3643991336400641285'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/03/pyramids-are-crap.html' title='The Pyramids are crap'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-117273691393405506</id><published>2007-03-01T08:00:00.000Z</published><updated>2007-03-01T08:16:18.913Z</updated><title type='text'>Movie title fun</title><content type='html'>[From &lt;a href="http://www.thejay.com/"&gt;The Jay&lt;/a&gt;]&lt;br /&gt;&lt;br /&gt;Looks like the Web 2.0 meme has drifted into the movie business.  Surely this is the first movie with a minor version number?  A good move in my view, much easier to keep track of than all re-remasterings and directors cuts of directors cuts.&lt;br /&gt;&lt;br /&gt;&lt;a onblur="try {parent.deselectBloggerImageGracefully();} catch(e) {}" href="http://www.thejay.com/wp-content/diehard4posterbig.jpg"&gt;&lt;img style="margin: 0pt 10px 10px 0pt; float: left; cursor: pointer; width: 320px;" src="http://www.thejay.com/wp-content/diehard4posterbig.jpg" alt="" border="0" /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-117273691393405506?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/117273691393405506/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=117273691393405506' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/117273691393405506'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/117273691393405506'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/03/movie-title-fun.html' title='Movie title fun'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-117243075346371985</id><published>2007-02-25T17:17:00.000Z</published><updated>2007-02-25T19:30:11.516Z</updated><title type='text'>Ubiquitous version control</title><content type='html'>The more I use it the more applications I find for version control, and each time I find a new application it alters the way I work.&lt;br /&gt;&lt;br /&gt;In the first instance, version control is just a safe place to store your code and keep track of changes between revisions.&lt;br /&gt;&lt;br /&gt;If you use a concurrent versioning system such as &lt;a href="http://svnbook.red-bean.com/en/1.2/svn.basic.vsn-models.html#svn.basic.vsn-models.copy-merge"&gt;svn&lt;/a&gt; then it also becomes a tool for collaborative working.  Two people can work on the same file and each time one of them commits their work to the repository the other can automatically incorporate the changes in their copy of the file.&lt;br /&gt;&lt;br /&gt;I've started using the same functionality to manage staging and live versions of websites.  The web server connects to svn just like any other user and can update its copy of the site to the latest version with a single update command.  Bye bye ftp.&lt;br /&gt;&lt;br /&gt;I sometimes work from home and it's very useful to be able to pick up the exact code that I've been working on at the office. Martin Fowler takes this even further in &lt;a href="http://martinfowler.com/bliki/MultipleDesktops.html"&gt;MultipleDesktops&lt;/a&gt;.  In my latest project I've set up the repository with not just the code, but also the specification documents, the HTML pages I need to get started and my own notes and documentation.&lt;br /&gt;&lt;br /&gt;One problem I have with using version control for remote working is that I don't want to commit broken code.  Then I watched this screencast on &lt;a href="http://bitscribe.net/screencast.php?cast=atomic"&gt;Atomic Coding&lt;/a&gt; (BTW aren't screencasts great).  It's very much in the spirit of agile and test driven development, and is made easier by using dynamic languages without a compilation cycle.  The trick is to make small steps, where each step produces working code of some description.  When the time between commits is no more than a couple of hours there's not much opportunity to leave code where I can't get at it remotely.  Another benefit of atomic coding is that commits act as a kind of bookmark so I can keep track of where I am when I'm switching between several projects, which is often the case when your working on web site timescales. &lt;br /&gt;&lt;br /&gt;I don't think I'll have hard time adapting to the atomic approach.  The biggest change will be at the start of a project where I usually write a lot of code before running anything.  To code atomically I'll have to make sure each class runs before I move on to the next one.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-117243075346371985?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/117243075346371985/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=117243075346371985' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/117243075346371985'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/117243075346371985'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/02/ubiquitous-version-control.html' title='Ubiquitous version control'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-116881924067320526</id><published>2007-01-14T23:36:00.000Z</published><updated>2007-01-15T00:02:45.386Z</updated><title type='text'>How not to advertise software</title><content type='html'>"If programmers built planes" shows a team of engineers working to finish a plane in mid flight.  A rather unfortunate metaphor.  I thought it was a parody, but apparently EDS paid for this.&lt;br /&gt;&lt;br /&gt;&lt;object height="350" width="425"&gt;&lt;param name="movie" value="http://www.youtube.com/v/Nq55R7R-qfw"&gt;&lt;param name="wmode" value="transparent"&gt;&lt;br /&gt;&lt;embed src="http://www.youtube.com/v/Nq55R7R-qfw" type="application/x-shockwave-flash" wmode="transparent" height="350" width="425"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br /&gt;&lt;br /&gt;It's true that requirements change and software grows and evolves with business, but good programmers make sure it never has to fly with gaping holes in it's hull, or an untested undercarriage.  The plane metaphor states the problem very well, but doesn't show how EDS think they can solve it.  How do you write an exciting advert around ideas like test driven design, encapsulation and refactoring?  Something I should think about, because they're ideas I need clients and my non-technical colleagues to understand and appreciate.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-116881924067320526?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/116881924067320526/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=116881924067320526' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/116881924067320526'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/116881924067320526'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2007/01/how-not-to-advertise-software.html' title='How not to advertise software'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-115468599238202795</id><published>2006-08-04T10:34:00.000+01:00</published><updated>2006-08-04T11:10:49.443+01:00</updated><title type='text'>It's just a ride</title><content type='html'>Today's &lt;a href="http://xkcd.com/c137.html"&gt;XKCD&lt;/a&gt; comic is inspirational:&lt;br /&gt;&lt;a href="http://xkcd.com/comics/dreams.png" title="Click to enlarge."&gt;&lt;img img width="400px" src="http://xkcd.com/comics/dreams.png" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;As I mentioned in &lt;a href="http://blog.willmcinnes.co.uk/blog/2006/07/your_web_presen_1.html#comment-20372101"&gt;my comment&lt;/a&gt; on Will's blog, the fact that anything I say or do on the internet can potentially come back to me is always at the back of my mind.  I should probably not let that worry me so much and get on with enjoying this moment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-115468599238202795?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/115468599238202795/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=115468599238202795' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115468599238202795'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115468599238202795'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/08/its-just-ride.html' title='It&apos;s just a ride'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-115444594884080069</id><published>2006-08-01T16:13:00.000+01:00</published><updated>2006-08-01T16:57:55.563+01:00</updated><title type='text'>Fixing the back button in ajax</title><content type='html'>I didn't think this was possible, but thanks to &lt;a href="http://www.contentwithstyle.co.uk/Articles/38/fixing-the-back-button-and-enabling-bookmarking-for-ajax-apps"&gt;Mike Stenhouse's article&lt;/a&gt; in the &lt;a href="http://www.contentwithstyle.co.uk/"&gt;Content With Style&lt;/a&gt; blog and the accompanying &lt;a href="http://www.donotremove.co.uk/extra/ajax-nav/index.html"&gt;demo&lt;/a&gt; I can now see how to overcome my biggest objection to ajax.  The problem, as I mentioned in my &lt;a href="http://alexfarran.blogspot.com/2006/07/when-ajax-attacks.html#links"&gt;last post&lt;/a&gt;, is that most ajax sites break the normal user interface conventions of the web by effectively disabling the back button.  If you press it on an ajax page such as Google maps you don't undo the last step you made, you exit the application entirely and lose the history of all the clicks since you entered it.  I thought this was impossible to fix because to make a new entry in the browser history you need to change the URL  of the page, which loads a whole new page for the new URL.&lt;br /&gt;&lt;br /&gt;The key insight of Mike's article is that it's possible to change the URL without reloading the page.  How?  With a page anchor: a link to a particular point in the same page.  Changing the URL to point to a different part of the same page doesn't force a page reload, but it does add an entry to the history buffer.  By adding '#1', '#2', '#3' etc to the end of the URL you can track every click in an ajax application.&lt;br /&gt;&lt;br /&gt;Now, I'm very interested in continuation based web frameworks.  The idea was pioneered by Paul Graham, and more recently implemented in Avi Bryant's Seaside framework.  Continuation frameworks allow the creation of stateful web applications without using ajax.  A continuation is a representation of the state of the whole application at a point in time.  When you call a continuation it's like returning to that state.  By encoding a reference to a continuation in a URL you can return your application to the state it was in at the time the page was generated.  Pressing the back button becomes the equivalent of an undo operation.&lt;br /&gt;&lt;br /&gt;My visualisation of a continuation based framework is one where a second dimension of time is added to the URL's first dimension of space.  eg http://www.alexfarran.com/#2006-08-01-16:41:53.  With ajax now able to track each click I could couple each ajax state to a continuation, and recreate it at any time on any machine.  I think that would be cool.&lt;span style="font-style: italic;"&gt;&lt;/span&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-115444594884080069?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/115444594884080069/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=115444594884080069' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115444594884080069'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115444594884080069'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/08/fixing-back-button-in-ajax.html' title='Fixing the back button in ajax'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-115341189487450165</id><published>2006-07-20T16:34:00.000+01:00</published><updated>2006-08-01T16:57:37.593+01:00</updated><title type='text'>When ajax attacks</title><content type='html'>O'Reilly have done something stupid.  They've rewritten their &lt;a href="http://safari.oreilly.com/"&gt;Safari&lt;/a&gt; online books site as an ajax application, now my back button works only intermittently and the forward button not at all.  Plain old HTML is perfect for reading documents online - that's what it's for!  Their new ajax based system is harder to use.  To regain the usability of the old site they'll have to re-implement the browser history in javascript.  And for what benefit?  Faster page loads, apparently.  Hardly a priority unless you're some kind of demon speed reader.&lt;br /&gt;&lt;br /&gt;Really, there are one or two applications where ajax is very useful, but that doesn't mean you have to use it everywhere.&lt;br /&gt;&lt;br /&gt;&lt;span style="font-weight: bold;"&gt;Update:&lt;/span&gt; It looks like they've de-ajaxed the chapter select navigation.  It doesn't work without javascript turned on, so I think they must be encoding data in the URL that the page then uses to dynamically request it's content from the server.&lt;br /&gt;&lt;br /&gt;I mailed O'Reilly support and they told me you can still access the original non-ajax site at &lt;a href="http://access.safari.oreilly.com"&gt;http://access.safari.oreilly.com&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-115341189487450165?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/115341189487450165/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=115341189487450165' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115341189487450165'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115341189487450165'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/07/when-ajax-attacks.html' title='When ajax attacks'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-115131346729284899</id><published>2006-06-26T09:19:00.000+01:00</published><updated>2006-06-26T10:17:48.233+01:00</updated><title type='text'>My wheel</title><content type='html'>After riding the London to Brighton ride last week my already slightly wobbly rear wheel was looking decidedly out of true.  Truing a wheel is in my opinion the trickiest maintenance task you can do with a bike.  Every one of the 36 spokes needs it tension minutely adjusted until the wheel is straight and round to millimetre accuracy.  It took me a while.  I don't have a truing stand, so I used the brakes and a piece of card taped to the frame to as a guide.  The procedure is pretty simple:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Rotate the wheel to a point where it's to far to the left or right, or a too far in or out.&lt;/li&gt;&lt;li&gt;Find the mid point of the imperfection and mark it with a small piece of electrical tape attached to the nearest spoke.&lt;/li&gt;&lt;li&gt;Adjust the tension of the surrounding spokes on either or both sides of the wheel.&lt;/li&gt;&lt;li&gt;Repeat....&lt;/li&gt;&lt;/ul&gt;So that's what I did for most of sunday morning Rotate, Mark, Adjust, Rotate, Mark, Adjust.  It could have been a frustrating tedious task, but it turned out to be surprisingly rewarding.  The simple repetition, the intense focus on tiny adjustments, the slowly improving shape of my rear wheel, and little background music on the CD player just absorbed me.  It would be nice if I could make every job feel like that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-115131346729284899?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/115131346729284899/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=115131346729284899' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115131346729284899'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115131346729284899'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/06/my-wheel.html' title='My wheel'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-115048097469585235</id><published>2006-06-16T18:03:00.000+01:00</published><updated>2006-06-19T11:35:29.536+01:00</updated><title type='text'>HOWTO:  Add libtidy support to PHP5 in Ubuntu.</title><content type='html'>Oddly, the default PHP5 package on Ubuntu doesn't have support for the HTML tidying library, libtidy (&lt;a href="https://launchpad.net/distros/ubuntu/+source/php5/+bug/41690"&gt;bug #41690&lt;/a&gt;).  I followed the instructions in the &lt;a href="http://www.debian.org/doc/manuals/apt-howto/ch-sourcehandling.en.html"&gt;Debian APT Howto&lt;/a&gt; and the &lt;a href="http://doc.gwos.org/index.php/Recompile_packages"&gt;Ubuntu Document Storage Facility&lt;/a&gt; and replaced the installed package with one I compiled myself from the source.  On the off chance someone else finds it useful I've posted the steps I took here:&lt;br /&gt;&lt;br /&gt;Create a directory for compiling the source code in.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ mkdir source&lt;br /&gt;$ mkdir source/php5&lt;br /&gt;$ cd source/php5/&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Get the source code package from the source repository. (Note you don't need root privileges for this step as you're not installing anything, just downloading the source to your personal directory).&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ apt-get source php5&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Install the other packages needed by the source code to compile.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ sudo apt-get build-dep php5&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;In the downloaded source code there is a file &lt;code&gt;php5-5.1.2/debian/rules&lt;/code&gt;. Add &lt;code&gt;--with-tidy&lt;/code&gt; to the end of the list of options in &lt;code&gt;COMMON_CONFIG&lt;/code&gt;.  Now compile the modified source.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd php5-5.1.2&lt;br /&gt;$ dpkg-buildpackage -rfakeroot -uc -b&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;and install the newly created packages.&lt;br /&gt;&lt;code&gt;&lt;br /&gt;$ cd ..&lt;br /&gt;$ sudo dpkg -i *.deb&lt;br /&gt;&lt;/code&gt;&lt;br /&gt;Apache is automatically restarted as part of the build process, and a quick check with &lt;code&gt;phpinfo()&lt;/code&gt; shows the new compile date and lists the tidy module.&lt;br /&gt;&lt;br /&gt;&lt;strong&gt;UPDATE&lt;/strong&gt;&lt;br /&gt;When the package manager next downloads the latest version of php5, your changes will be overwritten.  So be careful what boxes you tick when it asks you what to update.  To get the latest version with your changes added to it repeat the above process.  Easy enough for a simple one line change, but for bigger changes you should create a diff file, or manage your version in &lt;a href="http://svnbook.red-bean.com/nightly/en/svn.advanced.vendorbr.html"&gt;svn.&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-115048097469585235?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/115048097469585235/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=115048097469585235' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115048097469585235'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/115048097469585235'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/06/howto-add-libtidy-support-to-php5-in.html' title='HOWTO:  Add libtidy support to PHP5 in Ubuntu.'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-114768713882187062</id><published>2006-05-15T10:41:00.000+01:00</published><updated>2006-05-15T11:18:46.800+01:00</updated><title type='text'>Google is my spam filter</title><content type='html'>My email and hosting provider's (ukfsn.org) spam filter is not particularly effective any more so I've outsourced the task to Google mail.  I like Google's mail app, but I don't want to be reliant on it. I don't want to have to abandon my email address or stop using my favourite email client.  Fortunately Google have made gmail flexible enough for me to use it completely transparently.  I've configured ukfsn to redirect all my email to my gmail address, and gmail to allow my PC to fetch email over the POP3 protocol.  Another useful feature is the 'Send mail as:' option in gmail settings.   This means I can log on to gmail and still send email from my preferred email address, rather than the gmail address.  Useful when I'm away from my PC.&lt;br /&gt;&lt;br /&gt;The spam filter is working nicely.  No false positives yet.  I just need to import all my filters to gmail to seperate out all the mailing list posts, and at some point I might want to figure out how best to upload my email archive.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-114768713882187062?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/114768713882187062/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=114768713882187062' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114768713882187062'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114768713882187062'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/05/google-is-my-spam-filter.html' title='Google is my spam filter'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-114492153469714477</id><published>2006-04-13T10:33:00.000+01:00</published><updated>2006-04-13T10:45:34.706+01:00</updated><title type='text'>Speed learning tool</title><content type='html'>I've started using &lt;a href="http://www.supermemo.net"&gt;supermemo.net&lt;/a&gt; to help me learn Ruby.  You take notes in a question and answer format, then the software works out how often you should be asked each question based on how well you answer.  I find that taking notes in a Q&amp;A format is a good idea in itself because it exercises active recall rather than passive recognition.  The repeat frequency calculations should take some of the drudgery out of memorisation by making the exercise more efficient.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-114492153469714477?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/114492153469714477/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=114492153469714477' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114492153469714477'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114492153469714477'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/04/speed-learning-tool.html' title='Speed learning tool'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-114311249953181821</id><published>2006-03-23T10:55:00.000Z</published><updated>2006-08-12T21:52:06.426+01:00</updated><title type='text'>I heart Ruby</title><content type='html'>I've been working my way through the &lt;a href="http://www.pragmaticprogrammer.com/titles/ruby/index.html"&gt;Pickaxe book&lt;/a&gt;, mostly over a nice coffee and panini at Caffé Nero, and I'm really enjoying what I'm finding out about Ruby.  It takes the best ideas from more academic languages such as Lisp and Smalltalk and puts them in a practical setting, with a well designed expressive syntax.  It gives me a great feeling of liberation to know I that all these wonderful new toys (full OO, continuations, closures, introspection, metaprogramming) are within easy reach.  I can see myself devoting a lot of time to Ruby.  I'm sure it's a worthwhile investment.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-114311249953181821?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/114311249953181821/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=114311249953181821' title='2 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114311249953181821'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114311249953181821'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/03/i-heart-ruby.html' title='I heart Ruby'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>2</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-114077384254102836</id><published>2006-02-24T09:18:00.000Z</published><updated>2006-02-24T09:39:03.506Z</updated><title type='text'>Analysis Paralysis</title><content type='html'>Yesterday I was thinking myself into a corner about the best way to refactor some code I'd written. The thoughts just went round and round in my head with no hope of conclusion. This can get pretty tiring after a while, so I went for a short walk. While walking, the facts seemed to order themselves and present me with a couple of simple options to choose from. So now I can just get on with implementing them.&lt;br /&gt;&lt;br /&gt;I've just finished reading &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/0713997273/qid=1140773243/sr=8-1/ref=pd_ka_1/202-6017762-5975800"&gt;Blink,&lt;/a&gt; and that surprised me with some interesting stories about the power of the unconscious mind. Sometimes consciously thinking about something doesn't work as well as leaving your unconscious to get on with it. I think I might do well to heed Ap Dijksterhuis's advice in this New Scientist article &lt;a href="http://www.newscientist.com/channel/being-human/dn8732.html"&gt;'Sleeping on it' best for complex decisions&lt;/a&gt;&lt;br /&gt;&lt;blockquote&gt;“At some point in our evolution, we started to make decisions consciously, and we’re not very good at it. We should learn to let our unconscious handle the complicated things,”&lt;/blockquote&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-114077384254102836?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/114077384254102836/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=114077384254102836' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114077384254102836'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/114077384254102836'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2006/02/analysis-paralysis.html' title='Analysis Paralysis'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-112150381181033472</id><published>2005-07-16T09:20:00.000+01:00</published><updated>2005-08-21T14:36:56.660+01:00</updated><title type='text'>Perfection vs performance</title><content type='html'>This essay &lt;a href="http://dept-info.labri.fr/%7Estrandh/Essays/psychology.html"&gt;The psychology of learning&lt;/a&gt; by Robert Strandh is worth reflecting on. He draws attention to people being too 'performance oriented' - sticking to what they know will give them immediate results, at the expense of discovering better ways of working. I'm generally more 'perfection oriented'. I'm interested in learning for its own sake, particularly when it comes to computers. However, I have been guilty of dismissing ideas, tools and languages I haven't spent enough time to understand. Maybe I'll give them another look, or at least acknowledge my ignorance.&lt;br /&gt;&lt;br /&gt;Of course, and this is something he doesn't mention, you can be too perfection oriented. The trick is knowing the difference between the two attitudes and choosing the right one at the right time.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-112150381181033472?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/112150381181033472/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=112150381181033472' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/112150381181033472'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/112150381181033472'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/07/perfection-vs-performance.html' title='Perfection vs performance'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-112075299861052789</id><published>2005-07-07T17:12:00.000+01:00</published><updated>2005-07-07T17:16:38.616+01:00</updated><title type='text'>Oh no, not again!</title><content type='html'>So terrorist bombings have become a fact of daily life once again.  That's just brilliant.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-112075299861052789?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/112075299861052789/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=112075299861052789' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/112075299861052789'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/112075299861052789'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/07/oh-no-not-again.html' title='Oh no, not again!'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111821932068708672</id><published>2005-06-08T08:42:00.000+01:00</published><updated>2005-06-08T09:28:40.716+01:00</updated><title type='text'>Apple, Intel and Hollywood</title><content type='html'>&lt;a href="http://www.wired.com/news/mac/0,2125,67749,00.html"&gt;Wired&lt;/a&gt; and &lt;a href="http://www.bubblegeneration.com/2005/06/apple-intel-and-drm-vs-plasticity-so.cfm"&gt;Bubblegeneration&lt;/a&gt; have the most insightful commentary on Apple's decision to switch to Intel processors.  As &lt;a href="http://www.pbs.org/cringely/pulpit/pulpit20050120.html"&gt;Cringely&lt;/a&gt; has pointed out several times, Apple wants to have the same success as a digital movie distributor as it has had as a digital music distributor. Hollywood won't cooperate without strong DRM protection which Intel can provide.&lt;br /&gt;&lt;br /&gt;Strategies that acknowledge that digital reproduction and modification is easy and inevitable, and work with that will be more productive than those that waste energy fighting against it.  Can Apple be a platform for all players, or have they chosen the losing side?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111821932068708672?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111821932068708672/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111821932068708672' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111821932068708672'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111821932068708672'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/06/apple-intel-and-hollywood.html' title='Apple, Intel and Hollywood'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111704225344713690</id><published>2005-05-25T18:26:00.000+01:00</published><updated>2005-05-25T18:30:53.453+01:00</updated><title type='text'>A message from Bill</title><content type='html'>&lt;blockquote&gt;"I’m dead, you’re in hell. Ironic how that turned out."&lt;br /&gt;&lt;br /&gt;&lt;span style="font-style: italic;"&gt;Bill Hicks&lt;/span&gt;&lt;/blockquote&gt;From &lt;a href="http://www.whatwouldbillhickssay.com/"&gt;http://www.whatwouldbillhickssay.com/&lt;br /&gt;&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111704225344713690?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111704225344713690/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111704225344713690' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111704225344713690'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111704225344713690'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/message-from-bill.html' title='A message from Bill'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111676038303828271</id><published>2005-05-22T11:57:00.000+01:00</published><updated>2005-05-22T12:13:03.043+01:00</updated><title type='text'>Revenge of the Sith</title><content type='html'>Now that was more like it!  A Star Wars movie with a bit of passion at last!  That was what I wanted to see when The Phantom Menace came out.  Did we really have to go through episodes I and II to get here?  It seems now that they were only backstory to the main event.  Take out the filler and you're left with no more than an hour of material - if that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111676038303828271?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111676038303828271/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111676038303828271' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111676038303828271'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111676038303828271'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/revenge-of-sith.html' title='Revenge of the Sith'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111675911807068075</id><published>2005-05-22T11:14:00.000+01:00</published><updated>2005-05-23T09:42:42.776+01:00</updated><title type='text'>What a program is</title><content type='html'>"Programs must be written for people to read, and only incidentally for  machines to execute."&lt;br /&gt;&lt;br /&gt;- Abelson &amp; Sussman, &lt;a href="http://mitpress.mit.edu/sicp/full-text/book/book-Z-H-7.html#%_chap_Temp_4"&gt;&lt;i&gt;SICP&lt;/i&gt;&lt;/a&gt;, preface to the first edition&lt;br /&gt;&lt;br /&gt;These words ring very true to me right now, as I read through reams of open source code composed of deeply nested six page long if statements, sparse one-line comments and a smattering of global variables for extra flavour.&lt;br /&gt;&lt;br /&gt;My own formulation of the same sentiment might be "Programs are documents used by programmers to communicate their ideas to each other, which also happen to be readable by computers." Or more briefly "Code &lt;span style="font-weight: bold;"&gt;is&lt;/span&gt; documentation".&lt;br /&gt;&lt;br /&gt;Now any book that starts with a statement like that must be worth reading. It's been on my to-read list for a long time, but never really seemed essential.  Now I think it is.  The systems I work with are getting bigger and more complex, so I need more guidance on how to deal with that.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111675911807068075?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111675911807068075/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111675911807068075' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111675911807068075'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111675911807068075'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/what-program-is.html' title='What a program is'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111651940144352840</id><published>2005-05-19T17:06:00.000+01:00</published><updated>2005-05-19T17:25:02.146+01:00</updated><title type='text'>Reading - The Tao of Pooh and the Te of Piglet</title><content type='html'>I've nearly finished The Tao of Pooh and the Te of Piglet. I liked the first best, but they're both easy reads. A lot easier to understand than the Tao te Ching!&lt;br /&gt;&lt;br /&gt;I've never read the original Pooh books, I think I'd like them - apparently they were an influence on Douglas Adams' Hitchhikers Guide to the Galaxy. From the excerpts I've read I can see some parallels between the two. Pooh shares a similar warped logic with the guide, and obviously Marvin is Eeyore.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111651940144352840?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111651940144352840/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111651940144352840' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651940144352840'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651940144352840'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/reading-tao-of-pooh-and-te-of-piglet.html' title='Reading - The Tao of Pooh and the Te of Piglet'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111651867368217680</id><published>2005-05-19T16:52:00.000+01:00</published><updated>2005-05-19T17:04:33.686+01:00</updated><title type='text'>Nobody likes a smart arse part 2 - I've created a monster</title><content type='html'>I've done it again.  Another overdeveloped abstraction that takes more time to understand than it could possibly save.  Amazingly I managed to get a working project out of it, but it's not been fun to write. &lt;br /&gt;&lt;br /&gt;Lessons learned:&lt;br /&gt;&lt;ul&gt;   &lt;li&gt;Work it out on paper first.  I now carry with me a low-tech pda (a small notepad and a retractable pencil) to develop my ideas on.&lt;/li&gt;   &lt;li&gt;Write small libraries/classes that can be easily picked up by others and are an obvious benefit.&lt;br /&gt;  &lt;/li&gt;   &lt;li&gt;Solve the problem at hand, not the one you'd like to be working on.&lt;/li&gt;   &lt;li&gt;Know what the problem is!&lt;/li&gt; &lt;/ul&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111651867368217680?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111651867368217680/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111651867368217680' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651867368217680'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651867368217680'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/nobody-likes-smart-arse-part-2-ive.html' title='Nobody likes a smart arse part 2 - I&apos;ve created a monster'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111651787439881076</id><published>2005-05-19T16:42:00.000+01:00</published><updated>2005-05-19T16:51:14.403+01:00</updated><title type='text'>I heart del.icio.us</title><content type='html'>I read &lt;a href="http://shirky.com/writings/ontology_overrated.html"&gt;Ontology is Overrated: Categories, Links, and Tags&lt;/a&gt; and signed up to &lt;a href="http://del.icio.us/"&gt;del.icio.us&lt;/a&gt; to see what he was talking about.  I really like it.  It's a much better way to organise my bookmarks than a rigid heirarchy.  I like the idea so much I'm going to steal it.  I've already written a few notes on my ideas for a CMS organised around URLs, tags and links.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111651787439881076?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111651787439881076/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111651787439881076' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651787439881076'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651787439881076'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/i-heart-delicious.html' title='I heart del.icio.us'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-111651727934382057</id><published>2005-05-19T16:38:00.000+01:00</published><updated>2005-05-19T16:41:19.346+01:00</updated><title type='text'>Evil!</title><content type='html'>There is a special level of hell for people who write code that looks like this:&lt;br /&gt;&lt;code&gt;   &lt;br /&gt;   var e = "";&lt;br /&gt;   var r = true;&lt;br /&gt;   var z,n,q,t;&lt;br /&gt;&lt;br /&gt;   t = true;&lt;br /&gt;   q = 0;&lt;br /&gt;   n = 0;&lt;br /&gt;   z = 0;&lt;br /&gt;&lt;/code&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-111651727934382057?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/111651727934382057/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=111651727934382057' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651727934382057'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/111651727934382057'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/05/evil.html' title='Evil!'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110658669685113439</id><published>2005-01-24T13:26:00.000Z</published><updated>2005-01-24T17:14:04.423Z</updated><title type='text'>The future's back</title><content type='html'>While high street retailers were reporting 'disappointing' Christmas sales, online shopping in the UK is going from strength to strength. I was pleased to &lt;a href="http://www.bloomberg.com/apps/news?pid=10000102&amp;sid=aVGE9qjtQmzk&amp;amp;refer=uk"&gt;read&lt;/a&gt;, in several papers this weekend, about &lt;a href="http://www.asos.com/"&gt;Asos&lt;/a&gt; the online fashion retailer. It's a particularly interesting example because clothes are one of the things that, with post dot bomb hindsight, obviously can't be sold online. I guess they can now. The key selling point of Asos is that their range is based on the clothes that celebrities wear. You see your favourite celeb wearing something you like on TV, and with a few clicks you can find something just like it online. The founders admit that this is not a new idea, it's what fashion magazines do all the time. The difference is that being online Asos can update their catalogue instantly.&lt;br /&gt;&lt;br /&gt;Dot com is back, and this time it has a business plan!  Old ideas are coming back in new guises. As Alvin Toffler wrote in Future Shock "The future arrives too soon and in the wrong order." I think we're sorting it out now.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110658669685113439?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110658669685113439/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110658669685113439' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110658669685113439'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110658669685113439'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/01/futures-back.html' title='The future&apos;s back'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110570760680287639</id><published>2005-01-14T13:15:00.000Z</published><updated>2005-01-14T13:43:22.460Z</updated><title type='text'>Tai chi classes</title><content type='html'>My tai chi classes started again this week. I much prefer doing tai chi in a group to practicing alone. I'm feeling quite pleased with myself for having kept up practice over the Christmas break. I took special trouble to focus on a sequence that I know I'm weak on, and was quite pleased when we got to that part and I passed through it smoothly.&lt;br /&gt;&lt;br /&gt;After warm up and going through the form we tried a new exercise. The purpose of it is to develop a sense of where your partners 'root' is. Your partner stands still with their arms folded, feet shoulder-width apart and sinks their weight down into the ground. You do the same and place your hands on their elbows. Slowly, without pushing, you then sink into their space, sensing where they are rooted and eventually uprooting them, so they have to step back or fall over. The movement is very very subtle. An observer would only see two people standing still. It doesn't feel like pushing either - as I stood there with my arms folded, all I could feel was my centre of gravity shifting slowly backwards, making it harder and harder to keep my balance. On the other side it doesn't feel like pushing either, I just tried to feel where my partner was rooted and expand my root into that space. Very little happened for a long time until suddenly they went.&lt;br /&gt;&lt;br /&gt;Having experienced tai chi it's very easy to believe in concepts like chi energy. Some people where quite happy to speak in those terms to describe what they were doing. I'm not ready to believe such a thing exists in an objective measurable sense. It does, however, match my subjective experience, so for the practical purpose of learning tai chi it's the best way to visualise what's going on. Just one more impossible thing to believe before breakfast!&lt;br /&gt;&lt;br /&gt;In exercises like this I find that every partner is different, and I'm different with every partner. Some seem heavy, some light, some stiff, some flexible. You don't often get the opportunity to read someone like that.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110570760680287639?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110570760680287639/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110570760680287639' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110570760680287639'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110570760680287639'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/01/tai-chi-classes.html' title='Tai chi classes'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110508771453053490</id><published>2005-01-07T08:47:00.000Z</published><updated>2005-01-07T10:24:24.700Z</updated><title type='text'>Tower of Babel</title><content type='html'>On wednesday night I attended the weekly &lt;a href="http://www.brightonfarm.com/"&gt;Brighton freelancers&lt;/a&gt; meeting at the Lord Nelson. By random chance many of the conversations highlighted the importance, and difficulty, of effective communication.&lt;br /&gt;&lt;br /&gt;&lt;a href="http://tenpastmidnight.blogspot.com/"&gt;Paul Silver&lt;/a&gt; related the difficulties he had had explaining to a non-technical client what exactly it is that MySQL is, and why PHP and MySQL are nearly always used together like bread and butter. &lt;br /&gt;&lt;br /&gt;Richard praised Sevan's encylopaedic knowledge of windows security and configuration issues, but professed to not always following his detailed explanations of how he fixed his PC.  The tables were turned when Richard gave Sevan his wife's PC to fix.  "It's all in Chinese!"  He navigated the menus by memory, but eventually had to find another way.&lt;br /&gt;&lt;br /&gt;As we'd all had very little chance to talk tech over Christmas, there was little room for social chit chat, and conversation narrowed in on quite specialised areas of technology.  I bobbed along in the fast moving stream of in-depth hardware and networking talk, occasionally gaining some insight, but finding it hard to contribute much.&lt;br /&gt;&lt;br /&gt;All this has made me more aware of how easy it is to mistakenly assume your audience has understood what, to you appears pefectly obvious, but to them may as well have been spoken in Chinese.  Intelligence and technical knowledge don't always guarantee understanding either, as even in this group of highly technical people, we each speak a language based on our own knowledge and experience.  To get the most out of a conversation, whether in a social, business or technical context, clarity and understanding are vital.  I can recall conversations I've had where we've both been talking past each other.  Taking a little time to consider, listen and ask questions would have helped a lot.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110508771453053490?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110508771453053490/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110508771453053490' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110508771453053490'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110508771453053490'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2005/01/tower-of-babel.html' title='Tower of Babel'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110388326456534737</id><published>2004-12-24T09:13:00.000Z</published><updated>2004-12-26T18:27:49.830Z</updated><title type='text'>Scientologists 1 Chuggers 0</title><content type='html'>Out Christmas shopping over the last couple of weeks I've seen two groups of people trying to get money from strangers. One of them is using a much better strategy than the other. One group is the so called 'Charity Muggers', or chuggers for short - the bib clad agents hired by major charities to accost strangers in the street and charm them into signing up for a monthly donation. They operate in packs of about four and it's quite a job to get past them without being spotted. On a quiet day in Lewes I was practically chased by one of them. Twice. Maybe this aggressive style of marketing is seen as unavoidable in a world where there are so many people demanding our attention, but the charities that use it are burning through their social capital, and in a competitive market for attention, chugging won't maintain its advantage for long.&lt;br /&gt;&lt;br /&gt;The other group is the scientologists. I hadn't seen the Brighton section out on the streets for some time, but they've been out every day over the Christmas shopping period. They have a couple of tables set out in front of their offices by Churchill square, with a sign reading 'Free stress test', and people are sitting down to talk to them. Voluntarily. Imagine that! People &lt;span style="font-weight: bold;"&gt;come to you&lt;/span&gt; and give you five, ten, fifteen minutes of their time. They're interested in what you're offering and pay attention to what you have to say.&lt;br /&gt;&lt;br /&gt;The scientologists' strategy is an example of what Seth Godin has termed permission marketing. In your first contact with a stranger you shouldn't try to sell your ultimate product, you should offer them something for free, like the stress test. That's already qualified your potential customer as someone who might have an interest in your product. The attention your free offer has bought you is then used to sell the next meeting, and that one the next, in a series of exchanges over which you educate your potential customer about your product. It's a much more focused approach than the scattershot techniques of the chuggers and most of mainstream marketing. It takes longer to see results, but you've developed a relationship with your customers where they expect to hear from you and actually want to be sold to.&lt;br /&gt;&lt;br /&gt;Perhaps the nature of their product has put evolutionary pressure on the scientologists marketing strategy. It must be a lot easier to get people to give money to save the baby seals than it is to convince them of the merits of joining a UFO cult. It suggests an interesting avenue for research - difficult products produce the best marketing - though I'm not sure I want to investigate too far!&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110388326456534737?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110388326456534737/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110388326456534737' title='4 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110388326456534737'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110388326456534737'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/12/scientologists-1-chuggers-0.html' title='Scientologists 1 Chuggers 0'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>4</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110244016053861651</id><published>2004-12-07T17:10:00.000Z</published><updated>2004-12-07T17:22:40.536Z</updated><title type='text'>Site update</title><content type='html'>As part of my new marketing drive I've updated &lt;a href="http://www.alexfarran.com"&gt;my website&lt;/a&gt;.  The recent work section has been updated and I've rewritten most of the descriptive content. I've tried to change the focus to what other people think is important rather than what I find technically interesting.  I've given it a bit of a makeover too.  It's still all on one page.  If it gets much bigger I'll split the sections into seperate areas and put it all into a CMS, perhaps with a one page summary for printing.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110244016053861651?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110244016053861651/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110244016053861651' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110244016053861651'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110244016053861651'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/12/site-update.html' title='Site update'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110235122540748511</id><published>2004-12-06T15:49:00.000Z</published><updated>2004-12-06T17:05:48.110Z</updated><title type='text'>Marketing myself</title><content type='html'>Recently I read the online book &lt;a href="http://www.alexfarran.com/files/8.01.BootstrappersBible.pdf"&gt;The Bootstrappers Bible (pdf)&lt;/a&gt;. It's a short (100 pages) readable guide to bootstrapping a small business. One thing it highlighted to me is how absolutely essential it is for me to keep marketing myself, and to do that first, before doing anything else. It doesn't take a genius to work out that marketing is important, but for me it's always come second place behind improving my technical knowledge and ability. I used to take the cautious approach of learning absolutely everything I could about a language / technology / product before starting any paid work using it. I now believe that this is far far to cautious. My own experience, if I listen to it, tells me that I learn more and faster working on a challenging project for a client than I ever do from studying alone without a clear goal. Also, until I've actually talked to a client I don't know if what I'm learning / writing is what they want. I'm not saying that I should give up studying alone, or take on projects I know nothing at all about, just that if I let the breaks off a little it will get a bit scarier, but I'll have more success.&lt;br /&gt;&lt;br /&gt;So, fired up with the motivation to get serious about marketing I've done a little research. I've looked at marieting books before, and they were terribly dry and difficult to apply.  This time I've found a couple that I think I can get on with. I've ordered &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/0743221427/qid=1102352353/ref=sr_8_xs_ap_i1_xgl/202-2013083-9815842"&gt;Permission Marketing&lt;/a&gt; and the followup &lt;a href="http://www.amazon.co.uk/exec/obidos/ASIN/074322065X/qid=1102352353/ref=sr_8_xs_ap_i1_xgl/202-2013083-9815842"&gt;Unleashing the Ideavirus&lt;/a&gt;. They should arrive tomorrow. Both deal with the idea of marketing through word of mouth. The New York Times has a related story &lt;a href="http://www.nytimes.com/2004/12/05/magazine/05BUZZ.html?pagewanted=1&amp;ei=5090&amp;amp;amp;amp;amp;amp;amp;amp;en=6dc3f3878659a642&amp;ex=1259989200&amp;amp;partner=rssuserland"&gt; The Hidden (in Plain Sight) Persuaders&lt;/a&gt;. I'm attracted to this idea of marketing as a conversation, rather than an interruption. It fits rather well with the ideas in the &lt;a href="http://www.cluetrain.com/"&gt;Cluetrain Manifesto&lt;/a&gt; which states that the spread of the internet is transforming the marketplace and the workplace from a top down command and control heirarchy into a network of peers.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110235122540748511?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110235122540748511/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110235122540748511' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110235122540748511'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110235122540748511'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/12/marketing-myself.html' title='Marketing myself'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110138203813267390</id><published>2004-11-25T11:09:00.000Z</published><updated>2004-11-26T15:49:07.633Z</updated><title type='text'>USB port to the brain</title><content type='html'>&lt;a href="http://www.nytimes.com/2004/11/23/science/23sens.html"&gt;New Tools to Help Patients Reclaim Damaged Senses &lt;/a&gt; from NYT via Bubblegeneration.  &lt;blockquote&gt;Using novel electronic aids, vision can be represented on the skin, tongue or through the ears.&lt;/blockquote&gt;The theory behind this is that it doesn't matter what nerves are carrying the signals, the brain can adapt to process them appropriately. Think of the applications.&lt;br /&gt;&lt;br /&gt;Also, this adaptabilty to new sensory inputs implies to me that with enough training, perception of existing senses can be dramatically changed.&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110138203813267390?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110138203813267390/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110138203813267390' title='1 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110138203813267390'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110138203813267390'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/11/usb-port-to-brain.html' title='USB port to the brain'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>1</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-110128914574946104</id><published>2004-11-24T09:23:00.000Z</published><updated>2004-11-24T09:41:04.473Z</updated><title type='text'>Nanny knows best</title><content type='html'>Lately I've been learning to use the ezPublish content management&lt;br /&gt;system.  One aspect of it that is causing me unneccessary frustration&lt;br /&gt;and inconvience is it's templating language.  I already have a&lt;br /&gt;templating language thankyouverymuch.  It's called PHP and it's&lt;br /&gt;faster, better and cheaper than anything they're likely to produce.&lt;br /&gt;And crucially &lt;span style="font-weight: bold;"&gt;I already know it&lt;/span&gt;.  They've wasted their own time&lt;br /&gt;reinventing the wheel and now they're wasting mine by making me learn&lt;br /&gt;it.  The template language exists for one reason above all others - to&lt;br /&gt;control me, to force me to submit to their ideas of good practice.&lt;br /&gt;Their rules.  I don't like that.  Help me, give me tools, but let me&lt;br /&gt;decide how to use them.  I'll use them in ways you never imagined.&lt;br /&gt;&lt;br /&gt;Of course template language designers aren't alone.  Platforms and&lt;br /&gt;languages are frequently used to impose the will of their designers on&lt;br /&gt;their users.  Java is a prominent current example.  Programmers are&lt;br /&gt;voting with their feet and migrating to Python (and PHP and Perl).&lt;br /&gt;I've not heard any reports of programmers going the other way.  Java&lt;br /&gt;may well have advantages over Python in some other areas, but in user&lt;br /&gt;freedom Python is the clear winner.&lt;br /&gt;&lt;br /&gt;What motivates designers to dictate to their users like this?  Perhaps&lt;br /&gt;it's a hang-over from proprietary programming, where deliberately&lt;br /&gt;incompatible systems insulate you from the competition.  Maybe it's&lt;br /&gt;nothing more than laziness.  By imposing limits on their users they've&lt;br /&gt;dramatically simplified the problem they have to solve - "But what if&lt;br /&gt;I do this?"  "You can't".  Designing systems that aid users without&lt;br /&gt;taking away their freedoms is hard but worth doing.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-110128914574946104?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/110128914574946104/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=110128914574946104' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110128914574946104'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/110128914574946104'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/11/nanny-knows-best.html' title='Nanny knows best'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-109386555211407021</id><published>2004-08-30T11:36:00.000+01:00</published><updated>2004-08-30T12:32:32.113+01:00</updated><title type='text'>More books</title><content type='html'>I bought a couple of new books at the weekend.  (I don't think I enjoy buying anything else as much as I enjoy buying books.)  They are: Ursula K Le Guin's version of Lau Tzu's Tao Te Ching, and Fred Brooks classic book of software development The Mythical Man Month.&lt;br /&gt;&lt;br /&gt;I find it quite relaxing to lose myself in the pithy and inscrutable sayings of an ancient Chinese philosopher, just reading and re-reading until it makes some kind of sense.&lt;br /&gt;&lt;br /&gt;I've just scanned The Mythical Man Month so far.  Chapter 18 has a good summary of the chapters.  The diagram in the first chapter "The Tar Pit" illustates the order of magnitude difference in development time between a program you might write for yourself and a programming systems product that could be sold.  I think everyone involved in a programming project, incuding the client, should see that diagram before they start.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-109386555211407021?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/109386555211407021/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=109386555211407021' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109386555211407021'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109386555211407021'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/08/more-books.html' title='More books'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-109386204273396213</id><published>2004-08-30T10:56:00.000+01:00</published><updated>2004-08-30T11:34:02.733+01:00</updated><title type='text'>Free software and the parable of the broken window</title><content type='html'>Two sites I was reading recently O'Reilly's online book &lt;a href="http://http//www.oreilly.com/catalog/opensources/book/toc.html"&gt;Open Sources&lt;/a&gt; and the &lt;a href="http://www.bubblegeneration.com/"&gt;Bubblegeneration&lt;/a&gt; blog gave me an interesting insight into the economics of software, free and otherwise.  Bubblegeneration mentioned the &lt;a href="http://http//en.wikipedia.org/wiki/Parable_of_the_broken_window"&gt;parable of the broken window.&lt;/a&gt; In this story the breaking of a shopkeepers window is seen as a positive stimulus to the local economy because the shopkeeper gives money to the glazier, who then gives it to the baker to buy bread, who then gives it to the cobbler to buy shoes etc. The fallacy of this argument is easy to see in such a simple case, but in real life similar arguments are made all the time. In the case of software, the lightbulb went off when I read this quote from the GNU manifesto in the chapter &lt;a href="http://www.oreilly.com/catalog/opensources/book/tiemans.html"&gt;Future of Cygnus Solutions: An Entrepreneur's Account&lt;/a&gt; of Open Sources:&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;There is nothing wrong with wanting pay for work, or seeking to maximize one's income, as long as one does not use means that are destructive. But the means customary in the field of software today are based on destruction.&lt;br /&gt;&lt;br /&gt;Extracting money from users of a program by restricting their use of it is destructive because the restrictions reduce the amount and the ways that the program can be used. This reduces the amount of wealth that humanity derives from the program. When there is a deliberate choice to restrict, the harmful consequences are deliberate destruction.&lt;br /&gt;&lt;br /&gt;The reason a good citizen does not use such destructive means to become wealthier is that, if everyone did so, we would all become poorer from the mutual destructiveness.&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;The use of the word 'destruction' made the parallels with the broken window story obvious to me. The broken window creates work, but it reduces opportunities to spend money on other things and so does not increase overall wealth.&lt;br /&gt;&lt;br /&gt;Good to know that free software has some economic theory behind it as well as good intentions. Accounts like those of Red Hat and Cygnus (now part of Red Hat) in Open Sources provide some good practical evidence as well.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-109386204273396213?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/109386204273396213/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=109386204273396213' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109386204273396213'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109386204273396213'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/08/free-software-and-parable-of-broken.html' title='Free software and the parable of the broken window'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-109153812898606824</id><published>2004-08-03T13:48:00.000+01:00</published><updated>2004-08-03T14:02:08.986+01:00</updated><title type='text'>PHP annoyances</title><content type='html'>Paul mentioned a &lt;a href="http://tenpastmidnight.blogspot.com/2004/07/php-annoyances.html"&gt;PHP annoyance&lt;/a&gt; on his blog, so I'll add to the list with somehting a bit more fundamental.  Why isn't null interpreted as an empty array by foreach and other array operators?  I find myself writing $list=array() as a failsafe throughout my code.  This kind of book-keeping code is out of place in a dynamically typed language.&lt;br /&gt;&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-109153812898606824?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/109153812898606824/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=109153812898606824' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109153812898606824'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109153812898606824'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/08/php-annoyances.html' title='PHP annoyances'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-109048571629316849</id><published>2004-07-22T08:57:00.000+01:00</published><updated>2004-07-22T09:56:44.196+01:00</updated><title type='text'>Nobody likes a smart arse</title><content type='html'>A common instinct among a certain type of programmers is to try to refactor, generalise and abstract away every repeated line of code. The opposite tendency is to cut and paste large sections of code, which can quickly generate long sprawling programs that are difficult to maintain.&lt;br /&gt; &lt;br /&gt; Avoiding repetition is a good thing then? Well yes, but it has to be balanced against readability. In order to avoid repetition common functions, data structures and behaviours are packaged up in abstractions such as functions and classes. Taken too far this scatters the flow of the code across multiple functions and classes, all for the sake of avoiding a little repetition. I've come back to code I've written myself and found the layers of abstraction I've used more of a hindrance than a help. While I was writing it of course I thought I was being really clever.&lt;br /&gt; &lt;br /&gt; Good abstractions are hard to work out and not always worth making. Now I consciously try to write my code using a few simple abstractions that can be easily explained and remembered. Repetition is allowed if it means that the information I need to understand the code I'm reading is right there in front of me, rather than n-steps away in a forgotten object heirarchy.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-109048571629316849?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/109048571629316849/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=109048571629316849' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109048571629316849'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/109048571629316849'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/07/nobody-likes-smart-arse.html' title='Nobody likes a smart arse'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-108513664999463300</id><published>2004-05-21T11:12:00.000+01:00</published><updated>2004-05-21T14:00:53.136+01:00</updated><title type='text'>Tai Chi Talking</title><content type='html'>I was listening to Simon Mayo interviewing Derren Brown, the magician / hypnotist, on Radio 5 yesterday.    Simon asked the question everyone wants to ask "Do you ever use your skills in real life?".  He wouldn't be drawn on the subject of getting free meals at restaurants etc, but became more enthusiastic when he was asked if he used his powers of persuasion to defuse conflict situations.  He advised to always have some song lyrics up your sleeve and explained why with a story of a time he avoided being attacked in the street one night.&lt;br /&gt;&lt;br /&gt;Attacker: Oi you! What you lookin' at! etc etc&lt;br /&gt;Derren: The wall in my garden is less than ten feet high.&lt;br /&gt;Attacker: what?&lt;br /&gt;Derren: The wall in my garden is less than ten feet high.  The walls in Spain are ten feet high.&lt;br /&gt;&lt;br /&gt;The totally out of context reply confused the attacker and took all the energy out of him.  He later sat with Derren and discussed the problems he was having with his life.&lt;br /&gt;&lt;br /&gt;I can see very strong parallels between what Derren did with his words and the philosophy of tai chi.  In tai chi you never confront force with force, you always seek to read the intention of your opponent and through avoiding it use their own energy to uproot them, while maintaining a strong root yourself.   Derren didn't seek to argue with his attacker, avoided his confrontational intention and mentally uprooted him.  The presence of mind and calmness required to do what he did has a lot in common with good tai chi practice too, which is as much mental as physical.&lt;br /&gt;&lt;br /&gt;If I find myself in an argument I'm more interested in avoiding than winning - such as a recent encounter I had with a van driver while I was out cycling - I might try Derren's approach.  I just need to think of some suitably abstract and memorable phrases.  Favourite at the moment is this, spoken by Ambassador Kosh in Babylon Five - "The avalanche has started.  It's too late for the pebbles to vote"&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-108513664999463300?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/108513664999463300/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=108513664999463300' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108513664999463300'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108513664999463300'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/05/tai-chi-talking.html' title='Tai Chi Talking'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-108361426808995337</id><published>2004-05-03T21:33:00.000+01:00</published><updated>2004-05-03T21:33:28.106+01:00</updated><title type='text'>Taking notes</title><content type='html'>I'm reading several books at the moment, all online, some free and some on &lt;a href="http://safari.oreilly.com/"&gt;safari&lt;/a&gt;.  I've taken in a bit on &lt;a href="http://www.lisp.org/table/books.htm"&gt;Lisp&lt;/a&gt;, some &lt;a href="http://safari.oreilly.com/JVXSL.asp?x=1&amp;mode=section&amp;sortKey=title&amp;sortOrder=asc&amp;view=&amp;xmlid=0-596-00420-6&amp;open=false&amp;g=&amp;catid=&amp;s=1&amp;b=1&amp;f=1&amp;t=1&amp;c=1&amp;u=1&amp;r=&amp;o=1"&gt;XML&lt;/a&gt;, and some more general reading about &lt;a href="http://www.dreamsongs.com/Books.html"&gt;programming &lt;/a&gt;, but mostly I'm trying to get a more thorough understanding of Linux.  I'm OK programming under Linux and muddling through configuration with a HOWTO, but I've never taken the time to get really familiar with Linux/Unix.  Using Linux, as opposed to writing it, which I'm sure is great fun, is a pretty dull dry subject, but it's the foundation that everything else I use is built on so it will be worth the effort.  I'm reading &lt;a href="http://safari.oreilly.com/JVXSL.asp?x=1&amp;mode=section&amp;sortKey=title&amp;sortOrder=asc&amp;view=book&amp;xmlid=0-596-00272-6&amp;open=false&amp;g=&amp;catid=&amp;s=1&amp;b=1&amp;f=1&amp;t=1&amp;c=1&amp;u=1&amp;r=&amp;o=1&amp;srchText="&gt;Running Linux&lt;/a&gt; and I'm finding it a fairly pleasant read.  I had a look at &lt;a href="http://rute.2038bug.com/rute.html.gz"&gt;RUTE&lt;/a&gt;, but the style was a bit rambling and started from very very basic principles.&lt;br /&gt;&lt;br /&gt;I'm a little bit annoyed that the range on Safari is too narrow.  I can understand that O'Reilly themselves fill a particular niche, but Safari provides access to several publishers with a wider range of titles.  I sent them an email asking if they could make Paul Graham's &lt;a href="http://www.paulgraham.com/acl.html"&gt;ANSI Common Lisp&lt;/a&gt; available.&lt;br /&gt;&lt;br /&gt;I take notes when I read.  I used to do it on paper, but I prefer to keep them all in text files now.  If I don't take notes it's too easy to read through a chapter and take very little in.  Taking notes as I go forces me to think about what I've just read in the same way as explaining it to someone else would, and almost as a by-product gives me a nice aide-memoir and index.&lt;br /&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-108361426808995337?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/108361426808995337/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=108361426808995337' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108361426808995337'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108361426808995337'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/05/taking-notes.html' title='Taking notes'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-5705714.post-108210767801437847</id><published>2004-04-16T10:43:00.000+01:00</published><updated>2004-04-20T14:36:54.750+01:00</updated><title type='text'>First post</title><content type='html'>I'm currently reading Dynamic HTML: The Definitive Reference.  It's OK but the author's style of writing annoys me.  I feel like I'm being talked down to by someone who knows less about programming than I do.  Just the facts, no opinion unless it's really well argued and relevant, that's what I want in a technical book.  It's taking up two spaces on my safari bookshelf, so I'll probably remove it once I've picked up the major differences between the various browsers and the specification.&lt;br /&gt;&lt;br /&gt;Once I've learnt the basics I find that online references are often better than published books anyhow.  The online PHP manual tells me all I need to know about PHP, The W3C documents are good references for HTML and CSS etc, only the MySQL manual has disappointed so far.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/5705714-108210767801437847?l=alexfarran.blogspot.com' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://alexfarran.blogspot.com/feeds/108210767801437847/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.blogger.com/comment.g?blogID=5705714&amp;postID=108210767801437847' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108210767801437847'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/5705714/posts/default/108210767801437847'/><link rel='alternate' type='text/html' href='http://alexfarran.blogspot.com/2004/04/first-post.html' title='First post'/><author><name>Alex Farran</name><uri>http://www.blogger.com/profile/03823394557505632657</uri><email>noreply@blogger.com</email><gd:image rel='http://schemas.google.com/g/2005#thumbnail' width='16' height='16' src='http://img2.blogblog.com/img/b16-rounded.gif'/></author><thr:total>0</thr:total></entry></feed>
