December 26, 2005

London: officially even smaller

Posted in: Drivel

I've documented plenty of chance meetings and randomness in this city of seven million people. Here's another that I found quite spooky. I met up with Eva a couple of evenings ago and she texted me the address. It was my brother's in Victoria, except not quite. It was the flat above.

Posted by Paul Makepeace at 01:15 | Comments (0) | TrackBack

December 22, 2005

Dublin ho! Google job accepted

Posted in: Google, What am I up to

Following what has probably been one of the toughest decisions I've ever made I'm leaving London after four years and moving to Dublin to work at Google doing this. Pencilled-in start date is Feb 6th. There is some contractual addenda to ensure there's no conflict of interest between Google's and Real Programmers' projects but otherwise it's on.

The only thing I know for sure so far is that I'll have a Mac laptop and Linux desktop (I got to choose), and that the training will be in Mountain View, California for about three months.

Phew!

Posted by Paul Makepeace at 17:02 | Comments (5) | TrackBack

December 21, 2005

Pocket PC Tabata Timer

Posted in: Phone, Software, Sport, Tech

Back in April, on my birthday even, I put out a little .NET application that helped in timing intervals for training. In particular it defaults to the tricky-to-time Tabata whose brutal schedule consists of eight 20s-on, 10s-off periods (i.e. 3:50 mins total). At the time it didn't work without the as-yet-unreleased .NET 2005 Beta and it wouldn't work on 2003 and I couldn't get my device to work and ... anyway. It's all working again now,

IntervalTimer-20051221.exe (11K)

Copy this onto your device e.g. in \Program Files (I don't know how to do Pocket PC installers yet) and then run it from File Explorer. This ought to execute on a desktop machine too; it does on my XP box here.

N.B. This version includes a 10s countdown after hitting Start. Then the pain starts. The lurid colours are deliberately full-screen like that so you can see the changes when your device is a way away from whatever punishment you're dishing out to yourself.

Enjoy!

Posted by Paul Makepeace at 03:30 | Comments (13) | TrackBack

December 20, 2005

New juicer

Posted in: Drivel, Food

My new juicer arrived today after its holding period at a neighbour's house. It's fantastic!


Juicer!

Continue reading "New juicer"
Posted by Paul Makepeace at 11:02 | Comments (3) | TrackBack

December 16, 2005

London: world's most expensive city

Posted in: Drivel

Google made me an offer, and part of that discussion included a link to a comparison of the cost-of-living in major cities. It's based on a basket of goods typical of Western consumer habits (see also purchasing power parity). London's markedly more expensive than even the second place city, Oslo. Dublin, one of Google's homes, is broadly similar to Zurich and Paris. Some surprises for me were Brussels and Sydney, both a quarter less than the Zurich benchmark! I thought they'd be much pricier. What's perhaps even more amazing is that you can live on a quarter of what you would in London, in major cities in Eastern Europe. Wonder how long that'll last...

Posted by Paul Makepeace at 16:28 | Comments (0) | TrackBack

December 15, 2005

"Full" night's sleep

Posted in: Sleep

Continuing my reduced sleep experiment, yesterday (15th) I had a complete day (day 6) of no oversleeps and mostly well scheduled naps. Apart from some dragging around dawn it was all fine. So I wondered what would happen if I slept the night. Would I feel like crap or bouncy in the morning? What time would I wake up? Would I want to get out of bed?

First off, my newly acquired skill of falling asleep within minutes still applied. I can barely remember getting into bed. If I get nothing else out of this experiment having developed the ability to fall asleep right away is an enormous win.

I also woke up before dawn (7:30am ish) and felt rested and ready to get up. It was comfy and I didn't have anything to do so I dozed and enjoyed the warmth.

And the feet...

At work now and feeling fine. There's one difference that's significant though. My feet are not hurting as much as yesterday. For anyone who's joined recently, I smashed my heels in May, underwent surgery and am in a year-long recovery phase. I can walk, but there's a background level of pain I have to manage. The last few days I've found it increasingly hard to walk comfortably. There's no doubt I've been in various stages of mild sleep deprivation; this is expected during an adjustment phase. And I know from experience that lack of sleep affects my capacity to absorb the background pain from my feet.

Now there are many factors that could influence here - what's the medium term effect of polysleeping? Once I've stabilized will I still get that (admittedly small) extra pain? Will it materially impact the healing process in any way? Was the night's 6hr sleep contributory or coincident to how I'm feeling today?

So, that in mind, and that this is a single datapoint I wouldn't read too much into it. But, datapoint it is nonetheless.

Posted by Paul Makepeace at 12:29 | Comments (1) | TrackBack

December 14, 2005

Puzzling diet; sleep success

Posted in: Sleep

Since going fruit- and veg-only a few days ago I seem to eating hardly anything. I usually pack away more food on any given table than anyone else, hoovering up whatever's left of the rest of the group's. On long haul flights I'll ask for seconds pretty much without fail.

And yet, I'm not eating breakfast, only having a large salad for lunch, and boiled veg in the evening. Last night I had a salad and bean pitta thing at Nando's.

What's especially strange is that with the polysleeping I'd expect to be eating more, and this is the documented response too.

Very strange... get in shape and double your free time! That's gotta be worth a $39.95 ebook...

I added up my nap periods for yesterday and had oversleep on a couple of them by an hour. Even with that I was only out for 4h20 of 24h which is about half what I would normally do. You should see my room, it's awesomely tidy. My email's under control, and I've put in several hours of low priority fun reading. Fantastic!

My last couple of evenings I've felt wired; not a caffeine or other dirty-stim jitteriness but a clean directable energy. After the first three days which were rather tough, only parts of the night now are a bit dozy. Nothing unmanageable, and certainly easily fixed with some physical activity.

Posted by Paul Makepeace at 11:34 | Comments (0) | TrackBack

December 13, 2005

Cutting out the crap

Posted in: Food

It's odd how certain events line up. My experiments with polyphasic sleeping which have been so far best demonstrated by a long-time vegan arrived around the same time as my digestive system (and thus consequently my body) started crying out for mercy against an onslaught of pizza, thai take-away, chip kebabs, BBC canteen's Meal Deal, pasty+baked beans+chips, ... If I had that kind of memory I could probably count the times I've eaten more than 50g of vegetables in the last few months on one hand.

I haven't been to a supermarket for nearly a year.

So with a constant low-grade burning in my throat and a peculiar reluctance to eat chicken or other fried stuff, a reluctance I don't ever recall having had, I have switched to a vegan/detox diet. No animal, diary, wheat, gluten. At least for a while. It's far too boring to persist with IMO but I definitely feel better already. There's something about verging on actually being ill that makes boiled veggies, potatoes, and French dressing quite tasty.

During my heel convalescense I was making vegetable broth. Despite a non-hippie's expectation they'd be foul they're far from it (at least in my post-morphine-addled state :)). But they're a pain in the ass to make: all the chopping, blending, simmering, straining, cooling. So with my copious free time I learnt all about juicers last night and picked up one via ebay today. The great thing about juicing is that no two drinks ever need taste the same: just toss in whatever's to hand and see what comes out.

Excellent preparation for a good binge over Christmas. Funny that, popular culture says we should recover, diet, and generally self-flagellate after the Winter Holidays. Why not recover beforehand and use xmas as simply a way to get back to a base level of ill-health? :-) Pay it forward!

