Have you ever wondered what the likelihood is of having three consecutive birthdays in a row? It’s a fun excursion from the classical statisical brain teaser on the birthday problem.
Amazon’s purchase of Goodreads, a social reading community, has reminded me of the difference between building a community and building a business. Goodreads definitely could be a value add for Amazon and the Kindle, yet unless they treat it with a light touch it could become far more of a Goodkindlereads.
The computer in front of you is pretty powerful, but it can’t factor a 600-digit number before Earth gets cooked by the Sun. No supercomputer humanity does or could build could do that either, so it seemed a sure bet to base the security of some encryption schemes on factoring being (exponentially) hard.
Back in 2011 I built TrainTrackr, a rapidly-built iOS app that worked together with a web interface to track train journeys. It seemed a brilliant way to tracing delays to trains and getting accurate data on their speeds along the route.
As someone who grew up with scripting languages, C and it’s closer brethren always felt incredibly backward. The result of all their decades of history seems to be that obscure compiler flags and awkward syntax are an affectation of the entire community. I don’t care for it, much as I like how fast the code can execute.
Earlier this year, David Kendal and I discovered you can fairly easily send and receive iMessages using Ruby. The key is to interact with OS X’s Messages app, more specifically it’s AppleScript bindings. We built and released iREPL, a Scheme programming environment that you can use on your iPhone/iPad without having to jailbreak. I’ve been using it for months when I fancied hacking some Lisp.
Anyone who has done an appreciable amount of laundry has probably noticed the time commonly taken matching up socks of different styles and colours.
My efforts to optimise the process have led me to the curious practice of un-matching: making pairs of socks so as to deliberately not be a matching pair. It’s much faster, much simpler to compute and yet because there is a process behind it you have a defence against allegations of laziness.
A couple of months ago, whilst playing with Messages Beta for Mac, it occured to me that it’d be a lot of fun to programmatically send messages. After I built a basic, insecure Ruby Shell for iMessage, David Kendal decided to rebuild it and switch to Scheme - for which a secure sandboxed version existed in the form of Heist.
When we encounter a problem as developers, there’s usually 3 ways to solve it. There’s the hacky way with its attendant long-term maintainance costs. There’s a way which works without too much trouble. And there’s the spark of genius that solves all the troubles with the minimum of effort.