No really, I want to start a band!

That said, there are a lot of “musicians” in Appsterdam who would quite like to form bands. But as any black-t-shirt-wearing highschooler knows, it doesn’t work very well when six guitarists show up to a jam session. Just as a successful band will need a rhythm section, singer, songwriter, road crew and tour manager, a successful app product will need back-end developers, designers, support engineers and marketing.

So consider this an open invitation: don’t be scared off participating in Appsterdam events just because you’re not an Xcode maestro. I’m seeing a growing realisation among my “lead guitarist” colleagues that killer riffs aren’t enough. The audience needs to be addressed on its own terms and that’s something many of us aren’t the best at. We see the value that great marketing, design and other skills bring and we realise we need help in those areas.

Lots of developers are looking for people who want to be equal partners in building successful products. If you have experience in any of the other skills necessary to bring a great app to life, if you’ve got money to invest in a great performance or if you’re just smart and keen to learn, we’d love to meet you.

Let’s start a band!

“Hey, let’s start a band!”

“Cool, what instruments do you play?”

“I don’t play any instruments.”

“Oh, so you’re a singer?”

“No, I can’t sing.”

“Do you write songs?”

“No.”

“What records have you produced?”

“None.”

“Can you book us gigs?”

“No. I’m not a sound engineer, A&R person, tour operator, venue owner, merch supplier or roadie either… but I’ve got a really good idea for a band name!

Every app developer has had the above conversation with an enthusiastic but overly optimistic (and possibly misguided) person who’s got a “great app idea and they just need a dev to implement it”. It’s come up a few times at Meeten and Drinken and my preferred strategy is, as gently as possible, to disabuse our hopeful friend of the notion that it’s as easy, fast and cheap (!) as they think it is.

“What’s the best way to get my app built?”

“Offer a developer €150/hour to build it.”

“Oh, ah, well, what’s the second best way?”

“Offer €100/hour.”

Diary of an app: hallway usability

With a basic-looking but functional app in hand, I headed up to Portland for a week. I had no idea that CocoaConf was on, but it was and a friend hooked me up with a ticket at the last minute and so I got to go. It was a great experience for a number of reasons, but pertinent to this series of blog posts, I got to show a few people my prototype app.

In an ancient blog post, Joel Spolsky gives a valuable piece of advice which I’d rarely had the opportunity to use: do hallway usability testing. Turned out he was right! I gave a few people the spiel about what the app was for and then handed them my iPhone. They all had the same problem: they didn’t know where to start or what buttons to press. The interface wasn’t discoverable.

Of course, it all made sense in my head and what’s more, my “type it all in as an equation” interface was flexible enough to cover all my use cases. I started thinking, “Well, I could have some kind of demo mode or hints page the first time you start up the app…” and then, thankfully, the more intelligent half of my brain slapped the other half with a fish. If you see a sign on a door that says PUSH, someone somewhere fucked something up.

Diary of an app: prototype the first

An early exploratory scribble in Paper

My original idea was two text fields, a keypad and some buttons for units. You’d enter a mathematical expression, like “6 x 33cl @ $15.99” in one field, vs “750ml @ $4.99” in the other; if the expression would parse, I’d make the cheapest one glow green or something.

Simple in concept and also simple to execute, I thought. A couple of text boxes, a keypad (helpfully already provided by iOS), grab a parser library from GitHub and Bob’s your uncle. Except it turns out he’s not.

First the keypad. There is one provided by the platform and you can configure IB to give you the “decimal” keypad for a certain text field. But you can’t customise it. I wanted “✕” and “@” keys (on the right hand edge), but you can’t just do that. You have to write your own keypad from scratch if you want any thing different to the stock keys. This is doable, but not simple the first time you do it. But I did it and got it working.

So on to the parser library. There seem to be two, ParseKit and CoreParse. I chose CoreParse because it just felt more modern and “iOS-like”, but it was kind of arbitrary. After the obligatory yak-shaving mission required to get a working git on my machine (install Homebrew, which requires a ruby update, install git, which requires an Xcode tools update…) I was for the first time properly stumped: how do I “include” a 3rd-party open source project in my app in Xcode?

