Tag Archives: cool

So I Joined A Startup

So I joined a startup… or at least I’m going to shortly. In some respects it’s a bit of an odd move for me as I’m usually the one who opts for the “safe” option, but once you look at the decision in more detail it’s easy to see why it’s a no brainer for me.

The first worry for anyone moving to a startup is “is my job safe?”. But then define safe. We’ve just been through a recession that kicked off by bringing down Lehman’s, who were supposedly “too big to fail”. What I do know is that there’s money for the next year and even if it all goes tits up the experience gained in that year is going to be invaluable.

What about the hours? Well.. what about them? I spend most of my spare time playing with new technology anyway, why not invest that time into something useful, which could ultimately help the company, and therefore me.

And then there’s always the product. To be fair this is what has stopped me going to a startup in the past; I’ve never really believed in the product. My reaction has always been one of “OK, so that’s kind of cool… if it gets traction let me know and, if you’re still looking for people, we can talk”. With RainBird I think the product has the potential to be absolutely awesome. The fairly limited technical beta is already seriously cool.

So yes, it’s a risk, and yes it may flop, but hopefully I’m about to embark on something amazing, with some seriously talented people, doing a job that I can enthuse about at length. Watch, as they say, this space.

NorDev 2 – brought to you by the MacBook Pro

For impartiality here I should probably point out (if you hadn’t worked it out already) that I’m a rabid Apple Fanboi and love most1 things they do.

Falling as I do in the anti Windows camp it’s little wonder I haven’t done any .Net development2. Personally I don’t have anything against .Net, from what I understand C# is just Java written with the benefit of hindsight, which can only be A Good Thing™, plus there is plenty that you can learn from the .Net camp that applied to the broader world of programming. It does amuse me somewhat, however, that the two .Net centric talks we’ve had so far at NorDev have been given on Macs – albeit running windows.

Yesterdays talk was by Simon Elliston Ball3 on Glimpse, a very funky looking debugging tool for .Net web developers which I really, really wished existed for Java developers as I could seriously do with a tool like that. Glimpse is open source and well documented so I would recommend you go check it out. It’s also very extensible so if you fancy writing a Java port for it I’d be eternally grateful.

Our second speaker, Phil Nash, also used a Mac, but that’s hardly surprising as he was giving a talk on TDD and iOS development, something that’s not going to work on anything else. After a brief introduction into Objective-C, which is a funny old language, we were then shown some techniques to effectively use TDD when writing iOS (or in fact any Objective-C app) with some live coding examples – something I always enjoy watching. Interestingly, 100% of all NorDev talks have ended with someone called Phil live coding on a Mac. You may argue that a sample size of 2 is not statistically significant but it still doesn’t stop it being fact 🙂


1 Im not a complete fanatic and will admit there are some things they’ve done wrong, for example: mice. Apple are a company that seem incapable of making a good mouse. Trackpads they can do; mice, they suck at. I get my mice from Razer. They know how to make mice.

2 Yes, I know there’s things like Mono which means I can code and run it on other platforms, but… faff.

3 Elliston Ball is a double-barrelled non-hyphenated surname – can your code cope with that? Not entirely sure all of ours can. There’s a lesson to be learned there 🙂


NorDev 1

It’ll be all right on the night!

And it was! OK, so we had one helper and an organiser drop out at the last minute due to illness; my dinner was a bit rushed; I forgot the memory cards for my camera; I forgot to return the memory card I attempted to borrow; I rather fluffed the wonderfully witty and insightful intro talk I was going to do (twice, given we split it into two chunks); and the projector was playing silly buggers… but I don’t think anyone noticed (well, maybe they noticed the projector, but we’re techies, we expect this kind of thing).

NorDev 1 is in the can and Norfolk Developers is on the map. Our opening night saw nearly 50 developers descend on Virgin Wines in Whitefriars to see Liz Keogh and Phil Trelford talk, as well as enjoy a glass of fizz and a brownie or two.

Liz was, as always, fun and engaging as she detailed the differences between lean and agile practices in a 6 round “fight” with a wicked twist at the end. Given most of my team attended the talk I suspect we’ll be adopting much of what was talked about and becoming more lean over the coming weeks and months – actually, even if they hadn’t attended I’d probably be foisting a lot of it on them, but it’s nice to get buy in from the start, and for them to understand why 😀

Phil’s talk was funny and hugely interesting, even for a Java developer like myself. Having a room full of devs meant he could fire up the IDE and write code live during the talk, something that is helpful when faced with a new language. I find myself hankering after something F#esque for the JVM.

Despite the hiccups I think everyone had fun, people found it interesting and, hopefully, will come to NorDev 2 (Wednesday 10th July… which only seems to be 2 weeks away, eeep!). No doubt it’ll bring its own set of hiccups 🙂

iOS7

So we’ve finally been given a sneak preview of iOS7 and the internet is now aflame with opinion. I find the reaction to iOS7 as interesting, if not more interesting than the changes they’ve announced.

