Saturday school and making things go

I woke up this morning and felt like several small furry creatures were sleeping in my mouth, slightly nauseous with a mild headache, and with a strong desire to crawl back under the duvet and emerge when spring comes again. I'd like to blame it on a hangover, apart from the fact that I simply don't drink anymore. Yep, I've got it. The Cold. It's this autumn's latest fashion - everyone's doing it. Sitting on the train now I can hear at least ten people in the carrige coughing away. We should all probably be at home in bed still, but if we did that we'd have to pretty much shut London down for a month. And if we're going to do that, we could at least wait until the summer when we could all properly enjoy it.

I was mildly surprised to find no calamity this weekend, with the notable exception of the rugby (though, I doubt very much I can be held that accountable for that.) Prior to watching the match Saturday was spent at the all-day Active Birth Centre bootcamp up in Archway, being trained in the art of dealing with contractions and giving birth, or in my case, the art of dealing with someone who is dealing with contractions and giving birth. I was surprised to find that I am not required to run round boiling water or ripping up our good sheets.

Sunday involved Martin coming over to help me jump start the car. Of course, being a man, I should have been inheriently born with knowledge of how all mechanical devices, espcially automotive, function (or at least be able to derive it from all those physics lessons I took.) Alas, this doesn't seem to have been the case. Luckily for me, the web contains lots of step-by-step tutorials - and now that we live in the future, there's even video how-tos on jury-rigging a circuit between two cars. No-one got electrocuted, we didn't fuse any car electronics and no batteries exploded. I did however manage to confuse many of my neighbors by leaving the car parked alone on the street with the keys in the ignition and the engine running for a good hour.

This was followed by a run out to charge the battery some more, in which we drove by Mothercare and bought the car seat we'll be using for the first 12 months. Luckily for us we'd already done our research on which seat to get online (the one that plugs directly into the buggy we bought and has side impact bars) as this process involves just as many variables as your typical electronics purchase but with added but won't someone think of the children! factor. The store showed us how to fit it in the car (which was the main reason not to just order online) since some shocking percentage of car seats are fitted incorrectly and unsafely.

In the late afternoon we met up with Earle and Cami and retired to The Windmill on Walthamstow High Street for more tapas than you you can sensibly eat, which involved good food and conversation.

Today I shall be taking things easy and only trying to juggle three projects and two programming languages at once.

The Comedy of Errors

Some days I'm convinced that I'm stuck in a BBC farce.  Maybe I'm a latter day Basil Fawlty?

For example, remember the story about how I was going to powerwash the back patio, and ended up being covered in wasps?  Well, I finally did powerwash and in the process discovered that the drainage flows away from the drain rather than towards it, meaning that half way through the process I had to build an ark and gather two of every animal.  And then wait for the waters to subside.  And then scrub the water uphill into the drain.  Or rather Rena did this, because a) she's the best wife ever b) because by the times the dove I sent out had returned with an olive branch I was on another farcical mission...

I went to Ikea on a Saturday (ooops) and, long story short, spent an hour and a half searching for shoeboxes from the catalogue.  In levels of organisation not normally seen outside of Vogon planning permission applications these eventually turned out to be located not next to all the other boxes, nor in the "storage" department, but on a small shelf behind a customer service desk in the far corner of another floor.

That was all the weekend before last.  Surely last weekend I'd be okay, right?  I'd had my farce quota surely? Nope.

It started out as a simple task about three months ago.  I wanted stock up on some heavy items from Lidle, so I took took the car, filled the boot with food, and unloaded it when I got home.  However, about three months and two days ago I discovered a pack of fish fingers somehow wedged behind the toolbox that had spent two days and two nights impregnating every fibre in the car with the smell of Captain Birdseye's armpits.  A week ago I finally broke down and decided to meticulously steam clean the car interior from top to bottom, which after three hours of handling blisteringly hot water vapour I managed and gave the car a new car smell.  Except in the process I'd managed to flatten the car battery by using the radio for three hours.  I'm still not sure how this happened (current theory is that in the process of cleaning I knocked the keys from "accessory" to the mode that powers the starter circuit.)  I briefly considered hitting the car with a tree branch, but that didn't work for Basil Fawlty, so I'm relying on a friend giving it a jump start on Sunday.

So, weekends are obviously a write off, sanity wise.  Weekdays are fine though, right?