What does that even mean in the context of Objective-C and Xcode? I had no idea and it seemed to be one of those things that everyone just knows how to do. It took two days of puzzling through Stack Overflow and tangentially related blog posts, cryptic linker errors and a lot of help from the author of the library (there was actually a bug in the .xcproject file as shipped) to get it working.

This and a bunch of similar experiences got me to realising how primitive a whole lot of the iOS development toolchain is. Never thought I’d say it but I miss Java’s mature tools like Eclipse IntelliJ and Maven Ant Gradle. After coming from a higher level platform such as Java it really feels like Objective-C is still merely a few clever preprocessor macros on top of C from the 1980s.

Diary of an app

I want to build iOS apps for a living. I’m in that Catch-22 situation where I don’t have any experience on the platform because almost nobody will employ me somewhere I can gain some experience if I don’t have any experience.

The way out of this is to bootstrap my skills by building something myself and getting it on the App Store. This has turned out to be a much more interesting process than I thought it would be, for reasons I didn’t expect. So I thought I’d blog about it.

The Idea

Famously, the best software is born of developers who are “scratching their own itch”. According to Malcom Gladwell I’m a maven and I always got out my (phone) calculator to make sure I wasn’t being ripped off in the supermarket by buying the “economy” size, which sometimes turns out to be more expensive per unit than the smaller pack.

Many supermarkets have “per unit” pricing indicated on the shelf labels but not all; furthermore, I came across a situation once in the USA where I wanted to compare “1lb 4oz” to “1.45lb” of ham. Now that’s just silly, America: if you want to use Imperial units you’re not allowed decimals, ok?

In any case it’s a calculation that’s straightforward but awkward to do manually and exactly the sort of thing a simple iOS app could be built to solve. So the elevator pitch for my app is this: You’re standing in front of a supermarket shelf, faced with a number of different packages of an item in different quantities for different prices. Which one’s cheaper? This app will tell you.

Pretty simple right? Turns out no, but not for the reasons I expected.

Well, lookie what arrived via DHL here today!

“Vocational Programmer” courses considered harmful

I read Anil Dash’s post about the Blue Collar Coder the other night and it instantly raised my hackles. There are a couple of superficial problems I have with the piece, and one fundamental one.

Firstly, it’s a very US-centric take. This shouldn’t raise my hackles, Anil is an American and was talking specifically about US education policy and he’s perfectly entitled to do so. But my career as a programmer has taken me around the world a couple of times so far and I reckon I’ve got more than a few laps left. Professionally I really do regard my colleagues and industry peers as my karass no matter where they be, and absent any other connection the 20-odd million other people who happened to born in the same end of the planet as me are obviously a granfalloon.

Furthermore, it’s a very Silicon Valley-centric take. There’s an assumption that the only things to ever advance the discipline of computer science or consumer web software were invented within a fifteen minute bike ride from the Caltrain. This is demonstrably not true, and misses the fact that the most investor value ever destroyed and otherwise productive time wasted in the industry has happened here in the Valley too. I’m just getting a peek into the culture here but it strikes me that a lot of people confuse volume of activity and funny-money capital raisings for genuine value.

But the real problem I have is with the fundamental concept of a “Blue Collar Programmer”. It’s been said over and over again, and ask any programmer who’s ever worked as part of a team, the difference between the worth of a good programmer and a merely average one is many orders of magnitude. If all you want is a prototype that’ll hold together long enough to fool the investors, fine, get some poorly-slept Red Bull-pounding “brogrammer”. But if you want to build a large, maintainable, sustainable product that will deliver value to a business release after boring monthly release, it’s a marathon not a sprint and you need people with a solid theoretical foundation in their discipline who are good at their jobs and care about their craft.