Since the announcement that Jony Ive was getting involved with iOS speculation about what he would do to it was rife. Skeuomorphism was dead [hurrah!] and iOS, which is getting to be a venerable OS, would be given a facelift. The irony is that, although large portions of both Haters and Fanbois could agree that iOS needed an update, now it’s come everyone is up in arms claiming Apple has screwed the pooch.

The cries of “you’ve ruined it, change it back!” seem to be a common theme for the Facebook generation – just look at every single Facebook update ever – and it’s not just limited to Facebook. Those people I know who have actually used iOS7 have been pleasantly surprised; even those who were secretly hoping to hate it. This is a big change for Apple and one of the first big steps in a post Jobs world. The sensible people are sitting up and taking notice, including those on the opposite side of the fence in Camp Android. Apple have a tendency of upsetting the apple cart [if you’ll excuse the pun] with these kinds of moves and people generally didn’t notice until it’s too late. The smart money has cottoned on to this.

Yes, Apple may have screwed the pooch – I don’t know, I haven’t used it. The baying hounds who proclaim Apples downfall at every turn may be right this time (after all, it stands to reason that they will eventually be right), but lets get iOS7 released and into the hands of everyone for a few months before we call it. I suspect that after the shock of change has worn off people will be asking why Apple didn’t do it sooner. I certainly can’t wait to get my hands on it.

Blogging with Markdown

I was introduced to Markdown by GitHub a couple of years ago and instantly found it to be a very friendly method of formatting a document. A veteran of a number of Wiki markup styles I’ve managed to whittle the list down to two: Confluence style which is used at work, and Markdown, which I try and use everywhere else. The exception was blog posts.

Although I have the WordPress app on my iDevices (which are able to connect to the internet via a mobile signal) I find myself writing most of my posts on my laptop on the train – good though the iOS keyboard is, it just cannot compete with a real keyboard. Being a geek I write the posts in plain text and just do the markup by hand. This is a bit of a pain. This morning, while drafting a post I found myself copying text formatted using Markdown and redoing the formatting in HTML. After the second line I stopped, Googled “markdown editors for WordPress” on my iPad and shortly after arriving in the office had Markdown on Save Improved installed. I can now draft posts offline in Markdown using TextMate which, I discovered to my great joy the other day, supports Markdown formatting and rendering.

Incidentally the reference method of creating links really helps when writing offline as you can sprinkle the anchors in your text as you write, jot an empty reference at the bottom of your text and then add the URLs when you have internet access.

Rise Of The Machines

Last night I attended An Evening Of Game A.I., a talk given by Alastair Aitchison, for the Norfolk Independent Game Developers group. My aim was to learn some new stuff (A.I. has always been a subject that I wish I knew more about) and possibly come away with a few techniques I could use in my own code. I’m glad to say that both goals were achieved.

The night started with a brief introduction from everyone (“Hi, I’m Dom Davis and I’m a WoWoholic, I’ve been clean now for 5 years”) and then launched straight into movement algorithms. A little bit of physics and some fun demos brought each of the strategies to life and, while not useful for any applications I was thinking of, it was very interesting. Similarly the section on pathfinding, while brilliant from a personal interest point of view, lacks much practical application in what I have in mind.

There was discussion on and demos of decision trees and state machines. These are both topics I know something about, although I never got the chance to ask if people used off the shelf FSM’s or not. Despite their simplicity and the profusion of if blocks it did remind me that decision trees have their place.

Utility curves is where it started getting really interesting. It’s a technique I’d never really explored before and its simplicity appealed to me. As I tweeted at the time, I’m sure I’ll get lots of utility out of utility curves.

From there it got fascinating with a quick discussion of neural nets, something I think I can make use of. I’m not sure I’ve ever been involved in the training of a neural net before, but now I can safely say that I have. I can see me and Google spending a lot of time on this subject.

Sadly I had to leave half way through the discussion on genetic algorithms. This is something I’ve done some reading about before and I’m absolutely amazed by them in a “I have absolutely no idea how to create, code or apply them” type way. I have a few ideas which may or may not be practical, but could produce some very interesting or amusing results. The group were left seeing if a little lander would evolve to land on a landing pad. As I was leaving they were getting close, so who knows.

The demos and videos of bloopers from big budget games made for a great talk and Alastair had a way of presenting some quite complex material in a fun and accessible way. I just wish I could have stayed later to pin him down and go into excruciating detail on some of the topics. Not doubt I’ll be revisiting some of these subjects in more depth in later posts as I explore them further.

Sleep Sort

I may be late to the party here, but I was introduced to the Sleep Sort algorithm at Sync Conf last week. The code is deceptively simple:

#!/bin/bash
function f() {
    sleep "$1"
    echo "$1"
}
while [ -n "$1" ]
do
    f "$1" &
    shift
done
wait

Of course it’s also hideously inefficient. Using it to sort 3 1 4 1 5 is fine as it only takes 5 seconds, but I wouldn’t like to sort any number much over 10 as you could be there for some time. Does make me wonder if you could speed it up by using milliseconds rather than seconds… and at what point you start getting race conditions.