Well, my local train station, St James' Street, doesn't have ticket barriers, relying on the barriers at Liverpool St to stop fairdodgers.  This means that it is theoretically possible to get out bed, and still be half asleep when you leave the house, without your wallet that's sitting on, say, the coffee table, and only discover this after you've already got into central London and have to do the whole trip back again.  And then back again.

I wonder what's in store for next week?

Getting things sorted...

My time-to-new-arrival clock (perl script) currently says "11 weeks, 0 days, 15 hours, 09 minutes, 46 seconds" (estimated.) I really want a wall mounted countdown clock like Matthew Perry has in Studio 60 but they don't seem to sell them at Mamas & Papas.

It seems prudent to spend at least some of these eleven weeks preparing, and getting things sorted.

This has led to all kinds of exciting tasks, like sorting the mountain of paperwork that we've accumilated so we don't immediately lose something like the baby's birth certificate as it get misfiled between the piles of fast food fliers and junk mail that come through our front door. Fear my organisational skills - by looking in the file cabinet I now have at my fingertips insurance documents, car registration details, certificate, mortage details and any bill from the last few years. I also have at my fingertips, at a moments notice, details of Erena's first flight here, Beth and Adam's (easterbunny & aca's) wedding invite, a card from people at Profero wishing me well in my finals, a poster (the poster) written by Mike and Simon (mlr/cosmic spanner and muttley/deflatermouse) while they were campaigning to run our hall newsletter in our first year at university, and pictures of a camping trip I took when I was twelve. You know, just incase there's an emergancy and I need to reach that stuff quickly.

The garden also needs some attention. Last weekend I decided I was going to powerwash our patio and clean the chairs before winter. I got as far as removing half of the powerwasher from our garden shed before I noticed that I was suddenly surrounded by a buzzing cloud of wasps eminating from an hitherto unnoticed nest contained within. It was like the Eddie Izzard sketch "covered in bees!", but with things even more likely to sting you. I backed away slowly trying to make eye contact (which, if you've ever tried with a homogenous swarm of creatures with multifaceted eyes, is remakably hard to do) and snuck back in the midst of the night with a can of Raid while they were all tucked up in their little wasp beds. The final score: Wasps: 0, Raid: 1.

Our back garden is seperated from the neighbors by our gracefully declining fence, a flimsy barrier that's all that keeps their gourgeous six-month old border collie from overly excitedly chasing our cats around our house after they repeatedly taunt her. For all our sakes, we need to replace it before another London tornado springs up or a squirrel sneezes too near it and blows it down. After not proving particularly useful at helping my brother erect his new fence earlier this year, we've decided to get some people in. I'm happy to trade cash and cups of tea for not having to break up concrete and cart it away, and not end up with what we'd have to dub the leaning fence of Walthamstow.

I've also been busy sorting out the spare room, or as we're now calling it, the baby's room. Last weekend I put up a new rail in the wardrobe, which gave me a chance to play with powertools. It was a relativly straight forward process that only involved bending one drill bit irrevokably out of service. Next week, despite the fact that I didn't help him move house recently and that he spent all last weekend moving our other friends, Simon (muttley/deflatermous) has volunteered to come round help me move furnature around a bit till we've got room to assemble the crib. I've decided that we should dub him the Muscles from Islington (though, face it, Jan Claud Van Damme would have never got as far with that nickname.)

And that's the state of play in the Fowler-Langley household at the moment. Next week on the life of Mark: Battles with the fridge-freezer (no,'s not going "Zoooooool", but there might be a new ice-age developing in there...)

It's Been a While

It's been a while since I posted anything in here, hasn't it?

Well, there's been reasons.  By now you'll have all read the news released a couple of days ago about my previous pet project Zimki being shut down.  To be honest, there's been a list of things I've not been able to talk about related to that and that's left me feeling unlike blogging as a whole, leaving me to instead to result to short bursts of info via twitter.  140 characters isn't really enough to go into the depths of issues though.

I'm sad to see Zimki go - I'm still a believer in the technology, I still think JavaScript will make big inroads into the server-side sooner or later and I still think SaaS is going to be a growing force in the marketplace -  but it seems that neither I nor Fotango will be the ones to realise it.  On the other hand, this announcement does serve a kind of validation for my decision to quietly leave Fotango a few months back.

