iOS for imbeciles – first contact

Monday, January 27th, 2014

“So then, Chris, how’s that pipe dream coming along?”

Oh, glad you asked.

No, really, Juergen, I’m glad you did. It was a gentle and much needed kick up the arse.

And so I swiftly returned to my first port of call on this journey, Apple’s Start Developing iOS Apps Today tutorial.

And not for the first time in my life when encountering a new language and framework all at the same time, the tutorial passed in a blur of wanting to build something that actually works, and trying to understand what the Dickens was going on.

I made it through, and my rudimentary To-Do List works. That much I can see. How it works remains a bit of mystery.

So for the sake of posterity, I thought I’d jot down what my tiny brain managed to process as I fumbled and frowned my way through this tutorial.

- Coming from several Ruby on Rails projects, Objective C is an ugly little thing. Full of semi-colons, asterisks and nested square brackets, it’s got more in common with PHP – and it’s made me understand why so many refer to Ruby as elegant. (And I now recall a conversation with a Senior VP of Engineering at Skrill who referred to Ruby as “far too magical for my liking”.)

- I really wasn’t expecting the whole Storyboarding thing you can do with Xcode. Coming from a web background, I guess I assumed it’d be much more HTML-y. And so the idea of dragging and dropping interface bits together was a pleasant surprise. Well, I say pleasant, but drag and drop always feels a bit like cheating, doesn’t it?

- It’s somewhat comforting to see Controllers and Model-like things (with the Storyboard providing the View layer). An MVC structure isn’t going to make you feel comfortable if you’ve only hacked around in something like WordPress, but if you’ve been hacking for a while, you’ll have certainly heard of such a pattern.

- I don’t know why, but the term ‘void’ gives me the heebie jeebies. So to see it strewn around your app is quite intimidating.

- It’s quite interesting to see the NS prefix kicking around. If you’re not an Apple history bod, you may be interested to read about NeXTSTEP.

And that’s about it. Clearly I’ve still got a long way to go, but I think some reading up on the UIKit Framework is next on my hitlist. Back to my old friends at NetTuts, then!

You’ll never get to seven

Sunday, January 26th, 2014

I squeeze acid on my pancakes
Pour acid on my chips
Cos I love the buzz of acid
When there’s acid on my lips

I have acid, cheese and crackers
Acid baked meringues
For the soothing purr of acid
When there’s acid round my fangs

Acid topped with ice cream
With a glug of acid sauce
And accompanying your acid?
Carbonated acid – why, of course!

Acid for your breakfast
Acid lunch and acid teas
Dinner party themes of acid
As if this acid grows on trees

Lines and lines of acid
An acid orchard if you will
Acid treats throughout the seasons
For your daily acid thrill

Throw your acid in a blender
Bring your acid to the boil
Sprinkle everything in acid
Because to acid we stay loyal

Everyone’s on acid
Five a day’s the acid pace
Rejoice in acid-fuelled addiction
And wear your acid happy face

Kettle of Fish gameplay

Thursday, January 2nd, 2014

While having a scrub in the shower this morning, Kettle of Fish was bouncing around my brain.

And it bounced around enough to turn into a blob of a game idea.

Remember, the game has to be simple enough for me to build, simple enough for my daughter to play, but interesting enough to keep her occupied.

So here’s the first draft idea:

Kettle of Fish is a memory game.

Each level in the game begins with an illustrated aquatic scene.

The scene is only visible for ten seconds or so.

Once over, the gamer is shown pictures of individual fish and asked the question: did you see this fish?

Correctly answering all questions moves the gamer onto the next level.

Incorrect answers are a to-do. I’m torn between three lives or simply totalling them up, and therefore giving the gamer a score to improve on.

The game has levels, which are are reached by completing the previous one.

Perhaps I’ll start with a modest ten levels.

I think this simple idea gives me plenty of room for expansion and creativity, but remains a massive challenge for somebody who’s never built an iPhone app.

But I shall find a way.

Today is the day for new beginnings

Wednesday, January 1st, 2014

New Year’s Day is a funny old thing.

I like the fresh start, and the motivation that hangs around with it. But NYD is a bit of a bugger for getting your teeth into something new.

(I awoke with a hangover and three toddlers turning the house upside down. We did brunch with friends. Mags and I did some cutting and sticking. I made lunch.)

Time does its best to make a sharp exit and Tiredness knocks repeatedly at your door.

But I managed to keep him away long enough.

Long enough to watch this inspiring talk by Diana Nyad and to finish Predatory Thinking by Dave Trott.

And then Hana posted this thing on Facebook about resolutions and I had a gander at that.

So here’s my personal project for 2014; cards on the table.

I am going to build an iPhone app called Kettle of Fish*.

I am going to work on it in my infrequent spare time. And I will have the app on the App Store by the end of May. I will write a weekly update on this blog to highlight my successes or remind myself that I am failing.

I’m doing it because I love programming and I want to be a better programmer. I’m not going to use a compiler like PhoneGap because I want to use the opportunity to learn Objective-C. I think learning other languages helps you to better understand the languages you think you have a grasp of already.

