Category: Uncategorized


DoodleDesk 1.0 Launch

After much procrastination on my part, I am pleased to announce that DoodleDesk is now live on the App Store. DoodleDesk is a Mac App that replaces your desktop background with a whiteboard, allowing you to draw freely over your desktop, as well as adding text notes. It’s perfect for sketching out ideas, plans, diagrams, or simply wiling away some time idly doodling. But don’t take my word for it, check out these glowing reviews:

DoodleDesk App Icon

This app could single-handedly save the rain-forests.

– Bob Geldoff

One minute I was making bacon, the next minute my world had changed.

– Pork & Apple Magazine

If there’s any silver lining in today’s depressive society, it’s the ability for small companies to post fake reviews of their latest products.

– Ed Balls, Shadow Chancellor of the Exchequer

DoodleDesk is available on Mac OS X for £3.99 ($5.99) through the Mac App Store. Click here to launch the App Store.


Spam, spam, spam, spam and spam

Just received this obviously broken spam comment. Interesting to see the markup!

{The|The very} {crux|heart|core|root} of your writing {while|whilst} {sounding|appearing} {agreeable|reasonable} {initially|at first|in the beginning|originally}, did {not|not really} {sit|work|settle} {well|properly|perfectly|very well} with {me|me ...


A Little Musical Excursion

A short while ago, two people got married in England. A man called Melvin wasn’t very happy about it. We enjoyed it so much at the idio office, that I made a little song out of it. Enjoy

Angry Melvin by jacques-van-der-griff



Chinese Twispers Live

I’ve still not heard anything from Twitter regarding the closure of my Chinese Twispers account. Very annoying. I was a big fan of that account, and felt it deserved to live on. Hence, I give you Chinese Twispers Live. Instead of having a set of pre-determined replacements for words, you can enter your own and enjoy the wonder of defacing other people’s tweets. Then you can share those with your friends so you can all enjoy – what more could you want? Hope you enjoy it!


The End of an Era

Today, I found out that the Chinese Twispers Twitter account (@chinesetwispers) has been suspended. I’ve not heard from Twitter on this matter, but have reached out to them. Annoyingly, all the tweets appear to have been lost, including all the favourites. I’m very disappointed about this, since many months of hilarity were included in that account, and now it’s all gone without so much as a suspension notice from Twitter.

I’ll start work on a replacement this evening, but it will never be the same. Good-bye, old friend!

If anyone has some of their favourite Twispers they happen to remember and would love to share, go ahead and comment on this article and I’ll start a dedication page.


FFT in an SQL Query

I just came across this, and thought I’d share it with you whilst I’m working on a couple of things and don’t have time to post properly.

The Fast Fourier Transform, implemented in an SQL query. This guy must be absolutely insane. Kudos to him!



Thanks to AppleScript, an office with multiple Mac users can be a prankster’s dream. We recently infuriated a co-worker for the best part of a week, using only 3 lines of code, which I’m about to share with you. First, some ground work:

  • You’ll need the user’s computer password (if they lock their Mac). Wait until they’re off sick or out of the office, and call them to say you need something off their computer. Or, if someone has knowledge of your co-worker’s password, sweet-talk them into giving it to you.
  • Whilst you’ve got access to their computer, go to System Preferences -> Sharing, and make sure “Remote Apple Events” are turned on. Make a note of their computer’s address at the top, as in the screengrab below.

System PreferencesNow you’ve laid the groundwork, it’s time to have fun. Open up the “AppleScript Editor” on your computer, and paste in the code below.

tell application "Chrome" of machine "eppc://user@computer-name.local"
	open location ""
end tell

(Here’s a direct link to the file)

Obviously, replace “user” with the username of your co-worker, and “computer-name” with their computer’s address. You can also change the URL to whatever you like, and if they don’t have Chrome installed be sure to swap that value for Safari. Hitting “Run” in the AppleScript Editor should prompt you for their password, and then open that page in a new tab of their browser. Repeat as much as is deemed necessary. We found it particularly funny convincing our co-worker that it was voice activated – every time they said “Emuspin” we would open on their computer. The possibilities are endless!




After today’s Daily WTF, I discovered this:

griff:~ $ php -a
Interactive mode enabled

var_dump("php" == 0);
var_dump("php" == true);
var_dump(0 == true);

PHP’s type casting is fantastic, isn’t it.


Introducing Setlist

Note: Setlist has been taken down for a while.

Today I’m launching a new web application called Setlist. Setlist is a designed to help bands organise the pool of songs they play into setlists, and then use those setlists to promote themselves. Professional cover bands, for example, can add all of their songs to their profile, and then create example setlists. These can be set to either public or private, so the band could publish their example setlists for potential clients to see the kind of music they play.

It was built out of a desire to better organise the songs my own band are playing. We often found that we would forget one or two songs at a practice, or when constructing a setlist. The ability to collaborate on our song pool and setlists, especially given we are geographically separated, will be a big help.

Interested? Try it out for free at – I’d love to hear any feedback you have


Soapbox: Native vs Web-Based Applications

As you’re probably aware, I develop mainly for the web. I love developing Web Applications – the technologies are great, it’s easy to use a blend of technologies, deployment is simple and they can provide a fantastic user experience. However, I also do quite a bit of native development in Objective-C and Cocoa, which I also love – the applications are quick, they fit in to your OS environment, and you can take advantage of really low-level APIs for threading etc. There are hundreds of debates on the web where web developers and native developers try and convince each other that their technique is best: this isn’t one of those debates.

This post was inspired by a talk at devnest this past Tuesday, where someone gave a presentation on developing mobile applications with jQuery Mobile. It was very interesting – I think jQuery Mobile is a fantastic framework, and it really simplifies the process of turning your web application into something that people can use on-the-go with their mobile devices. However, this person then introduced a piece of software called PhoneGap, which allows you to take an application you’ve developed in HTML/CSS/JS, offers you access to the low-level APIs, and lets you deploy it across multiple platforms as a native application.

Don’t get me wrong, jQuery Mobile looks great and works really well – but put it alongside a native application on an iPhone, for instance, and suddenly you see that the jQuery Mobile app actually is slow as a pig and looks out-of-place. That’s the sort of user experience I’d expect from a web app, but I’d expect a load more from a native application, especially if I’d paid money for it.

At work, I’ve been doing a load of research into different technologies and how we could utilise them in our roadmap. One thing I’m continually pushing for is using the best tool for the job. If it turns out that PHP is the best solution, great, but if it turns out that Python is the best solution, and you don’t know Python, you better get hold of some manuals and start learning. If you want to develop a mobile application, the device’s native language is the best solution. If you want to deploy across multiple platforms, and don’t need access to the device’s APIs, then develop a web app. If you do need access to the APIs, you’ve got a lot of work to do.