I started working at Photobox which has been a welcome change.  Unlike the Zimki project Photobox actually produces things - actual, real, products that are shipped to the users.  The first day of my new job they sent me down to work in the the factory for the day to learn how to make photos, t-shirts, posters and calendars.  I got to play with very big printers and laser-guided cutters that could (if not for the numerous safety features) easily chop your arm in two.

Another highlight since I left Fotango was going to YAPC::Europe in Vienna.  Over the last year or so I've been to a lot of other conferences as an exhibitor, and it felt good to head back to YAPC for a change and have a chance to learn a lot more stuff - things I'll be writing about here in further posts no doubt - rather than to shill.  I got to give a talk about some exciting Perl techniques, and I've found myself over the last few weeks actually feeling enthusiastic about technology for it's own sake again, now I'm not so caught up with the agenda of pushing a startup to be.

Of course, none of this comes near to the level of excitement I'm feeling about my next big personal project.  Rena and I are currently expecting our first child, a little baby girl, earmarked for arrival on the 15h December.  I can't say how much we're both looking forward to this.

Enough about have you all been?

Secure, I don't think so

It seems to me that no-one on the web takes CSRF attacks as nearly as seriously as they should do.

For example, right now, I know that every time I visit a web page it could:

  1. Get my SKY+ to record any embarrassing-for-the-wife to find show they wanted, such as Debbie Does Dallas Again, Badly Dubbed Porn, or worse still, Big Brother.
  2. Make Twitter send out SMS messages to all my friends claiming I was currently doing something wholly inappropriate with any number of farm yard animals
  3. Order books or videos from Amazon on any subject under the sun on my credit card and ship them to my house.

Yey! I love the interweb.

Phish Phood

Natwest just called me up at work and asked for my security questions so they could verify that it was me they were talking to. Fair enough, exactly was I supposed to know it was actually Natwest not some random identity stealing villain social engineering me?

You see, when *I* call a bank I don't mind giving them this 'secret' info to identify myself since I trust the telephone system enough to have actually connected me to the number I got off my bank card. But give this information to any random person who calls me up? No chance. Because then *they* could call the bank and pretend to be me.

The funny thing is that this time it really was Natwest - I called the bank back on the public telephone number (not the one the agent gave me on the phone to ring back) and they had indeed called me.

It's not like Natwest are the only one to do this to me - Barclays have done the same thing in the past. So what's going on? Are the banks training us up to be vulnerable to phone phishing?

A Cocoa Covered Screencast

Screencasts - tutorials in the form of recordings of your computer screen while you're using it - are really hard to create. One slip and your mistakes are forevermore preserved for posterity. I always tend to find myself waving the mouse around like an idiot, typing the wrong thing, and basically making a fool out of myself. This, of course, is where editing comes in.

It's possible to later edit out any part of the screencast inperceptably as long as the start and end frame look exactly the same - i.e. that the mouse and windows are all in the same location. This means you can easily take a break and work out what you're going to do next as long as you can get the pointer back to it's original position.

I used to have Quicksilver keyboard triggers wired up to some Perl scripts that used a random closed-source binary Applescript extension I found on the web to save and restore my mouse position. This was exactly as hokey as it sounds - and promptly stopped working when I switched from a PowerPC based PowerBook to an Intel based MacBook Pro.

Yesterday I finally broke down and decided I needed to create a real tool that could do this properly. And on the Mac this means one thing - time to break open XCode and write a Cocoa app to do all of this.

Of course, it's not quite that simple. Cocoa doesn't really have the ability to do the things I want - work out where the mouse is, move it, register global keyboard shortcuts - so I had to delve into the old Carbon libraries. This means moving back and forwards between nice Objective-C style C code and hinky old school C function calling with a library I'm unfamiliar with.

With the power of the intraweb, google, and much copying and pasting I managed to get a work in progress. It can save and restore the mouse pointer from keyboard shortcuts. It can even slide it smoothly between two points which looks really good for screencast recording purposes (though, I need to write the logic for when the start and end points are reversed yet, and it blocks the main thread while it's doing this which probably isn't desirable.) It even can type for me - well, I got it pressing "F12". I need to work on the logic to get it to type any random phrase you've stored in it.

After I've got these problems sorted I'll probably release a version, and then throw away the user interface and start again with some kind of list of actions so you can script a whole bunch of things in a row. But I'll get a simple working version out first. Release early, release often, or as I like to say "good is great, but done is better".

Plain Text Wiki, Reworked