Posted by Paul Makepeace at 15:59 | Comments (0) | TrackBack

Lucid audio dream

Posted in: Sleep

One of the 'freebies' with polysleeping reportedly seems to be an increased tendency to lucid dream, the experience of being apparently conscious but actually dreaming. So you're in control of a completely created reality.

I've never had the full monty version. I have however in my past had audio lucid dreams (I think that's what they are), hearing a piece of music literally as though it were playing in the room, in complete orchestral THX Dolby 7.1 surround sound glory. It usually happens as I'm drifting off to sleep and I've never found out how to control it; conscious awareness of it seems to make it crash, an "Oh, COOL! Oh."-moment. It's a bit like the Hitchhiker's technique for flying, throwing yourself at the ground and missing by being crucially distracted at the very last moment.

Well, I had an audio lucid dream this morning on my 9am nap watch. It was sudden and powerful, albeit brief and crashed nearly instantly. Good sign though.

I'd love to learn more about this.. (anyone?) guess I have the time now ;-)

Posted by Paul Makepeace at 14:24 | Comments (3) | TrackBack

Polyphasic sleep bandwagon

Posted in: Alternative, Sleep, What am I up to

There's been some buzz recently around modifying one's sleeping pattern away from a single chunk at night to multiple "polyphasic" naps throughout the day. The ultimate form of polyphasic sleeping seems to be called the Uberman Schedule and consists of six twenty-minute sleep periods spaced evenly four hours apart. Thus instead of sleeping in my case around 8hr/night there's the alluring promise of getting away with only 2hr/day, in other words nearly 40% extra time awake, or even more persuasively, double1 your free time. (If you're the type of person that's bored a lot, perhaps that's half as persuasive.) No amount of expensive time management courses is going to double your free time.