I’m not doing it with any delusions of profitability. I will make the app free. Hopefully I will get to publish some stats on how many (few) downloads I receive.

I haven’t the faintest idea how I’m going to succeed. But I’m going to find a way.

Thanks, Diana.

* All I have is a name. The what is it? bit will probably be dictated by what I learn over the next five months. I hope it’ll be a game that my daughter can play.

Matters of life and death

Saturday, October 19th, 2013

Halfway through Tom Wells’ magnificent Jumpers for Goalposts, Danny plucks up the courage to tell Luke he’s HIV positive.

Luke, to the disappointment of Danny but perhaps understandably, is scared shitless and heads for the door.

Luke, a rabbit-in-your-headlights-scared-of-the-spotlights librarian, has cocked up his exit through the changing room door many times before in this play, and it’s always raised a ripple of laughter from the audience.

Now that Danny’s detonated his HIV secret, though, the bodged exit is the most poignant piece of slapstick I think I’ve ever seen.

It forces you to consider laughing, but lets nothing come out.

And so I spoke about its unexpected power with some of the cast after the show at the New Wolsey Theatre on Wednesday evening.

Quite rightly, they said that tragedy is often dappled with surreal funny moments, and people’s tics and traits can’t necessarily change in times of darkness.

And I’ve been thinking about that, and am reminded of when my nan died.

It was peaceful, I think. She died at home, which was nice because she liked being at home. And she remains the only dead person I’ve ever held hands with.

I remember sitting in her living room about an hour after she passed.

Obviously my dad’s pretty upset, and I’m trying to be all strong for him like the eldest son is supposed to do in these situations, but I’m yet to grow into this role properly. I feel too young, immature and unworldly. I think I need to stop wearing trainers; that might help to increase my empathetic gravitas.

So the time comes for Dad to call the funeral people.

See? I told you I’m not cut off for this stuff. I’m calling them the funeral people like they’re The Shoe People but with deathy overtones.

Anyway, I can’t imagine there’s anything that prepares for you the time you have to phone a complete stranger and tell them that your mum’s just died.

But on that warm Sunday evening, that’s exactly what my dad had to do, in front of all us.

He dialled the number and lifted the handset to his ear. The room fell silent.

(I was going to write deathly silent in that sentence. But I think the phrase is safer in these parentheses.)

“Welcome the Co-operative. We’re experiencing a large volume of calls at the moment but somebody will be with you as soon as possible.”

I smiled at the fucking absurdity of it. How large a volume had really chosen this Sunday night to slip into the ether?

To this day I can’t work out whether the recording was the final insult or a strangely soothing slab of the mundane amongst all the tissues and memories.

Anyway. Jumpers for Goalposts has a run in London soon. Go see it. It’s full of really funny bits you’re supposed to laugh at, too.

Snake eyes

Wednesday, August 21st, 2013

Counting dice is easy.

You roll a six. You roll a four. You roll two fives.

It’s easy for us because we take a shortcut to the answer:

We don’t count the dots on dice.

We simply recognise the patterns.

But young children count the dots. (Thanks to my friend Jaz’s mum for telling me this.)

One, two, three, four, five!

This is slow. It is tedious.

Teaching them the patterns isn’t easy. But it is a massive step forward in their cognitive development.

Patterns help us draw conclusions or reach answers faster. Smart people put their experiences into patterns. And then they dive into these patterns to solve similar problems. Super smart people can abstract sets of these experiences into theories, trends and frameworks. And then teach others.

So maybe it’s time to spend a few hours with your recent experiences.

Are you still counting dots? Or can you understand the patterns?

By recognising the patterns, you’ll be able to make good decisions faster. You’ll know where it’s worth spending your time and energy. And you’ll know what’s a lemon the moment it arrives in your inbox.

And then?

Well, then you have to keep rolling the dice.

The dentist

Monday, June 24th, 2013

“Quarter past two on the sixth of January okay for you, sir?”

“Yes. Wonderful. Thank you.”

I smile wryly and walk out of the door into a grey June afternoon.

And so my first meeting of 2014 is booked. It is with him, the dentist, and her, the hygienist. I like him; he and I want the same thing: to get this over and done with quickly. I think she likes to pull my lips around and watch me wince.

Anyway. 6th January 2014 at 2.15pm goes into my diary.

Bloody ridiculous. But how many other companies have such an impressive sales function?

Strong brands make enemies

Wednesday, May 22nd, 2013

Last week, I had a chance conversation with a couple of wedding DJs at a networking gig. I’d been talking about branding, and they asked if a small business like theirs could ever be considered to have a brand.

A lot of bullshit is written about branding. In my opinion, brands are simply stories that we align with our lives. (Much in the same way we like to think of our favourite songs as being about our lives, so the strongest brands nestle into our hearts and minds too.)

And just as every song we like doesn’t have to be some of kind of life-affirming orchestral extravaganza, so brands that make us smile, laugh or stop in our tracks can come along for the ride.

Anyway. Back to the wedding DJs. I got the impression that they loved music. And people who really love music tend to have some strong opinions on stuff they hate. So I told them that they should charge double to play certain artists or songs that grated.