A Computer Science degree isn’t the only way to get this of course, and having one isn’t a guarantee. But the I think the idea that you can start churning out cut-rate “vocational programmers” in order to do boring work inside non-startup companies (versus the postgraduate geniuses who work in startups who are obviously the only ones who do anything interesting or valuable) is fundamentally misguided.

Shitlist for today

www.straighttalk.com

Won’t accept non-US credit cards, despite the web form allowing me to select one of a dozen countries that isn’t the USA as a billing address. When I called, I was told they used to, but management changed the policy and the site hadn’t been updated.

www.walmart.com

Site was slow and/or totally broken on Safari (alternately giving me a shitty error page or returning a string of JSON to the browser) and doesn’t work at all in Chrome on the Mac. On the iPad I managed to get to the point where I found out they don’t accept non-US credit cards.

www.paypal.com

Presented me with a form that refused to accept an email address of the form foo+bar@example.com as valid, despite the fact that it is clearly valid and it’s actually my goddamn PayPal login!

Another strike off all of the above for not allowing me to paste a phone number of the form “+1 (123) 555-6789” into any field that asked for one.

It’s 2012 people, stop letting arseholes write the validation on your web forms.

Maybe Apple should buy Square

In a recent Talk Show episode, Gruber and Moltz discuss Andrew Ross Sorkin’s mostly outlandish list of suggestions of potential Apple acquisition targets. I read the list before I’d listened to the show and it gave me a case of terminal eyeroll too.

There’s one thing I think they missed though: I can see some value to Apple in Square’s business. It’s not the technology; I agree, the Square card reader is chintzy and replicating the back-end services is a simple matter of programming. But having seen the credit card acquiring business from the inside, the most valuable part of a running acquirer is not the the technology but the relationships with the card schemes, payment processors and regulators.

The real triumph of Tyro’s early days was being granted a license to acquire credit and debit card transactions and obtaining membership of the Visa and MasterCard schemes. Before us, it hadn’t been done outside of the Big Four banks and we were the first applicants for one of the new SCCI banking licenses. This led to a whole lot of silly Catch-22s like us being required to have scheme membership before we were granted regulatory approval, with regulatory approval being a precondition for scheme membership.

Forming the relationships necessary to navigate this bureaucracy was not a trivial task and took a lot of time and money to accomplish. The payments industry is organised differently in the States I know, but if Apple want a faster way in to being a general card acceptor and/or payment processor, buying Square could be a good value way to do it.

How to bike in Amsterdam

I have never been a cycling enthusiast. Before I first went to Burning Man in 2007 I’d barely ridden a bike since my adolescent BMX. But one of the many awesome things about cycling in Amsterdam is that you don’t have to be an enthusiast.

The only thing better than a great public transport system is one you barely have to use, and this is one of the foremost advantages to living and working in Amsterdam. Even though as a city it has everything, it’s geographically small enough that everywhere you’d want to go is within a twenty minute cycling radius of the city centre. It’s so easy, convenient and safe you’d be crazy to not have a bike as your main mode of transport.

Buying a bike

I wouldn’t know a chainring from a seat post, so take my advice with a grain of salt. I’m just sharing what I’ve learned about buying and riding a bike in Amsterdam over the last three months.

Firstly, for regular city riding, you want an “omafiets” or “granny bike”—single gear and back brakes. Amsterdam really is so flat that gears are unnecessary and frankly a bit of a pain in stop-start city traffic. Similarly, back brakes are simple, low maintenance and avoid another cable which would otherwise snag in the nest of bikes you’ll find yourself parking in. A big padded seat and upright riding position make for comfort and a rack on the front for a crate of beer will make you friends that you can then dink on the rack on the back.

If you want a really cheap one you can get something serviceable like the above from the Waterlooplein markets with front and rear lights and a chain included for €80, but don’t do that. I did, twice, and it’s a bad idea for two reasons: firstly, when you look closer you’ll see that an €80 Omafiets is cobbled together out of spray painted rust and hope and eventually parts will get loose and wobbly and you don’t want to deal with that while fanging it down Vijzelstraat post-borrel.

Keeping your bike