So clearly I have to try it.

Continue reading "Polyphasic sleep bandwagon"
Posted by Paul Makepeace at 04:48 | Comments (3) | TrackBack

December 7, 2005

Three month check-up

Posted in: Injury Time

This morning I went to visit Mr Klinke, my foot surgeon, at Guy's to have him check up on my heels healing. It's hard for me to summarise these meetings as in a sense nothing really happens, yet it does. He looked over my feet, twisted and turned them and generally seemed happy with their progress. We talked about how I have trouble walking and landing with my heels first due to the damaged heel pad - it feels like I'm walking on bone if I don't have my insoles in. Instead I tend to walk flat-footed. There's persisting nerve damage around the back right of my heel where the knife went in. No substantial impact besides occasional bizarre and entirely illusory neural reports of excess heat, or being cut at.

He made a comment that the long-term effects of bone/joint damage are worse than strokes or heart attacks. While strokes & heart attacks have an acute effect, and sometimes leave damage (e.g. partial facial paralysis) their perceived effect tends to fade and be assimilated into one's background senses. Whereas, say, my calcaneal fracture damage, it's constantly there, constantly reminding, every footfall, every time I wake up, every time I stand to go for a piss, every time I play footsie under a table. Eh.

Klinke said I need to avoid impact sports or long duration work on the joint, such as hiking or distance walking. I don't feel any particular loss about those as I never really enjoyed hiking and have spent considerable energy in pursuit of avoiding walking (for me, an inherently time-consuming and dull activity).

It's weird to think though that a decision about getting into a house one early morning has now effectively prevented me from finishing learning front and back flips, an incredibly fun move I almost could do without support in gymnastics the month of my accident. I'm just not going to be able to do them. End of story. Better luck after the reincarnation. Perhaps I'll come back as a dolphin and end up performing in a zoo to make up for it. That would probably be quite fun.

So I'm back in hospital on June 14 2006 which will be 13 months after the accident, and the time at which the recovery will have essentially be finished. At that point further surgery could be possible to trim down the jagged bone in my heal. Here's hoping it sorts itself out on its own...

Posted by Paul Makepeace at 13:36 | Comments (0) | TrackBack

December 6, 2005

A job offer!

Posted in: Drivel

Seems like they're in the air right now... Got a call, yes a phone call, from a guy in Nigeria who "could use my expertise down [t]here". I would really like to go and do some IT work in a developing country; it feels like I would probably make more of a difference, say, getting some school networked with a linux system than any amount of small-pond projects in the UK.

