<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	xmlns:series="http://unfoldingneurons.com/"
	>

<channel>
	<title>Tom Gidden</title>
	<atom:link href="http://gidden.net/tom/feed/" rel="self" type="application/rss+xml" />
	<link>http://gidden.net/tom</link>
	<description></description>
	<lastBuildDate>Fri, 02 Jul 2010 13:00:07 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1-alpha-15359</generator>
		<item>
		<title>Leaving O2 for... um... Not sure yet. (Updated)</title>
		<link>http://gidden.net/tom/2010/07/01/leaving-o2-for-um-not-sure-yet/</link>
		<comments>http://gidden.net/tom/2010/07/01/leaving-o2-for-um-not-sure-yet/#comments</comments>
		<pubDate>Thu, 01 Jul 2010 18:40:08 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[giffgaff]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[iphone4]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[orange]]></category>
		<category><![CDATA[tariff]]></category>
		<category><![CDATA[three]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=95</guid>
		<description><![CDATA[It's been almost two years since I wrote the last installment of this epic journey.  I've practically ceased blogging in favour of tweeting, but I do think it's worth an update now. After two years with the iPhone 3G on O2, I'm almost certainly going to switch... but I'm not sure who to go to yet, though.

Overall, I was impressed by O2's service. Their customer service was always very good, and their web interface quite functional. On both counts, I would rate them higher than both Three and Orange.  I'm less impressed with their actual network service quality, both for talk and data... which is a bit of a problem, considering that's the whole point.  Oddly, it's not their coverage I have a problem with, but the infrastructure:  data speed on the iPhone is woefully slow and variable, and I've had more than a few dropped calls.  In fact, one weekend in May, the net was down completely for a few hours.
So, then comes the iPhone 4.
As an iPhone developer (plug: Dingbats for iPhone) it's actually better to have the slowest and crappest, otherwise I wouldn't know if my software runs like a dog -- if at all -- for some of my customers.  As a user, however, I was desperate to get off my two-year-old iPhone 3G and onto something a bit better. It also gives me a chance to bring Dingbats up-to-date and get a combined iPad/iPhone 4 update written (watch this space...)
Anyway, as I never upgraded to the 3GS, I've long since completed my 18-month sentence on O2's tariff, and switched down to Simplicity for iPhone (the lower-rate SIM-only package) back in January, so there's no real reason to stay with O2.  However, the question is, who to go for?  As my previous blog posts show, I've tried Orange and Three (although not with data service, and not recently), but not T-mobile, Vodafone or any of the virtual providers.
By now, we're talking mid-June. O2 have announced some of their tariffs, but notably NOT the handset prices.  Meanwhile, the other networks are still fixed in a "Coming Soon" funk.  So, for the time being I extrapolate the US pricing to gauge whether Apple are going to charge a premium on the iPhone 4 (unlikely at this point), and then assume the UK nets will keep roughly the same pricing, but maybe with a bit of an increase just for the hell of it.
On the morning of June 15th, my long-suffering client successfully puts in a pre-order for me for a SIM-less Apple iPhone 4.  This seems like the best bet, and even if I were to go back to a subsidised contract, we could still sell the unopened SIM-less phone for a profit.
Plugging the numbers, it appeared that the networks add, on average, between £15 and £20 a month onto the tariff to subsidise the phone.  This is borne out when O2 announce that existing customers still under contract can buy out for £20/month of remaining contract.  There's nothing magical about this number: it's just O2 wanting to break even on the phone subsidy.  When the calculations are done, buying the phone outright and getting a SIM-only plan appeared to be the same cost as a contract, but with some added advantages, especially when it comes to upgrading to "iPhone 5" in twelve months' time.  In particular, the O2 12 month Simplicity for iPhone offer seems economically the best deal.  Of course, this is still assuming the pricing stays the same.
This is also about the time the networks start talking about data capping.  A quick calculation based on data from O2's site shows that I use, on average, only 30MB a month, with an all-time high of 60MB one month.  Even more notably, I'm barely touching the inclusive minutes, as I tend to receive calls rather than make them.
However, the data calculation has to be taken with a fairly massive pinch of salt:  I believe I would use the data service more if it wasn't so damn slow.  In addition, the multitasking features of iOS4 give the phone the ability to draw a steady stream of data all the time.  Even so, if I multiply up my predicted data usage by a factor of ten, I'm almost always within the proposed limits.
I also notice a neat little loophole:  existing contracts would remain uncapped, although an upgrade triggers a new contract under the new terms.  However, if the phone is purchased outright via Apple, for example, the existing old contract can be continued.  So, if I were prepared to stump up £600 and remain with O2, I could remain uncapped.  However, O2 still have a less-explicit cap on their data service anyway:  it's so damn slow, I just don't have the patience to use more than 500MB a month anyway!
Finally, the tariffs start trickling out.  O2 are first with their full pricing, followed by Orange and the others.  Three are notably coy about their offering... as it turns out, right up until the morning of the release.
Anyway, it turns out the iPhone 4 hardware is marginally more expensive than the 3GS, and the tariffs are a little more expensive.  This is not wholly unexpected.  However, what is less obvious is that they've altered the balance slightly, and there is now a small benefit to getting the phone under contract rather than SIM-only, but it's still not a huge amount of money.  SIM-only also gives the freedom to change networks when you decide they really do suck too much.
By now, I've also decided that Pay-As-You-Go is by far the most economic deal for me.  This is fairly scary, as I've been on contract with one network or another continuously (and overlapping) with the same number since 1996.  Well, almost the same number:  they inserted a '7' into the area code a while back.  PAYG has always been the less desirable option for me.  However, looking at the tariffs now, I'm looking at a potential decrease of my bills from the £30/month of yesteryear and the £20/month of Simplicity for iPhone, down to something in the region of £5-£10/month on PAYG, no matter which network I go for.
Bugger the contract, then!
Still no idea of which network to go for, though.
Tesco have an interesting deal, but I note they're a virtual net served by O2, so presumably would have the same network quality issues.
T-Mobile and Orange are merging, and by all accounts, their merged 3G network will be epic. However, Orange's tariffs still aren't fully released when it comes to PAYG, and are a cryptic menagerie of combinations. It does look like "Racoon" might be the best choice for me, but I have a lingering feeling that the guy who came up with the "Rabbit" branding for what was to evolve into Orange is still stuck in a basement in Orange HQ somewhere, and has set up these tariff names as a futile call for help.
GiffGaff looks just about perfect for me, but again, they're on the O2 network.  If Orange, T-mobile or Three launched a GiffGaff clone, I'd be extremely interested.
It then occurs to me that it doesn't actually matter!  I've got a SIM-free phone coming, and I'm not under contract!  Apart from the fact that I'll have to make a decision eventually just to choose where to transfer my number, I can get the PAYG SIMs from all the networks and give them a go for a while.
I do make a pact with myself though:  whichever network gets me a micro-SIM sooner gets extra points.
Anyway, on the lead-up to June 24th, things still aren't clear:  the only network that's articulating stuff clearly is O2, and even they're being quite cagey.  Orange have changed their recorded message on the sales line to basically say "If you're calling about iPhone 4, sod off:  we don't know anything more than you do."  In fact, that might have been the exact wording, come to think of it.  Three's blog is still packed with "Coming Soon... honest!" style blogs.  I'm ignoring Vodafone though, as for some reason, I just can't quite cope with the idea of being a Vodafone customer.
What's absolutely shocking is that Apple managed to pre-sell 600,000 SIM-free iPhones in one day to the kind of people willing to lay down £600 on a product they haven't even seen yet, and yet the networks don't seem to be scrambling over each other to get a micro-SIM into these customers' hands!  I mean, if I were running this thing, I'd be lobbying Apple to include a free micro-SIM in every single iPhone box, just on the off-chance that some of these affluent customers would consider switching to my network!
Instead, there's no information; queries are met with silence, or unhelpful robotic responses; and there's no sign of micro-SIMs anywhere.  There's misinformation too:  some customers are allegedly told by Three, for example, that the iPhone 4 doesn't even use micro-SIMs.
Anyway, O2 being the only network to have their shit together to some extent, I figure I should at least get a micro-SIM before launch so my new iPhone 4 isn't an expensive (but shiny) paperweight.  I'm not happy with cutting my existing SIM down to size, as firstly, micro-SIMs aren't actually 100% the same as normal SIMs, as the newer micro-SIMs have some extra features; and secondly, because I want this done properly, damnit.
I contact O2 on the Friday before.  Micro-SIMs are apparently available to SIM-free iPhone orderers from the O2 shops on Monday, as long as they bring ID, confirmation, blah blah blah... still strange that they're not handed out like lollipops, considering we're talking about a £0.20 piece of plastic that represents at least a few hundred pounds of potential revenue.  Anyway, since the nearest O2 store is ten miles away, I ask O2 if one can be sent out.  Apparently not.  Oh well, one more nail in O2's coffin for me.
However, a few days later, on the Sunday before launch, I happen to be going to the Apple Store getting my MacBook Pro fixed, and I walk past the O2 store.  The sales guy says micro-SIMs won't be available until launch, at which point I show him the O2 website.  He pops into the back room to check and comes back with a micro-SIM.  Turns out, he was wrong and they're available from tomorrow, as the website said, but he'd save me a journey back there.  Nice!
So, I've now got a micro-SIM, albeit for the network I don't want to continue with.  Oh well, at least the paperweight scenario isn't going to happen.
Thursday.  Launch day.  My client starts queuing with his son at Bluewater at the crack of dawn.  As he wants an upgrade, he couldn't pre-order.  His son, however, did manage to reserve one at the Apple Store, but Dad missed the boat.  Anyway, his story is quite epic and includes what I believe is the first case of using a FourSquare Mayorship to bully a store manager.  That's another story though.
My phone arrives via UPS around lunchtime, and I instantly start acting like a kid.  O2 micro-SIM goes in, and all is well with the world.
However, I'm still on O2.  So next up is the task of getting the micro-SIMs.
Three update their website the next day, giving the ability to order free micro-SIMs (finally!), so an order goes in with my name on it.  Orange still have no clue.
The following week, the SIM arrives from Three.  It's a full-size SIM, even though the delivery note says "micro".  Oh well, after fighting Three's phone menu tree for about half-an-hour, I have a good bitch about it on their blog, and request a call back.  I wait... time passes.
I get the callback, and get passed to another department.  The guy claims that they're not offering micro-SIMs for PAYG, yet.  I tell him to check the website.  Hold.  Yes, apparently you CAN order them after all.  Order arranged; it'll be in the post.  Next day, I get a response from Three's blog moderators:  they want to help me get my micro-SIM.  I explain it's already happening, but I do point out that others have reported the same problem.  They investigate and find that a few full-size SIMs got sent out.  They'll rectify it tonight and send out new micro-SIMs to those affected.
At this point, I must comment on this turn of events.  The traditional customer service route was quite typical:  a nightmare finding the right person to talk to, followed by an awkward discussion trying to explain what I want, followed by a few minutes on hold, and finally a resolution that's adequate, but leaves me thinking others in the same boat have just decided not to bother.  The experience leaves me with a slightly lower opinion of Three.
In contrast, the social media approach worked a lot better:  although Three don't (yet) have a Twitter feed or a private contact page, their blog operators interceded and had a proper conversation with me.  I pointed out a wider issue, and they investigated it properly.  I'm content in knowing that not only was my problem solved (as far as I can tell at the moment), but the overall systemic problem has been fixed and other customers aided at the same time.  What was a problem has now been turned into an opportunity for Three to show that they can deal with problems competently.  The experience leaves me with a higher opinion of Three.
This goes to show that social media works.  The company gets better intelligence about their customers experiences, problems, and so forth; and the customers feel they're actually being listened to.  It's a win-win.
Anyway, still no possibility of a micro-SIM from Orange.  I called them:  they've not got any idea.
Hey, Orange:  every day you leave this is another day that I'm getting used to the idea of moving to Three permanently.  Right now, Three are winning.  Okay, my piddling little monthly spend is low at the moment, but back when I was in London, you were raking in ~£80/month from me. The return of that scenario is not out of the realm of possibility. I also get asked "which network?" by friends often enough to make sending me a micro-SIM worth at least 20p.  Meanwhile, Three have apparently improved their network significantly since I left them, and if it performs better than O2, then it's going to be Good Enough, and it's also likely to be cheaper.  Their tariffs also make more sense.  I want to buy mobile phone service, not adopt an animal.
So, it's been a week with iPhone 4... the phone is lovely, except for the well-documented antenna issues.  I'm still on O2, but I'm eager to make the call for my PAC code.  I'm expecting a micro-SIM from Three in the next day or so, at which point my O2 SIM will go back in my old Nokia 6680 for a few days to use as my normal phone while I try out the Three data service in the iPhone 4, and if by any slim chance Orange get their act together and give me a micro-SIM, I might even try their service too.
However, Three are currently winning in my little competition.  Let's see how they do.
On the matter of the antenna issue:  I'm right-handed, but apparently left-eared;  I seem to comprehend a conversation better when I'm using the phone in my left hand.  Also, with the phone in my left hand, I can use my dominant right hand to operate it.  Anyway, when I hold the iPhone naturally in my left hand, I get the dreaded signal degradation.  I personally believe that:

It might have something to do with the skin chemistry of the user, with capacitance, resistance, etc. being a function of the user's skin's pH, texture, suppleness, etc.
It sounds like a software fix (for the phone's baseband) might alleviate the issue by changing the criteria by which the phone switches frequency.  I can't wait to see.
The fact that Apple aren't giving out their bumpers for free to fix this fundamental design flaw is shocking.  With this issue, the iPhone is basically Not Fit For Purpose for some users, and for the cost of ~£0.50 of silicone rubber (notwithstanding the ~5000% of retail markup!) for what is basically an oversized LIVESTRONG bracelet, Apple are seriously pissing me off.
This is a good example of the unfortunate hubris of Apple.  I'm usually a huge fan of Apple and Jonathan Ive's designs, but I do believe that form should follow function, and the fact that the bumpers fix the problem show that if Apple had encased the antennas like normal, this would not have been an issue. Apple's a newcomer to mobile comms, and I think that the fact that we've never seen a bare-metal external antenna before is testament to the fact that it's a fairly crap idea.  Looks nice, but that's not good enough.
"Hold it differently"?  I'll hold it the way I've always held a phone, thankyouverymuch.  I wonder what reception would be like with my phone lodged firmly 'up' Steve Jobs.  It's a £600 uninsured gadget made of slippery, fragile glass that's not readily replaceable, so I'll be damned if I'm going to hold it daintily.
Don't talk to me about FaceTime. The keynote acted as if it was the first time we've ever had video calling on a mobile, but I first (and last!) used it in 2003.  Okay, FaceTime's much better quality, but it was (again) hubris to act like it was a new thing.  And it doesn't count unless it works over 3G.  Sorry.

Anyway, if you've read this far, thank you!  I should have edited this blog post down a bit, but once you get going, you know...
Oh, by the way, I typed all that on my iPad.  Fantastic device.  I never thought I'd actually like typing on a software keyboard this much.  I just wish they'd get around to releasing iOS 4 for it.
Actually, on that point:  why haven't any of the networks produced combined iPad/iPhone tariffs? One bill; two SIMs? For a start, both Orange and O2 have proper broadband operations and do try to crossbreed them with discounts given to customers who buy both mobile and home broadband from the same supplier. Why not the iPad too? Why not offer a £5/month Bolt-On package to add an iPad SIM to your existing iPhone tariff, using a shared (but increased) data usage allowance of, say, 1GB?
UPDATED (Friday 2 July 2010): As promised, I got a micro-SIM from Three this morning.  I actually got two: one replacement as a result of the callback I had with Three CS; and a second with a new number as a result of the corrections made yesterday with an enclosed letter apologising for the mess-up.  As I've already loaded up the original SIM with £10 of credit, I've used the replacement instead of the new one.
I've transferred my old O2 SIM to the Nokia (thankfully, I kept the original SIM-to-micro-SIM punchout surround) and have redirected calls to the new Three number temporarily.  There was an annoying "Call Forwarding Active" popup that appeared when I tried to make calls, but by syncing with iTunes and getting the updated carrier settings, that's now gone.
Sitting at my desk, I've got five pips of reception on both Three and O2.  Speed tests via the SpeedTest.Net iPhone app show download/upload/ping for O2 as ~1.5Mbps/~0.2Mbps/~400-9000ms; and for Three as ~2.2Mbps/~1.8Mbps/~200ms, so at first glance, it looks like Three's doing better.  That's just the result of one test, though.  Web browsing definitely feels a lot more responsive with Three than with O2.
The tariff is a little on the weak side, though:  calls are ~25p a minute, which means my £10 of credit which gives me 40 minutes of calls, and data is 150MB per top-up, expiring after 90 days.  So, I might be better off with their £15/month SIM-only 1 month rolling contract, rather than PAYG after all:  it gives 300 minutes and 1GB of internet a month.
Three have also just launched "The One Plan", a tariff that gives 2,000 minutes of calls and 1GB of internet for £25 a month SIM-free on a 12 month contract.  I don't want to be tied into any contract at the moment (as I'm clearly being fickle about networks right now), but I'd seriously consider it just for the 1GB alone.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2010/07/01/leaving-o2-for-um-not-sure-yet/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[Leaving mobile phone company "X" for "Y"]]></series:name>
	</item>
		<item>
		<title>Extracting pages from PDFs on OS X</title>
		<link>http://gidden.net/tom/2009/01/27/extract-pdf-pages/</link>
		<comments>http://gidden.net/tom/2009/01/27/extract-pdf-pages/#comments</comments>
		<pubDate>Tue, 27 Jan 2009 16:54:18 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mac-OS-X]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[xcode]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=66</guid>
		<description><![CDATA[I need to slice and dice a lot of images from a number of multi-page PDF files, but I don't happen to have the right bit of ImageMagick installed on my MacBook Pro.  Instead, I took the slightly longer route of writing a utility to do it.

Mac OS X comes with a neat little utility called "sips" which can be used to transcode images and PDFs.  However, I haven't found any way of telling it to choose a particular page of a PDF file.  I've googled a bit on the subject, and couldn't find anything.
Of course, I could manually extract the pages using "Preview" but there's no fun in that.
ImageMagick would also usually do the trick, but I haven't installed GhostScript as part of ImageMagick, so PDF file support is fairly broken.
Anyway, extracting pages should be a fairly simple thing to do, considering OS X's drawing layer is very closely related to PDF.
I've put the code in my Subversion repository here, so you can extract the XCode project by running:
svn co http://gidden.net/svn/ExtractPagesFromPDF/
at the command-line.
The code is very basic, and doesn't handle encrypted PDFs or anything special, so treat it as "sample code".  Also, I'm no XCode/Objective-C/CoreGraphics expert by any means, so this may not be the best way of doing it!  No warranties, blah blah blah.  Use at will and at your own risk.
How to use:

Build the project in XCode
Get the executable file, "ExtractPagesFromPDF" and put it somewhere in your $PATH
ExtractPagesFromPDF myBigDocument.pdf
The subpages should be created in the current directory, with the format %04d.pdf (ie. 0001.pdf, 0002.pdf, ...).  If you have files with those names already, move them out of the way!

Now that's written, I can now use "sips", "ImageMagick", etc. to continue the processing I need to do for the project.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2009/01/27/extract-pdf-pages/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>4D Sudoku: development postmortem</title>
		<link>http://gidden.net/tom/2008/09/22/4d-sudoku-development-postmortem/</link>
		<comments>http://gidden.net/tom/2008/09/22/4d-sudoku-development-postmortem/#comments</comments>
		<pubDate>Mon, 22 Sep 2008 20:41:25 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[4d-sudoku]]></category>
		<category><![CDATA[actionscript]]></category>
		<category><![CDATA[box2dflash]]></category>
		<category><![CDATA[flash]]></category>
		<category><![CDATA[flex]]></category>
		<category><![CDATA[game]]></category>
		<category><![CDATA[goasap]]></category>
		<category><![CDATA[papervision]]></category>
		<category><![CDATA[papervision3d]]></category>
		<category><![CDATA[puzzle]]></category>
		<category><![CDATA[quaternions]]></category>
		<category><![CDATA[sudoku]]></category>
		<category><![CDATA[tweener]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=55</guid>
		<description><![CDATA[The reason I haven't been updating this blog regularly for a long time is twofold: firstly, I haven't had anything particularly profound to say; and secondly, I've been busy working on 4D Sudoku, which has now launched.

Strangely, the roles have been reversed on this project, as I'm usually a server-side database and web developer.  This time, I've bitten my lip and learned Flash, and someone else did the site.
Since about 1996, I've been preaching "Flash is Pants", as for the most part it has been, in my opinion.  Even now, the original crappy API design shows through the cracks.
I mean, the history of Flash is basically one of a simple animation package that had extra stuff grafted on until it was unrecognisable as the original package.  Even now, it has a slightly split personality:  the traditional "timeline-with-bits-on" approach, and the more programmatic ActionScript approach where the timeline is pretty much ignored.
Now, Flex Builder (and other development tools, of course) offer the option of a "pure" ActionScript 3 project, which is akin to developing a Java application.  None of that horrible timeline stuff, and the ability to engineer a "proper" application in a "proper" language.  In fact, assuming the Flash authoring package is completely excluded from the mix, and apart from the slightly odd type syntax that Emacs can't quite figure out, I must say I really quite like AS3.  It's not perfect, but it's a very comfortable language and API to write for.
Anyway, back to 4D Sudoku.
I didn't really intend to write this project:  I was approached by my old friends/bosses/clients, Rus and Ben, to write the design for an online version of the puzzle game they were developing for manufacture.  I was not in a position to actually write the game, as firstly, I was still recovering from major back surgery and couldn't work for more than a couple of hours a week if that, but also -- as I mentioned above -- because I'd never written any Flash before, let alone a 3D game.
So, the idea was that I was going to write a specification they could farm out to a Flash developer or an agency to build.  However, it's one of those projects where we didn't really know what we wanted, so it was hard to write the spec.  For a start, without any Flash development experience, I couldn't say what was possible and what wasn't.  So, I had to learn a bit to research enough to write the spec.
Not long into that process, I realised writing a full 3D drag-and-drop game wasn't within the capabilities of most Flash developers we'd be able to find, especially since we didn't know how the game mechanics should work either.  So, to cut a long story short (too late!) I ended up writing the damn thing.  I figured (rightly) that the mechanics of the game in any language were more difficult to solve than the relatively easy task of learning a new programming language and API.
The game uses the Papervision3D graphics engine, although I got my hands fairly dirty underneath the intended public interface.  For a start, when I was originally prototyping and kicking ideas around, PV3D was still pre-GreatWhite and the published API couldn't really do what I wanted... or maybe I couldn't figure out how to use the published API to do what I want, to be fair.
I'm not particularly impressed by PV3D's internal design.  It's not a particularly clever design, but it is quite a simple one, and I suppose that's the point.  However, it feels to me like most development is concentrating on effects, import/export and so forth, rather than the quality of the core rendering pipeline.
By subclassing and overriding a lot of the core objects (especially, DisplayObject3D, Scene3D and a few others) I managed to get it so objects were only projected when they moved ("lazy", or "smart"), as opposed to PV3D's insistence on recalculating everything all the time.  This gave me a massive boost in performance.
The PV3D event model was largely ditched.  It seems to be tied very closely to object interaction and also very strictly to the rendering pipeline, which makes unhindered drag and drop quite hard to implement.  I ended up using a lot of invisible proxy objects (planes, mainly) for the drag-and-drop, and doing the intersection tests manually.
I also developed an unhealthy obsession with quaternions.  I based all objects -- well, nearly all -- on two classes I created called SmartGroup and SmartTriangleMesh.  As well as implementing the "smart" behaviour listed above, they also wrappered the main transformation matrix of DisplayObject3D and TriangleMesh with a quaternion (using my own Quat class), to allow the smooth rotations I needed for the game.
In hindsight, I think I went a little overboard with the quaternions.
Fortunately, I could do all of these overrides without altering PV3D at all, although it might have been better if I had.  I'm not sure I'd pick PV3D again, as some of the other 3D engines might suit my needs better.
In developing the game I also used the Box2DFlash library for the cube floor physics.  Of course, a proper 3D physics engine would be ideal for this game, but I didn't have one available for AS3 at the time, and it wasn't worth developing one for this project: it would have improved the game by 5-10% while taking up 90-95% of the development time.
Last but not least, I also used Tweener and GoASAP extensively.  Tweener was used for the main game code, and my policy was to tween everything that moved if I could.  I managed nearly all transitions, but some (particularly cube dragging) just follow the cursor.  I tried to tween them, but getting them to work was just too time-consuming for little reward.
When it came to doing the Instructions, Tweener didn't quite cut it:  it just wasn't built to simultaneously animate 27 or more 3D objects through coordinated, complicated paths with complex sequencing.  By then, however, GoASAP had been released which did the trick.  Rather than using a sequencing library built on GoASAP, I used GoASAP itself, building custom LinearGo classes and combining them with Sequences.  This was quite a bit of work, but I think they turned out well.
I'm fairly happy with the end result.  The code's a hack job in places, and is more complicated than it needs to be due to lack of design.  If I were to write it again, I'd sit down and come up with some better (and more unified) class designs that would be more amenable to animation, interaction and manipulation.
In retrospect, this project took longer than expected for a few reasons:  firstly, I had never done any Flash or ActionScript before.  Secondly, PV3D wasn't quite mature and was fairly undocumented, so I had to do a lot of research and experimentation.  Thirdly -- and most importantly -- I was working without a plan, spec or design.  For this kind of experimental project, I like to work organically, but it's not an efficient way to work.  Then again, if I had tried to come up with a spec, I would have come to two conclusions:  firstly, the project's impossible, and secondly, I had no idea how to go about writing it.  Fortunately, I would have been wrong on the first point.
It was a pleasure working with Simon (the site developer), Vince (the crayon pusher), Paul (the game's inventor) and as ever, Rus and Ben.  In addition the rest of the Starberry gang pitched in, giving assistance, opinion and sometimes just kicking the tyres.  I pushed pretty hard on most of the game design as it was my baby and I had very strong opinions on the way it should work, but the rest of the team supported me and also pushed back where appropriate.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2008/09/22/4d-sudoku-development-postmortem/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Leaving Three after a year-and-a-half for iPhone 3G</title>
		<link>http://gidden.net/tom/2008/07/10/leaving-three-after-a-year-and-a-half-for-iphone-3g/</link>
		<comments>http://gidden.net/tom/2008/07/10/leaving-three-after-a-year-and-a-half-for-iphone-3g/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 13:01:17 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[iphone]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[orange]]></category>
		<category><![CDATA[pac]]></category>
		<category><![CDATA[phones]]></category>
		<category><![CDATA[three]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=54</guid>
		<description><![CDATA[Back in December 2006, I wrote a post about cancelling my decade-old Orange UK phone contract, in favour of Three.  Now I'm off again.  I finally gave into the lure of iPhone.  As a Mac (power?) user for eight years, and owner (and destroyer) of many of their products, the absence of iPhone in my life is fairly conspicuous.  I always swore that I wouldn't buy the iPhone 2G, though.

On the other hand, I swore I wouldn't buy any iPhone while it was still tied to O2.  I don't like the fact that Apple don't offer an unlocked iPhone, but it looks like it's going to stay that way for the foreseeable future.  I guess my ideal vision would be an Apple MVNO, although I bet tariffs would be sky-high for that, but the paper the bills were printed on would be very crisp (and probably laser-etched aluminium sheets)
The iPhone 3G launch has coincided with the end of the half-price tariff offer I had at Three:  it was basically £15/month for 18 months for 300 minutes of calls.  A month or two ago, it upped to £30, and I had to decide whether to renew or to take the opportunity to switch to iPhone.
My reason for leaving Orange was mainly the fact that I wasn't feeling the love anymore, and I felt my tariff was far too high.  I'm a fairly light mobile user, and sometimes I think I might be better of with a PAYG.
My experience with Three has been fairly good.  Coverage hasn't been quite as good as Orange, but good enough for my purposes.  I've had a couple of dropped calls, and the battery life has been terrible.  I'm fairly sure this is due to the fact that Three is 3G only, and the Nokia 6280 I had really wasn't too good at 3G power consumption.  At least with Orange, I kept it switched to 2G most of the time.
I've never liked the look of O2, and the mess they've made of this launch doesn't fill me with confidence.  The starting tariff for iPhone is double the price that I could otherwise get on Three for a lot more minutes, and I'm not really a fan of smartphones anyway.  I think I might be able to have some fun coding that thing, though.  I've got a history of writing games for web and Palm, and some experience with writing for OS X, I'd be dumb not to have a go with the iPhone.
So, I think my new tariff is going to be the iPhone £30/month one.  It's a reduction to 75 minutes a month, although looking at my past few Three bills, I've only been hitting about 50 minutes a month maximum, so there shouldn't be a problem.  I'm not sure how much I'll use data, but when it comes down to it, £15 extra for 18 months is actually only £300, which I should be able to make back with iPhone-related work.
Decision made.  Unfortunately, getting an iPhone 3G seems not as easy as everyone hoped.  In particular, I have a client who's spitting nails that he's unlikely to get an upgrade to his launch-day iPhone 2G tomorrow morning.  O2 and Apple have monged this launch up pretty badly.  I mean, anyone with any sense will see that the second-most-anticipated mobile phone launch ever (after the iPhone 2G, that is) would be popular.  Secondly, a simultaneous launch in 24 countries?  Free upgrades for existing users?  How could this not end up a fiasco?
I can understand if they can't actually make the damn things quick enough.  However, why no proper pre-order system?  My MacBook Pro took almost a month to arrive after I ordered it, and while I watched the package tracking widget like a hawk for that whole month, at least I knew it was on its way.  O2, on the other hand, say "whilst we are confident that all customers who want iPhone 3G will get one by the end of this summer, initial supply is limited and will be for some weeks.", and then expect you to just check back every so often to see if they've got their shit together yet.
My client spent a lot of this morning on the phone to O2 and Apple Retail.  They're giving conflicting answers on upgrades, with Apple Regent Street almost denying anything's happening tomorrow, while Apple Bluewater are quite happy to talk.  O2 don't seem to have a clue when anyone's going to get a phone.  Meanwhile, I'm not going to trek 10 miles into Bristol at 8.02am just to be told that they don't have any.
So, off to the Carphone Warehouse's website, hoping that they actually might have their act sorted better than O2 and Apple.  Looks like they have them in stock for delivery tomorrow morning.  Fine.
Back to Three for the PAC code, then.  Dial 333 for customer services.  I talked for 20 minutes to a nice chap in India, who called me Mister Jidden, and tried to convince me that the Nokia N95 8-gee-bee is a better phone than the iPhone.  It has a five-gee-pixel camera compared to the iPhone's two-gee-pixel camera, and it comes with a FREE two-five-six-emm-bee memory card!  (I think he's reading from a script here)
Anyway, apparently, the lack of a replaceable battery is the main reason I shouldn't buy an iPhone, according to them.
I explained that I specifically need an iPhone to write software for, and Symbian on the N95 just doesn't cut it.  Would I like to keep the Three contract as a "spare"?   No.   They could offer me a new tariff for £15/month, and it's special!  300 minutes a month, and free voicemail!  ...but that's the same as my current tariff was up until they doubled the price a month ago.
Thanks, but no thanks.  I need an iPhone.
"Well, Mister Jidden, no problem.  You're one of our most special "elite customers", and I can give you an extra offer:  I can reduce that tariff to £12!"
It's not an iPhone though.
How about if someone else in my family wants to take the same offer?  My parents spend about £1.50 on their phones each month, thanks to the Orange Value Promise price-matching Virgin Mobile years ago, so No.
I couldn't really stop the guy... he was on a roll with his script, and I didn't mind letting him go through it.  I needed the PAC number, and the guy was nicer and making more of an effort than Orange did back in 2006.
Got the code by SMS a couple of minutes afterwards, and plugged it into the Carphone Warehouse website.  A short credit check later, and I get a text saying it'll be delivered on my delivery date... tomorrow, presumably.
Oh well.  In conclusion, Three's okay.  I'd actually go as far as to recommend them to others. They're certainly cheaper than Orange and from what I can tell, the other networks too.  I'd be happy to stay with them, especially since my piddlingly small tariff seems to qualify me as "elite", but they don't do iPhones, unfortunately.
I just figured out why I might be "elite", other than spending most of my pre-teen years playing 3D space games on the BBC Micro... I did a couple of "Refer a Friend"s to Three, earning £30 (two months' tariff!) each time.  Either that, or everyone's elite if they're buying an iPhone.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2008/07/10/leaving-three-after-a-year-and-a-half-for-iphone-3g/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[Leaving mobile phone company "X" for "Y"]]></series:name>
	</item>
		<item>
		<title>MySQL and PDO on OS X Leopard, Intel</title>
		<link>http://gidden.net/tom/2008/06/30/mysql-and-pdo-on-os-x-leopard-intel/</link>
		<comments>http://gidden.net/tom/2008/06/30/mysql-and-pdo-on-os-x-leopard-intel/#comments</comments>
		<pubDate>Mon, 30 Jun 2008 14:35:05 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[dbd::mysql]]></category>
		<category><![CDATA[dbi]]></category>
		<category><![CDATA[leopard]]></category>
		<category><![CDATA[Mac-OS-X]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[pdo]]></category>
		<category><![CDATA[pdo_mysql]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[universal]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=53</guid>
		<description><![CDATA[(NOTE: Make sure you read the comments for this post, as there's a better way to get around the 64-bit/32-bit problem without having to compile things. --Tom)

I don't know if I'm missing something big, but getting Perl, Apache, PHP, PDO and MySQL to play nice on my Mac OS X 10.5 install on my Intel Core 2 Duo (Penryn) MacBook Pro hasn't been easy.  This is partly thanks to Apache being compiled with x86_64 support, and Perl with i386 only.
Anyway, Googling about, I notice that others have tried this arrangement with varying degrees of success.  The easy answer is to install something like MAMP or replace the Apache and PHP installation with a custom build.
However, I prefer to keep my installation as stock as possible, and I'm not a huge fan of proprietary packaging systems like MacPorts and Fink.  Don't get me wrong: those systems do what they're meant to do, and as a long-time FreeBSD user, I appreciate the approach.  However, they don't fit into the Mac mindset too well, plus I'm too lazy to keep them up-to-date.
In other words, I want Apple to do it all for me, via Software Update where possible.  The aim is to keep the stock Apache, PHP and Perl in place, and just add stuff.
The 10.5.3 Apache install does include PDO, but it's fairly crippled: the only drivers are the SQLite ones, even though standard "mysql" support is included.  So, "pdo_mysql" will need to be installed... no problem: just install it as a module.  But which architecture?
Since 10.5.3 Apache is compiled for i386 and x86_64, it'll run by default as 64-bit, requiring the 64-bit MySQL client libraries.
However, the included 10.5.3 Perl build is compiled only for i386, so if you want to build DBD::mysql for Perl as well, you'll need 32-bit MySQL client libraries.
The MySQL 5.1 official Leopard binary isn't currently a universal build, so right now if you download a binary distribution, you have to pick either 32-bit i386, or 64-bit x86_64.  This will knacker either PHP/PDO (64-bit) or Perl/DBI (32-bit)  So, assuming we don't want to replace -- or otherwise mess with -- the stock Apache, Perl and PHP, recompiling MySQL seems the way to go: we need to build a fat MySQL with both architectures.
To do this, download the MySQL source (I'm using 5.1.25), unzip and compile with something like:

MACOSX_DEPLOYMENT_TARGET=10.5 \
CFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
LDFLAGS='-O3 -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
./configure \
'--disable-dependency-tracking' \
'--prefix=/usr/local/mysql' \
'--localstatedir=/usr/local/mysql/data' \
'--libexecdir=/usr/local/mysql/bin' \
'--with-comment=MySQL Community Server (GPL)' \
'--enable-thread-safe-client' \
'--enable-local-infile' \
'--with-big-tables'

make

sudo make install

You'll then probably want to do something like:

sudo -s

cd /usr/local

export MYSQL_VERSION=mysql-`mysql/bin/mysql_config --version`-osx10.5-universal

mv mysql $MYSQL_VERSION

ln -s $MYSQL_VERSION mysql

chown -R _mysql:staff $MYSQL_VERSION

cd mysql

ln -s share/mysql support-files

ln -s var data

bin/mysql_install_db --user=_mysql

I'm not sure whether this is the right procedure, but it works for me.  A lot of this will change depending on your requirements and circumstances, so don't blame me if it kills your pets.
Next up is to install the PDO_mysql module.  This is easy. Firstly, download the PHP source.  As of Mac OS X 10.5.3, the current PHP is 5.2.5, but I downloaded 5.2.6 and it seemed fine.  Unzip it, and go into the distribution directory (ie. php-5.2.6)
Then:

cd ext/pdo_mysql

phpize

MACOSX_DEPLOYMENT_TARGET=10.5 \
CFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
LDFLAGS='-O3 -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
CXXFLAGS='-O3 -fno-common -arch i386 -arch x86_64 -arch ppc7400 -arch ppc64' \
./configure --prefix=/usr --with-pdo-mysql=/usr/local/mysql

make

sudo make install

You might need to add the following line to /etc/php.ini (creating that file, if necessary):

extension=pdo_mysql.so

Then, restart Apache and you should have a working PDO_mysql driver.
Installing DBD::mysql for the stock Perl is a different matter.  If you just do a CPAN install, then the multiple -arch tags that the mysql_config from your new Universal build of MySQL will return are going to foul it up.  So instead, you can just build DBD::mysql for i386, as Perl is going to be running in 32-bit mode anyway.
There are probably better, easier ways of doing this, but I resorted to just doing a manual DBD::mysql build, stating the flags by hand:

perl Makefile.PL \
 --cflags="-I/usr/local/mysql/include/mysql -Os -arch i386 -fno-common" \
 --libs="-L/usr/local/mysql/lib/mysql -lmysqlclient -lz -lm"

make

sudo make install
]]></description>
		<wfw:commentRss>http://gidden.net/tom/2008/06/30/mysql-and-pdo-on-os-x-leopard-intel/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>Inverted Index Searching as Stored Procedures</title>
		<link>http://gidden.net/tom/2008/06/17/inverted-index-searching-as-stored-procedures/</link>
		<comments>http://gidden.net/tom/2008/06/17/inverted-index-searching-as-stored-procedures/#comments</comments>
		<pubDate>Tue, 17 Jun 2008 09:38:20 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[fulltext]]></category>
		<category><![CDATA[Google Code]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[inverted-index]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[search-engine]]></category>
		<category><![CDATA[searching]]></category>
		<category><![CDATA[stored procedures]]></category>
		<category><![CDATA[triggers]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=52</guid>
		<description><![CDATA[An old colleague of mine has persuaded me to release an implementation of an "inverted index"-based search library, written solely as MySQL Stored Procedures.  Our combined work is now available on Google Code.

It's been a long time since my last post... I've been spending most of my time recovering (still!) and working on a new game project for some old friends.  On the way, I've learned ActionScript 3, Flash, Papervision3D, Box2DFlash, and a whole slew of other fun stuff.  As soon as the project sees the light of day, I'll be announcing it here.
I've also done a bit of consultancy work on the way which catalysed the stored procedure work I'm releasing here.  As I mentioned in a previous post, I had an article published in php&#124;architect Magazine in which I presented some simple code to do database searches in PHP.
The basic concept of this method is to index content in a database table by separating it into words and storing the locations of those words in a separate table.  This is about the most basic form of search engine, other than the "wildcard search" that many database developers seem to use, unfortunately.  Wildcard searches are incredibly inefficient and unscalable.  The other alternative is the MySQL (and MyISAM) specific FULLTEXT approach, which I've never been particularly happy with.
The Inverted Index technique is nothing new, and certainly not rocket science.  However, I find that many (esp. younger) programmers haven't heard of this method, and rely on external libraries, specific hacks (such as FULLTEXT), or usually the dreaded "string LIKE '%foo%'" construction which can stop a MySQL server in its tracks.
It's no substitute for a proper search engine library, such as Apache Lucene, but it does have the benefit of being easily integrated into other queries.  The problem of searching documents is one thing, but sometimes you just need to search an address field, biography field, or something like that, while still searching on other columns as well.  While some external libraries will allow integration with MySQL through UDFs, that adds a whole extra maintenance load and is also not usually possible on shared database servers.
The approach is fairly easy to implement in an application language such as Perl or PHP.  I've been doing it for years.  However, it's still involved quite a lot of setup and maintenance.
Instead, I've written an implementation that does everything within the database itself using triggers and stored procedures.
This allows the programmer to treat the data table as a simple table, and then call a single stored procedure to perform a search.  More complicated queries can be constructed using the same data, but still keeping the same triggers in place to do the dirty work.
While this approach might not be the most efficient way of doing things, I think it's the most self-contained and simplest to use.  It should work on all MySQL storage engines, and I imagine it could be adapted to run on other RDBMSes altogether.
Anyway, I mentioned the code I'd written to my old colleague, Stig Palmquist, and he felt that it was valuable work that could do with being released as an open-source project.  Moreover, he was eager to contribute to the effort. So, it wasn't long before we started a Google Code project, and we've both significantly improved the code since.  It's open-sourced under the Apache License 2.0.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2008/06/17/inverted-index-searching-as-stored-procedures/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>EyeTV 3</title>
		<link>http://gidden.net/tom/2008/01/16/eyetv-3/</link>
		<comments>http://gidden.net/tom/2008/01/16/eyetv-3/#comments</comments>
		<pubDate>Tue, 15 Jan 2008 23:51:00 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[Elgato]]></category>
		<category><![CDATA[Elgato-EyeTV]]></category>
		<category><![CDATA[EyeTV]]></category>
		<category><![CDATA[EyeTV-3]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[OS-X]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2008/01/16/eyetv-3/</guid>
		<description><![CDATA[I've been a dedicated user of EyeTV for almost two years, to the point that I no longer watch TV on the big screen in the living room.  Instead, I watch almost exclusively on my iBook.  Back in May 2006, I wrote a post about EyeTV 2.2 and its shortcomings.  Today, Elgato have released EyeTV 3.

I haven't posted on my blog for a few months now, as my spare time has been tied up on a super-secret project involving Flash (well, Flex), Papervision3D, Box2D and what for me is some really heavy duty math.  However, after what I found to be a particularly disappointing MWSF 2008 keynote, I noticed EyeTV 3 appear, and I must say, it's worth a mention.  Slamming down &#163;30 was a no-brainer... far more palatable than the &#163;60 they charged for the EyeTV 1 to 2 upgrade.
I also noticed while writing this review that Elgato's 404 page gives out a 10% discount code... Nifty.  Only wish I'd found it a couple of hours ago.
In short, there are things I still don't like about EyeTV, and things I haven't really tried yet.  On the other hand, there are a few features in V.3 that make up for all of that.  In fact, a good chunk of the wishlist in my previous post is now done:

"Smart Playlists" and "Smart Recording Schedules".  I can now set up automated record lists based on complex criteria.
A smarter search engine.  Done.  They've got a full set of criteria there, with an all/any system.
Tuner and recording sharing over Bonjour.  Shared Libraries appear on the sidebar, and the system seems to work well.  I can easily watch recordings on my Mac Mini from my Laptop with little or no delay.  It even works when EyeTV.app isn't running on the serving machine, thanks to a background daemon.  Of course, it'd be far nicer if both machines' tuners could be fully and automatically scheduled and controlled from a single interface, but hey, you can't have everything.

While they've given EyeTV a patchy makeover and added some other minor features, these three alone justify the upgrade for me.
Unfortunately, the other features on my wishlist don't seem to be there yet.  PDC, in particular, would be nice.  Apparently, the Freeview Playback standard supports something similar to PDC, but I see no evidence of it in EyeTV.  This really would have come in handy a couple of days ago, as the popular and eagerly-awaited new Louis Theroux documentary started 15 minutes late thanks to a bunch of fat "sportsmen" throwing darts about.
The other one I'd still really like is a "close" button on the pop-up controller.  It's still far too enthusiastic, popping up at the slightest provocation, and assuming any accidental keypress is a request to change channel randomly.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2008/01/16/eyetv-3/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
	
		<series:name><![CDATA[Elgato EyeTV reviews]]></series:name>
	</item>
		<item>
		<title>Replacing the backlight on an iBook G4</title>
		<link>http://gidden.net/tom/2007/10/02/ibook-ccfl-replacement/</link>
		<comments>http://gidden.net/tom/2007/10/02/ibook-ccfl-replacement/#comments</comments>
		<pubDate>Tue, 02 Oct 2007 11:12:44 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[backlight]]></category>
		<category><![CDATA[ccfl]]></category>
		<category><![CDATA[fix]]></category>
		<category><![CDATA[hardware]]></category>
		<category><![CDATA[ibook]]></category>
		<category><![CDATA[laptop]]></category>
		<category><![CDATA[lcd]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/10/02/ibook-ccfl-replacement/</guid>
		<description><![CDATA[For a while I've been noticing significant degradation of the backlight on my dilapidated iBook G4.  So, yesterday, my dad and I spent a few hours replacing the CCFL backlight bulb.

I've had the iBook for over three years now, and over the past couple of years it's been in use pretty much all day every day.  It's my only computer now, other than the little headless Linkstation in the cupboard.  It's been my trusty steed, but it just wasn't built for this kind of workload.
I've also taken it apart more than a few times.  The hard drive has been replaced at least four times -- I've lost count -- and it's even had the motherboard and screen transferred into a new case when the old one wore out.  It's also been back to Apple to fix what seemed to be a broken or loose display signal cable.
Anyway, the main symptom has been a gradual dimming and "colour warming" of the screen, along with a patchy backlight at times.  When I say colour warming, I mean that the entire screen has been getting more red and yellow, with a poor quality white.  In addition, the bottom left quarter of the screen seemed to be distinctly darker than the rest, especially when the screen came out of "reduced brightness", ie. the dimming that occurs halfway before "display sleep".  In fact, I couldn't let the screen dim or sleep without it being much darker on wake up for a while.
I was managing to correct the colour warming issue by tweaking the display colour calibration, but it was getting harder and harder to keep a wide enough gamut for graphics work.
So, after some research, I partially disassembled the iBook's screen case to find out the LCD model.
If you've never taken apart an iBook before, let me tell you: it's really not fun.  It's difficult to do without scratching or damaging the case... even with correct use of the "black plastic stick" (informally known as a "spudger") that Apple insist is the correct tool for the job.  iBooks just aren't really user-serviceable.  For the most part, this isn't a problem, because the memory and AirPort card are accessible from under the keyboard.  However, I've usually had to replace the hard drive instead, which requires almost a complete stripdown of the machine.
NOTE: I must make it clear that the information below is offered purely as a suggestion, and should not be relied upon.  I was taking a risk with this disassembly, and it was largely trial-and-error.  If you use any of this information yourself, then it's up to you, but really don't blame me if you mess up.  It's quite possible I did it wrong, and also possible that you have a different model anyway.  I'm mainly writing this up because no-one else has, and I could have done with some hints myself!  Consider yourself warned.  Definitely Your Problem, not mine.
The case is tightly held together with snap tabs (if that's the correct name), and special sticky tape is liberally scattered pretty much everywhere inside.  All of this needs to be carefully peeled up and reused, if you don't have access to replacement tape like Apple.
Opening up the screen case, on the other hand, is far easier:  just unscrew the four visible hex screws and prize the white case off with your fingernails.  Even my weak-ass fingernails are good enough.  Be careful not to trap the signal cables, though.
From here it gets delicate.  I decided to take this process very slowly, and also asked my tech-savvy dad to sit in and second-guess me all the way, while supplying a second pair of hands.
Handy Hint #1:  When I first replaced the HDD in my old iBook, I forgot to protect the screen, and I also forgot to secure the hanging AirPort antenna plug.  As a result, when I'd put the machine back together I noticed a fairly deep scratch in the middle of the screen.  Very upsetting.  So, before going any further, tape some bubble wrap, cardboard or other protection to the screen surface.  Be sensible, though, and don't go using duct tape or something like that on the delicate surface.  Also, put something soft on the work surface: you'll be putting the LCD face down quite a bit.
On opening the screen, you'll see a lot of tape and stuff.  I carefully removed the obvious bits, along with the foil tape covering the display connector on the back of the LCD.  The aim is to totally remove the LCD unit from the case, so figure it out from there.
I then partially removed the LCD shield:  the thin metal case.  There were four small screws on the sides of the shield holding it in.  I removed the bottom screws and lifted the shield just enough to look at the back of the LCD unit itself.  From this I could see the make and model of LCD:  Chi Mei N141XB-L03 Rev. C1.
From what I could find out, this make/model is meant to be quite easy to disassemble... I'd hate to see what a difficult make/model would be like.
I ordered the correct replacement lamp from Sparesweb for £22.79 all inclusive, and it arrived the next day.
The bulb itself is incredibly fragile.  It's very light and made of very thin glass.  I've seen other web pages suggest buying more than one just in case, and I can see the logic.  However, I risked buying just one.
Next thing is to get to the fitted bulb.  This requires quite a lot of fiddly dismantlement, and there doesn't seem to be anything on the web saying exactly how to do this, at least for this make/model.  So, we approached it very slowly, carefully, thinking and discussing every movement, and picking the correct tool to use, and the best orientation for the screen.
The backlight sits in a channel at the bottom of the screen, and miraculously manages to evenly illuminate the entire screen from there.  I still have no idea how it manages to be so even.
The visible back of the unit is predominantly white plastic which I assume is the main diffuser.  When switched on, this plastic glows white:  it's the bit that you can see through the Apple window in the back case.  On this screen, there's an obvious thin green circuit board covering the top quarter of the back, covered by a stuck-down clear plastic sheet.  This sheet wraps around the top edge of the screen and is stuck down.
The bottom 2cm or so of the screen is a metal panel, held in by two crosspoint screws.  I guessed correctly that the backlight is under this panel.  However, the panel wraps around the bottom edge, and the main LCD metal frame then wraps over the top of this panel to hold it in.
After staring at this for quite a while, coupled with some reluctant experimentation, we decided that it wasn't possible to lift this panel without removing the main frame, and even if we could, the frame would still obscure the backlight.  So, I carefully slit the top edge of the plastic cover over the circuit board, and peeled up two copper foil tabs.  After doing this, the only thing (apparently) holding the frame in place is the little tabs.  These were easily opened as normal by levering with a small screwdriver.
This is where the stress level increases.  I became very aware of the delicate nature of the sheets of plastic and glass involved.  With the main structural device out of the picture, everything gets more worrying.
At this point, the two silicone caps holding the backlight ends were accessible.  The backlight has a pink and a black cable dangling a little plug at one end. The black cable is lightly stuck in place along the bottom edge.  It's also clear at this point that the metal panel I mentioned is, in fact, a channel or gutter, with a tall J shaped cross-section.  The bulb sits in the bottom of this channel, which then acts as the reflector.
In hindsight, I think we did the next bit wrong.  It looks like the channel's intended to stay fixed in place, and the bulb slid out from the side by unsoldering the wires in situ.  Unfortunately, we didn't figure that out.  Instead, we ended up carefully flexing it back and working with the bulb directly.
In our defence, without knowing any better, unsoldering and sliding such a delicate part without knowing how everything's set up inside is just too nerve-wracking.
The cables have very little slack:  especially the black cable.  They are soldered very close to the glass, and then run 180&#176; back on themselves along the tube.  The silicone caps are fairly complex in design, and it's vital to pay attention to their orientation.
We unsoldered the old bulb, and managed to remove it without breaking.  As expected, the bulb was slightly discoloured at one end.  Two tiny clear rubbery (silicone?) rings were threaded on the bulb at 1/3 and 2/3rds of the length, presumably to space the bulb from the reflector.  I carefully worked these down the length of the tube.
I then rolled them onto the new tube at roughly the right positions.  We trimmed the new tube's leads down to approximately 2mm, and carefully soldered the black wire on.  We quickly found that we hadn't angled the black wire back far enough, so the cap wouldn't fit.  After resoldering, it seemed to fit better.  Then, I carefully guided the tube into the channel, and then fitted the pink cable the same way.
After mental gymnastics, plus trial-and-error, we managed to fit the caps in the right way and then got the channel back in place on the screen.  It was a tight fit, and took a lot of patience to get it sitting correctly.
From there, it was just reversing the procedure.  Before finally fitting the shield, we switched on the iBook and tested the screen, fully expecting that we'd broken something permanently... it's just too delicate for it not to go wrong.  Surprisingly, all worked properly.
Once reassembled, we relaxed for a while.  In fact, we took a number of short breaks, just to stay focussed, as it's fairly nerve-wracking doing stuff this delicate and critical to your main (and only) machine.
Upon switch on, I was struck at (a) how bright, and (b) how blue the screen was.  I was worried for a while that there was a signal cable problem and the red signal was failing.  However, after booting, it was clear that all was well.
Initially, and for the first few hours, the bulb was definitely bluer than expected, but this calmed down after a while.  There was also an odd effect that the screen got redder as it was tilted away from the viewer.  This also went away.
Quite quickly, I figured out why the screen seemed so blue.  Firstly, it was because I was so used to a worn-out backlight with an orange cast. The real cause, however, was that I was still using the massively overcompensating ColorSync profile!  Once I selected a generic profile, everything looked a lot better.  Even so, I've chosen a lower colour temperature than I would usually, as the bulb is still quite blue.
After writing that last night, I revisited it just now, comparing it against my external LG Flatron L1730B.  Unfortunately, it doesn't compare that well.  The white is still far more cyan than I'd like, and I just can't get ColorSync to give me a nice, clean white.  It's still better than it was, though.
I seem to remember reading that these CCFL bulbs can sometimes take a few weeks or months to properly settle down, so we'll see.
Conclusion
I must say, replacing this backlight was a real bitch, mainly due to lack of instructions, coupled with the delicacy of the task at hand.  In hindsight, I'd probably just get an entire new LCD panel next time.  It's nice to know that I can replace the bulb myself if necessary, though.  Much more complicated than it should be, but not totally impossible.  Thing is, this is officially not a user-serviceable part, but it wears out over time, and is also likely to wear out well after AppleCare expires.  A bit of a crappy deal if you ask me.
If all goes well, this iBook's going to be retired soon, but I don't want to get another laptop with a CCFL backlight now that LED-based ones are available.  However, the 17" MacBook Pro I want still uses CCFL, so I'm stuck with this iBook for the time being.
Anyway, if you're intending to undergo this task, I hope you find these notes helpful.  Unfortunately, I didn't take any photos while disassembling it which I'm sure would be incredibly useful. However, I had far more critical things to worry about at the time!  Instead, I took these photos after reassembly, so they're not that helpful.  Even so, I've put some notes on the photos on the Flickr pages which could be handy.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/10/02/ibook-ccfl-replacement/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>O2 Cocoon: Review, Part 3: Wrapping Up</title>
		<link>http://gidden.net/tom/2007/09/01/o2-cocoon-review-3/</link>
		<comments>http://gidden.net/tom/2007/09/01/o2-cocoon-review-3/#comments</comments>
		<pubDate>Sat, 01 Sep 2007 11:50:03 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[camera-phone]]></category>
		<category><![CDATA[cameraphone]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[isync]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[music-phone]]></category>
		<category><![CDATA[musicphone]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[O2 Cocoon: in-depth Review]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/09/01/o2-cocoon-review-3/</guid>
		<description><![CDATA[I've been using the O2 Cocoon as my main phone for a few weeks now, and I'm fairly happy with it.  After covering the design of the phone and the music features previously, I'll wrap up by covering the rest of the features.

As I said before, it's a good phone.  In particular, the One Big Distinguishing Feature -- the external display -- does work quite well.  I do, however, with they'd put a "clock" button on the outside.  I haven't worn a watch in about ten years, since I got a mobile with a built-in clock (yes, those used to exist).  As a result, I use my mobile like a pocket watch.  In fact, I probably use my phone more as a watch than as a phone.
On the plus side, the nice big external display works well... except in sunlight as mentioned in Part 1.  However, it's not always on:  it only stays lit for a few seconds, unless it's externally powered.  So, to check the time you have to open the phone, which defeats the purpose of the external display.  The alternative is to fiddle with the music controls, which almost works:  the clock appears after scrolling messages like, "HELLO, I LOVE YOU - THE DOORS - PAUSED".  A simple "check time" button would be more useful.
The firmware is fairly nondescript.  The user interface is basic but clean.  It's not quite as well laid out as the Nokia or Sony Ericsson firmware, but I didn't find any major blunders.
I was discussing the LG Shine with my sister the other day.  One thing she mentioned was the number of button presses to send a text message.  With her old Sony Ericsson, it was just a few presses (plus the message itself), whereas the LG Shine had a minimum of eight or so.  This was a sign of poor UI design, I guess.  I remember that one of the reasons Boo.com failed in the old days was the ridiculously long and confusing path to a successful purchase.  Same with the Shine.
I'm not sure what procedural criteria she used for testing this, but the Cocoon seems to be slightly better than the Shine in this regard.  There were a few bloopers, such as the slightly silly configuration of the shortcut bar.  Like many other new phones, the Cocoon allows you to set up a few shortcuts on the main screen to commonly used functions.  In my opinion, a well laid-out UI shouldn't need this capability, but hey.  Well, in their wisdom, O2 have chosen an odd choice of shortcuts to start with, such as another link to the music player, as if the four buttons down the side weren't enough.
There's also no easy link to the camera.  Some phones, such as my old Nokia 6680, have an external lens cover, which activates the camera function when opened.  Others, such as the Shine and the Nokia 6280 I was using before the Cocoon, have an external shutter button which activates when held down.
The Cocoon has no such button.  Instead, it's five or six clicks through the main menu.
Suffice to say, one of the first things I did was to change the shortcuts.
On the subject of the camera, I must say I think the Cocoon's 2MP camera is not too shabby at all.  It's still just a tiny little chip like other normal phone cameras, but it doesn't seem to suffer from the "stripey graininess" that seemed to affect most mobile phone cameras I've used.  There's some chromatic aberration, the camera controls are a bit clunky, the shutter is a bit slow, and it's all a little bit soft and blurry, but other than that it does the job.
That sums up the Cocoon quite well.  It does the job.  It could do the job better, but it doesn't make me want to violently turn it into little white and black pieces, and believe me, some phones will do that to you.
So, what's the big thing I really don't like about it?
Mac compatibility
The Getting Started guide that comes with the Cocoon is quite upbeat:  "O2 Cocoon is also Mac friendly", it says.  Bollocks.
What they mean is that you can mount the phone as a USB drive, and then use the Finder to drag music files to/from it.  Later on in the book, they reveal that you need third-party software to use iTunes to manage it, and "Unfortunately it is not possible to synchronise calendar or contacts."
This is a big problem for me.   I damned the LG Shine for lack of Mac support, and I must do the same for Cocoon.  Both of these phones are oriented towards posers, especially the white and curvy Cocoon.  So why alienate the biggest gadget posers of all, us Mac users?
You see, one very nice feature of Mac OS X is that it comes with iSync:  a framework for data syncronisation between the Mac and devices such as mobile phones.  Out of the box it supports a fairly wide range of phones, and although Apple can be quite slow at updating that list, when it works, it really does work.
With a few clicks, I can have my address book and iCal calendar synched with my phone, and vice versa.  No software installation is necessary, and all it requires is pairing the phone over Bluetooth.
This capability alone has brought sales to Apple, as more than one person has seen me sync my phone and iPod and wanted that ease-of-use enough to go down to Apple Regent Street and buy an iBook.
For PC users, an third-party utility is necessary.  In my experience, the quality of this software ranges from terrible to bearable, but never quite as good as iSync.  I've had the embarrassing misfortune of wrecking a client's Windows installation trying to get such software running on their PC.
The Cocoon allegedly comes with its own software suite which includes this functionality.  I'm not really in a position to test or evaluate Windows software, so I can't tell you how good it is.
What I can tell you is that a manufacturer can add support for their phone to iSync merely by creating a configuration file or two.  They just need to specify the particular oddities and specifics of their firmware to iSync, and then it takes care of the rest.
This means that when a new Nokia, Motorola or Sony Ericsson phone is released, there's a good chance that an enterprising hacker can whip together a usable config file in a few minutes, just by finding a similar supported phone and tweaking the file.
Since iSync doesn't support any LG or Pantech phones, this quick hack route isn't possible for the phones I've reviewed.  However, with enough technical information on the Cocoon, I reckon a fully functional driver could be put together in a week or so.  Certainly far less time than was spent on the PC Suite.
I contacted O2 about this issue, and got the following response:

Although O2 are committed to Mac support we are unable to support iSync at this moment in time. However it is possible for Mac users to still update and change their music by dragging and dropping files to and from the phone.
We are actively investigating iSync support for both Cocoon and all future O2 branded devices.

This is admittedly better than the lack of reply to a similar query I sent to LG, but until I see working iSync support, I'm not completely convinced.
In the meantime, I'm stuck with transferring my contacts via the USIM from my old phone, so they're all truncated, divided and generally munged.
I've made purchase decisions based solely on iSync compatibility (or lack thereof) before.  I didn't buy my Nokia 6680 until there was iSync support for it.  Looking at the web stats for my LG Shine review I can tell you that I'm not alone in thinking this is important.  There are enough hits coming from Google searches such as "LG Shine isync", "LG Shine Mac" and "shine phone isync doesn't work" for me to assume that someone would be fairly popular if they hacked such a file together for the Shine, and I reckon the same would be true for the Cocoon.
So, hurry up, O2.  Demand iSync compatibility from your OEM, or at least demand the technical information necessary for third-parties to add it.  Talk to Apple and see how they can help.
Anyway, on that note, I'll wrap up.
I'm going to carry on using the Cocoon.  All things considered, it's an above average phone with some very useful features.  I still don't think it's as good as they think it is, but it's a darn sight better than some of the other phones I've used in recent years.  When I get around to it, I'll try shoehorning my contacts into it, using one-by-one Bluetooth if necessary.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/09/01/o2-cocoon-review-3/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<series:name><![CDATA[O2 Cocoon: in-depth Review]]></series:name>
	</item>
		<item>
		<title>O2 Cocoon: Review, Part 2: Music</title>
		<link>http://gidden.net/tom/2007/08/23/o2-cocoon-review-2/</link>
		<comments>http://gidden.net/tom/2007/08/23/o2-cocoon-review-2/#comments</comments>
		<pubDate>Thu, 23 Aug 2007 19:34:40 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[camera-phone]]></category>
		<category><![CDATA[cameraphone]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[music-phone]]></category>
		<category><![CDATA[musicphone]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[O2 Cocoon: in-depth Review]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/08/23/o2-cocoon-review-2/</guid>
		<description><![CDATA[The first part of my review of the O2 Cocoon was mainly about the hardware: the look and feel of the thing you hold.  This time, I'm going to look more at the phone's music features.

When it comes down to it, the Cocoon is really just a normal mobile phone.  It's not a smartphone, but it will do the normal things a modern phone does.  It's got Java, calculator, calendar, notepad, voice recorder, and so on.  It's got a browser, which seems to be fairly functional.  It's got a camera... two, in fact, as is common with 3G phones.
It also has music player functionality.  O2 seem to be positioning the Cocoon as a music-oriented device, with external player buttons, stereo speakers, halfway-decent earphones, and so forth.
This is nothing new, though.  We've had music-oriented mobile phones for years now, and none of them have really worked too well.  As far as I'm concerned, I always end up thinking, "Hmmm... nice try, but I think I'll stick with my iPod."
Considering my personality type, I was fairly late to the game when it came to iPods.  I've been a Mac user since 1999, and I've had a reasonably large MP3 collection since 1997.  Even so, I didn't own an iPod until 2004, partly because I was working either at home, or living very close to work.  With the lack of a long commuter journey, I never really needed anything to keep me entertained.
Nowadays, I swear by my iPod, and sometimes at my iPod.  I'm onto my seventh now, thanks to AppleCare warranty and my negative aura towards hardware, plus the proximity of Apple Store Regent Street and a fully-functioning credit card.
I'm also now consigned to a lifetime of going to the gym regularly so my bad back doesn't seize up.  I'm one of those people who would never exercise voluntarily, so I have to have something to listen to to keep me from getting bored.  I went through a stage of listening to music at the gym, and then stand-up comedy... I have pretty much everything Audible.com has when it comes to Robin Williams, for example.  Then the Ricky Gervais podcasts.  Now it's "Real Time with Bill Maher", and the weekly SModcast from Kevin Smith and Scott Mosier.
So, the real test of the Cocoon was to see if it could manage to replace my iPod at the gym.
I usually have my iPod in one of those silicone cases clipped to my waist, and an Apple iPod remote snaked up under my tee-shirt with my Shure E2Cs plugged in.  The Cocoon doesn't come with a proper case, and there isn't a mad rush on eBay to start churning them out.  Never mind:  that's what pockets are for.  For the music player to work, the hands-free kit needs to be plugged in.  This is a fairly basic one-button + microphone affair, all modelled in curvy rubberised plastic, with a standard stereo jack socket on the end.  As mentioned last time, it comes with a matching jack splitter, which is a neat addition.  However, I'd rather they'd spent the money on better earphones.  They're of the in-canal kind, with three differently-sized pairs of ultra-soft sleeves.  The cable is short so the headset blob including microphone sits at roughly mouth height.  The problem is that the sound quality is grotty for the short time they stay in my ears before falling out.  This might not be their fault, however... the insides of my ears seem to be made of teflon.
Unlike the Apple iPod remote, the headset is basically controls-free... one button for play/pause (and answering incoming calls).  This means I have to reach in and get the Cocoon out to change tracks.  The external controls are basic:  forward, reverse, play/pause and Radio on/off.  They're quite slow to react, and the external LED display is a little limiting when it comes to navigation to say the least.  Instead, I flip open the phone so I can see what I'm doing.
The 'Now Playing' interface is not laid out particularly well.  Many of the functions use the normal phone menus, but the actual playing interface uses the main navigation keys.  Left and right on the main pad give previous/next track.  Up and down control volume, which is an odd choice, since the main volume knob is less than an inch above.  Centre is play/pause.
What's odd is that the tracks are listed in the display vertically, but selected using the left/right keys.  I've accidentally increased/decreased the volume a few times when I meant to change track.  On the other hand, the side buttons are arranged vertically and are equally accessible at this point.  In other words, I'm slightly annoyed by the pointless duplication, especially since it's unintuitively implemented.  This redundancy means we don't have control over track rating, shuffle, repeat, and so forth from the main interface, and have to faff around with menus instead.
The menus do contain a few bits and pieces, though.  Along with the more mundane sleep timer and 7-band equaliser, there's the choice of "Solid Sound", "Super Bass", "Super Surround", "Extreme Surround" and "X-Treme Ultra Surround To The Max". Okay, I made up that last one.  There's also "Stage Sound", offering "Studio", "Concert Hall" and "Stadium" modes, which translate to various levels of echo and distortion if you think your music is just a little bit too high-quality for your tastes.
For podcast listeners, such as myself, there are a few major problems:  Firstly, it's very easy to quit Music Player while paused -- for example, by closing the phone -- and thus "Pause" becomes "Stop".  Secondly, if you do "Stop" the track, the Cocoon won't remember where you were.  The iPod treats podcasts and audiobooks differently from music tracks, and stores your last position in the track before stopping.  So, if you need to stop for a while and return later, you can pick up where you left off.  Thirdly, the fast forward is sloooooow.  So, if you do stop a podcast half-an-hour in, it'll take two or three minutes of holding down the button to get back to where you were.  To compare, the iPod uses the click-wheel to scrub through a track, and the scrubbing speed accelerates with use.  I can scrub through half an hour of SModcast in less than five seconds.  With the Cocoon, I'd managed to walk home from the gym in the time it took to pick up where I was.
This is because, unlike the Cocoon, the iPod is a dedicated media player.  It's also because phone firmware tends to be designed by people who aren't really thinking about how the device is actually used in real life by real people.
What we want a proper convergence device:  something that manages to be a camera, a music player, a PDA and a phone, without actually compromising any of those.  If you want good pictures, buy a camera instead.  If you want a good GPS unit, buy a Garmin instead.  If you want a good music experience, buy an iPod, a Zen, a Zune, or an Archos instead.
Every single attempt to converge these things ends up being a disappointment.  The only thing that's come close seems to be the iPhone, and even that seems to be a whole slew of compromises at the moment.
The Cocoon is stuck in the same kind of mud.  The music player works, but it's just not really quite right.  All the boxes are ticked, but it's just not an iPod replacement.
One thing it does have over the iPod, though, is external speakers.  They're pretty tinny, but they're good enough for listening to spoken voice in a quiet place.  Unfortunately, not good enough for Radio 4, though:  the FM radio only works when the headset's plugged in, or the Cocoon's in the Nest, for some reason.  As I've mentioned before, when "nested", the phone can act as a clock radio.  Unfortunately, it's fairly quiet compared to the average &#163;10 Alba standalone unit from Argos.  It would wake me up, but I can't speak for heavier sleepers than myself.
It also has removable storage:  the internal 2GB of storage is supplemented by a microSD slot capable of taking another 2GB.  Dumping music on the Cocoon from my iBook was okay: when you plug the Cocoon in via USB, it asks whether to connect to "Sync", "Music Player" or "Transfer Files".  Both "Music Player" and "Transfer Files" work, but the upshot is that a new drive appeared called "Cocoon", on which I could dump my music files.  Not as easy as the dedicated iTunes/iPod sync, but understandable, I guess.  I can't say how well it works on a PC with Windows Music Player, because as you know by now, my hands start burning whenever I touch a PC.
Did it pass the gym test?  Not really.  It certainly didn't make me stand up and shout "Why have I been putting up with carrying two gadgets around with me all the time?!?  I must leave now to dispose of my iPod in a suitable manner!"
The bottom line is that if you don't have an iPod, or you really don't want to carry around two devices, then the Cocoon will suffice as a music player / phone combo.  I'm not going to say any more than that, because I don't think the features are significantly better than the other music-capable phones I've had.  The Cocoon accessories are less plasticky, except for the earphones, and the external controls are sometimes useful... but it's just not quite there yet.
Since the Cocoon's firmware is nothing too special (as I'll cover later), I assume it's just a standard firmware Pantech use on their other phones, with a few tweaks mandated by O2.  In my opinion, O2's tame scandinavian designers should pay just as much attention to the interface of the phone as they spent on the outside.  It's this kind of HCI attention-to-detail that makes the iPhone such a big deal, and something the other phone manufacturers will have to figure out if they don't want to get thoroughly shown up by Apple.  Apple doesn't need multi-touch to trounce phones like the Cocoon... they just needed common-sense.
My review might sound quite damning, but it's really just a comment on pretty much all current phones.  They all suck in different ways, but when it comes to music playing, they all seem to suck in similar ways.  As I mentioned last time, the Cocoon is quite a nice phone... but the software is nothing special.
Incidentally, after using it for over a week, on the whole I still prefer the Cocoon to any of the phones I've used in the past few years, including the LG Shine.  I'm just not totally nuts about it.  It's certainly better than the hated Nokia 6280 I bought on contract, but I must say, the 6280 still has one feature that the Cocoon (and the Shine) don't, and I'm still missing it.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/08/23/o2-cocoon-review-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[O2 Cocoon: in-depth Review]]></series:name>
	</item>
		<item>
		<title>O2 Cocoon: Review, Part 1</title>
		<link>http://gidden.net/tom/2007/08/21/o2-cocoon-review-1/</link>
		<comments>http://gidden.net/tom/2007/08/21/o2-cocoon-review-1/#comments</comments>
		<pubDate>Tue, 21 Aug 2007 22:02:05 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[camera-phone]]></category>
		<category><![CDATA[cameraphone]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[Cocoon]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[O2]]></category>
		<category><![CDATA[O2 Cocoon: in-depth Review]]></category>
		<category><![CDATA[Review]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/08/21/o2-cocoon-review-1/</guid>
		<description><![CDATA[As you might have gathered from some of my previous posts, I do enjoy playing with new mobile phones, and I really enjoy ranting about them at length on the internet.  So, I was stoked to receive an email on behalf of O2 offering to let me try out their new "Cocoon" music phone.

I've been playing with it for a few days now, and I must say I like it.  I don't love it, though, as it does have some flaws.  It's got one massive flaw -- which you might be able to predict from my other posts -- but one feature which might just swing it for me.  More on that later, though.
O2 have commissioned this phone themselves, rather than just branding an existing OEM model.  They've handed it to a goatee-growing, polo-neck-wearing Swedish design agency, who have obviously put together a bunch of unfeasible design sketches and then passed it on to manufacture by Pantech, a huge Korean phone maker who we've barely heard of here in the UK.
I'm not sure where the name "Cocoon" came from, though.  It reminds me of an old Dilbert cartoon where it turns out the only two codenames left for new projects are "PHLEGM" and "PLACENTA". 
The phone is a curvy white semi-minimalist design, reminiscent of Marvin in the film version of The Hitchhiker's Guide to the Galaxy, or the shagging robots in that Björk video by Chris Cunningham.  You might think it matches the Apple iPod/iBook white aesthetic, but it doesn't really.  Apple go more for rectangular rounded glossy white plastic, while the Cocoon goes for smooth curves with crisp edges and a more "satin" finish.
The whole thing's really built around a single distinguishing feature: the five-character 16-segment blue LED display on the front.  Invisible when off, but bordered by a few inset symbols, it glows behind the white surface rather pleasantly with a relatively deep blue.  I'm in two minds about the blue:  would it look simpler and better if white LEDs had been used instead?
So, to start with, we get a minimalist white cardboard box, with the word HELLO embossed in the same sixteen-segment font across the front.  The lid flap is neatly held down by a rare-earth magnet hidden somewhere in the box, and then reinforced for good luck by a nasty VOID sticker.  Opening the flap reveals a panoramic picture of something-blossoms which I totally ignore in favour of the phone itself sitting nestled there.  A small plastic tab on the side marked "PULL" reveals the side tray, full of accessories.
The phone itself is a clamshell phone, with a comfortable spring to it, and a thick hinge.  It closes with a solid "thunk", rather than a "snap" thanks to the rubber buffers inside.  The outside is white plastic, and fairly featureless, until you notice a few fiddly details, like the camera, flash/"lantern", black volume wheel, battery panel, lanyard post, and inset indicator symbols.
The sides and the inside of the phone are black and covered in buttons and widgets, such as the stereo speakers either side, the do-everything "port", a slider to release the battery/SIM panel, a microSD slot, and control buttons for the music features.
Inside, we see the standard arrangement of screen, earpiece and video-call camera on the upper half, and keys and microphone on the lower half.  In between, there's a little-used volume wheel built into the hinge which works well from either side.
The main phone and navigation keys are flat but with slight ridges and dimples in places for touch.  The keys are very slightly backlit in a pale sickly green.   The main navigation device is a flat four-way clicker with centre button, along with two multi-function keys and the two hook buttons:  in all, a very standard layout.
When the phone is open, it forms a graceful curve which the Swedes obviously spent long nights sketching with markers.  Unfortunately, this leaves the phone a little uncomfortable to make calls with:  the flat edge and face of the earpiece doesn't contact the ear at a good angle, leaving the call either tinny, or the phone pressed close against the cheek.  Score one for design -v- practicality.  However, this isn't really a big deal.  I've had a three-hour conversation using the Cocoon and it only bothered me to start with.
So, now onto the elephant in the room... the LED display.
To me, this just looked like a gimmick.  We've seen phones with external displays before, and they're just nothing to write home about.  Okay, this one's got a neat docking station (the "Nest", as they refer to it), but I had a desk charging station for my Nokia in 1996.  Whoop-de-doo.
The Cocoon fits sideways into the Nest in what seems to me to be a thoroughly mixed metaphor.  The designers have taken a leaf out of the iPod's book when it comes to connectivity.  There's a single port on the side of the phone, akin to the iPod's "Dock Connector", which acts as a connector for the headset, charging, docking, and even FM radio antenna.  The USB cable plugs either into this port, or into the identical connector on the back of the Nest, with the Nest plugging into the phone with the same type of plug.  The other end of the cable is a standard USB plug that either goes into the computer or into a mains-plug charger.
They've even taken the idea of removable plug pins from the iPod charger, including an oddly-hinged UK three-pin adaptor, and a similarly-bendable European two-pin adaptor.  I don't blame them for copying the iPod, because the iPod did it right, and anyway Apple probably weren't the first to do it either.  Anyway, the arrangement is pretty much identical in topology to the iPod setup.
This brings up the issue of overcharging the battery:  the Cocoon's manual points out that full charge/discharge cycles are far more conducive to battery lifetime than quick top-ups, and yet the Nest encourages this bad behaviour.  While the Nest is plugged into the mains, it will charge the phone, regardless of the point in the discharge cycle.  And, if you're using this thing as an alarm clock, you want it to remain charged.  Unsurprisingly, the manual doesn't cover the issue to this depth, so I'm a little at a loss on what to recommend.
Along with a headphone jack socket, the Nest has two of the multi-function ports on the back: one for the power/USB cable, and one for the FM radio antenna.
Annoyingly, the Nest is lightweight and a bit too small.  If you lift the phone, the Nest invariably comes with it.  You have to hold down the Nest to remove the Cocoon, and since it's so slim, you end up pushing sideways on the cable plug.  I think including a hefty lump of depleted uranium in the base might've made it easier.  Failing that, they should've made it bigger to give something to push against, and made the Nest's docking plug fit looser.  Instead, I'll probably end up Blu-Tacking the whole thing down.  (Incidentally, as I discovered while taking an abortive set of pictures of the Nest, Silly Putty sticks like glue to the rubberised base of the Nest... I ended up having to break out a range of solvents to get rid of it all.)
So, while the Cocoon is nestled in its... Nest... it sits there blinking the clock, just like a blue-hued alarm clock.  While the Nest is powered, the Cocoon will keep the clock showing, so it functions perfectly as a bedside or desk clock.  In fact, it's better than my existing alarm clock, a PURE Sonus-1XT DAB Radio which, while designed with accessibility for the visually-impaired in mind, manages to have an illegibly low-contrast screen. The Cocoon also hasn't crashed yet, unlike the Sonus.
[NOTE: I'm not visually impaired; I just got it for the sexy female voice-synthesis.  I also seem to have a disturbing tendency to buy alarm clocks that end up crashing.]
The big deal -- and I really do mean Big Deal -- about the LED display, is that it's also used for other things.  Okay, this is no great surprise, but until you use it, it's not clear how staggeringly cool this is.
When I get an incoming call or text, I hear the ringtone, look over, and see the name of the caller scroll across the screen.  I can happily ignore the call without having to go across the room, pick up the phone, open it and start pressing buttons.  Incoming messages are partially read out across the screen, which I suppose could be a little embarrassing in a public place...
I can walk into the room and notice the little blue LED above the clock backlighting the debossed "missed call" light.  A meeting reminder will display the subject of the meeting.  The possibilities abound.
For years I've been wondering why combined cable television and phone companies (ie. all of them?) don't integrate Caller-ID into the TV STB.  If I'm watching a show, it would be handy for the name and/or number of the caller to come up on screen with the "Busy" option on the cable remote, rather than having to get up and check the phone, or, heaven forbid, answer it.  This Cocoon/Nest layout isn't quite that, but it's a start.  I don't have to get quite so distracted by my mobile phone as usual.
Of course, this functionality also happens while the Cocoon is away from the Nest, but then it's just like every other mobile's external display, and not quite as big a deal.  Fatally, the LED display is totally invisible outdoors in daylight, even when overcast.  The white plastic is just far brighter than the subtle blue LEDs could ever be.  I wonder if the same form factor and concept could be better utilised with a reflective display technology like electronic ink...
O2 have been fairly generous with the accessories.  We get a headset cable as usual, with a plug for that multi-function port, and a standard stereo jack socket with tiny microphone hole and a single button.  Since this is meant to be a music-oriented phone, and therefore a potential iPod replacement, I would have preferred a stereo jack socket built-in to the phone itself, rather than having to drag more cables around.
Considerately, they've also thrown in a stereo jack doubler to allow two people to share the phone.  Nice touch.  I also notice that when these accessories are all finished in the same black faux-rubber and also curved in the same way so they form a willowy shape when used together.  Again: nice touch.
Along with all of this comes the earphones.  Rather than the grotty fall-out-of-ear types that came with the LG Shine, they've included in-ear-canal ones with three sizes of ultra-soft sleeve.  The cable is very short to keep the headset microphone high, and the separate earpiece cables are asymmetric so the weight of the headset only tugs on one of your ears.
I'm going to cover the other aspects of this phone in a day or two, but so far, I'm fairly happy with the hardware.  Most of it is nothing special, and it does seem a little over-designed at times.  However, I can't stress enough how neat the Cocoon is while "nested".  Such a simple idea, and not a particularly new one at that.  However, they gone done it right.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/08/21/o2-cocoon-review-1/feed/</wfw:commentRss>
		<slash:comments>-5</slash:comments>
	
		<series:name><![CDATA[O2 Cocoon: in-depth Review]]></series:name>
	</item>
		<item>
		<title>LG Shine KU970: The 3G Shine</title>
		<link>http://gidden.net/tom/2007/07/20/lg-shine-ku970-3g/</link>
		<comments>http://gidden.net/tom/2007/07/20/lg-shine-ku970-3g/#comments</comments>
		<pubDate>Fri, 20 Jul 2007 12:08:32 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[2g]]></category>
		<category><![CDATA[3g]]></category>
		<category><![CDATA[camera-phone]]></category>
		<category><![CDATA[cameraphone]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[firmware]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[KE970]]></category>
		<category><![CDATA[ku970]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG Shine: in-depth Review]]></category>
		<category><![CDATA[LGShine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[shine]]></category>
		<category><![CDATA[Shine-Phone]]></category>
		<category><![CDATA[Slide-Phone]]></category>
		<category><![CDATA[vodafone]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/07/20/lg-shine-ku970-3g/</guid>
		<description><![CDATA[Thanks again to the LG Shine Blog, I received an LG Shine KU970 mobile phone to review.  This is the newer 3G version of the KE970 I reviewed earlier this year.

I've been eager to have a play with the 3G Shine since I received the 2G one six months ago.  As luck wouldn't have it, I had just switched from Orange to the 3G-only Three network a month or so before.  So, I couldn't use the Shine I received as my primary phone.  Instead, it's had an Orange PAYG SIM installed which I must admit I've mainly used for getting cheap cinema tickets.
As I said in my previous review, the Shine is -- for the most part -- a great phone.  It's physically attractive and pleasant to use; the software is clean and well-designed; and overall it's an unassuming little unit.
Receiving the Shine coincided with my growing realisation that, gadget freak as I am, I'm actually happier with a "dumbphone" than a smartphone.  Writing blog entries and playing Texas Hold-Em while walking across a tightrope over the river Amazon might sound appealing, but making and receiving calls is far more important to me.  In my experience, smartphones tend to be slow and more prone to crashes, while also being large and unwieldly.  I started to miss the old days of the tiny little Nokia 8310, and firmware that actually responds to keypresses instantly.  For a while it seems that the more advanced (esp. Symbian-based) phones I've had are completely incapable of reacting to the red button when you've accidentally conferenced your ex-girlfriend with 999, for example.
So, the 2G Shine was a breath of fresh air.
Here comes the 3G version
To be honest, there's very little I can say about the 3G Shine.  Physically, it's almost identical.  There's the addition of the secondary video-call camera, neatly done.  Inside the back case, there's a small reconfiguration of the layout, including the removal of the external memory slot, replacing it with hardwired memory instead.  A few manufacturing tweaks and a little bit of subtle network partner branding, but otherwise it's the same.  Same size, same shape, and from what I can tell, same weight.  This is not a bad thing... the Shine was a neat enough package as it was, so the fact that they've managed to cram the 3G kit into the same form factor is impressive, and a testament to how close 2G and 3G technology are finally coming.
So, what about the other differences?  This is where I drop the clanger:  I don't know.  This is solely down to one thing... the firmware.  The 2G Shine I received in January was a pre-release unit with generic firmware.  Nice, simple and clean.  The 3G Shine I received seems to be a release unit, utterly crudded up with Vodafone customisations.
(It's externally branded with the "Proximus" logo, so I'm assuming this one's got Benelux firmware, but knowing Vodafone, it's probably the case everywhere.  I don't know for a fact what the release firmware is or will be like on other networks in other countries, but I'm just going on what I've got here)
I'm always disliked vendor's custom firmware.  I've never used custom firmware that's any better than the generic, and it's usually slower, crashier and far more limiting.
While I've bitched about Orange screwing with the firmware before, I've always appreciated that it's nowhere near as bad as the massacre Vodafone regularly perpetrates on everything they get near.  They tend to rip out handy features, mess with the UI, and then scatter a liberal helping of "Vodafone Live!" nonsense everywhere.  On some phones, they even go to the extent of excluding the "Live!" button from the keylock, which is just plain stupid, and at worst, a machiavellian way of ramping up bills through accidental data usage.
So, in my opinion, the Vodafone customisations on this Shine have destroyed any usability plus-points I've mentioned before.  They've cut out the nice, clean anti-aliased fonts in favour of a hideous jagged console font.  They've added a tonne of crap to the main menu, making it harder to navigate quickly.  They've reassigned action buttons to illogical places.  They've removed a lot of the customisation functions.  Least importantly, but perhaps most disappointingly: they've removed all the ludicrous but fun tunes and other nonsense.  And with all that, it seems that the only thing they've added to the mix is the excretable forementioned "Live!".
This has annoyed me to the point that I just don't want to use this thing.  I was fully intending to use it as my primary phone for a week or so, but I just couldn't do it.  It's too damn disappointing.  I actually prefer my Nokia 6280, which is truly surprising.
In conclusion...
I'm sure that if I was comparing the two units with generic firmware, I'd be raving about the 3G Shine, while still bemoaning the lack of Apple iSync and a couple of the other points I mentioned last time.
Instead, I'm putting this thing back in the box.  It may be harsh, but it's what I would be doing if I'd bought it for real.
Shame on you, yet again, Vodafone.  SHAME!!!  With your heavy-handed alterations, you've ruined a lovely product.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/07/20/lg-shine-ku970-3g/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
	
		<series:name><![CDATA[LG Shine: in-depth Review]]></series:name>
	</item>
		<item>
		<title>iTunes Library Regeneration</title>
		<link>http://gidden.net/tom/2007/05/10/itunes-library-regeneration/</link>
		<comments>http://gidden.net/tom/2007/05/10/itunes-library-regeneration/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:48:43 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[podcasts]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/05/10/itunes-library-regeneration/</guid>
		<description><![CDATA[The final major thing that "I Don't Like About iTunes and iPod" has annoyed me from Day One:  the monolithic bloaty binary library, and the accompanying tidy-but-inefficient XML backup.  For a small library, it's no problem, but mine has major issues.  Heck, and I don't even consider my ~40GB library to be particularly big!

Over the past few months, I've noticed that iTunes has been getting slower and slower.  It's clear that iTunes doesn't scale particularly well.  For anything under, say, 5000 tracks, it starts up quickly.  If you go much above that, it gets sluggish on startup.  Searches start getting slower too.  This doesn't happen linearly, either.
The binary library file was also significantly larger than the XML library file.  As a rule, I've noticed that the XML tends to be a little bit smaller, but my binary file was almost twice the size of the XML.  In this case, I felt it was worth regenerating the library.
Okay, the usual procedure for this (rather drastic) action is to shut down iTunes, and purposefully corrupt the binary library file.  iTunes will then rebuild the binary from the XML "backup" when it next starts.  If you just delete the file, it'll assume you don't have a library and will wipe the XML too.  So, I tend to move the old binary into a backup directory and then create a new dummy file.
In the past, this has tended to work well.  Occasionally there are a few quirks:  in an old version of iTunes, I seem to remember the play counts got trashed.
This time, there was a problem.  My Podcasts section was empty!  The files were still there, but they didn't appear on the list.  I then noticed that there was a new static playlist called "Podcasts" with all my old podcast files, but as as normal audio files rather than categorised podcasts.  These items didn't appear anywhere in the Library section: just the playlists.  So, it's not seemingly possible to delete them from iTunes.
I tried adding the Podcasts again from the iTunes Store, foolishly hoping it would notice the existing files.  Unfortunately, it just downloads fresh copies instead, naming them with a " 1" suffix.
So, I deleted the files manually, and then used the excellent Super Remove Dead Tracks from Doug Adams's site.
This problem highlights the design bloat I spoke about in my previous post.  Back before podcasts, audiobooks, video and all the other stuff appeared in iTunes, everything was neatly kept in the Music Library, and it all worked.  It was possible for the filesystem and iTunes to get out-of-sync with both missing and excess files in the iTunes Music folder, but on the whole, it worked well.
Nowadays, the addition of these new media types to the increasingly-inaccurately-named iTunes has complicated everything.  There's no central folder of everything and stuff can seemingly fall through the cracks.  If a Podcast isn't in the Podcasts list, it won't appear anywhere.
I think Apple should build a new piece of software, called iMedia or something like that, for managing everything currently handled by iPod, iTunes, iPhoto, iPhone, Apple TV and Front Row.
They should also consider using something intrinsic to the OS -- such as Spotlight -- to manage the libraries themselves, rather than relying on easily-breakable and easy-to-desynchronise monolithic files.  At the very least, they should rework it using Core Data, and if I had my way, also add "proper" RDBMS support to Core Data so I can use MySQL as my music library index!
In the process, they should reconceptualise the whole thing.  How should a digital hub operate?  It should work well with multiple libraries at the same time, with network nodes as data suppliers, so families and housemates can share media.  It should allow offline media integration, such as Delicious Library, so I can organise and manage my books and DVDs too.  Ideally, I'd want it to be able to control DVD jukeboxes, so I could build the mother of all home entertainment media servers around a single Mac Mini and a bunch of external jukeboxes, sources and filestores.  It should be open enough to allow companies like Elgato to fully integrate stuff like EyeTV.
That's the kind of innovative thinking we've come to expect from Apple.  Instead, we've got bloated, inflexible creeping featurism of the kind we've come to expect from Microsoft.
Oh, one more thing.  I'm on iTunes 7.1.1 on OS X, and it's crashing more than it did before.  I've had it bomb out a few times while converting videos for iPod.  Not good.
In conclusion, I must say that I still prefer iTunes and iPod to the alternatives... by a long way.  They're just not as good as they could, or should, be.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/05/10/itunes-library-regeneration/feed/</wfw:commentRss>
		<slash:comments>-2</slash:comments>
	
		<series:name><![CDATA[iTunes and iPod rant]]></series:name>
	</item>
		<item>
		<title>iPod Video Conversion in iTunes</title>
		<link>http://gidden.net/tom/2007/05/10/ipod-video-conversion/</link>
		<comments>http://gidden.net/tom/2007/05/10/ipod-video-conversion/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:48:14 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[unicode]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/05/10/ipod-video-conversion/</guid>
		<description><![CDATA[The kludginess of video conversion for iPod in iTunes is another one of the things "I Don't Like About iTunes and iPod".  I don't like the conversion process, and I particularly don't like the bug I think I've found.

Even before I got an iPod Video, I managed to accumulate a few videos in my iTunes collection.  Mostly music videos, in various formats, but a few other things too.  I've got a few from the iTunes Store, which transfer to the iPod just fine.  However, most are different formats and need re-encoding.
Apple have not made this as easy as they could.

"Movies" and "TV Shows" have their own sections in iTunes, but music videos appear in the music list.  This is inconsistent with the iPod, on which music videos get their own section in the "Videos" top-level menu.
As a result, it's difficult to focus just on the music videos for conversion.  You can use a Smart Playlist, but you don't get full control of the items in a playlist:  for example, you can't delete items without going to the main library list.  This is important later, after conversion.
You can't change the type of a video by bulk editing.  On import, my non-iTunes-purchased videos came up as "Movies" rather than "Music Videos".  To change this (and therefore decide where they appear on the iPod), you have to "Show Info", select "Video" and then change the "Video Kind" dropdown.  This function does not appear in the "Multiple Item Information" window usually used to edit groups of items.  The keyboard shortcuts for this procedure are also non-optimal, and this all translates to a lot of mouse work.
After a track is converted using "Convert Selection for iPod", it is not marked in any way.  The original is not unticked, tagged or labelled.  Instead, you have to look at the kind, such as "QuickTime movie file" or "MPEG-4 video file", and it's possible those are the same.  Otherwise, it's up to the Date Added column.
As the original files aren't disabled, they still trigger the warning dialogue on the next sync, saying that they're incompatible with the iPod.  The originals in my opinion should be unchecked so they don't get synced.  I'd ideally export the files out and then remove them altogether.  However, as there isn't an easy way to select those originals avoiding the converted versions, it's a chore.

Okay, all of those are design flaws.  Fairly annoying ones, too.  I've been of the opinion for a while that both iTunes and iPhoto were great packages in their day, but are in dire need of redesigns and rewrites.  They've lost their simplicity and elegance.  They're bloated.
The next thing, however, is a bug, demonstrated by this screenshot.  A number of the converted videos appear with blank names and artists on the iPod.  They play fine, but they're just not there.
In addition, it's also made the band's Music Videos entry appear six times:  three with the correct name, and three with a blank.  All six menus contain the same items, as above.
Upon investigation, all of these files are named fairly oddly.  They appear fine in the Show Info "Info" panel, but on the "Summary", there's a quirk:  the names are spaced out, and the file path has alternating underscores.  Checking the file paths and the iTunes Library XML file gives similar results:
I've seen this kind of thing before.  It looks like it's almost definitely a Unicode interpretation error.  As with most other modern string-handling APIs, NSStrings inside OS X (Cocoa) are stored with (at least?) two bytes per character, rather than the old-style one byte per character.  It's easy to make the mistake of failing to convert this back and assume one byte per character.
In the example above, the artist name -- R&#246;yksopp -- is clearly not plain ASCII, so I wouldn't be surprised if the programmers of iTunes's conversion interface failed to test for this problem.  However, I did also encounter the problem with some videos with plain English names and artists, too: my copy of Leonard Nimoy's "The Ballad Of Bilbo Baggins" also came up blank.
To fix this problem, I just went into each item's "Show Info" in turn and retyped the names.  Fine for the few items I imported, but not if I'd had any more.
I think Apple's point with all of this is that you should buy all your videos from them.  Mine mostly came from "enhanced limited edition" CDs instead.
Incidentally, in the shots above, you might notice two different versions of the incredible "Remind Me" video by R&#246;yksopp.  I've discovered that there are (at least) two subtley-different versions of this video, and the one on the iTunes store isn't quite as good.  Apart from the gratuitous cartoon boobie shot, the non-iTunes version has a couple of little hidden jokes in the background, and a few more scenes.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/05/10/ipod-video-conversion/feed/</wfw:commentRss>
		<slash:comments>-3</slash:comments>
	
		<series:name><![CDATA[iTunes and iPod rant]]></series:name>
	</item>
		<item>
		<title>iPod Photo Bloat</title>
		<link>http://gidden.net/tom/2007/05/10/ipod-photo-bloat/</link>
		<comments>http://gidden.net/tom/2007/05/10/ipod-photo-bloat/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:47:57 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[bloat]]></category>
		<category><![CDATA[iphoto]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/05/10/ipod-photo-bloat/</guid>
		<description><![CDATA[In the process of replacing my iPod, I've noticed a couple of things "I Don't Like About iTunes and iPod".  After my previous rant about iPod reliability, I'm now onto the sloppy programming behind iPod's photo functions.

So, I started transferring all my media to the new unit.  The music went across fine.  Videos, not so much, but more on that later.  Photos, however, were taking hours to transfer.  iTunes was "optimising" the photos.  I remember this taking a while back when I got the previous iPod, but I'd forgotten how slow it was.
I've got about 19GB of photos, all neatly keyworded in iPhoto.  Since I got my iPod Photo two-and-a-bit years ago, I've kept a copy of my collection on my iPod: usually with "Include full resolution photos" ticked.
So, what's it doing?
It's decompressing the photos into YUV format at iPod screen resolution.
Each photo, regardless of the original file size is "thumbnailed" to a new file of about 851K on the new iPod Video, and marginally less on the iPod Photo and the Nano.  This is allegedly to offload some of the processing effort from the iPod to the host computer, so the iPod doesn't burn through batteries trying to do the instant photo scrolling thing.
Problems with this approach:

It takes a long time to convert all my photos.  I've got an iBook G4 1GHz, not an eight-core Big Mac.  Since the screen size is different on the new iPod, the whole process has to be done again.  I'm also not convinced it's thumbnailing particularly efficiently.  I bet ImageMagick would be faster.
It uses up a lot of space on the iPod.  Okay, I'm not likely to use up the 80GB any time soon, especially since my iBook doesn't have the disk space to store all that anyway.
It uses up a lot of space on the host machine: in my case, 9GB extra!  That's almost 10% of my laptop's HDD.
iTunes/iPhoto isn't well-behaved enough to clean up after itself.  The thumbnails have a nasty habit of sticking around.  If a photo is deleted, there's no guarantee the thumbnail will be deleted.  If you change iPod model (like I did), the old, useless, wrong-sized thumbnail will stay there.  If, after noticing this bloat, you disable some or all Photo syncing, the cache still sits there.  Considering how long the process can take, I understand this design decision, but I don't necessarily agree with it.
It takes ages just to transfer these thumbnails compared to transferring the (smaller!) originals.  Now that they've canned FireWire over the slower, less reliable USB2.0, iPod syncing is sluggish.  Piping this crapload of excess data around really doesn't help.

The thing is, I really don't think any of this is necessary!
Now that the iPod Video is better specced, why can't it do its own thumbnailing, and cache them locally?
And at the very least, why do they have to be possibly the least efficient file format?  JPEGs aren't hard to decode, and while I could understand the need for keeping lower resolution thumbs on the iPod, I can't see why JPEGs wouldn't do.  While admittedly the iPod uses hardware to decode video, it still manages to do some reasonably sweet 3D graphics in the new iPod Games, and I don't think they shoehorned a Radeon into the iPod, so the thing's capable of doing maths, to say the least.
As far as the hard drive is concerned, the standard reply is to get a bigger drive.  I've already got a 100GB drive in my iBook, and I still cling to the concept of portability, so an external drive is out.  If there was a good reason for this, I'd think about being more selective, but it's just waste and sloppy programming on the part of Apple.
It seems probable that Apple crammed in this functionality with the underpowered iPod Photo, and then failed to update the codebase.  I accept that the Nano might not have the oomph to do the work and would need the offloaded conversion, but then again, the Nano's not going to store a huge cache anyway!  When it comes to the larger, more powerful iPods, it should act differently.
I'm sure Apple aren't losing any sleep over this problem:  they're too busy working on the OS X-based iPhone and the inevitable touchy-feely non-phone-iPhone iPod that will accompany it.  That thing will presumably be able to do the thumbnails itself.
It still doesn't excuse the sloppy coding that's currently there.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/05/10/ipod-photo-bloat/feed/</wfw:commentRss>
		<slash:comments>-6</slash:comments>
	
		<series:name><![CDATA[iTunes and iPod rant]]></series:name>
	</item>
		<item>
		<title>iPod Reliability</title>
		<link>http://gidden.net/tom/2007/05/10/ipod-reliability/</link>
		<comments>http://gidden.net/tom/2007/05/10/ipod-reliability/#comments</comments>
		<pubDate>Thu, 10 May 2007 12:47:48 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[80gb]]></category>
		<category><![CDATA[hardware-failure]]></category>
		<category><![CDATA[ipod]]></category>
		<category><![CDATA[ipod-video]]></category>
		<category><![CDATA[itunes]]></category>
		<category><![CDATA[rant]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/05/10/ipod-reliability/</guid>
		<description><![CDATA[Last week, I got a new iPod Video 80GB from eBay, and in the process of transferring my media a number of things caught my attention.  Some of these are known about already, but they're things "I Don't Like About iTunes and iPod".  I'm covering these in a few separate posts, as I've got quite a bit to say on the subject.

Firstly, the failure of the old iPod.  Okay, this bit's the average iPod rant... nothing new here.
I've bought three iPods for myself now: a 20GB G3, a 60GB Photo, and this new 80GB Video.  However, I've owned more like six, thanks to AppleCare warranty replacements.  Although I'm known for having a "negative aura" when it comes to hardware (and am seen by some of my peers as the ultimate hardware tester), I've been careful with the iPods.  All have had an approved skin or case (usually an silicone iSkin), and have been treated well.  I haven't gone hiking, underwater or into space with them, or even regular commuting.  No significant drops either.  Even so, they keep failing.  I still haven't experienced the infamous battery problem, as none of my iPods have lasted long enough.
Last time, I took my 11-and-a-half month old iPod Photo 60GB on holiday with me to the Caribbean.  It started the "click of death" about one day into the trip.  I checked the warranty and I had only about a week left:  it would expire before I got back to civilisation.  So, I called my friend Henry to ask him to call AppleCare and ask them to let me buy the one-year extension when I got back.  They did.
Promptly, the iPod started working again.  I have no idea how Apple managed to reset the warranty trip remotely.  I'm guessing they have a satellite to do this.
Anyway, it worked fine all year.  There were no signs of failure, so I couldn't really get it fixed.  Last month, the extended warranty ran out again, and shortly afterwards, the click of death started again.  Within a day, it wasn't reliable enough to sync.
So, off to eBay I go.  To justify the cost of a new iPod, I sold my seldom-used PSP and games, plus the old iPod (clearly marked as faulty) and accessories which don't fit the new iPod anyway.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/05/10/ipod-reliability/feed/</wfw:commentRss>
		<slash:comments>-5</slash:comments>
	
		<series:name><![CDATA[iTunes and iPod rant]]></series:name>
	</item>
		<item>
		<title>Mechanics Experiments with &lt;canvas&gt;</title>
		<link>http://gidden.net/tom/2007/04/03/mechanics-with-canvas/</link>
		<comments>http://gidden.net/tom/2007/04/03/mechanics-with-canvas/#comments</comments>
		<pubDate>Tue, 03 Apr 2007 11:54:20 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Blogroll]]></category>
		<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[canvas]]></category>
		<category><![CDATA[collision]]></category>
		<category><![CDATA[inertia]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mass-moment-of-inertia]]></category>
		<category><![CDATA[mathematics]]></category>
		<category><![CDATA[maths]]></category>
		<category><![CDATA[mechanics]]></category>
		<category><![CDATA[moment-of-inertia]]></category>
		<category><![CDATA[polygons]]></category>
		<category><![CDATA[rigid-body-dynamics]]></category>
		<category><![CDATA[trigonometry]]></category>
		<category><![CDATA[verlet]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/04/03/mechanics-with-canvas/</guid>
		<description><![CDATA[A couple of months ago, I spent a few weeks playing with &#60;canvas&#62;.  The main reason was to write a game (currently on the back burner, but not "cold" as yet), and also to re-learn some simple mechanics and trigonometry I've forgotten since c.1993.  I've put together a little bit of code ("testbed") which lets me put together simple interactive diagrams.  Due to the lack of text support in &#60;canvas&#62;, unfortunately I can't label everything diligently.  My old maths teacher, Mr. Slatter, would be horrified.

I mainly got sidetracked trying to calculate the scalar, or mass moment of inertia of an arbitrary polygon.  This would be used to calculate what happens when something hits a polygon.  Unfortunately, I couldn't find any pertinent information about it, and a lot of conflicting (or just plain wrong) stuff confusing it with other things with similar names.  I even rootled through the garage and found my trusty 3rd Edition of Stroud, which got me through A-level maths.  Anyway, I finally found the answer and then took a break from the code.  I should really get back to it sometime.
After seeing some experiments done by my friend Martin, I've thrown caution to the wind and decided to publicise my egregious lack of mathematical knowledge, along with my hacky approach to non-browser-portable Javascript.  So, below is a cut-n-paste list of the experiments... comments are extremely welcome.

These pages are simple Javascript experiments with various geometric situations to try things out.
They are most likely to work in Firefox, but will probably run fastest in Opera if at all.  Safari is okay, as is Camino.

Experiment 1: Intersection between a stationary circle and a polygon.  Comparison of line normals against direction to intersection points gives whether the circle is inside or outside the polygon.  Uses the circle/line intersection test.
Experiment 2: Collision of circle in motion against a line.  Uses similar triangles to work out collision "time", and then reflects both C and C-prime in the line to give new positions for constraints.
Experiment 3a: Intersection of a circle in motion against a polygon, including corners.  Uses two methods: similar triangles technique for collision against edges, and circle/line intersection test for collision against corners.  Uses the first collision, using simple minimum finding.
Experiment 3b: As above, but using simpler algorithms.
Experiment 4: Oliver Humpage kindly wrote some PHP code simulating a simple collision between a point and a polygon.  I've translated this to the same framework I've used here.
Experiment 5: First step in calculating mass moment of inertia (MMI): triangulation of simple (but not necessarily convex) polygon using Ear Cutting.  This is non-optimal, but since the search for a simpler mechanism an open problem, I'm okay with going for the O(n2) solution since we're only doing this once (as long as the polygon doesn't change shape), and we're only doing it for a small n.
Experiment 6a: MMI test, using bh3/36, which doesn't seem right.  Comparison circles are also given.  One problem here is confusion between (scalar) {mass,polar,area} moments of inertia, probably thanks to structural engineers making a mockery of the terminology.  In particular, I think the author of this page has picked the wrong one (possibly "area" rather than "mass").  Wikipedia's not helpful on this point, and my calculus isn't really up to the task.  Finding a formula for the MMI around the centroid of a triangle (in 2D) is proving difficult.  I'm not sure if this value will even help:  the parallel axis theorem only works for axes in the plane of the shape, while we're trying to get it around an axis normal to the plane of the shape.
Experiment 6b: The above method doesn't seem to work, so trying a different method.  Seems to work well, although the figures go weird when the triangle is "inverted", ie. the vertices are anticlockwise.
Experiment 6c: Brute force approach, by gridding the triangle and treating each point as a point mass.  This should give an approximation for comparison of the other experiments.  Interestingly, there seems to be a relationship between the approximation and the largest (pale blue) circle (bounding circle around the centroid).  For an equilateral triangle, the approximation is about half that of the circle, and for a sliver-like oblique triangle, it's about 27%.  I suspect the range might be &#188; to &#189;, in inverse relation to the largest angle of the triangle (60&#176;&#8658;&#189;, 180&#176;&#8658;&#188;), but not necessarily inverse proportional.  The sliver, of course, tends to that of a thin rod, given by (ml2)/12.  As the rod has no area (our current analogue for mass), it gets tricky.
Experiment 6d: To compare the results of 6b and 6c.  Seems to match very well.
Experiment 7: Combines Experiment 5 with Experiment 6d to demonstrate the use of the MMI calculations on the arbitrary simple polygon.  The methods are functionized, and also parameterized to allow a different rotation axis point to the triangle's centroid: in this case, the polygon's centroid.  It demonstrates that the method from Experiment 6b is correct and general enough to use for the polygon.  This confirms the mass moment of inertia of a simple polygon around an axis normal to the plane of the polygon and through its centroid!
Verlet Experiment: Test of point-based verlet integration mechanism.  Simulates all objects as point meshes.  Too slow for use in a Javascript-based game, I think.
Mandelbrot: To demonstrate to Steve how canvasses work.  WARNING: Runs badly in anything but Opera.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/04/03/mechanics-with-canvas/feed/</wfw:commentRss>
		<slash:comments>-1</slash:comments>
		</item>
		<item>
		<title>Transferred from GoDaddy to Dreamhost</title>
		<link>http://gidden.net/tom/2007/03/12/transferred-from-godaddy-to-dreamhost/</link>
		<comments>http://gidden.net/tom/2007/03/12/transferred-from-godaddy-to-dreamhost/#comments</comments>
		<pubDate>Mon, 12 Mar 2007 19:09:02 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[dreamhost]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[hook]]></category>
		<category><![CDATA[hooks]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[post-commit]]></category>
		<category><![CDATA[postcommit]]></category>
		<category><![CDATA[subversion]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/03/12/transferred-from-godaddy-to-dreamhost/</guid>
		<description><![CDATA[I finally got sick enough of GoDaddy to buy a Dreamhost account and transfer (nearly) everything over to that account.  Although I've only been using it for a few hours, I know I'm going to be far happier with it... especially the Subversion support.  Setting up a post-commit hook as described below has made maintenance a lot easier.

Writing off the $50 or so I spent on my GoDaddy account doesn't make me cry, and thanks to a handy coupon code, the new account only cost me about $90 for two years.
My main reasons for transferring over are:

Subversion support
SSH shell access
rsync support

I am so sick of running a slow and crappy ftp mirror to update my files, and a tedious process to upgrade WordPress and other packages.  With the above features, this is going to be a lot easier.
Dreamhost's web admin interface could be a bit quicker, but it's cleanly organised and full-featured.  Everything operates as expected, and it didn't take me long to get set up.
The only thing that took me more time than I would have liked is getting post-commit hooks set up on Subversion, so my web projects are kept up-to-date.  All I wanted was a simple svn update run in a few directories of the web tree whenever a commit is performed.  As this seems to be a frequently asked question, here's what I encountered:

Errors don't seem to be logged, so it's mainly just fumbling in the dark.
When accessed through http: (rather than file: or svn+ssh:), the hooks are run as dhapache, the web server user.
Simply tweaking the permissions of the checkouts to 777 doesn't seem to help that much.
The hook is going to be chown'ed to you, rather than to dhapache.  You could rename post-commit.tmpl, but then you'd have trouble chmod'ding it +x.
Running setuid (yick!) would get around that problem...
...if you could run scripts (as opposed to binaries) setuid'ed. (Yep, I forgot that one)
...or if you could be bothered to write them in C, or at least wrapper them with C.
It's all a moot point, because Dreamhost seem to be undoing setuid flags on a cron, or something similar.  Possibly on some form of pre-execution check by dhapache.  Not sure.

I tried putting the updates in post-commit itself, but found instead that it's far easier to put them in a CGI script and just use curl inside the post-commit instead.  I suspect the post-commit execution has a bogus environment in some way, so I hand it off to the CGI, which is easier to debug.

#!/bin/sh
/usr/bin/curl -O http://mywebhost.dreamhosters.com/_svn_update.cgi

The CGI is going to run as you, rather than as dhapache, so the setuid isn't necessary.  My CGI looks something like:

#!/bin/zsh
set -f
echo Content-type: text/plain
echo
foreach f (/home/mywebhost/svn/_live/*) {
        /usr/bin/svn update $f
}

Now all I need to do is put a bunch of checkouts into ~/svn/_live, and symlink them into my web directories where necessary.  I've also thrown in my zshrc file for luck.
I've chosen to use file:/// checkouts rather than http:// for performance, so it's probably best not to try to use them as read-write checkouts... mixing protocols when using hooks is not fun in my experience. Currently, this updates all checkouts if one of them changes, which isn't particularly efficient.  I'm going to rewrite it using $1 instead.
I'm sure there's probably a better way of doing all of this, without the intermediate kerfuffle, but this works fine for now.
UPDATE (March 16, 2007):  I had another play with it.  I think it's possible to get the apache user (dhapache) to correctly perform an svn update on a checkout owned by dhapache, but it doesn't do exactly what I want... I really want the checkouts executed by my user, for various reasons.  I also tried some other approaches.
Anyway, I reverted back to the old idea: that of using CGIs, and using $1 to determine the repository in question.  I've rewritten the script in Perl (and the corresponding hook), so I can use regular expressions to untaint the parameters.  I'd usually pick Perl for an obvious scripting job like this, but PHP would work fine too.
The real overhead is filesystem performance, rather than the CGI call.  As DreamHost uses an (obviously overloaded) NFS setup internally, Subversion updates are slowwww (at least this week), even when using file:///.  So, fixing the script to only update the specific repository has sped it up a bit.
Incidentally, this script could easily fail dirtily if run at the same time as other stuff going on.  I've had to manually run 'svn cleanup' on the _live checkouts.  Maybe locking will help...]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/03/12/transferred-from-godaddy-to-dreamhost/feed/</wfw:commentRss>
		<slash:comments>-171</slash:comments>
		</item>
		<item>
		<title>Game Idea: Cowboys and Indians</title>
		<link>http://gidden.net/tom/2007/03/07/cowboys-and-indians/</link>
		<comments>http://gidden.net/tom/2007/03/07/cowboys-and-indians/#comments</comments>
		<pubDate>Wed, 07 Mar 2007 23:31:32 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[cowboys-and-indians]]></category>
		<category><![CDATA[game-idea]]></category>
		<category><![CDATA[game-ideas]]></category>
		<category><![CDATA[rpg]]></category>
		<category><![CDATA[wild-west]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/03/07/cowboys-and-indians/</guid>
		<description><![CDATA[Through Digg, I found a site called My Game Ideas, where you can post (unsurprisingly) ideas for computer games and let others comment and rate them.  Anyway, this prompted me to post an idea I've been mulling over for a couple of days:  Cowboys and Indians meets GTA. UPDATE: Unfortunately, it looks like I failed to notice Red Dead Revolver, which looks to be a more sucky version of what I was thinking of.

My idea:
An open world third-person game with RPG elements in the mold of GTA:San Andreas, with a Wild West theme, done relatively stereotypically, but not comically.
Based on your actions, you become an outlaw, a sheriff, a cowboy, a trader, or an explorer, or a mixture of those roles. Possibly a parallel development thread in an Indian tribe, too.
Wanted level is permanent and only reduced by doing time or by compensating with good deeds: becoming a deputy or sheriff; "cleaning up the town"; foiling a robbery, etc. Being lynched is a serious risk.
Your actions also will affect the growth of the settlements you visit, with buildings being built or torn down while you're out of the area. Misbehavin' too much in one town may cause it to become a ghost town. Establishing a trading route, either directly, or by providing protection on the way, causes towns to grow.
Mini games and missions would include lassooing; herding of cattle; gunfight duelling; protection; escorting; bounty hunting; stagecoach and bank robbing; prospecting; mining; hunting; train robbing (and protection); building a posse; and so on.
The landscape could be largely procedurally generated, as there would be a lot of prairie and desert. It should be as large as possible.
"Vehicles" go from a decrepit burro through to "Silver" as in The Lone Ranger, along with the railroad, stagecoaches, wagon trains, etc. Concern for your trusty steed's hunger, thirst, fitness and health -- along with your own -- is critical.
Weapons would include muskets, six-shooters, shotguns, bow-and-arrow, bare knuckle fighting, whip, lassoo (operated by rhythmic rotation of the analog stick), and sticks of dynamite.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/03/07/cowboys-and-indians/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>LG Shine KE970: Everything Else</title>
		<link>http://gidden.net/tom/2007/01/25/lg-shine-ke970-everything-else/</link>
		<comments>http://gidden.net/tom/2007/01/25/lg-shine-ke970-everything-else/#comments</comments>
		<pubDate>Thu, 25 Jan 2007 14:47:44 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[6280]]></category>
		<category><![CDATA[6680]]></category>
		<category><![CDATA[camera-phone]]></category>
		<category><![CDATA[cameraphone]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[KE970]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG Shine: in-depth Review]]></category>
		<category><![CDATA[LGShine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[shine]]></category>
		<category><![CDATA[Shine-Phone]]></category>
		<category><![CDATA[Slide-Phone]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/01/25/lg-shine-ke970-everything-else/</guid>
		<description><![CDATA[Okay, I've covered the the physical aspects and the audio aspects, so now it's time to wrap it up by looking at the camera, the software and finally the phone-call-making bits of the LG Shine.

The Camera
In my experience, phone cameras are universally crap.  However, it looks like 2007 is the year that the manufacturers get their act together and start creating some decent picture-taking kit.
The Nokia N95 seems to be leading the field with a 5MP camera, and a gajillion other features such as GPS.  The LG Shine doesn't try to compete at this level, but they've managed to cram in a "Schneider Kreuznach certified" 2MP camera.
This doesn't immediately impress me, though.  My existing Nokia 6280 comes with two cameras:  one on the front for video calls, and a 2MP unit on the back for photos.  The Nokia 6680 I had before then used the same two-camera arrangement, with a 1.3MP camera on the back.  It also had the added bonus of a sliding lens cover to keep the dust out.  All four cameras were terrible... to the point that I just gave up trying to take photos with them, as I just got angry when I saw the results.  No matter how cool the impromptu subject was, I couldn't look past the streaky, grainy, unfocussed, blown-out images.  I ended up taping closed the 6680's lens cover so it would stop unlocking accidentally whenever I put the damn thing in my pocket.
So, how good is the Shine?  Much better.  Much, much better.
For a start, the camera actually focusses.  It's got manual focus, auto focus and macro.  A half-press on the shutter button triggers the auto-focus:  just like a "real" digital camera!
So, to get into the camera functions, you can either go through the Multimedia menu, or you can just hold down the shutter button on the side.  Once you're there, the live image appears, full-screen, and the whole interface turns sideways.
"Options" pulls up an overlay of settings menus as expected.  Using the scroll bar to navigate lets you adjust:

Shot mode: Macro, On, Off
Resolution: 320x240, 640x480, 1280x960, 1600x1200
Quality: Super fine, Fine, Normal
Flash: On, Off
Self timer: 10 seconds, 5 seconds, 3 seconds, Off
Save to: External, Phone
Multi shot: 6shot, 3shot, 1shot
Metering: Centred, Combined
Colour effect: Negation, Mono, Sepia, Colour
White balance: Fluorescent, Cloudy, Incandescent, Daylight, Auto
Shutter tone: Off, Tone 3, Tone 2, Tone 1
Reset settings: Yes, No

In addition, the exposure can be changed with the scroll bar from -2.0 to 2.0 in 1.0 increments, and zoomed gradually from x1 to x2 with the ends of the bar.
When ready, a half-press of the shutter button will focus and hopefully lock focus, and then a full-press will take the picture...
...a second later.  That's the Achilles Heel of this camera.  The shutter lag is baaad.  Disabling auto focus has no effect, and it's not an exposure thing either:  even in bright sunlight, it lags.  I tried reducing quality, resolution, changing metering, and everything else I could find.  No luck.
What makes this even worse is that compared to a dedicated digital camera, such as my Canon Powershot A75 or my Canon EOS 300D, it's a pretty lightweight unit, and with the positioning of the shutter, you don't get a particularly solid grip on the thing.  As a result, the picture you frame and the picture you take could be significantly different.
Now, shutter lag isn't a new thing.  All cameraphones I've used suffer from it.  Hell, most consumer digital cameras seem to suffer from it, or at least, used to suffer from it.  It's just a shame they didn't manage to fix it for this one.  I don't (particularly) mind if a camera takes a while to dump the image to storage after the shot has been taken, as long as it does actually take the shot when I want it to.
For now, I'd switch it to "Multi shot", which takes three or six photos in quick succession.  It still takes a second to get going, but once it does, it rattles through them at a fair rate.  Unfortunately, to do so, it reduces resolution to 640x480 (0.3 MP).
Moving on... image quality.
The pictures produced by the Shine are good.  Of course, not up to the quality of a good consumer dedicated camera with a proper big lens, but as good as those slimline units with small lenses you can get for about £100, I think.  It utterly thrashes the Nokia 6280 (and by implication, the even-worse 6680), as you can see from the pictures below.  There's only so much that can be done with a small lens as the light-gathering capability is limited.  So, a well-lit room or natural sunlight makes a big difference.


Nokia 6280
LG Shine


However, as far as I can tell from the photos my old boss used to get me to download from his phone for him, these things are often used to take pictures of drunken boobs (in more than one sense) in darkly-lit bars.  I haven't had the opportunity to take the Shine out to a bar to snap boobs, but I did test it in darker conditions.
Now, with the other cameraphones I've mentioned, this just results in technicolor streaking (of the bad kind).  Noise is rife, and the picture is barely visible.  Even in a relatively low-lit room at night, the streaks ruin it all.  It looks to me like the Shine doesn't suffer from this.  Sure, it has image noise at low light conditions, but with a lens small enough to fit in a phone this thin, it's a damn good effort.  Plus, the image noise isn't that unattractive.  It's more like blurry grain than typical multicolour digital speckles.
The thing I'm really pumped to see on this thing is the Macro (close-up) mode.  It's sad to admit, but I want to use my cameraphone mainly for taking pictures of whiteboards before I rub them out, and documenting things like where screws go before I take them out of the thing I'm disassembling.  I'd also use it to take pictures of business cards, serial numbers and other things that absolutely require Macro focussing.  The LG Shine brings it.  The Macro mode works.  It can focus within two inches before it starts getting blurry.
The flash is an odd one.  It actually operates more like a lamp, in that it doesn't actually flash.  Like other camera phones, it's actually just a dazzling white LED.  When the flash setting is on, the LED stays lit.  While this would run the battery down faster, I'd imagine, it does obviate the need for a red-eye mode.  It also means it'd come in handy in the event of a power cut.
I didn't really test the video camera capabilities, but I note that it can record clips at 176x144 resolution, with a subset of the still camera options.  You can also use it as a voice recorder.
One other minor issue which shouldn't make a blind bit of difference to anyone but a geek like me is the fact that the Shine doesn't include EXIF metadata with photos taken by it.  What this means is that on, say, Flickr, you can't see what photographic settings were used for the photo, or even what kind of camera took it.  This is a bit sloppy on the part of LG, as far as I'm concerned.
To conclude, I think they've done a great job on the camera, especially considering the size of the phone.  It doesn't compare too badly to a dedicated digital camera of a similar size and weight, and it has the added bonus of actually being a phone too.
There are two major flaws, though:  firstly, the shutter lag I mentioned, which they may be able to correct in software.  Secondly, the camera function suffers a great deal from the screen visibility problems I mentioned in my previous post.  In outdoor daylight conditions, the screen is barely legible, and without an optical viewfinder, it's impossible to frame the shot.  By sheer luck, I managed to take the picture on the right, in bright sunlight using macro mode, but I haven't shown you the many other shots that didn't turn out purely because I couldn't see what was being taken.  Unfortunately, they can't fix this problem.  The mirror-like screen is one of the key selling points of this phone, and is admittedly beautiful.  However, it's got disadvantages, and this is one of them.
Finally, the rest of the features
I've put off reviewing the more mundane parts of the LG Shine, such as actually making calls, even though they're the most critical parts of it.  I think this is because making calls on a mobile is no longer a big deal.  Most phones are much of a muchness, with similar call quality and adequate battery life.
To be honest, I can't really judge battery life too well on this thing.  I'm used to power-hungry 3G phones, and I also haven't been using this phone to make more than a couple of test calls.  On the other hand, I've been playing with a lot of features.  As a result, the fact that I've charged it three times in the past five days is of absolutely no value at all.  What I can tell you is that the unit comes with a Lithium Ion 800mAh battery.
Call quality is fine.  Meh.  I just can't think of anything else to say on that subject.  Sorry.
The software, on the other hand, I can rabbit on about for ages.
The user interface is good, with very well-designed graphics and exceptionally clear text.  I don't feel the aching need to install some wacky theme or skin on this unit, as the graphics are neat and pretty.  It comes with some stock wallpapers and animations (Flash SWF files, no less!), but they're not incredibly inspiring.  It's interesting to note that most of them are stereotypically "girly" with flowers and petals and things, reflecting what seems to be the target market of the Shine.  There is, however, a manly "car" animation, including sparkly highlights for those of us macho men who still appreciate good design.
The menus are well laid out, with a better overall organisation than that on recent Nokia phones.  However, it's still fairly conservative, with the standard hierarchies in place, such as "Profiles" (activate / personalise), "Settings" and "Call History".  It's just not a big deal.  As well as being able to navigate with the scroll bar, almost all options have a digit next to them for navigating with the keypad.  Even with the smooth keypad, I still find this nicer and faster to use than the scroll bar.
The whole phone interface is fairly responsive, with no major lags involved.  It's not instant, but it's a lot better than the second-long pauses some of the Series 60 Nokias suffer from.
The call-making interface is fairly standard, but still well thought out.  Manually dialling is neat, with big colourful digits appearing in one of four different animated styles.  I've chosen "digital style", giving me seven-segment "LCD" style digits.  Accidental calling is quick to cancel, which is better than the Nokias.  On the occasion that I've misdialled, or accidentally pressed Green on a contact, the Nokias have failed to drop the call until the line starts ringing.  If that was an accidental emergency call, I'd be in trouble.  The Shine drops the call as soon as the "drop call" button is pressed.
Text messaging is organised and although it's let down, again, by the lack of tactility of the flat keypad, it's still quick to type stuff.  The predictive text is done right, and I must highlight the good choice of symbol selection they've gone with:  pressing "*" brings up a list of symbols, each with an assigned keypad button.  So, by pressing *9 and then "OK", I get "@".  Using the scroll bar reveals more symbols, including currency, and for some odd reason, some (but not all) Greek letters.  This interface is far better than the painful repeated button-pushes mechanism used by Nokia, which often results in overshooting the one you want.
The contact management function is well done, with ringtone choice and photo for all contacts.  I haven't found any Voice Tagging feature yet, but I never use them anyway.  The phone also includes the ubiquitous Calendar, Alarm Clock and Calculator, along with Stop Watch, Memo, Unit Converter and World Clock.  These are clean and well-implemented, including a full scientific mode for the Calculator.  As I mentioned the other day, the Alarm Clock is a little limited, with no capability to use an MP3 for the alert sound.  Instead, a set of MIDI-esque instrumental tunes are offered.
It looks like they've really gone to town on the World Clock, though.  A full animated 3D Planet Earth is shown, pointing to the various cities.  It's very cute, but a little cumbersome to use, and there doesn't seem to be an option to remember more than one city.  Instead, you can select your "Home City", which has the side-effect of reinterpreting the phone's current time zone.  This means you can't keep local time, while still keeping track of whether it's the middle of the night back home.  I think if I needed this function, I'd start looking for a downloadable application to do the same thing in a more straightforward way.
As I mentioned the other day, the UI is improved by jaunty little sound effects, which haven't become annoying yet.  It's a fine line, but they've leaned marginally on the side of taste, which is good to see.
The Shine includes Java capability, and includes a couple of games.  One is a fairly mediocre "Puzzle Bobble" clone, called "Bubble Soccer".  I'm a huge fan of Puzzle Bobble, so I was very pleased to find it included.  Sadly, using the scroll bar for controlling it just isn't good enough.  The other game is "Fishing".  Since the tutorial is about thirty pages long, and ridiculously complex, I got bored and just gave it a go, and got absolutely nowhere.  These games aren't really going to win any awards, and I hope LG will ship better games on release.
Connectivity is fairly simple.  The Shine includes Bluetooth and also an included USB cable.  When connected via USB, the phone ceases to function as a phone (shutting off all wireless connectivity), starts charging the battery, and just becomes a removable drive.  Since this pre-release phone didn't come with any software I could only use it as a dumb drive, so no interesting syncing capabilities to report.  As expected, the Shine is not supported by Apple's iSync software on the Mac, so I couldn't sync my contacts or calendars over.  This isn't unexpected, though.  Apple aren't particularly good at supporting phones even when they've been on sale for months, so failing to support a pre-release phone is par for the course.
I'm not particularly happy with the charging mechanism.  It involves plugging the cable into that flimsy little port, with no option for a cradle or desk stand.  I can't see any way that an in-car kit would work, either.  A good thing I don't drive, I guess!
So, to sum up...
This phone isn't perfect, but it's the best I've come across so far.  There's only one reason I wouldn't buy this phone right now, and it's that it's a 2G phone.  I'm subscribed to Three UK, which is a 3G-only network.  If I'd got this phone three months ago while I was still on contract with Orange UK, it wouldn't have been an issue.  I've been told that the 3G version of this phone is due out shortly, and I'd love to get my hands on one.  It would almost certainly become my main mobile... that is, assuming I don't get given a pre-release 3G-supporting unlocked Apple iPhone, which I don't think is likely.  I wouldn't even give my old crappy Nokia to a family member: I love them too much.
So, what don't I like about this phone?

Only 2G, but the 3G version should be out quite soon.
Only 50MB of memory.  3G version has 1GB.
Screen is illegible in daylight.
Ringtone/Message tone volume too low:  allegedly fixed in release.
No real choice of message or alarm tones, or sound-effect theme.
Flat, non-tactile keypad: easy to miskey.
Scrollbar is sluggish and fiddly.
Flimsy side port cover.
No standard headphone socket.
Included headset/remote is crummy.
Basic music-playing UI.
Shutter lag.
No EXIF data on photos.
No calling while on USB.
No iSync support... yet.

What do I like about this phone?  Everything else.
The bold entries are things that are significant enough for me to think twice about buying one, but to tell the truth, they wouldn't stop me.  I'd even spend a day or so either hacking up a perl script to sync my contacts, or do it the hard way by individually Bluetoothing the contacts across.
This phone is just that good.
The rest of you lot can get it when it launches in the UK on February 7th, but you're not having this one.  It's my precious.  I wuv this phone.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/01/25/lg-shine-ke970-everything-else/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
	
		<series:name><![CDATA[LG Shine: in-depth Review]]></series:name>
	</item>
		<item>
		<title>LG Shine KE970: Sound and Music</title>
		<link>http://gidden.net/tom/2007/01/24/lg-shine-ke970-sound-and-music/</link>
		<comments>http://gidden.net/tom/2007/01/24/lg-shine-ke970-sound-and-music/#comments</comments>
		<pubDate>Wed, 24 Jan 2007 14:12:41 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[KE970]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG Shine: in-depth Review]]></category>
		<category><![CDATA[LGShine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[ringtone]]></category>
		<category><![CDATA[shine]]></category>
		<category><![CDATA[Shine-Phone]]></category>
		<category><![CDATA[Slide-Phone]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/01/24/lg-shine-ke970-sound-and-music/</guid>
		<description><![CDATA[On Monday, I covered the external hardware aspects of the LG Shine I've been loaned.  For the time being, I'm going to skip the actual phone features, and play with the sound effects, ringtones and music features it offers instead.

MP3 Playback
First thing to do is get some music onto the phone.  My track of choice for this test is "Indra" by Thievery Corporation.  While this particular model only includes about 45MB of usable space for music, photos and other stuff, it does include a microSD slot for adding more memory.  An extra 2GB will set you back about &#163;30 right now.
Transferring by Bluetooth wasn't such a great idea: probably thanks to my wimpy little Bluetooth 1.1 dongle, it was taking far too long to transfer the 9MB MP3 file.  So, I hoiked out the USB cable that came with the phone.  When connected, the phone shuts off its GSM functions, thereby ceasing to be a functioning mobile phone.  It then appears as a removable drive on my Mac, presenting a list of folders, such as "Documents", "Images", "Videos" and "Sounds".
Over USB, the transfer is significantly quicker, although still not instant.  If I was using a microSD card rather than the phone's built-in memory, I'd probably want to use a proper USB card reader, rather than connecting to the phone itself.  This isn't particularly unusual for flash-based peripherals: my big, expensive dSLR camera takes hours to transfer files over USB.
The file played just fine.  It sounds exactly how you'd expect for a mobile phone loudspeaker... a little bit tinny.  My recent Nokia phones have slightly better loudspeaker sound, but it's a close call.  Regardless, it's still a small mono speaker designed for playing ringtones, so I wouldn't expect audio excellence.  It's not clear if it's the same speaker that's used for the in-call earpiece, but I don't think so.
What really matters when it comes to music playback is how it sounds on earphones.  Like the majority of MP3 phones, the Shine doesn't have a headphone stereo jack socket.  Instead, you have to plug the headset/remote into the side port.  This means you can't charge the phone and listen to music at the same time, as you may want to do at work, for example.
For the purposes of this test, I'm going to compare the Shine against my iPod, using both the included earphones and my Shure E2Cs.  The included earphones that came with this pre-release Shine are branded "Cyon", which I understand is the brand name LG use to sell the phone in Korea.  I'd be surprised if they kept that branding in Europe, but whether they just rebadge the same earphones or include new ones is anyone's guess.
The earphones are sturdier than average freebie earphones, with long metal stalks, thin cables, and a gold-plated jack.  As with all standard earbuds, they fall out of my ears at the slightest provocation.  I'm starting to think my ears are Teflon-coated.  As far as the sound's concerned, they're about the same as the white ones that came with my iPod, so easily good enough for most people.  I must point out that while my hearing's not bad, I'm not a discerning audiophile.  However, I can tell the difference between the Shine earphones and my E2Cs, which is why I spent 50 quid on the E2Cs:  freebie earphones can only be so good.
So, for a fair test of the phone itself, I'm using the E2Cs, jammed deep into my ear canals.  Comparing the quality between the Shine and my iPod 60GB, I just can't tell the difference.  It's too close for me to distinguish between them.  The sound quality is fine.
Of course, the Shine isn't a dedicated music player, so the iPod beats it on a number of other counts:  for a start, the user interface is basic.  You select a track, and you click to play it.  It's got shuffle, repeat, and a load of equaliser presets, but there's no artist/album categorisation, or even any form of hierarchical organisation, and you can forget about playlists, album art, and ratings, too.  It's a phone, damnit!
Using the headset for calls
Next thing to try is using this headset to talk to people... you know... like as a phone.  For no particular reason, I'm leaving all the principal capabilities of this gadget, such as its capacity as a telecommunications device, until the end.
Anyway, here I am, listening to music, and my friend Steve calls.  Rather than pausing the music, it just takes it off the headset, and plays is quietly through the phone's normal earpiece.  (Note, it's not as loud as just listening to music on speakerphone, which is what makes me think there are two loudspeakers in there: one for ringtones and speakerphone, and one for normal phone-like use.)
I accept the call by pressing the "SEND/END" button on the remote.  The music is pauses, and Hey presto, Steve says "Hello".  The wonders of modern technology.  I yabber on with Steve for a minute, while he complains about just waking up and the lack of coffee in his system.  The call ends, and I press "SEND/END" again.  I was hoping the music would automatically resume, but no such luck.  It is, however, only one click to get it going again, though.
Steve says that the call quality is fine, and I can hear him perfectly well too.  No problems with the headset at all.
Sound Effects
The Shine likes to make noise.  By default, every button press yields a different "bip", "bop", "prang", "click" or "kachunk".  On occasion, you even get a musical gurgle of some description.  My favourite, as I've mentioned before, is the "dum-dum-dum-dum-DAAH" you get when sliding the phone open and closed.  It can be replaced by a "water drippy click", or switched off entirely.
I've recorded the slide-open sound, dialling a number and then a slide-close:  SlideAndDiallingANumber.mp3.
There isn't a wide range of choice when it comes to these effects, though.  I would like to see some sort of "audio theme" functionality, where a sound effect scheme can be set up.  I can guarantee that the sound of Kirk opening his communicator on Star Trek would be a bestseller.
Another neat little feature is the musical sound of the keypad.  Rather than using the standard DTMF effects typical of dialling a phone, all the keypad buttons have a different note.  So, Ladies and Gentlemen, I give you... The Star-Spangled Banner:
531358*98345 55*9876788531 531358*98345 55*9876788531 ***0##0*9*00 0*987678345 55888766690*9875 5589*0# 89*098.
Ringtones
You think that's ridiculous?  Wait until you hear some of the tunes that came with this thing.
On the good side, most of the tracks here aren't too bad as ringtones go.  "Above the Sky" is pleasant, and there are some pretty basic sound effects like "Vintage Telephone", if you don't feel like torturing your colleagues, friends and family.  All ringtones are stored as MP3s, rather than MIDI-style polyphonics.
It's when you come to "Acappella Beatbox" that things start to get silly.  The very name fills me with dread, and it sounds like this: AcappellaBeatbox.mp3.  Oh, the humanity.
Further down the list is "Good Morning":  GoodMorning.mp3. While being woken up by this every morning would quickly lead to the Shine being embedded in a Shine-shaped cavity in my bedroom wall one morning, this insipid song is not actually intended as a sound effect for the phone's alarm clock.  For that, you have to choose from a separate collection of MIDI-style tunes, featuring instrumental versions of "A Whiter Shade of Pale" and "Fly Me To The Moon".
"Life is Good" (LifeIsGood.mp3) is a true masterpiece.  The lyrics are just insane:

Life is good!
Bah-duh-ba-duh-buh-buy-da-bup,
Bah-duh-ba-duh-buh-buy-da-bup,
Bah-duh-ba-duh-buh-buy-da-bup,
Bah-duh-ba-buh-buuuh-duh-buh-duh-buh...
Life is good in the neighbourhood!
It's anything you wish, anything you desire.
Life is good and it's understood
If you're smart, you can start by listening to your heart,
Take part in a journey, exploring a dream,
where Liyee-liyee-life is good!

Some of LG's efforts are more successful.  While Pop rock isn't really my taste, the track "This Time" is far less cheesy, and is a good effort: ThisTime.mp3.
Regardless, I'm going to stick with my normal idiosyncratic ringtone:  old-school modem tones.  There are a few reasons I use this ringtone, other than geek bravado.  Firstly, no-one else seems to use it so it's recognisable to me, and secondly, it's specifically designed to test the accoustic properties of the medium by testing different frequencies and patterns.  This means that it's the most universally audible ringtone I've ever found.  It goes through walls; it cuts through background noise; and it goes "pertwang-pertwang" in a funny way.
It also makes it a good test of the Shine and how well it can be heard from around the house.  The result?  Not great, at the moment.  From the kitchen, I only noticed it was going at all when it started twanging.  The reason is that the Shine starts off quiet and increases the volume slowly, by which time, voicemail kicks in.  I've been told by LG that this has been fixed for the release version.
The range of text message alert tones is a little disappointing.  On my Nokia, I use my own track: a full recording of T&#225;rrega's Gran Vals, made famous the world over by the thirteen-note section now known as "Nokia Tune".  On the Shine, you're limited to four short preset tones, including another opus, "Tone 4".  You can hear them all here:  MessageTones.mp3.
Conclusion
The LG Shine sounds nice in many ways, but it does have some limitations which could (and in some cases, will) be fixed with a firmware upgrade.  In particular, I'm afraid the message tone limitation could turn out to be a major flaw.  Even with my loud and configurable Nokia, I sometimes miss text messages when they arrive, especially when I'm on headphones.  That's going to happen a lot more unless that problem's solved.
As a music player, it's good enough for casual use.  Better than an iPod Shuffle, but not as good as an iPod Nano.  The lack of a standard headphone socket means that to use it you'll have to carry the headset/remote too, but since you'll be carrying the earphones anyway, that's no big deal.
While this phone has all the main features it should, its main design goal has obviously not been features and capabilities, but aesthetics and physical desirability.  As I mentioned in my earlier post, it's a beautiful piece of kit and a pleasure to hold.  When it comes down to it, the music and sound-effect capabilities aren't outstanding, but they're good enough.  LG have chosen a fairly lighthearted and fun set of sounds to put on this thing, even if some of the tones are unintentionally hilarious.
I like this phone, and I still haven't found anything with this phone that would put me off buying it.  True, there are a few quirks and bugs, and being the irascible pedant that I am, I mention them all.  Considering this is a pre-release unit though, I'm very impressed by the overall software quality.  No phone is perfect, and this one has better than the release software quality of most phones I've used, and in most cases better than the most recent firmware upgrades available.
The Shine launches in the UK on February 7th, 2007.  In the meantime, you can marvel at the photographic genius of myself, and my fellow Shine guinea pigs at the Flickr LG Shine User Group.
Follow-up: The Great Outdoors
In Monday's post, I admitted that I hadn't tried this phone outside yet.  In Portishead this morning, it was sunny and freezing cold, so I spent some time shivering in the garden for you.  The answer to the big question of whether that gorgeous mirror-like screen works in the sunshine... is a resounding "NO!"  As expected.  Very few mobiles with colour backlit screens are legible in the daylight anyway, but can sometimes be viewed by shading the screen with your hand.  That technique doesn't seem to work quite as well for the Shine.  You still end up looking at a reflection of yourself.
Continue on to the final part of my review: "LG Shine KE970: Everything Else".]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/01/24/lg-shine-ke970-sound-and-music/feed/</wfw:commentRss>
		<slash:comments>27</slash:comments>
	
		<series:name><![CDATA[LG Shine: in-depth Review]]></series:name>
	</item>
		<item>
		<title>LG Shine KE970: The Hardware</title>
		<link>http://gidden.net/tom/2007/01/22/lg-shine-ke970-hardware/</link>
		<comments>http://gidden.net/tom/2007/01/22/lg-shine-ke970-hardware/#comments</comments>
		<pubDate>Mon, 22 Jan 2007 20:41:16 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[KE970]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG Shine: in-depth Review]]></category>
		<category><![CDATA[LGShine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[shine]]></category>
		<category><![CDATA[Shine-Phone]]></category>
		<category><![CDATA[Slide-Phone]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/01/22/lg-shine-ke970-hardware/</guid>
		<description><![CDATA[Now that I've had a bit more of a play with the pre-release LG Shine that arrived on Saturday, I can now start to make a few conclusions.  The first is that this really is a nice piece of kit.

Right from the start, it's got a feeling of quality about it.  It arrived in a very nice box, with a neat magnetic latch.  As this is a pre-release unit, I was warned not to expect software or a manual.  The phone nestles in its own cubby, with the main part of the box filled with a slew of plastic baggies packed with cables and toys.
I couldn't wait for it to charge, so the first thing I did was look for the power button, and it wasn't immediately obvious.  Unlike most phones I've used, it's the "end call" button, inside the slide.  There was enough juice in the battery to tell me to insert a SIM, so I went hunting for my Pay-As-You-Go SIM.  Taking the stainless steel back cover off is straightforward.
Underneath the SIM holder, there's a small slot which I assume is a microSD slot for additional storage.  Even though my current mobile also has such a slot, I've never had the need to buy one of these cards.  I was under the impression that the Shine included 1GB of built-in storage, but it doesn't look like it:  "Memory Status" shows 45732K total, ie. 45MB... definitely not enough for me to think about junking my iPod.  As I understand it, the 3G version does have 1GB of built-in, with just over half of that available to the user.
Build quality
As I mentioned in my previous post, it's well-engineered on the whole.  It just feels "right".  This is in comparison to the past few phones I've had:  the Nokia 6680, Nokia 6280, Sony Ericsson T610, Nokia 8310, Nokia 7650, and the Motorola Timeport something-or-other.  Come to think of it, all the mobiles I had before those, too. All of them seemed to be slightly flimsy, loose or delicate... in short, cheap.
With the Shine, LG have created something more solid.  The case of the phone is made from a mix of silver-ish plastic and what seems to be stainless steel.  This gives is a certain weight that is substantial, but not too heavy.  Even the plastic parts are firm and fixed down well, so the whole thing feels engineered.
It's solid enough that you could probably use it as a rudimentary hammer if necessary.  If trapped in a dark alleyway, take off a sock, slip in the phone, and you've got a workable cosh to fight your way out with.  I can almost imagine Hercule Poirot declaring that it was Colonel Mustard in the Library with the LG Shine.
It's a slide-phone, like my usual Nokia 6280, but on that matter, the two are worlds apart.  The 6280 has a lot of play in the slide mechanism, meaning that the two halves of the phone seem to be independent.  It feels like it might break off if I drop it.  Since the sprung-loaded slide for my Matrix-style Nokia 7110 kapwinged across the room after one too many accidents, I've always been suspicious of moving parts on mobiles.
Not so much with the Shine.  Its mechanism feels secure, and seems to be more like a cross between a German luxury car door and a James Bond "Q" gadget.  It's not going to open accidentally, and it has a hefty, satisfying "clunk" action... optionally accompanied by a chorus of session singers chanting "dum-dum-dum-dum-DAAH" in true "Who Wants To Be A Millionaire" style, but that's another story.
Buttons, Ports and Rollers
This is one thing the Shine's hardware falls down on a bit.  Firstly, the keypad.
It's a flat plate of brushed metal backlit in blue, which while attractive, doesn't give much tactile differentiation between keys.  It's relatively easy to press the wrong button, especially with big fat fingers like mine.  There is, however, a definite "click" when a button is pressed, and the keypad area is quite large which should be enough.  I wasn't sure I'd get used to this, but after a bit more use, it doesn't bother me that much.
Along the right-hand-side, there's four more buttons:  Volume Up/Down; "MP3", which launches the music player; and the Camera shutter button.  It turns out this button is a half-push arrangement like a "proper" camera, activating the auto-focus mode.  However, I do have a problem or two with the camera functions, and they might be related to that button.  I'll be covering that in a later post.  In the meantime, these buttons are functional, and fairly solid.
The final set of controls is on the front of the phone directly under the screen.  There are two multi-function buttons as usual, which in one of the included games are referred to as "LSK" and "RSK", which I assume mean "Left Selection Key" and "Right Selection Key".  More brushed metal, with illuminated blue highlights along with the keypad.  Both keys are a little cramped, and take a firm press to activate.  Even so, they do the job.
In between the selection keys, is the scroller.  This is a shiny rolling bar, and is obviously used for navigating... well, just about everything.  Both ends of the bar double as left and right buttons, and the bar itself acts at the phone's primary activation button.
I've got a few grievances with this bar.  Firstly, the left and right buttons are a little cramped and take a firm press: the same as the selection keys.  The centre bar press also takes a firm press.  This is all fine, apart from when you combine it with the scrolling action of the bar, which has very little resistance.  This makes it just feel a bit weird: too easy to scroll up and down, and too hard to move left and right.  The final straw is that the up/down motion, while easy to roll physically, is actually not sensitive enough for my taste.  To traverse the main menu, for example, takes about four or five full "thumb rolls", making such navigation a little bit slow.
Anyway, I've complained quite a bit, but none of these niggles are actually a big deal.  I've used far worse, and they're easily good enough. While they're not as ergonomic as they could be, they're certainly not flimsy or plasticy.  The bar isn't as nice as the big chunky roller on the Nokia 7110, but it's a darn sight better than the flimsy joystick on the 7650 or the Sony Ericsson T610.  I do think I'd prefer a four-way directional pad with centre button though, like my Nokia 6280, albeit without the flimsy, wobbly plastic.  I think it is a step up from the tiny little D-pad on my recently-replaced Nokia 6680, and I put up with that thing for a year.
Suffice to say, these buttons aren't by any means a deal-breaker, but I'd personally want them on the tweak list for future revisions.  Hell, maybe it's just me and my big fat fingers.
Peripherals
The last thing to mention when it comes to the physical interface is the side port.  This little slot acts as the peripheral connector for headphones, headsets, etc.; and as a USB connector; and as the phone's charger.
The port is covered by a flimsy captive plastic cover that hangs off the phone when open, and I think'll break off far too quickly.  If it was just for occasional use, then I can understand, but since that thing's for regular charging, it's going to get a lot of wear-and-tear.  On the other hand, even if it did break off, it'd be the same as nearly every other phone that exposes its peripheral contacts (read: "naughty bits") for all to see. Such a gaping wound would really only be an aesthetic issue.
I guess the ideal situation would be to get rid of that port entirely.  Connectivity and music can be done via Bluetooth, and I'd like charging to happen by induction instead.
The phone itself came with a few bits and pieces:  an in-line headset/remote, some bud earphones, a USB cable and the ubiquitous charger.
The earphones look like every other bundled pair of earphones.  I haven't tried them yet, as I'm going to cover audio in a later post, but I can't see myself ditching my well-used Shure e2c's for these.
The headset/remote is fairly unremarkable.  It's cheap silver-coated plastic, with the standard music player controls.  It feels a little crummy, but it does have a nice metal clip, so it's unlikely to snap off like some other inline controllers I could mention.  Now, to be honest, the only in-line remote I've had that doesn't suck is the old Apple iPod remote.  The three or so I've had from Sony have been cheap silver-coated plastic and have broken far too quickly.  This one looks like more of the same.  It doubles as a headset: rather than the earphones having a microphone like other phones, the remote has the microphone and uses normal stereo earphones .  This does seem nicer: a wired headset with the option to use decent earphones for a change.
Since the unit I received is pre-release, I didn't get any software with it.  Even if I did, I doubt I'd be able to use it on my Mac anyway.  Even so, the phone connected to my iBook and mounted itself as a mass storage device, ready to transfer files onto it.  It also started charging off my USB port, which is a very neat touch.  Unfortunately, it disables phone functionality while connected, which scuppers the plan of charging your phone off your work PC, except in an emergency.
I'll cover connectivity in a later post, as this one's becoming long enough as it is!
The Screen
This is the biggie.  How good is that mirror-like screen?  Bloody good.  Deep and crisp and even.  If you take a good look at it, you notice that the screen itself isn't actually much bigger than a normal phone.  However, the mirror effect hides the edges and makes it feel like it covers the whole front of the unit.
Size, on the other hand, isn't everything.  Resolution's just as important, if not moreso.  It's QVGA (240x320), and the software uses it well.  The anti-aliasing (while not sub-pixel in nature) is excellent, increasing the perceived resolution to the extent that you can't spot the pixels easily.
The software, which I'll cover later, uses the screen well.
The final judgement on the screen comes down to how it behaves in outdoor lighting, and specifically sunlight.  Unfortunately, I've been too much of a wuss to go outside in the cold and try this.  I promise to do so tomorrow, and I'll get photos as well.
Anyway, that just about sums up the LG Shine when it comes to the hardware.  It's good.  It's probably the best quality mobile phone hardware I've ever used.  While there are a few issues, such as the flimsy side port cover, the whole thing feels like one of those secure entry keypads you'd find at CTU.  It also manages to be one of the more alluring designs I've seen.  It just looks... cool.
Continue on to Part 3 of my review: "LG Shine KE970: Sound and Music".
In the meantime, you can go "Ooo! Aaah!" at photos of the Shine by myself, and other bloggers at the Flickr LG Shine User Group.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/01/22/lg-shine-ke970-hardware/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<series:name><![CDATA[LG Shine: in-depth Review]]></series:name>
	</item>
		<item>
		<title>LG Shine KE970: First Impressions</title>
		<link>http://gidden.net/tom/2007/01/20/lg-shine-ke970-first-impressions/</link>
		<comments>http://gidden.net/tom/2007/01/20/lg-shine-ke970-first-impressions/#comments</comments>
		<pubDate>Sat, 20 Jan 2007 16:23:24 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Cellphone]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[Hands-On]]></category>
		<category><![CDATA[LG]]></category>
		<category><![CDATA[LG Shine: in-depth Review]]></category>
		<category><![CDATA[LGShine]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[Review]]></category>
		<category><![CDATA[shine]]></category>
		<category><![CDATA[Shine-Phone]]></category>
		<category><![CDATA[Slide-Phone]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2007/01/20/lg-shine-ke970-first-impressions/</guid>
		<description><![CDATA[This morning I received a pre-release LG Shine KE970 courtesy of the LG Shine Blog, as a lead-in to the product launch in early February.  I've spent a couple of hours using it, and I must say I'm impressed so far.  I've got about five pages of notes, niggles and thoughts that I'm going to write up over the next few days.  In the meantime, I took some pictures of it, my old Nokia 6280, and some fruit.  Not exactly art, I'll admit.

Until the renowned LG Chocolate came out, I'd never considered getting an LG mobile.  I was a Nokia user for years right up until the Sony Ericsson T610 came out, and then onto a Motorola Timeport for a beta test (yick), and then back to Nokia using newer Symbian-based phones.  After switching to Three from Orange, I'm now limited to 3G phones, which unfortunately means I can't use the Shine as my main phone as this specific model is 2G-only. So instead, I'm using the Orange Pay-As-You-Go SIM I got for emergencies (and more importantly, free cinema tickets)
My first impression is that this is an attractive, satisfying, solid, well-engineered unit physically, with software that, on the whole, is fairly conservative but smooth and simple, and default ringtones that really must win an award for unashamed cheesiness.  I can tell straight away that I'm going to enjoy testing it.
Continue on to Part 2 of my review: "LG Shine KE970: The Hardware".]]></description>
		<wfw:commentRss>http://gidden.net/tom/2007/01/20/lg-shine-ke970-first-impressions/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[LG Shine: in-depth Review]]></series:name>
	</item>
		<item>
		<title>iPhoto, Flickr and EXIF munging using Perl</title>
		<link>http://gidden.net/tom/2006/12/27/iphoto-flickr-exif-munging/</link>
		<comments>http://gidden.net/tom/2006/12/27/iphoto-flickr-exif-munging/#comments</comments>
		<pubDate>Wed, 27 Dec 2006 18:21:00 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[albumdata.xml]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[cocoa]]></category>
		<category><![CDATA[exif]]></category>
		<category><![CDATA[flickr]]></category>
		<category><![CDATA[flickr::api]]></category>
		<category><![CDATA[geocoding]]></category>
		<category><![CDATA[geotag]]></category>
		<category><![CDATA[geotagging]]></category>
		<category><![CDATA[iphoto]]></category>
		<category><![CDATA[iptc]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[mac::iphoto]]></category>
		<category><![CDATA[metadata]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[PerlObjCBridge]]></category>
		<category><![CDATA[picasa]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[xmp]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/27/iphoto-flickr-exif-munging/</guid>
		<description><![CDATA[EXIF/IPTC/XMP tagging of GPS coordinates, folksonomy tags, and other goodness is a nice idea, but unfortunately, iPhoto and Flickr don't play too well together.  Couple this with the fact that any decent support those products now have is not included for photos already imported into them.  So, here are some notes resulting from some experimentation, along with the Perl code I wrote along the way.

(Note: for the rest of this post, I'll refer to all metadata stored in the image file itself such as EXIF, IPTC, XMP, etc. as "EXIF" data.  This isn't strictly correct.  However, using the term "metadata" could be confused with such data held in other files, such as iPhoto's own database.)
For Christmas, my dad bought my mum a decent photo printer: the Canon PIXMA iP5200R.  Very nice piece of kit, with good printouts, and most importantly, easy setup, with no CUPS and Windows -v- Mac issues.  Anyway, as an upshot of this, my dad wants some of my photos for building a Picasa library for her to print stuff from.  Specifically, the photos from the Caribbean holiday we had earlier in the year.
I've been playing with Picasa a bit, and I must say I love it.  It's what iPhoto should be.  It's a good deal faster for a start.  That's comparing my iBook G4 1GHz against my mum's Compaq Deskpro Pentium III 733MHz, which is a few years older.  Secondly, it doesn't use a horrible non-scalable monolithic database like iPhoto does.  Thirdly, it seems to deal with metadata a bit more sensibly.
On the downside, neither iPhoto or Picasa handle collaboration functions very well.  Both have publishing functions, and iPhoto has a read-only "sharing" function, but I mean the true sharing of photo libraries.  My mum and dad have separate computers, but they share a camera, so it would be incredibly useful to have a shared photo library which either could use.  On this count, Picasa wins slightly, because although it has no true sharing ability, there doesn't seem to be anything wrong with two copies of Picasa working on the same directory on a shared drive.  I'm not sure how it would handle conflicts though, due to the lack of locking.  For now, I'll advise my parents not to run it at the same time.
I usually manage all of my photos in iPhoto.  However, due to the lack of decent keywording and other metadata in iPhoto, I ended up adding a lot of metadata in Flickr instead.  As a result, my iPhoto library is woefully out-of-date with my Flickr library, even though it's far more complete as I only upload a subset of my photos to Flickr.  I specifically want to extract Flickr tags back into the files themselves, and ideally rip the Geotagging information I added within Flickr.
While iPhoto is drastically improved by Keyword Assistant, it doesn't store the keywords (read: tags) in EXIF form, but in its own database.  During this investigation I discovered that iPhoto does import keywords from EXIF, and also Geotagging info.  The fact that it doesn't manage EXIF is a fairly annoying flaw, and one that I hope they'll be fixing.  I've heard that Microsoft Vista now does sensible things with EXIF.  iPhoto is, quite frankly, falling far behind other solutions at this point, and I hope next month will bring a new iLife with an improved iPhoto.
So, I had a good look around the 'net for some utilities to try to clear up this mess.  I've had a play with things like Cal Henderson's Flickr::API and Dmytro Kovalov's Mac::iPhoto before, and they're not particularly mature.  Incidentally, Mac::iPhoto also seems currently broken.
Others have attempted using Applescripts.  The ones I found around the 'net are far too slow to cope with the ~8000 photo collection I have.  This is probably due to the sucky design and/or implementation of Apple Events in MacOS.
Instead, I've had a play with PerlObjCBridge, or whatever Apple's calling it.  In Perl, it's "use Foundation;".  This gives access to the Cocoa API within OS X, which I figure is probably the fastest way to manipulate Property Lists.  Since iPhoto stores at least a backup of the database in XML form (specifically Property List form) as "AlbumData.xml", we can use this to cross-reference the data.
The most critical link between my Flickr and iPhoto collection is missing.  This would be a link between each individual photo and its alter ego in the two different collections.  Since filenames aren't necessarily complete or preserved by either iPhoto or Flickr, this is relatively difficult to establish.
I've found that a reasonably good connection is between image creation time/dates.  By matching the EXIF timestamp data within the file stored by iPhoto with the EXIF data extracted from Flickr, you can get a reasonably good correlation.  At this point, it would be a nice idea to shove the Flickr URL for the image into the local EXIF data and get iPhoto to read it.  From then on, there would be an established link.
Well, I got about as far as adding the URL, tags and geocoding to the image, but I gave up when it came to getting iPhoto to read it.  There is a relatively obscure "rebuild" function in iPhoto, triggered by holding down Cmd and Opt while starting iPhoto.  This allows rebuilding of thumbnails and the binary databases (presumably) from the XML.  Unfortunately, it doesn't seem to reread the images for new metadata.  I think this would require actual modification of the AlbumData.xml file to work, which sounds like a far bigger job.
In the meantime, this proves that such a script is feasible, albeit painful.  At the moment, this is a run-once script, so it's not much use for regular usage.
SOURCE CODE:  I am supplying this code freely with the understanding that there is no warranty or guarantee.  Also, I'll go as far as to say that incorrect usage could quite easily delete your photos, destroy your Flickr account, upset Flickr, and kill your pets.  DO NOT USE THIS CODE UNLESS YOU UNDERSTAND IT COMPLETELY AND ARE WILLING TO TAKE RESPONSIBILITY FOR ANYTHING GOING WRONG.  For more details, read the README file.
The most recent version can be obtained from my Subversion repository: iphoto_flickr_exif_munge/.
I also apologise for the quality of some of the code.  It's far more experimental than I'd usually want to release, but I think it might be of use to someone like me in a similar situation.  Rather than just throwing it into the depths of my hard drive and forgetting it, I figure it's probably worth blogging.
My conclusion to all of this is that I really need to get my iBook replaced with something good enough to run Aperture or Lightroom, and then reimport the whole bloody lot.  Painful, to say the least.  I'm also hoping that Google get around to writing Picasa for the Mac.  I think I'd prefer it in the long term.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/27/iphoto-flickr-exif-munging/feed/</wfw:commentRss>
		<slash:comments>-760</slash:comments>
		</item>
		<item>
		<title>Top &#039;n&#039; things of 2006</title>
		<link>http://gidden.net/tom/2006/12/24/top-n-things-of-2006/</link>
		<comments>http://gidden.net/tom/2006/12/24/top-n-things-of-2006/#comments</comments>
		<pubDate>Sun, 24 Dec 2006 12:36:29 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[aaron-sorkin]]></category>
		<category><![CDATA[Air]]></category>
		<category><![CDATA[amitriptyline]]></category>
		<category><![CDATA[amitryptiline]]></category>
		<category><![CDATA[Board-Games]]></category>
		<category><![CDATA[boardgames]]></category>
		<category><![CDATA[Caribbean]]></category>
		<category><![CDATA[chill]]></category>
		<category><![CDATA[chill-radio]]></category>
		<category><![CDATA[co-codamol]]></category>
		<category><![CDATA[Cocodamol]]></category>
		<category><![CDATA[Day-of-the-Tentacle]]></category>
		<category><![CDATA[diclofenac]]></category>
		<category><![CDATA[Dido]]></category>
		<category><![CDATA[Elgato]]></category>
		<category><![CDATA[Elgato-EyeTV]]></category>
		<category><![CDATA[emiliana-torrini]]></category>
		<category><![CDATA[Enigma]]></category>
		<category><![CDATA[EyeTV]]></category>
		<category><![CDATA[Faithless]]></category>
		<category><![CDATA[fc-kahuna]]></category>
		<category><![CDATA[Full-Throttle]]></category>
		<category><![CDATA[Grand-Theft-Auto-4]]></category>
		<category><![CDATA[Grand-Theft-Auto-IV]]></category>
		<category><![CDATA[GTA4]]></category>
		<category><![CDATA[GTAIV]]></category>
		<category><![CDATA[GTAIV-Grand-Theft-Auto-IV]]></category>
		<category><![CDATA[ibuprofen]]></category>
		<category><![CDATA[Imogen]]></category>
		<category><![CDATA[Labyrinth]]></category>
		<category><![CDATA[Lemon-Jelly]]></category>
		<category><![CDATA[LucasArts]]></category>
		<category><![CDATA[Massive-Attack]]></category>
		<category><![CDATA[Monkey-Island]]></category>
		<category><![CDATA[OpenTTD]]></category>
		<category><![CDATA[PSP]]></category>
		<category><![CDATA[Royksopp]]></category>
		<category><![CDATA[Sam-and-Max-Hit-The-Road]]></category>
		<category><![CDATA[satirical-boardgame]]></category>
		<category><![CDATA[ScummVM]]></category>
		<category><![CDATA[sevredol]]></category>
		<category><![CDATA[Spore]]></category>
		<category><![CDATA[studio-60]]></category>
		<category><![CDATA[studio-60-on-the-sunset-strip]]></category>
		<category><![CDATA[The-Dig]]></category>
		<category><![CDATA[the-west-wing]]></category>
		<category><![CDATA[Thievery-Corporation]]></category>
		<category><![CDATA[Underworld]]></category>
		<category><![CDATA[War-on-Terror-Board-Game]]></category>
		<category><![CDATA[war-on-terror-boardgame]]></category>
		<category><![CDATA[war-on-terror-the-board-game]]></category>
		<category><![CDATA[war-on-terror-the-boardgame]]></category>
		<category><![CDATA[west-wing]]></category>
		<category><![CDATA[X-Wing]]></category>
		<category><![CDATA[Zero-7]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/24/top-n-things-of-2006/</guid>
		<description><![CDATA[Everyone seems to churn out at least one "Top-n" list of the year around Christmas time, so who am I to argue?  Here's my Top (insert arbitrary number) list of this year, based on things that I've enjoyed or appreciated, in no particular order.  I reserve the right to add to this list as I think of stuff.


War on Terror: The Boardgame.
I preordered my copy a long time ago (game #30 to be precise), and I got it a few weeks ago.  I've played it three times, and it's been good fun each time.  I've got a few issues with the rules, though.
Firstly, the liberation points thing that decides who wins.  The first time I played it, I actually won about half-an-hour before anyone noticed.  Yesterday, I played it with Steve, Keith and Leesa, and Keith and I both thought that it ended arbitrarily and abruptly.  Thing is, Leesa probably wouldn't have won unless we'd pointed out that she had enough money to buy enough cities to win the liberation points.  After the game, Keith and I were in full agreement that something should be done about the scoring mechanism and winning criteria, as it just seems buggy.
Also, there are a number of wording quirks which led to us playing the game wrong (again).  Thanks to a thread on one of the unofficial forums, I've received clarification of one rule that I still don't quite agree with, although we did agree to play that way.  Even so, there are a number of arcane rules that are forgotten and change the whole dynamic of the game.  There are also a few spots where the blue book and the card in question don't seem to agree, or are ambiguous.
Anyway, even with these flaws, the game is hugely fun, and balanced quite well between complexity (which appeals to some of the more geeky game players I know), and fun (which appeals to the novices and casuals like me).  Highly recommended, and I look forward to playing it a bit more this Christmas.

Morphine.
I spent a good proportion of this year taking regular doses of morphine as part of the recovery process for the surgery I had in March.  Fantastic stuff.  I stayed on it longer than they hoped I'd need it.  Also, props go out to Diclofenac, Co-codamol and high-strength Ibuprofen.  Not Amitriptyline though, prescribed for the pain and tingling in my right leg, but makes me feel permanently hungover.  Bad Amitriptyline... no props for you.
Coming off morphine isn't fun, though.  While in hospital, I had a morphine drip on a PCA machine (one of those clicker things), but it was blocked far more often than it was working, so I spent a good deal of time in excruciating pain.  After that, I went on MST pills, which are slow-release morphine, along with pink Sevredol tablets to take as needed.
Every time I reduced the dose, it worked like this:  I'd drop the MST dose by 10mg b.d., and then I'd feel horrible for about a week.  I'd ache all over, like I'd been beaten, and I'd stay in bed all day.  After that settled down, I'd go back to doing exercises and going to the gym for a week, and then have to drop the dose again.  Since this process took about three months, I spent a quarter of the year pretty much aching all the time.

The West Wing.
Being stuck in bed for a good chunk of the year, I watched a lot of DVDs.  More than anything, though, I watched The West Wing.  I think I've watched all seven seasons in sequence about five times this year altogether.  It's most definitely my favourite show of all time, and has been since I first saw it about seven years ago.  I also think it might be one of the most important shows of all time, as I expect it's shaped many political viewpoints, as it has mine.
Unfortunately, Aaron Sorkin's latest opus, "Studio 60 on the Sunset Strip" doesn't work as well for me.  While we officially don't receive the show in the UK yet, I've seen all the episodes out so far, and only the most recent two have been any good.  Sorkin should really stop lecturing the audience.  Every show (barring the last two I mentioned) seems to be a treatise on what Aaron Sorkin hates about the world, usually concerning Christians and conservatives.  While I'm no fan of christians and conservatives, he's preaching (largely) to the choir, and far less eloquently than he did in The West Wing.  Every little snipe comes with the massive clang of an anvil dropping.  It also doesn't help that the comedy sketch show-within-the-show isn't actually funny.
I won't be too upset if this show doesn't get renewed, and I'm in two minds about whether to buy the DVDs when they come out, which is a significant decision for me, being the completist that I am.  Ironically, I think I'd prefer "Nations", the fake show about the UN mentioned in the show, which so obviously represents The West Wing in Sorkin's theatre of televisual revenge.  Such a show might have made a good spin-off from The West Wing, with President Santos and SecState Vinick making guest appearances.
Anyway, The West Wing filled up a good percentage of my year, so I can't really leave it off my list.  By the same token, "sleeping" also gets an honorary mention.

"Chill" radio, and chilled-out music in general.
I recently discovered "Chill" on my bedside DAB radio, and I'm now a big fan.  Without it, I wouldn't have heard Emiliana Torrini's "Easy", found out the title or artist of FC/Kahuna's "Hayling", or listened to enough Underworld, Faithless or Dido(!).
The biggest revelation was that my DAB radio has an "Info" button, which with enough presses will give the track name and artist.  I'd completely failed to notice that button before.  Since "Chill" has no DJs or ads, and most of the music is largely instrumental, there's buggerall way of working out how to go buy the fantastic track you just heard, apart from that magic button.  As a result, for the first week or so, "Chill" managed to get me alternately calmed down, and frustrated beyond belief that I can't figure out what to google for.
In recent years, I've been listening to more and more chilled out music, developing from the cheesy beginnings listening to Enigma back in 1991, Portishead and Massive Attack in the late nineties and early naughties, through discovery of Röyksopp in 2002, and then onto the past couple of years listening to Lemon Jelly, Zero 7, Air, and Thievery Corporation.
I don't think I'm a music fan in the same way I'm a TV and Movie buff, but chill music is really the only thing I can sit and listen to.  With all other music, I'm either busy doing something else and not really hearing it, or I'm actively listening to it and wishing I had something more productive to do, or some TV to watch.

EyeTV by Elgato Systems.
As I mentioned above, I've spent a good deal of this year in bed recovering.  A lot of that time has been watching TV courtesy of my iBook and the little EyeTV USB device feeding in More4, E4, E4+1, and Film 4.
Timeshifting is king, and doing it on a laptop while sitting in bed is really nice.  I would, however, like one of their dual-tuner devices, but I'm really waiting for one that can do dual-DVB-T and also composite input so I can run my PS2 through my iBook.  They don't seem to have a single product that can do both functions... yet.
EyeTV quality has seemed to suffer recently, since the release of version 2.3.  I'm getting quite a few quirky bugs, but unfortunately not ones I can put my finger on and file a decent bug report.
For example, I'm recording something tonight, but I wanted to see the description for "Never Mind The Buzzcocks" at 21:30 on BBC2.  When I click it, it gives me the description of "Prison Break" on Five, which is incidentally a show I wish I'd got round to watching from the start, but it's too late now.  When I set it to record, it tells me that recording "" Every Tue, Fri &#038; Sat 00:00 - 00:00 - (unavailable) conflicts with something I plan to record tomorrow (ie. Monday).  It doesn't mention that it conflicts with the thing I'm actually recording tonight.
I've had a few other problems like this, and while I'm reasonably diligent about filing bug reports to them on issues I can nail down, I just can't word this one properly.  I really wish EyeTV was open-source, as I'd happily track this one down.  I'd also submit some patches to unbreak some of the annoying functionality, such as the jump to live TV that happens when a show you're watching timeshifted stops recording.  I also can't stand the little controls window that pops up and stays up whenever you hit any button by accident whether it has a function or not.  That thing really needs to be less intrusive.
Regardless, EyeTV has significantly affected my life this year, so it goes on the list.

Old-school game emulation.
This year, I've replayed "Day of the Tentacle", "Full Throttle", "The Dig", "Sam and Max Hit the Road" and the "Monkey Island" series, all courtesy of ScummVM on my iBook and my PSP.  I've also played a lot of "OpenTTD", which I must say is a stunning feat of reverse-engineering and coding.  I must point out that I've previously paid for all of these games before (some twice!), and while it's a grey area, I think this shows a legitimate use and possibly a legitimate market for abandoned games.
As a side note, I've also been playing some old BBC Micro games, such as "Imogen" and "Labyrinth", on my PSP, although both efforts were not as successful as the games listed above.
Incidentally, while talking about games and specifically the LucasArts games above, I do hope that LucasArts will develop a worthy successor to the X-Wing series, ideally with a completely immersive/seamless engine, so you can climb out of the cockpit and fight/wander around the capital ship or planet, as hinted in the space battles in Star Wars Battlefront II.  Battlefront II just wasn't good enough for me, at least on the PSP.  I wouldn't object to such a game being massively multiplayer either, as long as it (a) doesn't require a PC, and (b) has single-player MMO emulation.
I'll also add my two main gaming hopes for 2007:  Wil Wright's "Spore", and Rockstar's "Grand Theft Auto IV".  Spore looks like a game I'm going to spend a lot of time playing, and a lot of time staring at, astonished by the depth and sheer brilliance of the coding.  I can pretty much guarantee that I will choose and buy the best console for playing these two games, probably sometime in October 2007.  I bought my PS2 solely to play GTA3 and Vice City, and bought my PSP solely to play GTA:LCS.  I don't expect anything to be different for GTA4.  I do hope Sony gets their act together with regards to the PS3, and that it actually pans out okay.  Otherwise, I'll be gritting my teeth and spending money on a Microsoft product for the first time in seven years when I go get an Xbox 360.

The Caribbean.
While it cost me an arm and a leg, my holiday in the Caribbean was fantastic.  I can't really say much more than that.

]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/24/top-n-things-of-2006/feed/</wfw:commentRss>
		<slash:comments>-1438</slash:comments>
		</item>
		<item>
		<title>Charles Kennedy&#039;s &quot;Politically Incorrect&quot; META tag</title>
		<link>http://gidden.net/tom/2006/12/12/charles-kennedys-politically-incorrect-meta-tag/</link>
		<comments>http://gidden.net/tom/2006/12/12/charles-kennedys-politically-incorrect-meta-tag/#comments</comments>
		<pubDate>Tue, 12 Dec 2006 00:32:37 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[charles-kennedy]]></category>
		<category><![CDATA[lib-dems]]></category>
		<category><![CDATA[libdems]]></category>
		<category><![CDATA[liberal-democrats]]></category>
		<category><![CDATA[meta]]></category>
		<category><![CDATA[meta-tag]]></category>
		<category><![CDATA[mistake]]></category>
		<category><![CDATA[uk-politics]]></category>
		<category><![CDATA[website]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/12/charles-kennedys-politically-incorrect-meta-tag/</guid>
		<description><![CDATA[Just noticed that the Rt Hon Charles Kennedy's website has an out-of-date META tag, to say the least.

]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/12/charles-kennedys-politically-incorrect-meta-tag/feed/</wfw:commentRss>
		<slash:comments>-4</slash:comments>
		</item>
		<item>
		<title>...and joining Three</title>
		<link>http://gidden.net/tom/2006/12/04/joining-three/</link>
		<comments>http://gidden.net/tom/2006/12/04/joining-three/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 12:58:53 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[3mail]]></category>
		<category><![CDATA[6280]]></category>
		<category><![CDATA[6680]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[My-3]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[orange]]></category>
		<category><![CDATA[Planet-3]]></category>
		<category><![CDATA[three]]></category>
		<category><![CDATA[uk_telecom]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/04/joining-three/</guid>
		<description><![CDATA[As noted in my previous posts on the subject, I changed mobile phone providers at the end of last week.  On Saturday, a day after I ordered it, I received my new phone from Three.  It's a refurbished Nokia 6280, and the tariff ain't too shabby.

However, I just noticed that they changed the tariff deal between my finding the deal and actually signing up for it... When I originally noticed it, the deal included double talk and texts for 6 months, meaning I'd have 600 minutes and 2000 texts for a third of the contract.  Now it seems I actually only got 300 minutes.  This is my own fault for not signing up on Thursday when I saw the offer, and not checking the deal in detail when I finally signed up.  I knew that Three was changing their deals (and launching X-Series) on Friday.  I decided to gamble.  Fortunately, the basic deal was kept in place, and it's still easily worth my while.  I'm not particularly upset about losing half my minutes, as according to Orange I only use about 45 minutes a month anyway.
Anyway, I've had it for a couple of days now, and while I haven't really put it through its paces, I think it's worth writing up my first impressions, albeit in a haphazard manner.
The phone itself is fairly non-descript.  It's a very good refurb, as new, with no obvious scratches or defects.  It's a slidey phone, which I'm always slightly suspicious of, and in this case, I think it's well-founded.  The action seems like it should be pleasant.  Unfortunately, there's a certain looseness that's particularly evident when pressing the soft-buttons.  They creak.  The whole phone wobbles.  It's not right.  I'm not sure whether this is the fact that it's refurbished, or whether they all do that.  Anyway, build quality: 2/5.
I've heard that the reason Three's offering these refurbs is because they recalled so many of them due to bad firmware, and they've got truckloads to get rid of.  Right now, this doesn't actually surprise me.
The software is, on the face of it, not too bad.  It's a lot snappier than the supposedly advanced "Series 60" interface on the 6680.  My major criticism of my previous phone was the sluggish reactions of the interface and OS.  It usually felt like I was running Microsoft Windows.
On the other hand, there are a few odd quirks about the 6280's software.  Nothing I can really place my finger on, but it just feels a bit unfinished at times.  I do wish Nokia would get someone smart in to rethink the whole interface.  Historically, the old monochrome dumb phones they made always had the neatest interfaces.  Nowadays, it's all kludgeware, with silly menus on top of menus.
There are two features/flaws/bugs I've found that annoy me slightly.
The first is the fact that you can't record new voice tags, or indeed remove them altogether.  Instead of the traditional mechanism whereby you record your own tags, the Nokia 6280 does it for you with a particularly robotic speech synthesiser.  Mimicking the robotic voice feels really humiliating, and it doesn't seem to get the right ones anyway.  I'd prefer to record tags for just the people I call often enough to make it worthwhile.  Saying that, I never use voice tags anyway, so I'd be happier removing them altogether.
The second it the incredibly annoying "Note: Active Incoming Call Diverts" message that appears for a second every time I make a call.  This happens even when I've cancelled all my diverts, either manually or by using ##02#.  From what I can tell, it's network dependent and fairly normal on other networks.  It's never happened to me on Orange, though.  It's a pointless distracting message that prevents me from seeing the status of the call just when I need to.  It's also astonishingly cryptic.  What does it actually mean?
Regardless, I could probably live with this software, as long as I treat this just like a phone, rather than the all-singing-all-dancing lifestyle device it's meant to be.  As I understand it, there's a new firmware out (5.92, compared to the current 3.81), but I don't expect Three will spend any more time on this lemon of a phone and authorise the new firmware.  If I'm feeling lucky (punk), I might try flashing it myself at one point.
MSN Messenger:  this was the fun toy that attracted me to this deal.  Unfortunately, the software sucks.  Since the 6280 doesn't multitask, Messenger needs to be running full-screen to work properly.  When you "hide" it to go back to normal phone functions, or to lock the keypad, it effectively shuts down, and instead Three act as a proxy.  Incoming messages are then sent as SMS texts, albeit with a single click to start MSN Messenger.  Problem is, Messenger takes a good ten seconds to start.  Worst thing is that more often than not, the incoming message then doesn't actually appear!  A few times I've had to message whoever I know who's online to ask them if they just sent me something.  Bottom line is that, to me, this is unusable as-is.
Anyway, to solve this and other problems, I've asked Orange to unlock my old Nokia 6680 for the bargain price of £20.  As the 6680 is a BB5 phone, a normal third-party unlock won't work.  See comment #1 for more details.
While I'm not particularly thrilled with the 6680, it's going to be my spare in lieu of paying £5/month for insurance I'm unlikely to use.  And, if it works well, I'll probably use it as my primary phone.  Since I flashed it last month with the generic Nokia firmware, it's a bit more stable and a bit snappier than the old, bloated Orange firmware.  Since it's Series 60, I'm also hoping there's a good multitasking MSN client that I can use on Three.
This brings up another idea: if they'd offered it and it was cheap enough, I would have been happy to go with a phoneless tariff.  Since a lot of new customers have existing phones, maybe the networks should offer a cheap tariff and a bill credit equal to the unlocking cost charged by the old network.  That way, they wouldn't need to subsidise the cost of the phone.
Anyway, onto the Three service itself.
One thing I wasn't particularly impressed by was the new customer pack.  After reading the pamphlet, I wasn't much more informed than when I started.  I wasn't sure whether I paid for voicemail calls, how much insurance would be if I wanted it, whether "3Mail" will cost me money or not, how to call Customer Services, etc.  I've found these answers now, but there wasn't *quite* as much handholding as I'd like.
The "My 3" site is basic, but functional.  The most useful feature is an up-to-date "Check my Usage" section, which will be very handy over the next few months as I get a grip on what costs what.  One useful improvement would be up-to-date itemisation.  I'd like to see instantly how much a call costs me.
"Planet 3":  this looks fairly neat on the face of it, although not much different from Vodafone Live! and Orange World.  However, just like Orange World, I'm unlikely to use this service that much.  The only thing I ever really used that kind of thing for was checking the odd phone number, train times, or directions to somewhere when lost in London.  Even with the £5 of included downloads I get on my new tariff, I don't think I'll find anything I particularly want.  The free news and weather videos look neat, though.
It's nice that they're clear about the pricing all through the site: browsing is free, and you're told about the costs of items before you actually buy them.  Okay, that pretty much describes any real-world shop, but it's not obvious on the other networks:  I was never sure how much stuff cost me on Orange, and with the inclusive bundles, it was hard to figure out afterwards.  I'm also convinced that seeing the prices would make me more likely to buy something.  With Orange, I was always afraid of being surprised by a massive bill if I used any of these kinds of features.  With Three, I know up front, and I'm more comfortable spending that money.
"3Mail":  I'm still not exactly sure how much I'd pay for this if I used it. I don't think I ever actually used "gid@orange.net" other than for testing, and I'm not sure I'll use 3Mail either.  It is nice to see that there's a level of integration between the voicemail system and the email system, with voicemails being stored in my inbox as WAV files.  Neat.  Obvious, but neat.  In fact, I think I saw something similar on my sister's cellular service in the States a couple of years ago.
They seem to offer a bunch of different email options... 3Mail, Mobile Mail, Office Mail, etc.  No idea what does what and for how much.  While push email (a la Blackberry) sounds cool, I'm not sure I'd use it that much even if it was free, no matter how addictive it's meant to be.
Overall, the Three service looks a little complicated overall, with a lot of confusing and potentially overlapping product names, and they could probably be rationalised a bit.  I'm sure it'll become clear before too long, though.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/04/joining-three/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[Leaving mobile phone company "X" for "Y"]]></series:name>
	</item>
		<item>
		<title>Still leaving Orange...</title>
		<link>http://gidden.net/tom/2006/12/04/still-leaving-orange/</link>
		<comments>http://gidden.net/tom/2006/12/04/still-leaving-orange/#comments</comments>
		<pubDate>Mon, 04 Dec 2006 11:51:12 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[07973100194]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[customer-services]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[orange]]></category>
		<category><![CDATA[three]]></category>
		<category><![CDATA[uk_telecom]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/04/still-leaving-orange/</guid>
		<description><![CDATA[Continuing on from my previous post about leaving Orange... I got a call from Orange Customer Relations (07973100194) this morning about the PAC code I ordered on Saturday. The woman calling was very nice and polite, was calling to get me back as I am a "high valued customer".  Once I explained why I was leaving, she got the point that I had made up my mind, and instead asked if I could elucidate so she could pass on my comments as constructive criticism.  We had a long and pleasant chat.

I basically told her all the points in my original post, gave her all the information she needed about the new tariff on Three, and explained what I thought Orange needed to do to become really competitive again.  She didn't argue my assumption that they weren't going to be able to give me a deal as good as the one Three have given me (ten times the minutes for half the price).
In fact, she mentioned that she hadn't heard about the offer I got from Three, and that it was only through conversations like this that Orange really got an idea of what's out there and popular.  Glad to be of help.  (Incidentally, it's this one.)
She was interested that they'd given me a refurbished handset, and I explained that that might be a way of reducing the tariff cost: perhaps even offering an ultra-cheap no-handset tariff, for those with existing phones and those with knowledge of eBay!
She brought up an interesting point when I mentioned that Three's 2G service was going to be moved from O2 to Orange, therefore giving me the coverage I'm used to. She said that I should be careful with that because Orange wasn't going to give them full UK coverage.  I'm not sure exactly what she meant by that, but interesting to know all the same.  We also talked about Three's heritage and how one of their directors was ex-Orange.
My final point was about how I felt that Orange had lost their innovative lead, and that to get me back would require them to start being smart again, rather than being just another network.  Giving their customers features and offers because they should, not just because they *need* to.  I explained that Three was trying a lot harder than Orange seemed to be and that if they got that feeling back, I'd be happy to return to Orange once my new contract expired.
Anyway, I was happy to have this conversation, as I'm always happy to give companies any feedback they need to improve their service.  The woman calling was very pleasant and polite, and incredibly well-trained and informed.  It wasn't the hard sell that I got on Friday morning, which as I said before didn't exactly endear me to the idea of staying with them.
It's a shame I had to leave before they decided to take on my feedback, though.  Orange used to be very big on loyalty.  Nowadays, you've got to leave (or threaten to leave) to get a good deal out of them.  Of course, preferential treatment to new customers makes sense on the balance sheet, but real common-sense says to keep existing customers happy to prevent churn.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/04/still-leaving-orange/feed/</wfw:commentRss>
		<slash:comments>-2</slash:comments>
	
		<series:name><![CDATA[Leaving mobile phone company "X" for "Y"]]></series:name>
	</item>
		<item>
		<title>Leaving Orange after ten years</title>
		<link>http://gidden.net/tom/2006/12/01/leaving-orange/</link>
		<comments>http://gidden.net/tom/2006/12/01/leaving-orange/#comments</comments>
		<pubDate>Fri, 01 Dec 2006 11:46:39 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[6280]]></category>
		<category><![CDATA[cellnet]]></category>
		<category><![CDATA[cellular]]></category>
		<category><![CDATA[customer-services]]></category>
		<category><![CDATA[gsm]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[Mobile-phone]]></category>
		<category><![CDATA[mobile-phones]]></category>
		<category><![CDATA[nokia]]></category>
		<category><![CDATA[orange]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[three]]></category>
		<category><![CDATA[vodafone]]></category>
		<category><![CDATA[x-series]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/12/01/leaving-orange/</guid>
		<description><![CDATA[I just called Orange customer relations to request my PAC code after finally deciding to move to "3" or Three as I'll call them from now.  I've been a contract customer with Orange for just over ten years, and I'm just no longer feeling the love.

Orange started off as an innovative company, seemingly unaffected by the failure of the related "Rabbit" CT2 enterprise.  Unlike Cellnet and Vodafone, the more conservative established alternatives at the time, Orange offered a whole slew of innovative features such as Line 2, free voicemail, free Call Waiting, free itemised billing, free insurance, free 0800 calls, inclusive minutes bundles, and most of all: lower prices, even on international calls.
To achieve these features, they worked closely with Nokia.  If I remember correctly, Orange were the ones responsible for getting features like Line 2 and voicemail signalling into the standards.  Rather than just selling a premade product, they wanted to create new and innovative ways of using a mobile phone.
Orange Care was the real killer app for me, though.  I remember trashing my phone on several occasions and getting a free replacement very quickly: once I got a replacement 7110 delivered to me at work two hours after I'd accidentally dropped the old one in the (clean and pine-scented) toilet.  No charge.  This service apparently was the cause of the delayed releases of new handsets, as Orange sent new models back to the drawing board when they didn't live up to the QA standards necessary for the insurance scheme.
This was the old Orange.  This was before Hans Snook left.  This was before Pay-As-You-Go.  This was before they got bought out.
Since then, Orange have seemed to stop innovating, both from a technical and a business perspective.  Customer service quality has plummeted.  It used to take about two rings to get through to a very well-trained CS rep, who would quickly put you through to 3rd Line support if it was clear that you knew what you were talking about. Nowadays it sometimes takes ages just to get through to someone with a script in front of them, and they seemed to be well trained at saying "No", and "We don't offer that", and other disappointing responses.
Orange Care is now £6 a month extra, and includes a whole bunch of exclusions and a rather hefty excess.  In other words, it's the same as everyone else's network.  I haven't actually used Orange Care in about five or six years, but it's something I've paid for diligently anyway, for the peace-of-mind.  I could have bought about five new phones on the money I've spent on Orange Care.
The final straw was a fairly trivial note I just noticed at the bottom of last month's Orange bill:  "...We will be charging £1.50 for itemised billing."  Now, I don't actually care *that* much, as I rarely read my phone bill anyway, but I remember one of those little things that made Orange better than Cellnet and Vodafone was their free itemised billing.  It's the principle.  Yet another sign that they've regressed.
The offers given to new customers are a hell of a lot better than those available to old, loyal customers, but even those offers are far too expensive for what you get. Back when I joined, you got everything for £15 a month.  That's on a 12 month contract, with a free decent phone included.  Now I'm paying almost £30 for pretty much the same deal: 60 minutes of talk time and 30 texts.  I've been paying them anywhere from about £20 to £100 a month for ten years, and usually overpaying them if anything.  I'm only using an average of 42 minutes a month, but they can't offer me a cheaper tariff.
So, here comes Three.  Dumb name, and one that makes it difficult to Google, but their attitude seems strangely familiar.
Looking a bit deeper, I find out that Three's full name is "Hutchison 3G UK Limited".  Not too different from the "Hutchison Telecommunications UK Limited" that launched Orange back in 1994.  Back then, "Orange" was a pretty odd name for a mobile phone network, just as Three is an odd name now.  Back then, Orange were the only ones risking running on a solely 2G phone network, while Cellnet and Vodafone's relied on 1G.  Not too dissimilar from Three rolling out a 3G network so quickly, and handing off the 2G fallback to O2 (and soon to Orange, fortunately).
In so many ways, Three reminds me of what Orange used to be.
Three is the new Orange.
And today, they've launched "X-Series"... flat-fee mobile broadband with free Skype-to-Skype calls.  £5 a month.  This thing could kickstart the stagnant mobile internet market.  It's the kind of industry-wrenching, business-plan-defying fantastic lunacy we used to expect from Orange.  Exactly the kind of thing that makes their less insightful competitors poo-pooh it, and their more insightful competitors poo-poo themselves.  It's what the consumers want, and it's going to happen.  Everyone else is on catch-up now.
Considering the way I currently use my mobile, I'm not going to go for "X-Series" for now.  I can't justify the expense considering how much I actually use my mobile, and I also don't want the Nokia N73 I'd have to use to get it:  I'm sick of "smartphones", which I think are more suitably named "slow-and-crashy-phones".  I've been using a Nokia 6680 for about a year, and it's just slow and crap.  My friend Steve has an N70, which is similarly slow and crap.  I had a 7650 before then, as a result of the Orange video trial I participated in, and it's just slow and crap.  I wouldn't mind having a Blackberry or something like that, but right now, I'd just be happier with a small phone that works well, as long as it's got Bluetooth.  I could even do without a camera.
Anyway, as far as I can tell, Orange are just yet another network now.  Very full of themselves, knowing full well they've got market share, and they just do not care about customer churn.  They know they've got a good network, so why try harder?  France Telecom seems content to just sit on the cash-cow.  After talking to Orange CR for a few minutes to get my PAC code, I don't think they (or their computer) cares if I leave or not.  If anything, the girl on the phone just got slightly snippy and argumentative with me, before giving up.
So, I've signed up to Three.  £15 a month for 18 months, and then up to £30 a month, although I'll probably renegotiate at that point and perhaps move somewhere else.  I get a Nokia 6280 refurb, which should do the trick.  It's got iSync compatibility, and it's not a "smartphone", so it has a chance of actually working smoothly.  I'll get 600 minutes a month for six months and then 300 minutes after that.  2000 texts a month for six months, and then down to 1000 texts, which is still about 30 times what I actually need.  It also includes MSN Messenger "free for life", which could be fun.
On paper, this looks like the right move.  I have no idea it'll actually play out, but I must say I can't wait for my new phone to arrive tomorrow(!)
I'm going to transfer my number over to Three, but I'll get an Orange PAYG SIM just for fun (and for Orange Wednesdays), and I'll probably get my phone unlocked so I've got a spare.  Otherwise, I'm no longer a loyal Orange customer.
Sort it out, Orange.  You suck.  I'm Three's bitch now.
Three, please don't disappoint me now.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/12/01/leaving-orange/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<series:name><![CDATA[Leaving mobile phone company "X" for "Y"]]></series:name>
	</item>
		<item>
		<title>Dull New Theme</title>
		<link>http://gidden.net/tom/2006/11/21/dull-new-theme/</link>
		<comments>http://gidden.net/tom/2006/11/21/dull-new-theme/#comments</comments>
		<pubDate>Tue, 21 Nov 2006 17:31:14 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/11/21/dull-new-theme/</guid>
		<description><![CDATA[You may have noticed that I've changed to a different WordPress theme (again). I've been meaning to do so for a while now, especially since the site has not been working in Microsoft Idiot ExploiterInternet Explorer.

I've thrown this theme together with little regard for aesthetics, and it's NOT permanent by any means. It's just a placeholder for now.
I've been spending some time playing with ideas, and each time I hit a browser compatibility snag or I realise the theme looks like every other Web 2.0 design and I lose enthusiasm. I've got a great idea for a fairly unique theme, but it's going to take a while (and a stack of tracing paper) to do properly, and I've got better things to do right now.
At this point, I'd usually insert a lengthy rant about how crappy CSS and HTML are, and this time I'd also go on about the horrendous code quality inside WordPress (and, it seems, every other PHP-based blogging package I can find)
For now, I'd appreciate it if you didn't judge my aesthetic taste or web design skills on this theme...]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/11/21/dull-new-theme/feed/</wfw:commentRss>
		<slash:comments>-266</slash:comments>
		</item>
		<item>
		<title>Search Engine Article in php&#124;architect Magazine</title>
		<link>http://gidden.net/tom/2006/09/21/search-engine-article-published/</link>
		<comments>http://gidden.net/tom/2006/09/21/search-engine-article-published/#comments</comments>
		<pubDate>Thu, 21 Sep 2006 20:58:25 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[indexing]]></category>
		<category><![CDATA[inverted-index]]></category>
		<category><![CDATA[mysql]]></category>
		<category><![CDATA[pdo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[php-architect]]></category>
		<category><![CDATA[search]]></category>
		<category><![CDATA[search-engine]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/09/21/search-engine-article-published/</guid>
		<description><![CDATA[I just got the regular monthly email from php&#124;architect Magazine informing me that this month's issue is ready to download, and listing all the wonderful things inside.  Turns out they went ahead and published the article I wrote for them a couple of months ago.

The article was titled "How To Write Your Own Search Engine", although they've retitled it and updated it a bit.  It covers the use of the inverted index technique to write a search tool using MySQL.  I've been doing this kind of technique for a few years now, and I've had to explain it to colleagues so many times, it's nice to finally have an article I can give them instead.
I think it came out well, although I may have spotted a small bug introduced when they tweaked the code I wrote... I'm not sure, as I'm pretty tired and hopped up on morphine, amitriptyline and codeine (all prescribed!) to try to loosen me up after a fairly painful ten-hour trip to London and back for my six-month post-operative appointment with my orthopaedic surgeon.
Anyway, I *think* they've missed out a strtolower() call in Listing 3 around line 17 or 18, thus making searches case-sensitive, even though the indexer downcases everything.  As a result, I'm not sure the search will actually work unless you always type in lowercase.
Well, not to worry... whoever did the code clearup must've had a fairly tedious job of getting rid of some of my code style idiosyncracies in an effort to make it more "standard", so I don't begrudge them the odd bug or two.
It was a bit of a surprise seeing the article, as I hadn't heard back from them since I'd submitted the original draft a while ago.  Other than a few updates to PDO rather than the mysqli based code I submitted, they haven't made many changes, so I guess my draft was okay as it was.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/09/21/search-engine-article-published/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Hitachi GST (no longer) Sucks</title>
		<link>http://gidden.net/tom/2006/09/11/hitachi-gst-sucks-ass/</link>
		<comments>http://gidden.net/tom/2006/09/11/hitachi-gst-sucks-ass/#comments</comments>
		<pubDate>Mon, 11 Sep 2006 16:10:48 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[4k120]]></category>
		<category><![CDATA[customer-support]]></category>
		<category><![CDATA[failure]]></category>
		<category><![CDATA[hard-drive]]></category>
		<category><![CDATA[hitachi]]></category>
		<category><![CDATA[hitachigst]]></category>
		<category><![CDATA[ibook]]></category>
		<category><![CDATA[laptop-drive]]></category>
		<category><![CDATA[rma]]></category>
		<category><![CDATA[travelstar]]></category>
		<category><![CDATA[warranty]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/09/11/hitachi-gst-sucks-ass/</guid>
		<description><![CDATA[UPDATE January 2007:  I got the replacement drive, and it has been working fine for a few months now.  Hitachi's service was quick and painless, and while I'm still not 100% sure about the quality of Travelstar drives (since I've had them fail since the IBM days), I'm satisfied that the problem's fixed.

Unfortunately, while reassembling the iBook I managed to gouge a scratch in the LCD screen, courtesy of the sharp edges of the Airport antenna cable.  Fortunately, my mother said she doesn't notice the scratch, and so was okay with swapping iBooks with me.  As a result, the iBooks have been taken apart and put back together many times, and it's difficult and fiddly each time.
UPDATE 13/9/06:  I finally got a good reply from Hitachi on this issue, and it looks like running the DFT tool isn't actually required to get an RMA.  So, I'm going to open the iBook up and get the drive sent off in the next day or so.  This is a major PITA, as I won't have my music/photos accessible for the time being.  I'm still slightly honked off with the sloppy customer service.  Anyway...
The Hitachi Travelstar 4K120 drive I fitted in my iBook earlier this year has started making horrible clunking sounds.  The clunks seem to coincide with the drive seeking for data after a short idle time.
Anyway, since this is my main (and only) machine, I'm understandably a little worried, so I backed up the drive to my external Firewire drive, and sent off a note to Hitachi's warranty returns contact page.
The note explained the problem, and went on to explain that I have an Apple Macintosh laptop (iBook G4) which will not run the "Drive Fitness Test" tools required to diagnose the problem.  It also explained that I don't have a PC at hand to test the drive; I don't have the required 2.5" IDE cable adaptor to plug it into such a PC if I did have one; and that the iBook takes a long time to take apart and put back together, which I don't really want to do if they're not going to authorise an RMA.
This morning I got a reply:

From:     HGST.NoReply%SUPPORT [AT] support [DOT] hgst [DOT] com
Subject:  Hitachi GST Support Request #XXX-XXX-XXX-X
Date:     11 September 2006 11:17:00 BDT
To:       tom [AT] gidden [DOT] net
Reply-To: support_uk [AT] hitachigst [DOT] com

Dear Mr Gidden,

Thank you for contacting our Hitachi Technical Support Center.

From the information we have regarding your problem we cannot make
a reliable diagnosis of your problem and how to resolve it.

In order to gain more information about your problem you need to run
a utility called Drive Fitness Test on the drive. This will establish
the cause of your problem.

Please download Drive Fitness Test from the following URL:

http://www.hitachigst.com/hdd/support/download.htm

If possible we would recommend backing up any important data at this
time before running the test.

Run the quick test first, and if you receive the result 0x00, then run
the advanced test.

If you receive result code 0x72, 0x73 or 0x75 please log on to
http://www.hitachigst.com/warranty in order to create an RMA Number
for your hard drive.

For any other result code please contact us again

Best regards
XXXXXX XXXXXXX
Hitachi Technical Support Center

From this, I can tell that they didn't actually read my original note.

From:    Tom Gidden
Subject: Re: Hitachi GST Support Request #XXX-XXX-XXX-X
Date:    11 September 2006 11:31:11 BDT
To:      support_uk [AT] hitachigst [DOT] com

Hi,

As I said in my original message, I can't run Drive Fitness Test
as the drive is installed in my Apple Macintosh laptop, and DFT is
only available for PCs.

I don't have the equipment necessary to connect the drive to a PC, as
it's a 2.5" drive.

Regards,

--
Tom Gidden

And the reply...

From:     HGST.NoReply%SUPPORT [AT] support [DOT] hgst [DOT] com
Subject:  Hitachi GST Support Request #XXX-XXX-XXX-X
Date:     11 September 2006 13:01:24 BDT
To:       tom [AT] gidden [DOT] net
Reply-To: support_uk [AT] hitachigst [DOT] com

Dear Mr Gidden,

Thank you for contacting our Hitachi Technical Support Center.

Simply connect to the internet and point your browser to

http://www.hitachigst.com/warranty/

After you have run DFT and checked the drive Click the link called
RMA Request Process. You can then work through the wizard on screen to
authorise your drive for warranty.

If when using this system you are unable to return your drive you will
be given a telephone number to call for further support and advice.

Once an RMA is created you can check the status of your request by using
the RMA status tool at this link

http://www.hitachigst.com/warranty/jsp/arma51.jsp

Best regards
XXXX X
Hitachi Technical Support Center

I can see that I'm not actually getting anywhere.  Yet another case of sucky customer service where the customer isn't getting listened to.  I also object to the fact that I need a PC to process a simple warranty claim.  Macs are common enough nowadays that it's a bit unfair when drive manufacturers only have DOS-based x86 diagnostic tools.
At this point, the drive is starting to clunk a whole lot more, so I'm going to have to bite the bullet and take it apart anyway, and try to get it hooked up to my dad's PC somehow.
This is the second drive I've bought this year, and the second one that's started making clunking sounds, and neither of them have actually got moved about or anything.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/09/11/hitachi-gst-sucks-ass/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Mac Flight Tracker widget timezone bug</title>
		<link>http://gidden.net/tom/2006/08/10/mac-flight-tracker-timezones/</link>
		<comments>http://gidden.net/tom/2006/08/10/mac-flight-tracker-timezones/#comments</comments>
		<pubDate>Thu, 10 Aug 2006 20:54:07 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[apple]]></category>
		<category><![CDATA[bdt]]></category>
		<category><![CDATA[bst]]></category>
		<category><![CDATA[bug]]></category>
		<category><![CDATA[dashboard]]></category>
		<category><![CDATA[flight-tracker]]></category>
		<category><![CDATA[flighttracker]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mac-OS]]></category>
		<category><![CDATA[Mac-OS-X]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[nsdate]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[os_x]]></category>
		<category><![CDATA[tiger]]></category>
		<category><![CDATA[timezone]]></category>
		<category><![CDATA[widget]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/08/10/mac-flight-tracker-timezones/</guid>
		<description><![CDATA[The Flight Tracker dashboard widget that comes with Mac OS X 10.4 (Tiger) seems to have a fairly major bug.  However, this bug seems to be the result of something quite obscure to do with timezones, and it only seems to manifest itself in the UK during the summer.

I've noticed this problem a few times:  specifically whenever any one of my close friends or family members flies anywhere.  This time, my mother is on her way back from San Diego to Bristol via Newark.  Thanks to the incredibly annoying terrorist attack attempt today, my dad and I were understandably concerned about flight delays, so I pulled up the Flight Tracker.  Unfortunately, the information seems completely wrong.
Turns out, the minutes are right but the hours don't relate to any of the relevant timezones.
Anyway, a little background.  Here in the UK, we have two main time scenarios:  firstly GMT, which is for all intents and purposes, UTC.  We also use BST:  "British Summer Time" which is UTC+1h, and kicks in for archaic agrarian reasons and the "Think of the children!" brigade who are convinced it'll stop traffic accidents.
While the rest of OS X seems okay and correctly uses BST, Apple's Mail.app has always strangely listed incoming mail as being sent relative to "BDT", which comes out as "British Daylight Time", which is fairly meaningless as there's no such thing.  The times are correct, but they just have the wrong abbreviation afterwards.  On researching it, this seems to be the result of bad data from the Unicode people which might have made its way into NSDate.  Anyway, it's usually just a cosmetic thing, and of little or no consequence.
I believe, however, that it's the cause of the Flight Tracker widget's problems.  To test this, I altered the widget to display the timezone, by replacing the bit in FlightTracker.js, in function formatDateForDisplay() that says
var timeStr = date.toLocaleTimeString("short");
with
var timeStr = date.toLocaleTimeString("long");
This reveals that the times are supposedly in "BDT".  I believe this might be the problem.  I think something is reinterpreting this as "Brazilian Daylight Time", which would explain the weird offsets.  I think JavascriptCore or something is referring to the same bad data as Mail.app, probably via NSDate.  I'm not a Safari hacker, and I haven't really investigated that far, so I'm not sure where the problem is.
Looking a bit deeper into FlightTracker.js, I'm not really surprised there's a problem.  The timezone calculation code is fairly messy, with comments such as:
// We're going to be stupid and hard coded about parsing the server provided date strings for now
// ??? for some reason parseInt returns 0 on this but parsefloat works ???
and
// here we do proper handling of the timezone offsets.
// We enter everything in pretending it's UTC time
// and then we convert it to miliseconds since 1970,
// add the timezone offset in miliseconds to it
// and then set this as the new UTC time
There seems to be some string hacking going on at several places to decode the data sent from FlyteComm.  The original data is reasonably well structured, with the timezone offsets being given correctly as -0700 and +0100, which presumably indicate that the times are given as local times of the departure/arrival locations, as per normal for the airline industry.
I'm not completely sure what's going on, as I'm not really set up to debug someone else's widget, especially one with weird custom controls, and barely any code comments.  It's obvious to me that the widget isn't particularly well written, and is one of those things that "just works".  It was probably hacked up for fun by a Dashboard developer, and then fasttracked to the nearest Steve Jobs keynote rehearsal.  As Steve Jobs's Dashboard demos tend to be done at MWSF and WWDC, I doubt this problem has ever really been seen at Apple.  I bet if it was a problem with Pacific Daylight Time being misinterpreted, it'd be fixed immediately!  I've done a little bit of googling, and it looks like the BDT bug has already been submitted to Apple (several times), and it's still there.
When I get a chance, I may try to debug this one further, and perhaps rewrite FlightTracker's timezone code properly using the correct offsets rather than performing nasty magic using getLocaleTimeString().
What I would prefer is that the timezone of each time is given next to the time.  Ideally, they should toggle-on-click or slowly fade between local times (to the flight) and local times to the machine, and possibly relative times ("1 hour ago", "in 53 minutes", etc.)  That would make the tool a lot more intuitive anyway.  I'd rather not reinvent the whole widget, as in all other ways, the widget's really not too bad.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/08/10/mac-flight-tracker-timezones/feed/</wfw:commentRss>
		<slash:comments>15</slash:comments>
		</item>
		<item>
		<title>X11 Colors list for Mac OS X</title>
		<link>http://gidden.net/tom/2006/08/04/x11-color-list-for-macosx/</link>
		<comments>http://gidden.net/tom/2006/08/04/x11-color-list-for-macosx/#comments</comments>
		<pubDate>Fri, 04 Aug 2006 21:29:38 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[clr]]></category>
		<category><![CDATA[colors]]></category>
		<category><![CDATA[colours]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[Mac-OS]]></category>
		<category><![CDATA[Mac-OS-X]]></category>
		<category><![CDATA[MacOS]]></category>
		<category><![CDATA[NSColorList]]></category>
		<category><![CDATA[OS-X]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[palette]]></category>
		<category><![CDATA[PerlObjCBridge]]></category>
		<category><![CDATA[rgb]]></category>
		<category><![CDATA[x11]]></category>
		<category><![CDATA[x11-colors]]></category>
		<category><![CDATA[x11-colours]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/08/04/x11-color-list-for-macosx/</guid>
		<description><![CDATA[A friend of mine is a recent newbie Mac user, after finally succumbing to the shiny white lure of the MacBook.  As an expert Unix user, he was missing the old X11 colours list, because he can't have his terminal set up with a horrible shade of puce without having to work out the RGB values for it.

Christopher Holland has already created an OS X color list for the Resene color list which is allegedly used on many X11 windowing systems, but to be honest, I haven't encountered it before.  I last used an SGI in about 1997, and I must confess I never looked at the color selector.  It also didn't seem to include the specific wretched tincture my friend wanted.
So, rather than taking the easy route and just picking the closest match from the Apple crayons, we had to grep /usr/X11R6/lib/X11/rgb.txt instead.
To eliminate the possibility of this nightmare operation having to be done again when he finally comes to his senses and picks a normal color, I hacked together a quick bit of code to create a .clr file.
Just use the "Open..." doodah in any colour selector in Mac OS X.  It should automatically copy the file into your user's Library/Colors.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/08/04/x11-color-list-for-macosx/feed/</wfw:commentRss>
		<slash:comments>-1</slash:comments>
		</item>
		<item>
		<title>Stupid annoying missed call alerts</title>
		<link>http://gidden.net/tom/2006/07/20/stupid-annoying-missed-call-alerts/</link>
		<comments>http://gidden.net/tom/2006/07/20/stupid-annoying-missed-call-alerts/#comments</comments>
		<pubDate>Thu, 20 Jul 2006 17:54:15 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[08009157111]]></category>
		<category><![CDATA[0800_915_7111]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[complaints]]></category>
		<category><![CDATA[completely_pointless]]></category>
		<category><![CDATA[icstis]]></category>
		<category><![CDATA[ofcom]]></category>
		<category><![CDATA[rant]]></category>
		<category><![CDATA[recorded_message]]></category>
		<category><![CDATA[spam]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[telephone_preference_service]]></category>
		<category><![CDATA[tps]]></category>
		<category><![CDATA[TRG_Europe]]></category>
		<category><![CDATA[uk_telecom]]></category>
		<category><![CDATA[unsolicited]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/07/20/stupid-annoying-missed-call-alerts/</guid>
		<description><![CDATA[[... from companies I will (now) never buy from or do business with] Over the past few weeks I've been getting some missed call alerts on my mobile phone.  These aren't the normal type you get when the phone actually rings:  these are the text messages I get from Orange when the call is too short (this case) or my phone's off or out-of-range.  The numbers: 0800 915 7111 and 0800 915 7113

Googling for these numbers only gives me a discussion on uk.telecom.mobile of people with about as much clue as me on who the culprit is.
I signed up to the Telephone Preference Service years ago, so I shouldn't get unsolicited calls.  Unfortunately, the TPS seems utterly toothless.  They don't seem to have any enforcement powers whatsoever, and from my experience companies that claim to abide by the TPS completely ignore it.  I've made complaints to the TPS before and the data seems to go nowhere.  The extra problem is that these calls aren't necessarily sales calls.  I assume they are, but to me they're just silent calls if anything.
So, next step is the ICSTIS who also seem to be completely pointless, but they do offer a (sometimes) useful tool.  Admittedly, ICSTIS is only meant to regulate premium-rate services, but they're still part of this broken regulation system, so I hate them too. Their tool does indicate that although they don't regulate freephone (0800) numbers, their records state that the number is provided by Torch Communications Ltd.
Unfortunately, this doesn't help much:  it's usually just the company that provided the phone number, and not the company that actually uses the phone number.
I also tried the Information Commissioner who is supposedly meant to have something to do with this issue.  After wading through a woolly PDF about their complaints procedure, I think I understand that they have no powers either.
So, to Ofcom.  Their complaints page just points me back to the TPS, stating that I should make my complaint to them.  In the meantime, however, I emailed a rather bolshy note to "the office of the Secretary to the Corporation Graham Howell (graham.howell@ofcom.org.uk)" as shown in the "Complaints about Ofcom" page, saying (to paraphrase) "Belt up and sort this thing out".
Anyway, on calling the original phone number (0800 915 7111) I get a recorded message:
"Thank you for calling.  The call made to you was from TRG Europe on behalf of one of [his?] clients: a company which we understand you are familiar with.  The call was not urgent and we apologise for missing you on this occasion.  We'll try to contact you again soon.  The UK call centre industry is anxious to promote good practice in customer communications.  However, if you are concerned about receiving potentially unexpected telephone calls from businesses, you can register to stop them by calling the Telephone Preference Service on 0845 070 0707.  That's 0845 070 0707."
Unfortunately, they don't give the option to talk to themselves!  As I can't tell which client they're calling on behalf of, I can't really gauge how useful the TPS has been.  This could quite easily be on behalf of a company that I have "had business dealings with" as I do, in fact, live in a consumption-driven society and so I do sometimes BUY THINGS FROM COMPANIES!  If I find out who this is on behalf of, there's a good chance I will not have any further dealings with them.
Googling for "TRG Europe" is slightly confusing as the number-one hit is "www.iSky.co.uk" rather than the number-three "www.trgeurope.com".  It looks like iSky has now rebranded (read: has been bought by) TRG Europe Plc. This seems to be a company that offers "outsourced telephone call handling and relationship management" which (as far as I'm concerned) translates to: "battery farms full of miserable, ill-trained and ill-informed twenty-somethings whose sole purpose is to call me up and annoy me."
So, I emailed them asking if it was them.  I hold out zero hope that my email will be answered, but I suppose it's worth trying.  I might get around to calling TRG Europe directly, and asking them whether it's them.  Their HQ is only about five miles from where I live and close to the local Tesco, so I might pop round on my way back from there.
Of course, in the grand scheme of things, this is not exactly a shocking breach of human rights or anything like that.  However, low-level evil such as cold-calling is one of the primary causes of the ongoing fall of western civilisation.  For more details, read "Good Omens" by Terry Pratchett.  This practice probably adds annoyance and stress to millions of people every day, causing them to be rude and intolerant with their peers, friends and families.  In addition, the problem seems to be getting worse.
The other reason this should be dealt with is that it can be easily stopped.  Unlike email spam which is practically impossible to trace, this is easily traceable.  There's no technological reason why this can't be prevented.
There are laws in place to fight this kind of behaviour, but unfortunately Ofcom, ICO, ICSTIS, TPS and the other quango-ish bodies just can't get themselves organised.  What we need are the directors of these companies to be fined and punished directly to make cold-calling, silent calling, unsolicited communication (eg. Fax and SMS spam) such an impossible legal minefield that a company will only think of calling a customer if they've got permission to do so from that customer.  How many UK voters would actually disagree with such a stance?
For those who reach this page by angrily hammering 08009157111, 08009157112, 08009157113, 08009157117, 08009157118, 0800 915 7111, 0800 915 7112, 0800 915 7113, 0800 915 7117, 0800 915 7118, or any other combination of these insipid numbers into their browser's search box, I'm afraid I have no good news to report so far.  If you've got further than me, or you agree (or disagree) then please get in touch by leaving a comment on the bottom of this page.
Grr. Bastards.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/07/20/stupid-annoying-missed-call-alerts/feed/</wfw:commentRss>
		<slash:comments>-1</slash:comments>
		</item>
		<item>
		<title>loginwindow.plist Is My Enemy</title>
		<link>http://gidden.net/tom/2006/07/13/loginwindow-plist-is-my-enemy/</link>
		<comments>http://gidden.net/tom/2006/07/13/loginwindow-plist-is-my-enemy/#comments</comments>
		<pubDate>Thu, 13 Jul 2006 12:40:40 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[annoying]]></category>
		<category><![CDATA[daemon]]></category>
		<category><![CDATA[launchd]]></category>
		<category><![CDATA[loginwindow]]></category>
		<category><![CDATA[mac]]></category>
		<category><![CDATA[osx]]></category>
		<category><![CDATA[os_x]]></category>
		<category><![CDATA[preferences]]></category>
		<category><![CDATA[stupid]]></category>
		<category><![CDATA[tiger]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/07/13/loginwindow-plist-is-my-enemy/</guid>
		<description><![CDATA[I've been trying to track down a few annoying apps that start up on my iBook and can't be found in any of the usual places.  I checked the normal places:  the Login Items for my user, LaunchAgents and LaunchDaemons, and a few other places... I forgot to check loginwindow.plist.

The specific program in question is /Library/CFMSupport/CNQL2410_ButtonManager.app, which is a little daemon that monitors the buttons of my father's scanner that I rarely borrow.  Also, the Version Cue stuff in Adobe CS2 can sit there rather unhelpfully... even though I uninstalled CS2 since leaving my last workplace.  (My rant against Installer VISE is a separate issue)
So, the solution is to trash /Library/Preferences/loginwindow.plist.  If you ask me, this is a particularly stupid place for startup items to live.  I understand that there has to be a place for startup items that aren't dependent on a user logging in, but it damn well shouldn't be a Preferences file.  Of course, the solution to this is probably launchd, but the problem is with this idioty little apps that are written by people who obviously haven't read any of Apple's development guidelines.
Incidentally, has anyone ever found a scanner or printer that has decent, HID-compliant driver software for Mac?  I don't think such a thing exists.  They're all so idiosyncratic and lame, and they completely fail to interface with the OS's built-in facilities.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/07/13/loginwindow-plist-is-my-enemy/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>GMail for your domain</title>
		<link>http://gidden.net/tom/2006/07/09/gmail-for-your-domain/</link>
		<comments>http://gidden.net/tom/2006/07/09/gmail-for-your-domain/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 14:54:43 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[forwarding]]></category>
		<category><![CDATA[gmail]]></category>
		<category><![CDATA[gmail-for-your-domain]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[google]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[mx]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/07/09/gmail-for-your-domain/</guid>
		<description><![CDATA[As I mentioned in a post on Underscore, last week I got an invite for GMail for your domain.  This is a new beta service where Google acts as your domain's MX.

Up until now, all my mail has gone through GoDaddy and been forwarded to GMail.  I then use Apple's Mail.app to retrieve the mail via secure POP3.  In recent weeks, I've been slightly paranoid that GoDaddy might be dropping mail.  Regardless, they're an added point-of-failure.  Right at that moment, Google send me the invite.
It was easy to set up.  They've made it even easier by detecting that my domain was served by GoDaddy, and giving me GoDaddy-specific instructions on how to set up the MX records (not that it's difficult, but it's a cute feature).  The additional SPF record suggestion was cool too, although I don't want to add that until I've fully migrated the DNS.
Now it's time for the criticism.  It came off pretty damn well, actually, with the only criticisms being quite minor:

My old GMail account can't be imported in, so I have to start fresh. Also, my normal Google login won't be fixed to this new account.
It uses a different login page, so I have to remember a new URL. Understandable for replaceable branding reasons, but I'd like to be able to my full address into the normal GMail login box and have it figure it out.
There's no facility for adding my secondary domains (eg. gidden.org, litebase.com). Bit of a shame. Means I have to keep the GoDaddy mail forwarding in place for those domains.
I can't set up proper forwards. Nicknames are almost forwards, but limited to destination addresses in the same domain. To set up a forward, I have to create a new user account, log into it, and set up normal GMail forwarding with "delete mail" set.  With all the logging in and out necessary to set this up, it's a major PITA.
The 2GB limit is fixed, rather than the ever-increasing limit of normal GMail.
The branding capability is far too limited:  you can replace the logo and that's it.  No CSS changes or anything.  Okay, the complexity of the GMail DOM layout might be a case of "No User-Serviceable Parts Inside", but they could just offer a sample stylesheet for font and colour changes.

I do still wish they'd spruce up the user interface, though.  I totally get the sparse look of Google, but I do think Yahoo's new interface is more user-friendly, and Google are practically making a point of being ugly.  I wouldn't be happy using this new service for giving accounts to non-computer-savvy clients.  I can see a market for small-business setups (in fact, small office London estate agents are just perfect for this market), but without a bit more branding capability, GMail isn't an option IMHO.
Right now, all they've done is wrap something around normal GMail. I'm sure all the hard work was in the MX stuff (although that can't really be too hard!)  For a real whole-domain email solution, they should start looking at collaborative functions. Rather than just centralised-management of separate GMail accounts.
Anyway, I've emailed them a bunch of suggestions for this, although I'm sure they've already got a good idea of where they're going with it.  (Hey, Google: make your beta feedback function more visible!)]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/07/09/gmail-for-your-domain/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Why not much has been happening here</title>
		<link>http://gidden.net/tom/2006/07/09/excuse-for-laziness/</link>
		<comments>http://gidden.net/tom/2006/07/09/excuse-for-laziness/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 14:21:35 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[Techie]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/07/09/excuse-for-laziness/</guid>
		<description><![CDATA[For various reasons, I've been a bit quiet on this blog since setting it up.  The reasons:


I'm recovering from this operation.  It's going well, but it's painful to sit down for long periods writing stuff, and the morphine still clouds my concentration a bit.  I'm reducing the dose steadily, and I should be off it before too long.  In the meantime, I still ache like hell quite a lot of the time.  I've uploaded the X-rays (AP and Lateral), along with the before-and-after X-rays from my first operation.
I've been spending more time thinking about the page layout.  I'm not happy with this theme, although I like the whiteness and simplicity.  However, I hate those dropdowns.  So, I'm trying to come up with something simpler and better, while still keeping the cleanliness.
I've been working on an article originally intended for this blog.  However, it ballooned into a 4000-word piece with diagrams and listings and stuff, and it's been provisionally picked up for publication in a real ink 'n' paper techie magazine, for payment and everything.  Wahey!  I rock!  However, until it's published, I'm not going to tempt fate by talking about it.
I'm starting to look at doing the Zend Certification exam.  I paid for it last year, and never got round to doing it.  My excuse was that it only covered PHP 4, but since the PHP 5 exam is due for release shortly, I should really start revising.

Anyway, once I've got all that off my plate, I'm thinking about writing a few more bits for this site, including "JOINs for Dummies".  In my experience from interviewing PHP and database developers, very few actually get SQL joins, especially outer joins.  At Lonres, Steve and I wrote a small test to give to candidates, involving some simple joins.  None of them gave 100% correct answers, even though they were really trivial.  I'd like to teach the world to JOIN in perfect harmony, so I might give writing a tutorial a shot.  I'm not a recognised expert on this stuff, but my ad-hoc tutorials in my office went down pretty well, so I might as well.  At the very least, it means I won't have to teach it again.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/07/09/excuse-for-laziness/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>GoDaddy, mod_rewrite Update</title>
		<link>http://gidden.net/tom/2006/07/09/4-2/</link>
		<comments>http://gidden.net/tom/2006/07/09/4-2/#comments</comments>
		<pubDate>Sun, 09 Jul 2006 12:39:43 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htaccess_file]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[rewriterule]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/07/09/4-2/</guid>
		<description><![CDATA[It looks like GoDaddy might have tweaked their .htaccess / mod_rewrite support.  As I wrote in an earlier post, the way GoDaddy was supporting .htaccess was causing some confusion, in that even if you uploaded a correct .htaccess file, it could take some time to register.  This might have changed.

I haven't done much research or testing, but now when I make changes, they seem to activate immediately.  I don't know if this is just me, or whether they've fixed the problem, but it makes setup a lot easier.
Anyway, I've updated the original article to an extent, but have kept the possibly-obselete content in place for reference.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/07/09/4-2/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Image resampling for LCD screens</title>
		<link>http://gidden.net/tom/2006/05/29/lcd-resampling/</link>
		<comments>http://gidden.net/tom/2006/05/29/lcd-resampling/#comments</comments>
		<pubDate>Mon, 29 May 2006 22:32:06 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[Techie]]></category>
		<category><![CDATA[anti-alias]]></category>
		<category><![CDATA[anti-aliasing]]></category>
		<category><![CDATA[antialias]]></category>
		<category><![CDATA[antialiasing]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[cleartype]]></category>
		<category><![CDATA[compositing]]></category>
		<category><![CDATA[font-smoothing]]></category>
		<category><![CDATA[gd]]></category>
		<category><![CDATA[graphics]]></category>
		<category><![CDATA[image-processing]]></category>
		<category><![CDATA[imagemagick]]></category>
		<category><![CDATA[lcd]]></category>
		<category><![CDATA[magickwand]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[resample]]></category>
		<category><![CDATA[resampling]]></category>
		<category><![CDATA[rgb]]></category>
		<category><![CDATA[subpixel]]></category>
		<category><![CDATA[subsampling]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/05/29/lcd-resampling/</guid>
		<description><![CDATA[This article covers the use of the RGB subpixel antialiasing technique used in various software packages including Adobe Reader, Mac OS X's Quartz font rasterizer, XRender, Microsoft ClearType, applied to the improvement of quality of non-text images.  It includes a testbed and some sample code in C and PHP.

Regardless of who invented the principles of "RGB subpixel sampling" or whatever you want to call it, I find it an excellent way to improve font clarity on my iBook.  In fact, I can instantly tell when an application isn't using it.
My browser of choice, Camino, has a small bug whereby the font smoother sometimes switches back to greyscale mode.  The worst part is that it doesn't always happen across the whole window, but when a rectangle is redrawn (eg. while scrolling).  I think it mainly occurs when there's DHTML magic going on, and I suspect I know why:  when the text is part of a layer that may be composited on top of other content, the RGB font smoother is not really able to be used, unless the entire layer stack is prebuffered.  This is due to the lack of sensible subpixel transparency when compositing.  [Update: Pierre Igot describes a similar problem with Apple's Pages, and Michael Fortin explains why, and it turns out I was probably right.]
Anyway, I digress.  I far prefer subpixel antialiased fonts, but there's no mainstream package I know of that will apply the same technique to images.  Neither Mac OS X or Windows apply the technique to their vector graphics APIs; Photoshop and Illustrator don't support it;  Adobe (Acrobat) Reader seems to support it to a degree, but not in a useful way; and I found various other packages that aren't particularly clear whether they support it or not, including Cairo and Libart.
The algorithm itself is fairly straightforward.  Since writing the code I describe below, I've found the following pages that describe it very well, so I won't bother doing it again:

http://graphics.stanford.edu/~georgp/ClearScale/index.htm
http://www.grc.com/cleartype.htm

Neither offer sample code, though.
There are two main problems with this technique, though:  lossy compression, and transparency.
Lossy compression breaks any results, leaving us with large images when JPEG would be more appropriate.  Since the antialiasing manifests as a colour fringe, the lossy JPEG algorithm munges the detail completely.  Worst still, the "extra" colour in the image can "stain" the normal JPEG artifacts.
As far as transparency is concerned, there is no good algorithm: using normal single-channel alpha, the colour fringe is inappropriate on an arbitrary background.  When programming the sample code, I just could not find a good way of handling it.
The problem lies in composition: a single alpha channel for transparency is not enough to composite the separate subpixels, and the color fringing is assumed to be on a given colour background (usually white). If the image is only to be used on, say, a light grey background then it's passable, but still not "correct".  This is particularly hard to deal with when a transparency is necessary, for example on a gradient background.
On the last major project I worked on (Lonres.com), I applied the technique to the site's icons to give them a much clearer appearance.  It helped a great deal towards making the site's tiny icons legible (at least for LCD users!)  Images are also improved, in my opinion, although there's a downside: JPEGging the image will remove the benefits, so the photos must stay losslessly compressed (PNG or GIF).  Still, small thumbnail photos can be improved a great deal using this technique.
To see the results, I've put together a testbed page.  On showing this to the collective masses of Underscore, I got a range of different responses, varying from praise to disgust, so it's definitely a subjective thing. Anyway, the code I wrote for that project is available via Subversion.  It compiles for me on my Mac OS X 10.4.6 installation with a recent copy of ImageMagick.  The most likely cause of failure is lack of a new enough version: it must support the new MagickWand API.  If that's not enough, please don't ask me for help compiling it... this is programmer-level stuff, so don't expect for it to work unless you've got experience in compiling UNIX software.
UPDATE, April 2007: I've added a PHP port of the code which uses GD directly, rather than ImageMagick.  It's relatively slow, but useful for generating graphics for title image replacement.  I've used it on GoDaddy's economy account, and also on Dreamhost.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/05/29/lcd-resampling/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>.htaccess, mod_rewrite on GoDaddy</title>
		<link>http://gidden.net/tom/2006/05/26/4/</link>
		<comments>http://gidden.net/tom/2006/05/26/4/#comments</comments>
		<pubDate>Fri, 26 May 2006 14:01:48 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Techie]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[godaddy]]></category>
		<category><![CDATA[hosting]]></category>
		<category><![CDATA[htaccess]]></category>
		<category><![CDATA[htaccess_file]]></category>
		<category><![CDATA[mod_rewrite]]></category>
		<category><![CDATA[nucleus-cms]]></category>
		<category><![CDATA[rewriterule]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=4</guid>
		<description><![CDATA[Even though GoDaddy supports mod_rewrite, there are some definite peculiarities about their setup, with regards to .htaccess and PHP execution. Hopefully the observations I've made in this article will be of help if you're coming across the same problems I was.

UPDATE [9/Jul/2006]: .htaccess changes seem to be taking effect immediately now, at least for me.
UPDATE [3/Dec/2007]: According to comments left below, this is still an issue.  I can't verify, though, as I stopped using GoDaddy ages ago.  I've restored the stricken text, but please don't assume this information is still correct, as Your Mileage May Vary.
I was trying to set up Nucleus CMS and was having a little trouble with setting up the whole permalink / fancy URLs thing.  In particular, the mod_rewrite stuff in .htaccess didn't seem to be working correctly.
Googling for htaccess rewriterule godaddy tells me that I'm not the only one who was having issues.
I managed to get it working, and there are a few things to note:

Changes to the .htaccess file DO NOT TAKE IMMEDIATE EFFECT: I got very frustrated whem my rules were seemingly ignored, until I noticed that rules I deleted still worked.  So, after making a cup of tea, I came back to find they all worked. I'm pretty sure this is the problem most people are having.
Requests for PHP files (eg. http://gidden.net/tom/item.php) are intercepted well before .htaccess (and definitely mod_rewrite) activate. So, mod_rewrite will not work on URLs for PHP files.
However, it will allow redirections to PHP files.

Like many of GoDaddy's services, the changes aren't instant: when you change a setting in the hosting manager, it often takes 10-15 minutes to happen. At one extreme, I moved the hosting package to another (non-existent) domain while shuffling things around, and it took 24 hours before it would let me change it back.
I think they must have a weird form of file distribution where the FTP servers are not talking to the same filesystem as the webservers, and a cron job performs some sort of mirroring.  Either that, or there's some caching that doesn't get cleared correctly.
The fact that PHP files bypass .htaccess makes me think that PHP requests are separated out (possibly by some load-balancer or other magic box) and run on a different server.  It's clear that PHP is run through the CGI/FastCGI mechanism, rather than the more usual mod_php/apache way, but I wouldn't necessarily expect a large-scale shared hosting site to use mod_php.  It's a slight inconvenience, but understandable.
So, back to the Nucleus configuration.  The "normal" way of doing fancyurls (using FilesMatch and ForceType magic) doesn't work on GoDaddy, since the PHP execution mechanism is long gone by the time Apache reaches the .htaccess file and ForceType.  The alternative way listed in the documentation that uses mod_rewrite seems inadequate:  it doesn't use the "Fancy URLs" mechanism in Nucleus, and the URLs really do feel less fancy as a result.  Now that mod_rewrite seems to work correctly, we can use it to implement the extra/fancyurls files in a better way.  I configured .htaccess as follows:
Options FollowSymLinks
RewriteEngine On
RewriteRule ^member/(.*) index.php?arr=member/$1
RewriteRule ^item/(.*) index.php?arr=item/$1
RewriteRule ^category/(.*) index.php?arr=category/$1
RewriteRule ^blog/(.*) index.php?arr=blog/$1
RewriteRule ^archive/(.*) index.php?arr=archive/$1
RewriteRule ^archives/(.*) index.php?arr=archives/$1
...and then changed index.php to sort this out in a big switch statement before  handing over to selector().]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/05/26/4/feed/</wfw:commentRss>
		<slash:comments>30</slash:comments>
		</item>
		<item>
		<title>EyeTV 2.2, EyeTV for DTT (USB)</title>
		<link>http://gidden.net/tom/2006/05/24/5/</link>
		<comments>http://gidden.net/tom/2006/05/24/5/#comments</comments>
		<pubDate>Thu, 25 May 2006 05:13:16 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Elgato]]></category>
		<category><![CDATA[Elgato-EyeTV]]></category>
		<category><![CDATA[EyeTV]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/?p=5</guid>
		<description><![CDATA[The EyeTV for DTT is a tiny little box with an aerial socket and a USB socket that happily sits in the gap between the wall and my bed, with a long USB cable leading into the iBook wherever it is in the room. After buying it on eBay, I had to fork out another chunk of money for an upgrade from EyeTV 1.8 to 2.0, since all the fun stuff is in the 2.0 rewrite.  Unfortunately, this turned out more expensive than it would have been to buy a new EyeTV for DTT with EyeTV 2.0 bundled.

It works pretty well, although the extra work threatens to overheat my iBook.  To try to mitigate this, I then bought a laptop cooler from eBay that completely failed to work.  However, after spending some more on rubber feet and a potentiometer from Maplin, I've got it working pretty well with the option to trade noise for cooling.
My only real complaint about the hardware is the fact that it has a single tuner.  After using the Thomson DHD-4000 and the Humax 9200T at home with their dual tuner loveliness, it's a bitch going back to a single tuner.
The software is overall quite nice, but it's missing some incredibly obvious features:

"Smart Playlists" or "Smart Recording Schedules".  I want to be able to get it to record the same show every week.  The VCR I had twenty years ago had this function, but not EyeTV.
A smarter search engine.  If I search for "ER" it'll find any show with the letters E and R in succession anywhere in the title or description.  This is obviously a compromise for simplicity as a result of Apple's dumbing down of search with the release of Spotlight (which, IMHO, sucks)
PDC. Okay, this is more of a criticism of the DVB-T system in general.  My last VCR could adjust the start and end time of a recording based on broadcasted signals by the TV station.  As a result, when a show ran late, the VCR wouldn't chop off the end.  I haven't found any DVR capable of similar functionality, and I guess it's not part of the spec.  I've lost too many shows this way.
Resizing of shows in the programme grid. Only long shows (eg. films) have rectangles long enough to display the full title.  Short shows aren't marked at all.  I'd like to be able to zoom in on the grid.
Control of two tuners.  I can't confirm this as I've only got one tuner, but it looks like EyeTV can only cope with one.  If it could cope with two, I'd buy another.

It also has a bunch of annoying bugs, design flaws and odd design choices.    Among other things:

The over-excitability of the controller.  It pops up at the slightest provocation, and it doesn't auto-hide like DVD Player.app's controller.
The lack of customisability of the colour-coding scheme.  It would be very useful to mark my favourite shows and have them appear in a different colour.  Unfortunately, the colours are hard-coded to specific genres.
The hard-coding of the TVTV station list.  When assigning a TVTV.co.uk station to the EPG for a given channel, the list is huge:  containing most channels from most countries (as opposed to the list I've configured on the TVTV website, the list I can receive in my country, etc).  Also, the list was missing a few channels that TVTV does list on the website.  It looks like the list can only be updated in a new version of EyeTV:  I had a scout around and if it's stored anywhere, it's in some inaccessible binary format.
Bad behaviour when the disk is full.  These recordings take up a lot of space.  There's no way to designate an overflow drive, or any particular "disk full" behaviour.  Worse still, when my disk space ran out during a recording, I got the spinning beachball of death, and had to force quit the application.
Tuner and recording sharing over Bonjour.  I'd love to be able to share the tuner to anywhere in the house via Bonjour.  I'd love to be able to set up a video archive on my home server and have it appear in the recordings list.  It would almost be worth buying a Mac Mini for [see below].  In the meantime,   CyTV is too much of a hack and quite frankly just doesn't cut it.

Those are only a few.  Oh, and it crashed horribly a lot today, although it's the first time it's done that.
Overall, it does do the job, but I hope they fix the problems soon.  Looking at their past, however, I bet they charge £79 for it, and don't offer an upgrade path.  It's pretty annoying when existing customers don't get a discount.  Reminds me of Apple, but at least Apple's software is better quality.
I would recommend the software, as there's nothing else out there that touches it.  However, that doesn't mean it's good enough.
The idea of buying a Mac Mini, a couple of these tuners and a big external drive and shoving it under the TV downstairs has great appeal, but

it wouldn't work properly,
the Mac Mini doesn't have good video out,
it doesn't integrate with Front Row,
it doesn't have network sharing,
it would cost a lot,
and the software doesn't work quite well enough to make it worth it.

Close, but no cigar.
So, I am glad I bought it, but it cost real money and doesn't quite satisfy.
What I really want is this:

a nice big piece of kit with a lot of big hard drive space, ideally RAIDed.
It should have about eight tuners and should just continually store all the UK multiplexes for as far back as they can, so all TV is rewindable on demand, not just the channel you're watching.
It should be able to retrospectively start recording.  When I flip onto a show and realise I'm missing something I want, I should be able to rewind to the start of the show, and/or record it from the start.
It should be able to stream live TV or the recordings to thin-client boxes fitted under each TV in the house.  It should stream across wireless to my laptop, my PSP, or the hypothetical tablet PC I have.
It should have an optional DVD jukebox/autochanger with an unlimited capability via daisy-chaining.  This is easy hardware to build, yet we rarely see it at the consumer level. I have close to 1000 DVDs currently stored in many CaseLogic binders.  I'd like to have them on instant access.
It should be able to stream music to Airport Express boxes (or similar).
It should have nice, easy-to-use software that doesn't crash, is extendable, and is ideally open-source.
It should have the ability to tie into your home phone line and offer speakerphone, wi-fi-based handsets, VoIP.  Incoming calls would mute music and pause TV playback, etc.
It should tie into my mobile phone, offering the same functionality controlling my phone using Bluetooth
It should have video-conferencing capability, ideally using webcams on the thin-client boxes, anywhere in the house.
It should integrate all this with Address Book functionality for Caller-ID
While we're at it, there's no reason why it shouldn't offer shared family  calendaring, TV-based email, mobile phone contacts syncing, etc.

Now, is this beyond the realms of human capability?  No.  Practically all of it is off-the-shelf hardware and open-source software.  A lot of the stuff about Address Books, calendaring, Bluetooth phone control, etc. are already part of Mac OS X and work well.
Right now, cobbling it all together reliably would be a big job.  However, it would be a simple development job for a company to start mass-producing this stuff using commodity hardware.
The best thing would be if Apple would position the Mac Mini as a platform to do this.  Write a new piece of software called "iHome" linking all this together:  Front Row, iChat, iTunes, iPhoto, EyeTV (or something like it), Address Book, iCal, .Mac email, and glue it all together with a fun clustering/Bonjour thing.
I can see how this could be done for about £2000 - £3000 for a kick-ass system based on a few Mac Minis, with a few terabytes of storage space.  The average expensive apartment owner in Central London happily pays this kind of cash for a grotty B&#038;O system that does far less.
This thing could be life changing.  It's one of those "home of the future" things.  All the technology is here, and it's cheap commodity stuff now.  It just requires the effort to link it together.  The Mac's meant to be your life's "digital hub", and this is what it should be.
Come on, Apple.  Just do it.  You know you should.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/05/24/5/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<series:name><![CDATA[Elgato EyeTV reviews]]></series:name>
	</item>
		<item>
		<title>Introduction to yet another blog</title>
		<link>http://gidden.net/tom/2006/05/24/introduction/</link>
		<comments>http://gidden.net/tom/2006/05/24/introduction/#comments</comments>
		<pubDate>Wed, 24 May 2006 14:46:01 +0000</pubDate>
		<dc:creator>Tom Gidden</dc:creator>
				<category><![CDATA[General]]></category>
		<category><![CDATA[blog]]></category>
		<category><![CDATA[bristol]]></category>
		<category><![CDATA[portishead]]></category>

		<guid isPermaLink="false">http://gidden.net/tom/2006/05/24/yet-another-blog/</guid>
		<description><![CDATA[Hello.. I'm a 31-year-old programmer and web designer, living in Portishead, near Bristol, UK. I'm currently taking some time off to recuperate after having orthopaedic surgery in April, and am keeping busy by learning programming for Mac OS X (Cocoa) and OpenGL and putting together some fun projects.
I've set up this blog as a temporary measure to put some notes about stuff I've discovered while doing some coding on my latest project, and some other scribblings that might prove interesting to some.
I haven't spent much time at all on hacking this blog together.  I started off with Nucleus CMS and spent some time shredding the default skin into something usable.  Then I decided to switch to WordPress, and had to do it all again.  I've put together this temporary theme, which serves my purpose for the time being.  However, it's still not what I want. One of these days I'll get around to redesigning it properly.  In the meantime, this template's not too offensively ugly, so it'll do!  Comments and feedback are welcome.]]></description>
		<wfw:commentRss>http://gidden.net/tom/2006/05/24/introduction/feed/</wfw:commentRss>
		<slash:comments>-6</slash:comments>
		</item>
	</channel>
</rss>