The second reason to spend more is that cheap locks don’t. I locked my two-week old bike in front of a café and sat down to wait for a fellow Appsterdamer to arrive; while doing so I saw someone take a bright red chain off a generic-looking omafiets and thought to myself, “That’s a really bright red chain, kind of like mine” as he casually rode off.

Half an hour later when I went to get on my bike to leave, I believe I may have said a rude word.

You have to pay at least €40 to get a lock worth buying. The problem with really cheap locks is there are only about a dozen possible keys for each model and they’re easily defeated. But that’s still not enough. You need two: a chain AND a wheel lock on the back wheel. These are quick to lock and unlock and operable with one hand, but using one by itself is inviting a long walk home.

Or, in my case, since my second bike was locked only with a €15 wheel lock when it was stolen from outside my house one night, a long walk to wherever I had to go the next morning. I managed to hang on to that one for a whole week. Not that I’m bitter or anything.

So, a chain through the frame and wheel and around something that terminates a foot into concrete, plus a wheel lock on the back wheel are necessary to ensure your steed stays where you left it. If a thief wants your bike they’re still going to defeat both of those in a minute, but if they just want a bike they’ll look for something that’ll only take thirty seconds. A sucker’s bike like either of mine, for instance. “I don’t have to outrun it, I just have to outrun you”.

This is the main reason I’d never buy an €80 omafiets again. I’d feel stupid spending the same amount on locks as I did the bike. Might as well spend €200 all up and get something more solid and reliable.

Accessories

Get front and rear lights for riding at night or in the (plentiful!) rain. These are more for visibility than as headlights, so you don’t need anything fancy. Simple (cheap!) battery operated LED lights are better than dynamos as they’re consistently bright, have no wires to snag and don’t sap any of your pedal power.

Not having done it (well, aside from the prei in the back rack of the first bike I had nicked—yes, really!), next time I would seriously consider getting a can of electric pink spray paint and pimping my bike. This has two advantages: it makes it easier to find in a thicket of generic black omafietsen and the more distinctive it is, the less likely it is to be stolen.

But the most important bike accessory in Amsterdam is…

Hazards

… a bell. Or air horn. No, LRAD. Possibly a sidewinder missile mounted to the front forks. By far the biggest hazard you will encounter as a cyclist in Amsterdam are the neverending supply of fresh tourists wandering into the bike lanes. You can tell how long they’ve been in town by their reaction upon hearing a bike bell. If they’ve only been there a day they will remain totally oblivious. If they’ve been there a week they’ll jump like they’ve been stung, possibly into oncoming traffic.

I didn’t manage to hit anyone while I was there but came close a number of times, especially coming down Damrak/Rokin, cycling past the Heineken brewery and around the intersections near the Rijksmuseum and the Vondelpark. Just be aware around popular areas and if all else fails, shout “Get out of zee bike lane, you silly tourists!” (in the manner and accent of a French taunt) and you’ll be OK.

Next most hazardous are tourists on bikes. Typically not regular cyclists or familiar with Amsterdam and sometimes even not used to riding on the right hand side of the road, they can be unpredictable and get in the way. Fortunately they’re easy to recognise as they’ll be riding a modern step-through style bike (not an omafiets) in red with “Mac Bike” written on the front. Keep your distance or give them a polite “notification ding” and they’ll pull to the right and allow you to pass.

You have nothing to fear from the local riders. If you do something silly, they’ll overtake glaring at you, shake their head and go on with their mobile phone conversation without the bar fridge perched in their front rack even wobbling.

The absolute last thing you have to worry about riding in Amsterdam is motor vehicles. Drivers know that any collision between a car and a bike is assumed to be their fault and the subsequent fine or criminal proceedings will ruin their life and they behave accordingly.

On yer bike!

So, that’s what I’ve learned about biking in Amsterdam: don’t cheap out too much (especially on the locks), lock the damn thing properly, customise for fun and bicycle retention, watch out for the tourists and have fun riding around the most practical cycling city in the world.