<?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'><id>tag:blogger.com,1999:blog-1715561206157275601</id><updated>2009-12-13T10:18:15.499Z</updated><title type='text'>70cities blog</title><subtitle type='html'>"Vyv.. eat the telly"</subtitle><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/'/><link rel='hub' href='http://pubsubhubbub.appspot.com/'/><link rel='next' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default?start-index=26&amp;max-results=25'/><link rel='http://schemas.google.com/g/2005#feed' type='application/atom+xml' href='http://www.70cities.net/blog/atom.xml'/><author><name>Paul</name><email>noreply@blogger.com</email></author><generator version='7.00' uri='http://www.blogger.com'>Blogger</generator><openSearch:totalResults>32</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-1072894949229741431</id><published>2009-12-13T10:18:00.000Z</published><updated>2009-12-13T10:18:15.505Z</updated><title type='text'>Thoughts on Scalecamp</title><content type='html'>The other Friday I attended &lt;a href="http://www.scalecamp.org.uk"&gt;Scalecamp&lt;/a&gt;, one of these 'unconference' jobbies - organised by the Guardian. I'm not a very conference-y person, but given that I'm in the big data game and have come up against (and overcome) many a scaling problem in the past, I thought it'd be good to pop along and see what was happening.&lt;br /&gt;&lt;br /&gt;It was certainly very well-organised, with everyone knowing what they were doing - obviously quite a few of the organisers/attendees had done this sort of thing before, whereas I hadn't. I enjoyed a few of the talks and sessions, particularly the ones that touched on &lt;a href="http://hadoop.apache.org/"&gt;Hadoop&lt;/a&gt; and &lt;a href="http://memcached.org/"&gt;Memcached&lt;/a&gt;, because they're very useful/interesting to us. Quite a lot of &lt;a href="http://en.wikipedia.org/wiki/NoSQL"&gt;NoSQL&lt;/a&gt; data warehousing dogma floating around the industry already, which I did my best to puncture - I probably had my most interesting discussions here.&lt;br /&gt;&lt;br /&gt;I was also quite taken aback at how few &lt;a href="http://www.perl.org"&gt;Perl&lt;/a&gt; hackers I met there. Bar one or two exceptions, most of whom I knew or I've worked with already, it's all about Python, Ruby, PHP and Java these days. I felt about 5,000 years old.&lt;br /&gt;&lt;br /&gt;Any negatives? Not really - I had to skip out when the talks had finished and so missed the sponsored beers, which was a bit of a pain. Also, some nerds really need to find where their shower is. Seriously - it's not difficult. BO is very much the elephant in the room (almost literally) at any gathering of geeks. In fact, I might do a lightning talk on it at some point in the future*.&lt;br /&gt;&lt;br /&gt;In other news, I'm worried that I've developed an allergy to certain premium brand lagers. No, really..&lt;br /&gt;&lt;br /&gt;* This is a joke.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-1072894949229741431?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/1072894949229741431/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2009/12/thoughts-on-scalecamp.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1072894949229741431'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1072894949229741431'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2009/12/thoughts-on-scalecamp.html' title='Thoughts on Scalecamp'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-3076779962535383107</id><published>2009-11-28T10:37:00.002Z</published><updated>2009-11-28T11:04:39.269Z</updated><title type='text'>It's a numbers game</title><content type='html'>I seldom talk/blog/tweet/etc about work directly, mostly because I never have the time, but I'm feeling quite proud that I can point out a couple of things I've been directly involved in in one way or another:&lt;br /&gt;&lt;br /&gt;&lt;a href="http://www.bbc.co.uk/blogs/bbcinternet/2009/11/sharing_iplayer_data.html"&gt; Jo Hamilton, Head of Audience Measurement writes on the BBC Internet Blog&lt;/a&gt; and shares a data pack with insights about &lt;a href="http://www.bbc.co.uk/iplayer"&gt;BBC iPlayer&lt;/a&gt;'s usage in October 2009 - a record month across all platforms.&lt;br /&gt;&lt;br /&gt;And John Linwood (BBC FM&amp;T CTO, AFAIK) has &lt;a href="http://thenextweb.com/uk/2009/11/27/unmissable-bbc-iplayers-success-numbers/"&gt;been sharing similar traffic and audience statistics&lt;/a&gt; with a great infographic. &lt;br /&gt;&lt;br /&gt;All of the audience-oriented statistics are derived from the internal iStats data collation, warehousing and analytics system I designed, built and now product manage as part of my role in the BBC's Future Media &amp; Technology division. &lt;br /&gt;&lt;br /&gt;The public release of this data above is, hopefully, a step in the direction of sharing more data about how iPlayer's content gets consumed. I'd expect more data to be trickling out soon if the thirst is there.&lt;br /&gt;&lt;br /&gt;One day I might sit down and write an 'official' blog on the detail of the system and how it works.. if anyone's interested, that is.&lt;br /&gt;&lt;br /&gt;Note: this is a personal blog and my views aren't necessarily those of the BBC, or anyone else for that matter. Ahem.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-3076779962535383107?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/3076779962535383107/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2009/11/its-numbers-game.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3076779962535383107'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3076779962535383107'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2009/11/its-numbers-game.html' title='It&apos;s a numbers game'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-225560374480311850</id><published>2009-11-19T00:45:00.004Z</published><updated>2009-11-28T10:40:04.604Z</updated><title type='text'>Twonk</title><content type='html'>I like &lt;a href="http://twitter.com"&gt;Twitter&lt;/a&gt;. I find it more useful now than I imagined when I signed up for it three years or so ago. For me, its usefulness began when a few close friends of mine, and some of my family, started using it in earnest. Then it became a tool for just working out where people were and what they were up to, as much as it was for stalking celebrities, getting news feeds, discovering links and feeling plugged into the zeitgeist. As nonentities and companies started flooding the service, I stayed resolutely private and felt isolated from it all, because I had my 30 or so followers who I also followed and who largely all followed each other too. More broadcast-y than instant messaging and less arduous than blogging, Twitter's always had an IRC channel vibe for me, which I really like. &lt;br /&gt;&lt;br /&gt;(Incidentally, I dumped Facebook three or four months ago. Best move I've ever made)&lt;br /&gt;&lt;br /&gt;Recently, though, I started wondering if I've been missing out on the other ways of using it and consuming the nonsense it could potentially push to me, so I renamed by private account and created a &lt;a href="http://www.twitter.com/paultweedy"&gt;public account&lt;/a&gt; as well, so I could use that to follow the few public figures and news bots I'm vaguely interested in, and possibly start talking about non-whingey work stuff in a more involved way. The private account remains for all necessary cathartism and gossiping.&lt;br /&gt;&lt;br /&gt;So what do I make of the wider Twitter universe, outside of my imposed bubble? Well, first impressions aren't necessarily good. I see a lot of:&lt;br /&gt;&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Self-appointed 'social media expert' types, grinning out from their avatars in a state of perpetual self-satisfaction, waiting for the gravy train to pull in at the next stop&lt;br /&gt;&lt;li&gt;Comedians continually whoring out their latest non-hilarious endeavours&lt;br /&gt;&lt;li&gt;Spates of irritating hashtag trends - #movieswithunemployedpeople, etc&lt;br /&gt;&lt;li&gt;Masses and masses of linkspam, which is what &lt;a href="http://tumblr.com"&gt;tumblr&lt;/a&gt; is bloody for&lt;br /&gt;&lt;li&gt;General pushy careerist types being quite mean and rude about other people&lt;br /&gt;&lt;/ul&gt;And so on. The linkspam thing is the most interesting one, though. I've seen it happen every time a new fad comes along - users just leap on it and funnel &lt;i&gt;everything&lt;/i&gt; they want to say, share or play with through it. Maybe Twitter is just too simple, too useful to people to stay within its original constraints, and an inevitable part of mass acceptance are the antipatterns above (and more).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-225560374480311850?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/225560374480311850/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2009/11/twank.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/225560374480311850'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/225560374480311850'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2009/11/twank.html' title='Twonk'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-3505137042939251172</id><published>2009-07-26T23:00:00.000+01:00</published><updated>2009-11-08T12:36:47.804Z</updated><title type='text'>Notes on making iTunes play nicely with an Airport Disk and Airtunes</title><content type='html'>OK, so six months later, along comes another post. This time it's practical, and a result of the experiences I had recently in trying to downsize my CD collection and shift all of my music onto a shared NAS drive. As it happens, our network at home is already based around an Airport Extreme sase station that supports the attachment and sharing of USB disks as network drives - so I purchased a cheap-arse Western Digital 1TB USB external drive, formatted it as HFS+ (non-journalled), shoved it into the back of the AEBS and away I went.. &lt;br /&gt;&lt;br /&gt;Setup: iTunes 8.2, Macbook 2nd Gen, OS X Tiger 10.4.11, Airport Extreme, Airport Express with Airtunes.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;1. Telling iTunes what to do&lt;/h2&gt;&lt;br /&gt;Changing the location of the iTunes Library in the preferences and then using 'Consolidate Library..' is by far the easiest option for physically moving all your songs. See &lt;a href="http://support.apple.com/kb/HT1449"&gt;Apple's official guide here&lt;/a&gt;. All your metadata is preserved and it all Just Works. One pain - you have to copy over the network, so ideally, connect your Mac to the base station using a network cable rather than using wireless for this move as it'll be much, much quicker.&lt;br /&gt;&lt;br /&gt;An alternative, do-it-yourself  approach that gets you more control over where your music lives is manually editing the paths in the iTunes Music Library.xml file using a text editor. You still have to delete the actual library database and re-import the XML file into iTunes. This way you can connect the eventual NAS drive to your Mac's USB port, copy all the music across, connect it to the AEBS and hammer iTunes into doing the right thing by changing the paths in the XML file. However, for novices or people without much time on their hands, I wouldn't recommend this approach. YMMV.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;2. Don't put everything on the NAS&lt;/h2&gt;&lt;br /&gt;Keeping your album art &amp; iTunes databases on your Mac's local disk seems to be the smart option regardless of how you migrate your music (the Consolidate Library method works this way). You can't shove the whole of iTunes' working files on the NAS and expect that to be speedy - or, even worse, assume that you can share a single library between two instances of iTunes in this way. This is because iTunes continually updates its database files as it's working. &lt;br /&gt;&lt;br /&gt;&lt;h2&gt;3. Check your wireless network&lt;/h2&gt;&lt;br /&gt;The performance of your wireless network is by far the biggest factor in making iTunes not suck donkey's balls with this setup. Connected via wired Ethernet, you should find day-to-day performance (including CD ripping) pretty much on par with having the library on local disk, with maybe a second or two of lag occasionally.&lt;br /&gt;&lt;br /&gt;Over Airport, though, it's a different story. If your Airport network is not performing well - something you might not usually realise if all you ever do is access and download files from the Internet, as your Internet connection will always be much slower than the speed your wireless network ought to be capable of.&lt;br /&gt;&lt;br /&gt;When iTunes attempts to play a file, it will buffer a certain amount of the file into memory before it starts playing it, so achieving low network latency is essential for this process to appear snappy enough to not be annoying - nothing's going to irritate you more than iTunes beachballing every time it moves from track to track.&lt;br /&gt;&lt;br /&gt;Things to check:&lt;br /&gt;&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;Your wifi mode - 802.11b/g/n ? &lt;br /&gt;&lt;li&gt; Interference from nearby networks - use &lt;a href="http://www.istumbler.net/"&gt;iStumbler&lt;/a&gt; or a similar wireless network tool to see if certain channels are crowded with networks, and move your network to a less busy channel.&lt;br /&gt; &lt;li&gt;Overall signal strength - is your AEBS positioned optimally? Are all wireless clients getting a good signal? Use the statistics function of &lt;a href="http://www.apple.com/airportextreme/features/utility.html"&gt;Airport Utility&lt;/a&gt; (hidden away in the 'Advanced' tab of  'Manual Setup') to see how your Airport network is performing and be prepared to move the base station(s) around to achieve better speeds/less interference.&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;4. Airtunes bumpiness&lt;/h2&gt;&lt;br /&gt;Solving point 3 should also solve any AirTunes performance issues you might be having. AirTunes works by streaming a losslessly-encoded version of the music stream to the Airport Express base station, which in itself should not tax a modern 802.11g (or better) network but a weak signal can increase drop-outs and stuttering. By moving the AEBS a little higher and the Express a little nearer to get the best signal-to-noise ratio, I've had it working pretty seamlessly.&lt;br /&gt;&lt;br /&gt;An edge case to be aware of is if you have any music encoded in any non-iTunes native codecs - that is, any other than MP3, AIFF or AAC - it cannot be sent over AirTunes. Even through iTunes can play Ogg Vorbis, etc via Quicktime - it can't send files encoded in these formats over AirTunes, which is annoying when files such as these show up in playlists. Even more annoying is that if it's streaming to a set of remote speakers and encounters such a track, iTunes doesn't just skip it - it'll play it out loud on the local computer, whilst the remote speakers go silent! This is annoying, and I can't help wondering if it's more of a 'feature' to get you to migrate all your music into Apple's own formats rather than free, open-source codecs like Ogg Vorbis. That said, if I was that much of a militant open-sourcer I wouldn't be using iTunes in the first place, so I can't get too righteous about it.&lt;br /&gt;&lt;br /&gt;&lt;h2&gt;5. Some things are just going to take longer&lt;/h2&gt;&lt;br /&gt;Wireless just isn't as good as wired for some things. With the convenience of sending data around wirelessly comes certain trade-offs. iTunes may feel less snappy when navigating your library and jumping between songs, as it waits for the wireless disk to catch up. This will annoy you for a week or two, but then the great adaptive nature of the human brain kicks in and you'll just get used to it. &lt;br /&gt;&lt;br /&gt;Anyway, I hope that's of use to some people struggling to get this sort of setup working. It's still a little way off being the perfect wireless-music-anywhere nirvana I was gunning for, but it does feel like I've freed up my listening a bit.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-3505137042939251172?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/3505137042939251172/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2009/10/notes-on-making-itunes-play-nicely-with.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3505137042939251172'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3505137042939251172'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2009/10/notes-on-making-itunes-play-nicely-with.html' title='Notes on making iTunes play nicely with an Airport Disk and Airtunes'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-6702902597149972842</id><published>2009-01-02T17:34:00.005Z</published><updated>2009-01-02T17:58:36.152Z</updated><title type='text'>Start</title><content type='html'>Given how infrequently I bother posting here, I thought there'd at least be some amusement value at posting at the very beginning of the year. True to form, I'm already off by one day.&lt;br /&gt;&lt;br /&gt;Anyway, happy 2009. Being thousands of miles away from home gives a strong feeling of dislocation, not just physically but psychologically. I lost track of the weekdays almost immediately when we arrived, irrelevant as they are when you've got nothing to do. And the fact it's a brand new year hasn't really registered yet. 2008 was difficult in many ways, so I'm not exactly sad to see the back of it and have the chance to use the division of a new year starting to attempt to try and sort out various things.&lt;br /&gt;&lt;br /&gt;As if by chance, today marks the tenth anniversary of me starting my first professional web development job. In 1998/9, jobs that had anything to do with the internet were both rare and fuzzily defined at best - so when I landed a job as a 'Webmaster' at a forward-thinking advertising agency in Newcastle, 6 months after leaving university and kicking around in temp jobs, I was pretty excited. In retrospect, I was very lucky, in the right place at exactly the right time. To think I'd end up where I am now, doing what I'm doing, would have been certifiable insanity. &lt;br /&gt;&lt;br /&gt;So, whilst I don't exactly yearn for the days of administering hundreds of sites being served from a tired Powermac running System 7.6 on the end of a dial-back ISDN line, and building them out of handcranked HTML, &lt;a href="http://en.wikipedia.org/wiki/Lasso_programming_language"&gt;Lasso&lt;/a&gt; and &lt;a href="http://en.wikipedia.org/wiki/Filemaker_Pro"&gt;Filemaker Pro&lt;/a&gt; (shudder), I'm grateful for the in-at-the-deep-end head start I got on things in my 18 months there.&lt;br /&gt;&lt;br /&gt;We don't arrive back in the UK until Tuesday, so I've still got plenty of time to think about what happens this year. There are vague plans, and whole areas where I just haven't done the thinking yet. Meanwhile.. ten years. Blimey.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-6702902597149972842?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/6702902597149972842/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2009/01/start.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6702902597149972842'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6702902597149972842'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2009/01/start.html' title='Start'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-2839718389259341180</id><published>2008-12-21T00:07:00.004Z</published><updated>2008-12-21T00:49:51.090Z</updated><title type='text'>Far, far away</title><content type='html'>The last few days were the hardest.&lt;br /&gt;&lt;br /&gt;Never mind the months of late nights, missed deadlines, malfunctioning servers, storage constraints, crap data, uncertain roadmap, pressure, bad decisions (mostly my own), new surprises, misbehaving databases, etc etc. I work hard, I can work hard, I do work hard and I work on the kind of project that requires hard thinking, experimentation and ingenuity. So I can do all that - but once I knew that our long-since-planned break was around the corner, it got so much harder.&lt;br /&gt;&lt;br /&gt;A week or so before we left, I half-joked to everyone that the moment we arrived, I'd get ill. It was inevitable, I said - indeed, it happened last time we came to San Francisco, like clockwork. The 11 hour plane ride - the longest stretch of time I'd spent doing nothing in several months - is the cue for my body to shut down all the defences, stop fending off all the bugs and actually &lt;i&gt;get ill&lt;/i&gt;. &lt;br /&gt;&lt;br /&gt;I finished up, made sure everyone knew vaguely what they had to do in my absence, worried about minor things that hadn't quite been done but were still niggling, unsure as to whether everything we'd achieved in the run up to Christmas was enough. Couldn't stop reading emails I'd already read twice, for nuances I might have missed. Then I was told in no uncertain terms to get the fuck out the office - in a nice way.&lt;br /&gt;&lt;br /&gt;Home, pack, pizza. Sleep - fitfully. Wake, early. Rush around, ensure cat is OK, worry about cat, cab arrives. No time left.&lt;br /&gt;&lt;br /&gt;M4, Heathrow, check in. Lounge - yay! Breakfast. Departure gate - upgrade! In your face! A good omen and a surprise which made the holiday feel that little bit extra special.&lt;br /&gt;&lt;br /&gt;11 hours later, arrive. Tired, but excited. SFO, a greeting with antlers, cab to SoMa. Already, I can feel gunk building up at the back of my throat. Possibly just the air pressure or a reaction to something? No. It's a cold. The cold I've been putting off for months and months through adrenaline and exhaustion.&lt;br /&gt;&lt;br /&gt;48 hours later - better. Jetlag's hit us like a hammer but staying up as late as we could and sleeping as late as we can has seen most of that off, hopefully. So nice to be back here again. Our gracious hosts are wonderful and we've rented, by accident, the world's most enormous car to dart around in. Haven't felt like drinking much due to the tiredness but I think I'll remedy that tonight. Mini-break in Sonoma hopefully sorted. Miles away - literally- from the pushing and pulling of our normal lives.&lt;br /&gt;&lt;br /&gt;We needed this holiday and it's finally happened. Now - time to think. What's next?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-2839718389259341180?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/2839718389259341180/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/12/far-far-away.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/2839718389259341180'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/2839718389259341180'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/12/far-far-away.html' title='Far, far away'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-322946841786870265</id><published>2008-12-13T13:22:00.001Z</published><updated>2008-12-13T13:22:56.760Z</updated><title type='text'>Beautiful URLs</title><content type='html'>http://service.o2.co.uk/IQ/SRVS/CGI-BIN/WEBCGI.EXE/,/?St=413,E=0000000002116867044,K=3744,Sxi=2,question=ref(User):str(Mobile),CASE=obj(12891)&lt;br /&gt;&lt;br /&gt;Makes the heart sing, doesn't it?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-322946841786870265?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/322946841786870265/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/12/beautiful-urls.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/322946841786870265'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/322946841786870265'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/12/beautiful-urls.html' title='Beautiful URLs'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-7272741753940800520</id><published>2008-10-11T10:20:00.003+01:00</published><updated>2008-10-11T10:48:20.770+01:00</updated><title type='text'>Bright Lights</title><content type='html'>I had yesterday off work (mostly anyway) and so spent most of the day alternating between boring-but-necessary chores and catching up on shows I'd bookmarked to watch/listen to. Bliss. In the evening, I headed out for a beer - ironically with people from work, although none of whom I actually work with, so that's OK. It's a big company,  that can happen and I rather like it.&lt;br /&gt;&lt;br /&gt;On the way to the pub I get suddenly redirected by the invitation to impromptu birthday drinks in town. I'm game, so I head to Covent Garden rather than Shepherd's Bush. It's not a hard choice to make.&lt;br /&gt;&lt;br /&gt;I end up in a trendy basement lounge/bar arrangement - it's happy hour, and half full of local suits and fashionistas taking advantage of the half-price cocktails. The music's just one long anonymous boom-chk-boom affair, accurately blared out at the level at which it's impossible to have a reasonable conversation with anyone. I know a fair few people there who I've not seen in ages, and with whom I'd appreciate the chance to catch up with, but there's no chance of that. I sup a mojito, which took half an hour to procure and about three minutes to drink.&lt;br /&gt;&lt;br /&gt;T, who's 8 months pregnant, shows up with her SO, who I've not met before. She introduces me as 'the smartest guy I know'. I offer a rebuttal, offering that I'm perhaps the &lt;span style="font-style:italic;"&gt;tallest&lt;/span&gt; guy she knows. The half-joke gets lost in the din.&lt;br /&gt;&lt;br /&gt;Hotpanted girls - I don't know if there's a name for them, or what their job titles could possibly be - float around and proffer test tubes full of God-knows-what. It's too loud to find out, and anyway my carefree vodka jelly days are very much over. &lt;br /&gt;&lt;br /&gt;H and L show up, and we attempt to catch up. It's nice to see everyone but it's just not happening. Having made sure I've seen everyone for a hello, I slip quietly out and head home.&lt;br /&gt;&lt;br /&gt;I'm hungry, so I scoff the tuna salad in the fridge, and am subsequently taken over by the spirit of Peter Rabbit. Conked out on the sofa in a rum/lettuce coma, the cat sits on my head. Zzzzz.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-7272741753940800520?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/7272741753940800520/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/10/bright-lights.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/7272741753940800520'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/7272741753940800520'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/10/bright-lights.html' title='Bright Lights'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-3208522160063370953</id><published>2008-10-05T10:20:00.003+01:00</published><updated>2008-10-05T10:34:39.965+01:00</updated><title type='text'>Iterative</title><content type='html'>Well, a seven month hiatus - not bad going, really. 2008 has been the most hideously busy, stupidly packed year yet, and it's not over.&lt;br /&gt;&lt;br /&gt;Things I've been up to:&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;Designed and built a highly-parallelisable log processing engine, based on Map/Reduce principles&lt;br /&gt;&lt;li&gt;Sweated blood in the process&lt;br /&gt;&lt;li&gt;Been to York for a stag weekend, and ended up spending two nights in a dreadful 80's-themed nightclub&lt;br /&gt;&lt;li&gt;Bought a new suit that doesn't make me look or feel like Tony Blair&lt;br /&gt;&lt;li&gt;Went to Newcastle and wrote off our car&lt;br /&gt;&lt;li&gt;Went to Scarborough for a wedding&lt;br /&gt;&lt;li&gt;Bought a new car (shiny!)&lt;br /&gt;&lt;li&gt;Spent a fantastic week in the North York Moors&lt;br /&gt;&lt;li&gt;Stayed in a posh apartment complex in Leeds&lt;br /&gt;&lt;li&gt;Struggled with being afflicted with recurring chronic sinusitus&lt;br /&gt;&lt;li&gt;Drank a lot of tea/coffee&lt;br /&gt;&lt;li&gt;Bought an iPhone&lt;br /&gt;&lt;li&gt;Obtained new eyesight prescription and face furniture, which allows me to drive at night at last&lt;br /&gt;&lt;li&gt;Waved sister-in-law and boyf off to live in San Francisco&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;So, not much really.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-3208522160063370953?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/3208522160063370953/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/10/iterative.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3208522160063370953'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3208522160063370953'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/10/iterative.html' title='Iterative'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-5697655981839320975</id><published>2008-04-20T18:58:00.003+01:00</published><updated>2008-04-20T19:05:26.306+01:00</updated><title type='text'>TwitterIgnore</title><content type='html'>I've been playing with &lt;a href="http://www.greasespot.net"&gt;Greasemonkey&lt;/a&gt; a bit lately as I wanted to refresh my Javascript/DOM foo. I needed something to build, so I searched in my big red plastic bucket of irritations and knocked up a user script that lets you hide Twitter tweets from a definable list of users without actually unfollowing them - so you can selectively ignore people for periods of time without them being any the wiser - thus avoiding any potential awkwardness. Social networks are delicate things - they're made up of humans, after all.&lt;br /&gt;&lt;br /&gt;(This was inspired during SXSWi, when half my Twitter follow list went and I didn't, and the endless noise about it got quite wearing - but I didn't want to unfollow anyone as my Twitter universe is generally quite lovely and interesting).&lt;br /&gt;&lt;br /&gt;&lt;a href="http://userscripts.org/scripts/show/25365"&gt;http://userscripts.org/scripts/show/25365&lt;/a&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-5697655981839320975?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/5697655981839320975/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/04/twitterignore.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/5697655981839320975'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/5697655981839320975'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/04/twitterignore.html' title='TwitterIgnore'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-3122913300538422625</id><published>2008-03-26T12:01:00.002Z</published><updated>2008-03-26T12:05:43.701Z</updated><title type='text'>Mux it up</title><content type='html'>In common with everyone else with an internet connection this week, I heart &lt;a href="http://www.muxtape.com"&gt;Muxtape&lt;/a&gt; a lot. Simple, no-nonsense, works. &lt;a href="http://70cities.muxtape.com"&gt;Here's mine&lt;/a&gt;, although I've no idea how often I'll ever update it. Needs RSS to track changes, perhaps? Mmm. Then I could plumb it into the &lt;a href="http://www.70cities.net/uberfeed"&gt;uberfeed&lt;/a&gt; and whatnot.&lt;br /&gt;&lt;br /&gt;In other news, since VD Day passed and I shut down all the Amazon EC2 stuff, I've been mostly working, going to the Isle of Wight, drinking beer, eating nice food, hacking around with a potentially-quite-useful Twitter hack using Greasemonkey and not having my hair cut...&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-3122913300538422625?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/3122913300538422625/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/03/mux-it-up.html#comment-form' title='3 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3122913300538422625'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3122913300538422625'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/03/mux-it-up.html' title='Mux it up'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>3</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-8724927137493802011</id><published>2008-02-16T11:30:00.011Z</published><updated>2008-02-16T12:05:49.397Z</updated><title type='text'>Be My Anti-Valentine - a technical perspective</title><content type='html'>After many hours of toil, &lt;a href="http://www.meish.org"&gt;Meg&lt;/a&gt; and myself opened the doors to this year's &lt;a href="http://www.meish.org/vd"&gt;By My Anti-Valentine&lt;/a&gt; site a couple of weeks ago. Redesigned, revamped, relaunched with the hope that it won't fall over under the strain of the traffic it generates on Valentine's Day itself, as it has always done previously. &lt;a href="http://www.meish.org/vd"&gt;&lt;img src="/vdthumb.png" class="postimg" /&gt;&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Given that my involvement in the project is one of technical architect, developer and sysadmin (Meg is the ideas, UX and design brains of the effort), it's probably worth me explaining a bit about the technology that drives the site and the problems that we came across last year and have tried to solve (or at least mitigate) this year.&lt;br /&gt;&lt;br /&gt;By 2007, Meg had been running the VD cards site seasonally for six years, driven by a variety of successive flat-file systems and ultimately a generic PHP-based freeware card sending application (&lt;a href="http://www.sendcard.org/"&gt;Sendcard&lt;/a&gt;, I think) that just about did the job but frequently caused her server to go belly-up once the traffic to the site reached its inevitable peak on the 14th February.&lt;br /&gt;&lt;br /&gt;The problem was that the "choose card-send email to recipient" workflow was completely synchronous and linear within the application, so the emails were dispatched to the outgoing email server within the same web-spawned PHP Apache process. Naturally, once a few hundred people at a time were hitting the 'Send Card' button, the host's SMTP service would run out available connections and stop responding. Also, PHP 4's rather, ahem, unpredictable DB connection handling under load would generally explode along similar lines. Cue lots of server errors and general mayhem as the whole thing fell apart.&lt;br /&gt;&lt;br /&gt;So, when I stepped in last year and volunteered to make the problems go away with a bespoke web app written in &lt;a href="http://www.perl.com"&gt;Perl&lt;/a&gt; to suit Meg's desired functionality, I made a few sensible design decisions. Over the years I've had to deal with my fair share of scaling problems and integration issues, so I built in a few tricks of the trade.&lt;br /&gt;&lt;br /&gt;As it turned out,  the site worked nicely for the few weeks before the 14th of February.. until it didn't. As it turned out, the traffic the site got was so enourmous that even moving it to its own dedicated, beefy server (kudos to &lt;a href="http://www.pair.com"&gt;Pair&lt;/a&gt;, Meg's hosting people, for being extraordinarily quick to do this) couldn't make it cope. Even extensive caching couldn't save the server from falling over.&lt;br /&gt;&lt;br /&gt;So for 2008, whilst reconsidering our options, I decided to give &lt;a href="http://www.amazon.com/b/ref=sc_fe_l_2?ie=UTF8&amp;node=201590011&amp;no=3435361"&gt;Amazon EC2&lt;/a&gt; - their Xen virtualisation cloud - a whirl. I'd heard plenty about it and had tinkered with virtualisation at work, but never gone the whole hog, and the cynic in me didn't buy the spiel that spinning up working application instances was as easy as a web service call.. but yes, by gum, it works a treat. Initial setup is a bit fiddly, but tools like the &lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=609"&gt;EC2 Firefox UI&lt;/a&gt; and &lt;a href="https://addons.mozilla.org/en-US/firefox/addon/3247"&gt;S3Fox&lt;/a&gt; are a godsend when you're trying to do stuff quickly.&lt;br /&gt;&lt;br /&gt;The site runs on a group of replicated server instances running a heavily customised version of &lt;a href="http://developer.amazonwebservices.com/connect/entry.jspa?externalID=1065"&gt;Ubuntu 7.10 Gutsy&lt;/a&gt;, all identical with the exception of one (which I call the 'master', though not a Doctor Who homage) that also runs &lt;a href="http://www.mysql.com"&gt;MySQL&lt;/a&gt; and the card-sending backend app. All the other instances connect to the master database when creating a new card or retrieving one for display. This is a pretty naïve architecture, but it works as the percentage of card senders against the overall site traffic is pretty small (less than 7% of visitors choose to send a card). Therefore MySQL isn't doing very much at all, and I didn't need to spin up a separate MySQL server instance to cope, which reduced the overall cost and was one less server instance to manage.&lt;br /&gt;The rest of the application stack is fairly standard - Apache 2, &lt;a href="http://www.fastcgi.com"&gt;FastCGI&lt;/a&gt;, Perl.&lt;br /&gt;&lt;br /&gt;So what happened on the day itself? Well, we had a *tiny* bit of a wobble at around 13:00 GMT, when the east coast of America woke up (55% of users come from the USA), but I coped by spinning up another server instance and offloading some of the remaining site furniture onto &lt;a href="http://aws.amazon.com/s3"&gt;Amazon S3&lt;/a&gt; with some 302 redirects - which made a huge difference. Once the traffic started to drop off on the 15th, I was able to decommission three instances and balance the load across the remaining two, which coped admirably. &lt;br /&gt;&lt;br /&gt;&lt;b&gt;Paul's Top &lt;i&gt;N&lt;/i&gt; Web Scalability Tips&lt;/b&gt;&lt;br /&gt;&lt;ul&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Never maintain state on your web server&lt;/b&gt;. The moment you have to keep a user on a specific application instance for their state to be persisted, you lose all hope of ever scaling the sharp end horizontally.  Keep state in your database (or on a shared filesystem if you're a masochist).&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Decouple the web interface from backend systems&lt;/b&gt;. You don't send emails straight from a web-spawned process.  You just don't. In fact, you shouldn't connect to anything other than a database server. Email servers are strange, unpredictable beasts and they generally need to be handled with care. Don't expose one to a process pipeline that you can't explicitly control (namely, a public web server!).&lt;br /&gt;&lt;br /&gt;So, when a card instance is 'created'  by a user on the VD site, an email object is created and stashed into a database table that effectively acts as a queue. This gets polled by a cron job at regular intervals and the emails get despatched in series. This means the email server is only ever under a constant load, which can be managed depending on what sort of performance you need.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Cache everything you can cache&lt;/b&gt;. If a page never changes, save it out to a cache directory on your filesystem and have the web server serve that instead of building a dynamic page on every hit. Thankfully the VD site only &lt;i&gt;really&lt;/i&gt; needs to invoke the application when someone sends a card or retrieves one from a link they've been sent, so I took advantage of that and had easy cache-building methods that I could call to generate flat HTML pages. ('Proper' setups have caching loadbalancers like &lt;a href="http://www.zeus.com/products/zxtm/"&gt;ZXTMs&lt;/a&gt; in front of their servers that can do this transparently, but of course I don't have that luxury and was trying to KISS). Which all leads me on to...&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;mod_rewrite is your friend&lt;/b&gt;. I can't rave about mod_rewrite enough. It's easy to get scared by URL rewriting if you're not comfortable with regexes and the general HTTP request handling mechanism in Apache, but it's actually incredibly simple to use with a bit of messing around and most modern web frameworks rely on some form of rewrite engine. The ability to abstract your URL scheme from the physical filesystem brings endless possibilities.&lt;br /&gt;&lt;br /&gt;The VD site uses it not only to map its tidy URLs to the application endpoint (what us old-schoolers still call a CGI script), but to rewrite certain URLs to serve flat files from the cache directory but keeping the external URL the same, so turning it off has no effect on the end user. Also, with the flick of a hash character in the global .htaccess file, I can have the all the bandwidth-heavy images served from a CDN - Amazon S3 in this case - rather than the app servers.&lt;/li&gt;&lt;br /&gt;&lt;br /&gt;&lt;li&gt;&lt;b&gt;Always use INSERT DELAYED when you don't need the row back&lt;/b&gt; - Class::DBI, the Perl ORM engine the VD site uses, isn't very good at this, so I had to roll my own methods here, but it was worthwhile - you save a few vital queries when you're stashing your state away and trying to get back to completing the user's request as quickly as possible.&lt;br /&gt;&lt;br /&gt; In retrospect I wouldn't have used Class::DBI in the first place, but that's another story..&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;Phew! That's it over for another year, then. There's a whole bunch of other stuff I could go into (the joys of dealing with Spamcop..), but that's the story thus far. I'm chuffed at having got through a Valentine's Day without having to watch a single server helplessly grind to a halt under the weight of the traffic burst that a site like BMAV inevitably generates, and incredibly impressed that Amazon EC2 makes virtualisation accessible and affordable for projects like this. EC2 FTW!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-8724927137493802011?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/8724927137493802011/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/02/be-my-anti-valentine-technical.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8724927137493802011'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8724927137493802011'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/02/be-my-anti-valentine-technical.html' title='Be My Anti-Valentine - a technical perspective'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-8606156090210279018</id><published>2008-01-20T23:06:00.000Z</published><updated>2008-01-20T23:09:08.503Z</updated><title type='text'>Sad news</title><content type='html'>&lt;a href="http://www.thisisthenortheast.co.uk/display.var.1979610.0.curry_hell_man_dies.php"&gt;Curry Hell man dies&lt;/a&gt;&lt;br /&gt;&lt;br /&gt;Tragic news. I had the honour of working closely with Mr Latif back in the day when I was a jack-of-all-trades web monkey, and maintained the Rupali and Curry Hell websites. I can honestly say I've never met a man more dedicated to the twin pursuits of selling incredibly hot curry to pissed-up Geordies, and honest-to-goodness self-publicity. &lt;br /&gt;&lt;br /&gt;A man so generous, he thought nothing of ordering me a free cab back to the office when a lunch-hour visit turned into a three-hour curry/booze fest - whereupon I fell asleep in the sofa in reception and got woken up by the marketing director of the coincidentally recently-deceased Pennine Windows, who was coming in expecting to update his web site. &lt;br /&gt;&lt;br /&gt;He'll be sorely missed. Particularly by anyone who had a lamb phaal at his restaurant in recent days. &lt;br /&gt;&lt;br /&gt;RIP Mr Latif. Off to his very own Curry Heaven, festooned with party hats and Cobra beer.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-8606156090210279018?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/8606156090210279018/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/01/sad-news.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8606156090210279018'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8606156090210279018'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/01/sad-news.html' title='Sad news'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-8170119309332221752</id><published>2008-01-13T10:02:00.000Z</published><updated>2008-01-13T11:12:07.768Z</updated><title type='text'>Gamed</title><content type='html'>I barely ever play computer games. Consoles, whathaveyou - I've just never had much of an interest in any of it. Back in the 80's, when I was growing up and spent hours slaving over a hot ZX Spectrum, I was far more interested in learning how to write stuff and make it do interesting things than spending hours killing aliens or whathaveyou.&lt;br /&gt;&lt;br /&gt;The games I liked then, and still do to this day, are the really simple platform/puzzle type ones. Lunar Jetman, Spellbound, Jet Set Willy, Technician Ted, the Dizzy games, Starquake. &lt;img src="http://www.crashonline.org.uk/57/images/starquak.gif" class="postimg"/ alt="Starquake screenshot"&gt; My later Atari ST, primarily a games machine much like the Amiga, spend most of its life playing simple platformers. When Driller came out and pioneered the immersive 3D worlds that everyone's used to now, I got bored pretty quickly. Later, when I had a PC, stuff like Rise of the Triads, and Sin gave way to pretty brain-dead stuff like Carmageddon. And even then only briefly. I get bored with games so easily.&lt;br /&gt;&lt;br /&gt;In fact, in those rare times I find myself in a gamey mood, I don't reach for my non-existent PS2 or Wii and fire up World of Timewasting or whatever - I use a Spectrum emulator and play Starquake, as I have been for over 20 years (I've only finished it twice - I find the gameplay fun, not the end goal). I just don't &lt;i&gt;get&lt;/i&gt; games, really. I just don't care.&lt;br /&gt;&lt;br /&gt;Maybe it's the same reason I barely read any fiction or watch any films? Just writing that down makes me sound like some uncultured idiot, I know - but the truth is I get enough from current affairs, technology, comedy and music to keep me occupied for a lifetime and I sort of marvel at those who find the time to glue themselves to an Xbox 360 for hours on end or watch tons of films/boxsets. I can only conclude that I got short-changed somewhere along the line and everyone else in the world gets a thirty-hour day.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-8170119309332221752?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/8170119309332221752/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/01/gamed.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8170119309332221752'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/8170119309332221752'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/01/gamed.html' title='Gamed'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-468654868880347013</id><published>2008-01-01T23:45:00.000Z</published><updated>2008-01-02T12:16:37.373Z</updated><title type='text'>HNY</title><content type='html'>Happy new year! Just when I was finally getting into the swing of 2007, the damn thing goes and ends. &lt;br /&gt;&lt;br /&gt;Highlights of 2007 included:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Going to San Francisco and discovering Northern California&lt;/li&gt;&lt;li&gt;Doing some interesting stuff at work after a period of uncertainty&lt;/li&gt;&lt;li&gt;Snooker: seeing the Masters and the World Championships in Sheffield&lt;/li&gt;&lt;li&gt;Gadgets: new Macbook in Feb, and iPod Touch in November&lt;/li&gt;&lt;li&gt;Turning thirty (am fine with it now, in fact I really quite like it)&lt;/li&gt;&lt;li&gt;Spending lots of time with M and P and other nice people&lt;/li&gt;&lt;li&gt;Listening to the Beatles a lot&lt;/li&gt;&lt;br /&gt;&lt;/ul&gt;&lt;br /&gt;Lowlights included:&lt;br /&gt;&lt;ul&gt;&lt;li&gt;Project getting canned&lt;/li&gt;&lt;li&gt;Subsequent project floundering and getting canned&lt;/li&gt;&lt;li&gt;Not seeing my friends from the North nearly enough&lt;/li&gt;&lt;li&gt;Various worries, stresses and strains I couldn't do anything/much about&lt;/li&gt;&lt;li&gt;Being afflicted with weird sinusy problems as well as having a really crap hayfever year&lt;/li&gt;&lt;/ul&gt;&lt;br /&gt;&lt;br /&gt;2008? Changes afoot... hopefully.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-468654868880347013?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/468654868880347013/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2008/01/hny.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/468654868880347013'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/468654868880347013'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2008/01/hny.html' title='HNY'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-1652983502029213167</id><published>2007-12-23T23:20:00.000Z</published><updated>2007-12-25T12:19:44.108Z</updated><title type='text'></title><content type='html'>Finally, now I've reached the correct side of the Christmas holidays, I can relax a bit. The last few weeks have been intense really took it out of me. The physical manifestations of this have been interesting - big bags under my eyes, not having a haircut for four months (big mistake - I looked scruffy, but not the 'good' scruffy I was half-aiming for - just 'bloody awful' scruffy), etc.&lt;br /&gt;&lt;br /&gt;Anyway, the new version of the thing I work on launched and it's all gone very well. Now to rest up for a bit and do very little for a bit, except eat cheese, drink wine and generally expand. Marvellous.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-1652983502029213167?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/1652983502029213167/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/12/finally-now-ive-reached-correct-side-of.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1652983502029213167'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1652983502029213167'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/12/finally-now-ive-reached-correct-side-of.html' title=''/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-6690093755501569725</id><published>2007-12-20T14:57:00.000Z</published><updated>2007-12-20T14:58:45.918Z</updated><title type='text'>It's a test.</title><content type='html'>Test.&lt;br /&gt;&lt;embed style="width:512px; height:323px;" id="bbc_emp" type="application/x-shockwave-flash" src="http://www.bbc.co.uk/iplayer/emp/flash/iplayer-external.swf?config=http%3A%2F%2Fwww.bbc.co.uk%2Fiplayer%2Femp%2Fxml%2Fconfig.xml&amp;metafile=http%3A%2F%2Fwww.bbc.co.uk%2Fiplayer%2Fmetafiles%2Fepisode%2Fb008kgt9.xml" flashvars=""&gt;&lt;/embed&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-6690093755501569725?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/6690093755501569725/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/12/its-test.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6690093755501569725'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6690093755501569725'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/12/its-test.html' title='It&apos;s a test.'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-6436110664057655617</id><published>2007-12-16T23:38:00.000Z</published><updated>2007-12-16T23:50:48.481Z</updated><title type='text'>Dear Santa...</title><content type='html'>I want..&lt;br /&gt;&lt;ol&gt;&lt;br /&gt;&lt;li&gt;To not think about work for a few days on the trot&lt;br /&gt;&lt;li&gt;Much less inadvertent exposure to Russell Brand/Winehouse/Jo Brand/Spice 'Girls'&lt;br /&gt;&lt;li&gt;Less worry&lt;br /&gt;&lt;li&gt;Beatles remasters&lt;br /&gt;&lt;li&gt;To spend less time on buses&lt;br /&gt;&lt;li&gt;Last.fm to work with my iPod Touch without having to jailbreak the thing&lt;br /&gt;&lt;li&gt;Spend more time hanging out with M and P&lt;br /&gt;&lt;li&gt;To see my friends more&lt;br /&gt;&lt;li&gt;More sleep&lt;br /&gt;&lt;li&gt;A haircut&lt;br /&gt;&lt;li&gt;More coffee&lt;br /&gt;&lt;li&gt;More music&lt;br /&gt;&lt;li&gt;A decent suit that doesn't make me look like a Suit&lt;br /&gt;&lt;li&gt;A greater variety of lunch options&lt;br /&gt;&lt;li&gt;To learn the banjo&lt;br /&gt;&lt;li&gt;A house&lt;br /&gt;&lt;li&gt;World peace&lt;br /&gt;&lt;/ol&gt;&lt;br /&gt;&lt;br /&gt;Kthxbai!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-6436110664057655617?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/6436110664057655617/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/12/dear-santa.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6436110664057655617'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/6436110664057655617'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/12/dear-santa.html' title='Dear Santa...'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-1962707574512505548</id><published>2007-12-10T08:41:00.000Z</published><updated>2007-12-10T08:54:36.361Z</updated><title type='text'>Ding dong</title><content type='html'>Despite being one third of the way into December, it's only just dawned on me that it's Christmas very soon. In, like, 15 days. All the music channels on telly are rotating their crappy Christmas songs playlists - which, as they've got so much airtime to fill, are at least throwing up some amusingly bad, previously forgotten festive tunes. &lt;a href="http://www.youtube.com/watch?v=0auCDOERZyE"&gt;Paul McCartney and the fucking Frog Chorus&lt;/a&gt;, anyone? I saw it yesterday afternoon for the first time in 25 years and remembered exactly why it's never included on cheapo Chrimbo compilation CDs - even in a genre so pant-wettingly mawkish and feeble as &lt;i&gt;christmas singles&lt;/i&gt;, it has a level of awfulness that stands proudly alone. Shudder. Next to this, Cliff Richard's seasonal efforts are verging on a punk ethic.&lt;br /&gt;&lt;br /&gt;Anyway, Christmas. Shit! I've barely done a thing about it, what with one thing and another. Must knuckle down and get organising. Unfortunately, this week is already stacked full of Christmas parties and a slew of work to finish off. Who in the name of God decided to put our works Xmas party on the night before a big deployment? (Maybe it's the other way around - even so, someone needs a poke in the eye with a sharp stick).&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-1962707574512505548?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/1962707574512505548/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/12/ding-dong.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1962707574512505548'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1962707574512505548'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/12/ding-dong.html' title='Ding dong'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-1192697152460581857</id><published>2007-12-05T21:29:00.000Z</published><updated>2007-12-05T21:42:05.842Z</updated><title type='text'>I really suck at blogging</title><content type='html'>Let's face it, it's just not happening, is it? I still might turn this into a link/video/mp3log though. I do plenty else around the web; I just don't do much of the whole writing thing. Too many people do it better than I.&lt;br /&gt;&lt;br /&gt;Of various things of disinterest that've been happening lately, I bought a new iPod the other day. One of those &lt;a href="http://www.apple.com/ipodtouch/"&gt;touchy ones&lt;/a&gt; in fact, and it's very nice. Twice the space of me old Nano, and video playback  - all very nice, but those features pale into comparison compared to the multitouch interface. I'm no feverent Apple fanboy, but my word, it's a thing of beauty to use. Coincidentally, I got a new mobile recently too (a &lt;a href="http://www.nokia.co.uk/A4425421"&gt;Nokia 6500&lt;/a&gt;) with a view to using that as a bit of a mobile video playing doodah - but despite it having the technical chops to do so, the interface is so clunky and awkward that I completely gave up after about ten minutes. Now I can catch up with the new series of &lt;a href="http://www.bbc.co.uk/comedy/mightyboosh/"&gt;the Boosh&lt;/a&gt; on the bus home from work. Marvellous. The future's arrived!&lt;br /&gt;&lt;br /&gt;However, despite what Steve Jobs and other Californians might think, ubiquitous open wifi is still rather a rarity. Even in my office, where there's dozens of sniffable networks, only one is unencrypted and even then it won't give me an IP address, most likely being MAC address-restricted. And I spend half of my life on buses anyway. So for that, my phone still trumps (and actually has a fairly decent browser to be getting on with).&lt;br /&gt;&lt;br /&gt;That's about it, though. Other than that; work, sleep. Lie around. Repeat.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-1192697152460581857?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/1192697152460581857/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/12/i-really-suck-at-blogging.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1192697152460581857'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/1192697152460581857'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/12/i-really-suck-at-blogging.html' title='I really suck at blogging'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-2670330332490123174</id><published>2007-09-29T10:32:00.000+01:00</published><updated>2007-09-29T10:37:09.080+01:00</updated><title type='text'></title><content type='html'>I've been on holiday!&lt;br /&gt;&lt;br /&gt;Yes. Hence my silence recently. There's been a much-needed break in the wilderness, away from all things technological and busy. It's been wonderful. Now I sit in a plush hotel in Leeds, soaking up the free wi-fi as we made the sensible decision to break the journey back to London in two and meet up with some old friends - which was wonderful. I'm full of eggs benedict, good coffee and Frosties. Now it's time to hit the road and get back home. &lt;br /&gt;&lt;br /&gt;I'm so behind on everything it's pointless trying to catch up on it all. I even gave up halfway through reading all my usual webcomics; somehow, daily content doesn't work so well when trying to read a lot of it in one go.. maybe I need to look at one of those webcomic reading apps I hear people talking about.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-2670330332490123174?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/2670330332490123174/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/09/ive-been-on-holiday-yes.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/2670330332490123174'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/2670330332490123174'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/09/ive-been-on-holiday-yes.html' title=''/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-3782227239556160722</id><published>2007-09-15T11:50:00.000+01:00</published><updated>2007-09-15T11:53:17.947+01:00</updated><title type='text'>Applause?</title><content type='html'>From an email I just received inviting me to apply for tickets to bunch of new TV shows:&lt;br /&gt;&lt;br /&gt;&lt;blockquote&gt;&lt;br /&gt;"***COMING SOON*** THE KATIE PRICE &amp; PETER ANDRE CHAT SHOW"&lt;br /&gt;&lt;/blockquote&gt;&lt;br /&gt;&lt;br /&gt;Arrrrrrgh! The death of reason is finally upon us. Make it stop!&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-3782227239556160722?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/3782227239556160722/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/09/applause.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3782227239556160722'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/3782227239556160722'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/09/applause.html' title='Applause?'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-4577548399108778839</id><published>2007-09-13T09:10:00.000+01:00</published><updated>2007-09-13T10:58:51.028+01:00</updated><title type='text'></title><content type='html'>So the Adblock saga that's been rumbling along for a while &lt;a href="http://www.theregister.co.uk/2007/09/12/firefox_google_marriage_threatened_by_adblock_plus/"&gt;is finally reaching a peak&lt;/a&gt;, with people cottoning on to the fact that it's potentially (in theory) damaging to the very revenue streams that make the Web 2.0 world so tasty, supple and pliant. So much so that you've even got mechanisms for sites to &lt;a href="http://www.whyfirefoxisblocked.com/index1.php"&gt;block Adblock-enabled Firefox browsers&lt;/a&gt;. &lt;br /&gt;&lt;br /&gt;This is a bit nuts, no? To me it smacks of classic internet kneejerkery. Where's the evidence that all these bottom lines are being eroded? There isn't any - this is all supposition and FUD at the moment. &lt;br /&gt;&lt;br /&gt;Adblock, and browser plugins like it, came about because web advertising had become so intrusive, disruptive and unruly that the hacker community came up with a solution. You very rarely hear anyone bitching about Google Adsense ads, as they're both textual and usefully contextual, and anyone who wants to argue that 200Kb Flash movies choking my bandwidth and sprouting both alongside, above and directly over the content users are trying to access &lt;em&gt;is in any way a good idea&lt;/em&gt; needs their head thoroughly scrutinised. The very existence of adblocking tools should be sending a very clear message to web advertising companies - we don't want to be beaten over the head with your shit. Plus, do you really want to be engaging in a incremental bunfight with the hacker community, either side progressively defeating the other's measures? Is it really a good use of everyone's time?&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-4577548399108778839?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/4577548399108778839/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/09/so-adblock-saga-thats-been-rumbling.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/4577548399108778839'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/4577548399108778839'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/09/so-adblock-saga-thats-been-rumbling.html' title=''/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-9118995711430042428</id><published>2007-09-11T23:16:00.000+01:00</published><updated>2007-09-13T12:02:36.674+01:00</updated><title type='text'>Ouch</title><content type='html'>Being stung on the lip by a wasp &lt;em&gt;fucking hurts&lt;/em&gt;. I know this, because it happened to me this evening.&lt;br /&gt;&lt;br /&gt;Thank $deity for the Internets though, because hundreds of unverified old-wives' remedies were merely a judicious Google away. It's now much better, thanks - lemon juice really is the business for just about every random problem or malady that can curse your life. &lt;br /&gt;&lt;br /&gt;Owwwww.&lt;br /&gt;&lt;br /&gt;I'm going to try and make more of an effort to post here, but I don't think one of those '10 ways to get more stuff done NOW!' blogs is the way to go (not least because I'm fundamentally very lazy) but I'm a senior software engineer and I ought really to have more to say about what I've encountered over the years working on the internets than I have in the past.&lt;br /&gt;&lt;br /&gt;Then again, there's no shortage of self-appointed pundits willing to spout grindingly obvious platitudes about software and software engineering - why should I add myself to their ranks? Can I add anything of worth? Only time will tell.&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-9118995711430042428?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/9118995711430042428/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/09/ouch.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/9118995711430042428'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/9118995711430042428'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/09/ouch.html' title='Ouch'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry><entry><id>tag:blogger.com,1999:blog-1715561206157275601.post-9107028783880791655</id><published>2007-08-05T08:47:00.001+01:00</published><updated>2007-08-05T08:54:37.530+01:00</updated><title type='text'>What happened?</title><content type='html'>Wow, I fail at blogging.&lt;br /&gt;&lt;br /&gt;I've been busy. New jobs have that effect.&lt;br /&gt;&lt;br /&gt;Meanwhile, here's some Neil Innes:&lt;br /&gt;&lt;br /&gt;&lt;object width="425" height="350"&gt;&lt;param name="movie" value="http://www.youtube.com/v/RFoTlwnWuRw"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/RFoTlwnWuRw" type="application/x-shockwave-flash" wmode="transparent" width="425" height="350"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;div class="blogger-post-footer"&gt;&lt;img width='1' height='1' src='https://blogger.googleusercontent.com/tracker/1715561206157275601-9107028783880791655?l=www.70cities.net%2Fblog%2Findex.html' alt='' /&gt;&lt;/div&gt;</content><link rel='replies' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/9107028783880791655/comments/default' title='Post Comments'/><link rel='replies' type='text/html' href='http://www.70cities.net/blog/2007/08/what-happened.html#comment-form' title='0 Comments'/><link rel='edit' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/9107028783880791655'/><link rel='self' type='application/atom+xml' href='http://www.blogger.com/feeds/1715561206157275601/posts/default/9107028783880791655'/><link rel='alternate' type='text/html' href='http://www.70cities.net/blog/2007/08/what-happened.html' title='What happened?'/><author><name>Paul</name><email>noreply@blogger.com</email><gd:extendedProperty xmlns:gd='http://schemas.google.com/g/2005' name='OpenSocialUserId' value='13502873177507163177'/></author><thr:total xmlns:thr='http://purl.org/syndication/thread/1.0'>0</thr:total></entry></feed>