So, Matt Webb posted about his implementation of a plain text wiki inside of TextMate. Basically whenever it sees a document with WikiTermLikeThis in TextMate you can press Enter to pop it up in a new window. Nifty.

As you may recall I installed a wiki on the webserver on my local machine . Truth be told, I don't really use it as much as I'd like. For a start, I don't get to use my normal editor - I have to type in my browser. Secondly, like Matt says, I don't really care about the formatting either. In most of the documents I write for work I use MediaWiki markup, but this is because it looks good in plain text, not because I care what it renders into. The pain of switching between html and plain text is one edit too much.

So when I saw Matt's idea it resonated very strongly with me. The idea of just keeping these files as plain text which I'll always be able to edit somehow no matter what toolchain I end up with is good.

The problem I faced is that I don't like StrangeCaptialisedWords in my text. I find them hard to read. Oh, and lots of time spent preparing documents for mediawiki has trained me to make [[Links like this]].

Wait, Matt's stuff is just code, right? So I should be able to fix that, right?

Some brief hacking with Ruby later I've fixx0red it. If you fancy checking it out, you can find it in my subversion repository

iComment at last

So, have I waited long enough after the buzz to be able to talk about the iPhone sensibly then, or should I wait a bit longer? Probably not, but here goes anyway...

I was sitting listening to Ajit Jaokar and Tony Fish talk about Mobile Web 2.0 at the Web 2.0 Expo in San Fran earlier this year, and it got me thinking about this battle that big companies are fighting for control of the screen in our pocket.

There's this company that makes one of the most popular portable video players on the market today and have an entire retail chain setup so people can buy content for the device. They totally revolutionised the way we listen to music, making it possible to carry our music around. They're bound up with content providers in a way Microsoft could only dream to be. This company wants to be big on the media side. In fact, this company has recently introduced stuff to stream TV around so that you can get media onto your TV and for a long time now have selling devices destined to become the computer hooked up to the television. They're excellently placed to make a move on video on our phones.

Of course, the company also has an established background in producing computer hardware, and is well known for it's easy to use stylish consumer level laptops and big pretty home media centre PCs. This company already knows about selling computers to the non-techie who just wants something that looks nice to do the job they want it for. So the mobile internet tablet? They've got a good chance of pulling that off too.

So you could say that they're already in the battle for the screen in the living room and the screen on the desk, and this should prove interesting as the battle for the screen in the pocket heats up.

Which company am I talking about? Well, it could be Apple. Or it could equally well be Sony. And Sony are the company that already have years and years of experience producing mobile phones and digital cameras. And Sony are the people selling media devices to people that are disguised as games consoles. And Sony are the ones that have had successful PDA a eBook readers in the past. And Sony are not only in with the media owners, but are a media owner.

I'm not saying the iPhone won't be a runaway success. It's probably not going to be the iPod success story (where the market is obliterated and reformed) but more the PC story (where they take a small but significant chunk of the market and hold onto it.) I guess I'm just saying it ain't going to be as easy as all that.

Are we nearly there yet? How about now?

When I was younger I can remember waiting day after day for the releases of new computer games. I'd read about them in the press and I'd be waiting day after day anxiously awaiting the news it'd gone gold and it was shipping. I can remember being like Cartman waiting for the Wii (but I can't ever remember freezing myself.)

Being a Proper Grown Up Adult now (honest) I don't tend to get worked up over computer games anymore. In fact, the last game I bought was Yet Another Grand Theft Auto which I'd waited until it hit budget before buying it. Who cares about that stuff anymore, right? There's much more important things to get worked up about now.

Like, for example, productivity applications of course! Like the beta of OmniFocus, the long awaited GTD application from OmniGroup that's due to be released any day now. any day now.

How old does that make me? I'm getting worked up over something that will, at the very best, help me work a little harder. This is not what I dreamed I would be concerned about when I was younger.

Of course, none of this is my fault. It's that there marketing effort. Let's face it, Apple are nothing more than a cult. So are people who do GTD - gosh, their entire thing is about trying to control the way you run your life. So you get the double brainwashing which has left me waiting for the holy grail of software to be published.

They're not kind either. They've been releasing screencasts to keep us hooked. Darn it, they know us too well. And boy do they make it look alluring. It promises to do all the obvious things that I would have coded into such an App.


Ararargh, they've started sending out betas to people, but I haven't got mine yet. They're killing me man ;-)