What's sad is that Nigeria has such a reputation for fraud, kidnapping, and death that I would never ever get involved in a randomly solicited offer like that. There's just far, far too much risk :-(

Posted by Paul Makepeace at 18:47 | Comments (1) | TrackBack

December 2, 2005

SQL Friday fun

Posted in: Tech

After Tuesday's Google interview wherein I was asked all sorts of tricky little questions, here's one of my own.

I'm currently reviewing a dataset to see whether I can implement a UNIQUE index on one of the columns. This is pretty straightforward. I want to join a table to itself where the values are the same but the primary key is different:


select ct1.uid, ct2. uid, ct1.value from code_tree ct1 join code_tree ct2 on ct1.value = ct2.value and ct1.uid != ct2.uid;
+------+------+-----------+
| uid | uid | value |
+------+------+-----------+
| 190 | 184 | bars |
| 184 | 190 | bars |
| 1333 | 1283 | Up |
| 1334 | 1284 | Down |
| 1335 | 1293 | Unchanged |
| 1283 | 1333 | Up |
| 1284 | 1334 | Down |
| 1293 | 1335 | Unchanged |
+------+------+-----------+

Can you see the problem? What's the least change required to Do The Right Thing?

Answer below:

Continue reading "SQL Friday fun"
Posted by Paul Makepeace at 15:48 | Comments (1) | TrackBack

First Great Western: still broken

Posted in: Rant

We're approaching 2006, well over a decade since e-commerce has been happening on the Interweb. Despite this, it's apparently still not possible to reliably purchase a train ticket online in the United Kingdom.

I speak specifically to First Great Western. Having browsed and selected available fares at the mostly competent National Rail site I selected the First Great Western vendor. Rather than simply presenting me with a single credit card+address form, or paypal link I have to register as a new user. Why do this? Guys, this is 2006. Forcing users to register is so pre-dot-com.

Then I have to go through multiple confirmation screens for billing and delivery addresses. The competency of the programming is so low that I am forced to "Choose delivery address" and select the only available delivery address out of a one element pull-down menu.

I click continue and then.... the screen goes blank. Nothing. Empty document.

Two years ago I wrote a rant about how not to buy a train ticket. What's changed?

This is the industry I work in. I'm so disappointed and embarrassed. Who is entrusting the nation's transport infrastructure to people who are writing code that makes a user select from a one element list? Can we just call ourselves Britain and give up the pretense of the "Great" bit? Absolutely, First Great Western do not deserve it.

Some handy hints

Here's how they could've done it using some basic software engineering and user interface design principles.

0. Remember why you're here

Priority one is Make The Sale. You're not in business to serve web pages but to provide a service and generate revenue.

1. Make it easy

Every click a user has to perform anecdotally halves your audience (anyone got a link for this? Nielsen? It's practically a truism now in Web design but worth re-emphasising). Don't make users go through a ten-step process to purchase a train ticket.

2. Build in resilience and provide alternatives

Software fails. It's not if, but when. In engineering terms, degrade gracefully. This effectively means provide contingency plans that either the software itself can use after detecting a fault in itself or the user can take advantage of.

Software fault detection is a big topic but it's a well researched and documented one. Some examples of the latter as an illustration of how trivially this problem could've been avoided simply by assisting the user:

a. provide a link to a single-page purchase form
b. provide a link to an alternative vendor, e.g. paypal, nochex, etc
c. provide a sales phone number

3. Manage software failures and stay accountable

Does First Great Western actually know there was an error? The impression of quality is so low for me that I strongly doubt it.

What's a solution?

a. software automatically emails errors to an inbox that alerts a human
b. humans reviewing error logs
c. external 3rd party validating error logs and directly tying this into publicly accountable performance metrics. We do this for train punctuality, why aren't we doing it for web server performance?
d. provide an automated testing facility. Every five minutes a piece of software attempts to search for fares, buy a ticket, register a user, and so on. This is so easy to write or buy these days there's simply no excuse.

4. Keep the user informed

If all our software contingency measures fail, make it as easy as possible for the user to complete her sale. Job #1 is Make The Sale; as a corollary keep the customer happy. I now have to make a phone call to complete my sale but what train times did I select? I have no idea, that was (literally, I'm afraid to say) ten clicks back.

What's a solution? On every page inform the user, "You are purchasing an Apex Return (£20) for 1 adult from London Paddington to Bristol Temple Meads, departing 24 Dec 2005 at 08:30, and returning 28 Dec 2005 07:15."

How hard would that be? How useful would that be?

5. Provide a contact point

They have an "Email us" form (two clicks away) but nothing that suggests how much state they're sending to First Western, e.g. what page I was on, what I was doing, what I'd clicked. I'd boldly assume they'd know who I am, since I am logged in. No, I have to fill out an email address to reply to.

Simply prefilling the email form with the sort of information listed above about what I'm doing, when, and who I am would be an order of magnitude more useful and helpful than expecting the user to start with a blank canvas.

6. Save state

Thinking it might be a browser issue, I logged in from another browser. There was no record that I was on step 5 of 7 purchasing tickets from Bristol to London. Why not? That information is stored on the server in my session data; my session's still live and accessible through a cookie in Firefox. Why is it not tied to my login details?

This isn't rocket science. It's a few lines of code.

So there we have it. I wonder when will we be able to reliably purchase tickets online?

Posted by Paul Makepeace at 12:45 | Comments (3) | TrackBack

Skating again

Posted in: Drivel

Somehow I've managed not to skate since my accident but tonight I was invited to a local-ish ice rink in Queensway. It was surprisingly un-packed despite all of London seemingly crammed with (I'm guessing) Christmas traffic. I used the rink's hire skates. And therein was the problem - they were so unbelievably painful I had to come off after about ten minutes. The reception rather graciously gave me my money back. I'm not yet sure whether this pain is down to disfigured feet or awful plastic boots. Nonetheless it was quite fun skating about on ice, something I haven't done for years (a brief ice crash at Santacon 2003 doesn't count).

After that we headed back and ate half a tray of Ferrero Rocher. It's a playboy lifestyle but someone has to live it...

In other news a certain search engine company reported my interview scores were "good", and now want references.

Posted by Paul Makepeace at 02:12 | Comments (0) | TrackBack