“Imagine that!” I enthused. “Your website, with a deadly serious statement saying that if you wanted Lionel Richie played as your first dance, the hire cost would be double.”

I stand by this idea.

It’d make people laugh, it’d put some people off, and it’d make some people book with them instantly.

More importantly, it’s a story that’ll people will remember and spread. It’s great PR fodder, too.

The wedding DJs that won’t play any old shit isn’t a very good strapline, but defining what you’re against often gives people a clearer definition of what you stand for.

And in a world where people seem afraid to say negative things in their communications, picking a fight makes people choose sides.

You with us? Or against us?

You needn’t pick a fight with an entire sex (Yorkie) or everybody else in your marketplace (Asda). Choosing your enemy can be a little more subtle.

One could argue that Nike’s enemy is lethargy, Lucozade’s is tiredness and Facebook’s is solitude.

So stop being so nice, it might do your brand some good.

The San Marino Suckerpunch

Monday, May 20th, 2013

Overview

The San Marino Suckerpunch happens when you focus on you, and not them.

It’s not that you’ve been negligent. Quite the opposite, in fact. You’ve busted your balls getting things straight; fixing things up. All with good intentions.

But those good intentions have made things straight and fixed them from your point of view.

Not theirs.

And now you’ve left yourself open for the suckerpunch.

It’s going to hurt. You’re going to cry like a teething baby. But you’ll learn.

Origin

It is November 1993, and England are about to kick off an important World Cup qualifier away to San Marino.

San Marino, it is fair to say, are minnows.

They have been playing professional international football for just eighteen months. England, by contrast, reached the semi-finals in of the World Cup a little over three years ago.

It is David vs Goliath. And that’s good for England, because in order to qualify for the next World Cup, England need to beat San Marino by a margin of seven goals.

Seven goals in ninety minutes is a big ask.

But San Marino are so bad – it’s possible, is the general consensus. England need to be strong, to play at a high tempo, to use their wingers and get the ball in the box for Ian Wright and Les Ferdinand.

Come on, England!

The ref blows his whistle.

San Marino kick off and begin what turns out to be their only attack of the game.

A stray pass find its way to Stuart Pearce, who can only muster the most pathetic of back passes to goalkeeper David Seaman.

His pass doesn’t reach Seaman. Instead, it is intercepted by Davide Gualtieri, who sticks out a leg and scores his first and last international goal.

The scoreboard indicates fewer that ten seconds have been played.

Back in England, a million fucks are shouted at a million televisions.

Experience

I was put on the canvas by the San Marino Suckerpunch last week.

We were pretty confident about our new product as it was put in front of a potential new client. We’d spent ages testing, refining, redesigning, re-testing, re-refining, re-redesigning etc.

Too long, in fact.

So long that our focus had unintentionally drifted from our potential customers to our product.

Just like England had become obsessed with how many goals they needed to score (and seemingly forgot they were playing a competitive international), so we had lost focus on the job our customer was trying to do.

And just like England, it took around ten seconds for our product’s weakness to be exploited.

I was crestfallen.

The product worked as we’d intended it to; it worked perfectly with the dummy data we’d fed it. There was – as far as we could see – no problem at all.

Except dummy data doesn’t have holes in it – because it’s too easy to fill the gaps.

We needed holes.

We thought our product was working because it required all this data, and if it didn’t get it the data it required, it wouldn’t let you continue. Our product would be full of “good data”, we beamed.

And we failed.

We failed because our customers weren’t using client-side form validation in the real world. They were writing down all the details they decided were necessary.

So their data had holes.

Sometime they had an address, sometimes they didn’t. Sometimes they took phone numbers, sometimes they took an email. Sometimes they had titles, sometimes they went by their first names.

The customer’s real data didn’t fit our models of their data.

This rendered our app awkward at best, unusable at worst.

We’d been hit by the San Marino Suckerpunch.

So by all means design with data.

But make sure it’s real data.

Best of luck.

To love and to be loved

Wednesday, April 10th, 2013

Every now and then I go to the pub with Richard.

Richard is twenty-ish years older than me. One of the good guys; successful, kind, and understanding of Springsteen’s greatness.

I sometimes wonder if Richard is a hallucination of older me. But I’m pretty sure he’s real – I’ve met his kids.

One evening in the Fat Cat we were talking about the important stuff. Y’know, life and purpose and family and all that.

Richard said he’d decided that it was all quite simple: we are here to love and to be loved.

He’s right, of course. But every now and then those words resonate a little louder. Like today. Because tomorrow one of my best mates is getting married.

I’ve known him for twenty years. (Fuck, my eyes are watering a little bit.) And I’m on usher duties with another of my childhood friends.

Like most people, I love a wedding. They’re cheerful occasions. Obviously the free alcohol tends to help, but somebody’s special day also helps you to realign your own compass.

I’ll hold my wife’s hand a little tighter in the church. I’ll probably give her a really big kiss at some point in the evening. I’ll think about our daughter and all the joy (and occasional pain) she’s brought us.

And I’ll realise that I’m lucky. That I’m doing alright. That perhaps this life isn’t one big mystery.

It’s actually quite simple.

Thanks, Richard.