Category Archives: miscellaneous

The world’s fastest Rubik cube solver is made from Lego!

CubeStormer II is the fastest Rubik cube solving robot in the world. It set a Guinness World Record of 5.270s for the fastest robot solving of a Rubik’s Cube in November 2011. I saw it in action on Saturday at the Swindon Lego show. Click the image below to watch a video I took.

(there is also a .mov version on

The project was commissioned by ARM Holdings and designed and built by Mike Dobson (who built the Lego robot) and David Gilday (who wrote the software). A custom Android app on a Samsung mobile phone images the cube and instructs the Lego robot what turns to make. The robot is made from 4 Lego Mindstorm NXT kits.

I got to speak briefly with David Gilday and he told me that the software is optimized for the robot’s capabilities, so it computes the quickest sequence for the robot, rather than the minimum number of moves. The software uses pre-computed look up tables of moves for speed. Apparently the limiting factor on the speed is the power of the motors. CubeStormer II can manage about 5 moves per second, whereas the best humans can manage 9 moves per second.

It didn’t work every time. But it is an impressive achievement. Especially considering the software was written by a hardware engineer! ;0)

(there is also a .mov version on

More details over at Wired.

The microISV test

Ok, so you’ve set yourself up as a one man software company and you’ve made some sales. But are you a real microISV/micropreneur/indie/startup? Take the test below and find out.

  1. You checked the number of sales you made overnight before you had your breakfast this morning.
  2. You measure the price of desirable objects (cars, houses, Xboxes) in terms of the number of licences you need to sell.
  3. You’ve outsourced some work to someone with no idea what they look like and only a vague idea where they live.
  4. When booking a hotel you are more interested in how good the Internet connection is than how good the restaurant is.
  5. Your product has at least 20 five star awards from download sites.
  6. You know what CTR, CPC and CPM mean.
  7. You have begged all your friends and family to ‘like’ your product’s Facebook page.
  8. You set up your computer or phone so it makes a special noise each time you get a sale.
  9. Your software has been cracked at least once.
  10. You have suggested to a particularly problematic customer that one of your competitors might have a more suitable product.
  11. You’ve done technical support while wearing a dressing gown/bathrobe (or less).
  12. You have Google alerts and Twitter searches set up for your product name.
  13. You start to get anxious after not checking your email for more than half a day.
  14. The last time you set an alarm clock it was because you were going on holiday and didn’t want to miss the flight.
  15. Your relatives think you don’t have a ‘real job’.
  16. You own at least 10 domain names.
  17. You have had to fix problems with your software or website while on holiday.
  18. You have had a least one chargeback.
  19. Your software has been flagged as malware by at least one anti-virus package.
  20. You use at least 3 different email addresses in the course of a day.
  21. You have explained what you do to someone and they said “And you make a living from that???”.
  22. You have used Google translate to answer a support email in a language you don’t understand.
  23. You use “we” when talking about your company, even though its really only you.
  24. Someone told you a half-baked idea they had in the shower that morning and said they would be willing to give you 50% of the profit if you did 100% of the work to  implement it.
  25. The last time you wore a suit and tie was to a wedding or a funeral.

I scored 25/25, of course (it’s my test). How did you do? Are there any other questions I should have added? Let me know in the comments.

Thanks to fellow microISVs Steph, Oliver, Terrell, Clay and Ian for suggesting some of the above.


I have my email client set up so that it makes a cash register ‘ka-ching!’ noise every time I make a sale. I found this a real morale booster in the early days of Perfect Table Plan. Even now, several years later and with considerably higher sales volumes, I still haven’t grown tired of it. I particularly enjoy hearing ‘ka-ching!’s coming from my laptop while I am not working – it is wonderful to be able to earn money while drinking a glass of wine in front of the television.

If you are running Mozilla Thunderbird you can set this up quite easily with a message filter and the Mailbox Alert add-on:

  1. Install the Mailbox Alert add-on.
  2. Create a Thunderbird message filter to send emails denoting incoming sales to a specific folder (‘Tools’>’Message filters…’).
  3. Set the Mailbox Alert add-on to play an appropriate sound whenever a new email arrives in this folder (select this folder, then select ‘Tools’>’Mailbox Alert Preferences’).

You shouldn’t have too much problem finding an appropriate .wav file to play. I use C:\Program Files\Microsoft Office\Office12\MEDIA\CASHREG.WAV.You can also find some online here.

Thank you to whoever wrote Mailbox Alert and to Nick Hebb of FlowBreeze Flowchart software for pointing me at it originally.

I have just launched at new website at  This website contains free countdown clocks,  for both Windows and web, to allow you to count down the days, hours, minutes and seconds to any event. It can be a wedding, a birthday or a major cultural or sporting event. Are your children wondering how many days, hours, minutes and seconds it is to Christmas ? Wonder no more! You can also use it to count up from an event e.g. giving up smoking or Perl.

web countdown clockweb countdown clock for Mac, iPad, iPhone and Android

windows countdown clockWindows countdown clock

The hope is that a significant number of people interested in planning events will go to for a free clock and a small percentage will click through to and buy my software. I have no idea how successful this will be. I certainly don’t expect a quick payback on the investment. But hopefully it will pay for itself in a few years, and then anything after that is pure profit.

This project has also been a small scale experiment in outsourcing that might lead on to greater things.

  • The web design and CSS/HTML coding was done by Sergey Pozhilov of μISVStyle.
  • The Windows countdown clock was done by Milan Marusinec of VectorGraphica.
  • The Javascript for the web countdown clock was done by Paul Kossowski of Dolphin Futures.

They all did a great job and the total cost was less than I would have paid for a couple of ads in event industry newsletters (which I tried recently, with fairly miserable results).

I have quite a few ideas about how I can improve, but I wanted to get something out there ASAP. After all if you aren’t embarassed by v1.0 you didn’t release it early enough. I would be interested to hear any feedback. Backlinks to would also be very welcome. ;0)

Hacker Monthly

Issue #3 of Hacker Monthly leads with the Lessons learned from 13 failed software products article that I posted here in May. They even put my face on the front cover, despite my warnings about the effect this might have on sales.

Hacker Monthly is an interesting experiment. It takes the most popular articles on the Hacker News site each month and repackages them in an attractive magazine format. This makes for some very varied content, with articles ranging from business topics to advanced programming techniques. It is available both as a paper magazine from MagCloud ($9.95+shipping) and a downloadable PDF (free) and is supported by advertising revenue and donations. I wish them every success with it.

Unskilled and unaware of it

Unskilled and unaware of itHave you ever noticed that you rarely (if ever) meet someone who admits to having below average driving skills? My Grandfather started driving a car before UK driving tests became compulsory in 1935. So he never had to take a driving test. This was lucky for him, because he was a terrible driver. He would get distracted and cross the line into oncoming traffic, veering back at the last second when his passenger started shouting. He claimed he had never been in accident, but I expect he would have seen quite a few if he had ever thought to look in his mirrors. Few people would accept a lift from him a second time. Even as a young boy, I realised that I was in mortal danger getting into his car. I would make an excuse and make my own way by bicycle. And yet, he considered himself a good driver. After having read the excellent book Bad science by Doctor, journalist and blogger Ben Goldacre, I think I know why.

The book contains this startling graph from the paper ‘Unskilled and Unaware of It: How Difficulties in Recognizing One’s Own Incompetence Lead to Inflated Self-Assessments’ by Kruger and Dunning :

Dunning-KrugerGraphics courtesy of (click to enlarge)

The graph shows how good subjects were at logical reasoning as measured by a test (blue), how good they thought they were  (green) and how well they thought they did at the test (red). Apart from the top quartile, there was actually an inverse relationship between how skilled people thought they were and how skilled they actually were. The study also showed that the least competent individuals were also the least capable at recognizing the skill levels of others. This is the abstract from the paper:

People tend to hold overly favorable views of their abilities in many social and intellectual domains. The authors suggest that this overestimation occurs, in part, because people who are unskilled in these domains suffer a dual burden: Not only do these people reach erroneous conclusions and make unfortunate choices, but their incompetence robs them of the metacognitive ability to realize it. Across 4 studies, the authors found that participants scoring in the bottom quartile on tests of humor, grammar, and logic grossly overestimated their test performance and ability. Although their test scores put them in the 12th percentile, they estimated themselves to be in the 62nd. Several analyses linked this miscalibration to deficits in metacognitive skill, or the capacity to distinguish accuracy from error. Paradoxically, improving the skills of participants, and thus increasing their metacognitive competence, helped them recognize the limitations of their abilities.

Or, more succinctly:

Ignorance more frequently begets confidence than does knowledge. Charles Darwin

The findings fit in with the concept of ‘unconsciously incompetent’ in Maslow’s four stages of learning:

  1. Unconscious Incompetence:  The individual neither understands nor knows how to do something, nor recognizes the deficit, nor has a desire to address it.
  2. Conscious Incompetence:  Though the individual does not understand or know how to do something, he or she does recognize the deficit, without yet addressing it.
  3. Conscious Competence: The individual understands or knows how to do something. However, demonstrating the skill or knowledge requires a great deal of consciousness or concentration.
  4. Unconscious Competence: The individual has had so much practice with a skill that it becomes “second nature” and can be performed easily (often without concentrating too deeply). He or she may or may not be able to teach it to others, depending upon how and when it was learned.

The Dunning-Kruger effect might explain why every crank and barstool scientist appears to think they understand global warming better than the world’s top climate scientists. I am also reminded of my own experiences learning ju-jitsu. After a year or two of training, having reached the exalted rank of green belt, I thought I was pretty good. It was only some years later, as a black belt, that I realised how much I still had to learn.

What has this got to do with software? Well, it might explain some of the very poor website design, GUI design, graphics and copywriting I see from time to time. The perpetrators may be sufficiently unskilled, that they don’t even realise how unskilled they really are. It is a thorny problem. Firstly you don’t realise you have the problem. Secondly, even if someone convinces you to delegate or outsource that type of work, you are unable to accurately assess the work of others. It is particularly worrying for one man software companies (such as myself) who have to perform or oversee a very wide range of  skills including: website design, user interface design, programming, testing, copyrighting, marketing, PR, documentation, support and systems admin.

By the same token,  many customers with poor IT skills might not have any insight into the extent of their deficit. Below are the results of a survey I did with some of my own customers a couple of years ago:

skill survey

Note how skewed the results are and bear in mind that relatively few of my customers are IT professionals. Similarly skewed results were reported recently by Patrick McKenzie in his blog:

Surprisingly many of my customers self-evaluate as comfortable with computers.  50% were “very comfortable”, and 30% were “mostly comfortable”.  These numbers are, candidly speaking, not what I would have assigned on the basis of reading support requests for three years.

I don’t have any easy solutions for this problem. All you can do is:

  • accept that you might not be the best judge of your own competence in all areas
  • actively solicit feedback from your customers and your peers and listen carefully
  • be a bit more tolerant of when they blame your software for problems arising from their lack of basic IT knowledge
  • console yourself that, whatever your IT shortcomings, at least you are a good driver

Haiti disaster relief

David Trump of the ASP is offering free software licences to people who contribute to Haiti disaster relief. This seems like a great idea to me, so I am copying it for PerfectTablePlan. I am going to try it for 24 hours and see how it goes. I am blogging about it here in case other software vendors are inspired to try it.

Brain teaser

Amongst my Christmas presents was a book, “Einstein’s riddle, paradoxes, puzzles and conundrums” by Jeremy Stangroom. One of the first puzzles in the book is this logic problem, attributed (almost certainly incorrectly) to a young Einstein:

There are 5 houses painted in 5 different colours. A person with a different nationality lives in each house. The 5 owners each drink a certain type of beverage, play a certain sport and keep a certain pet. No owners have the same pet, play the same sport or drink the same beverage.

  1. The Briton lives in the red house.
  2. The Swede keeps dogs as pets.
  3. The Dane drinks tea.
  4. The green house is immediately[1] on the left of the white house.
  5. The owner of the green house drinks coffee.
  6. The person who plays football rears birds.
  7. The owner of the yellow house plays baseball.
  8. The man living in the centre house drinks milk.
  9. The Norwegian lives in the first house.
  10. The man who plays volleyball lives next to the one who keeps cats.
  11. The man who keeps the horse lives next to the man who plays baseball.
  12. The owner who plays tennis drinks beer.
  13. The German plays hockey.
  14. The Norwegian lives next to the blue house.
  15. The man who plays volleyball has a neighbour who drinks water.

Who owns the fish?

Whatever its origins, it is a cracking puzzle. It took me the best part of an hour to solve it. If your brain is under-stimulated from Christmas TV but you are forbidden from programming, I recommend you give it a go. The answer is here (no peeking!).

Normal service will be resumed on this blog soon.

[1] See Atul’s comment below.

Free computer wallpaper

I got bored of looking at the standard Windows and Mac desktop wallpaper, so I decided to re-purpose some of the photographs I have taken on my travels. I have created standard and widescreen versions. They should be high enough resolution even for most developers’ monitors. Happy Christmas.


You can freely use these images as wallpaper on your computer. However they may not be modified, used for any other purpose or distributed (except via without my explicit written permission. I retain the copyright and all other rights to these images.


Left click on a thumbnail of the appropriate size/aspect-ratio for your monitor.

Right click on the full-size image and select:

  • FireFox: Set as desktop background
  • Internet Explorer: Set as background
  • Safari: Use image as desktop picture

1920 x 1200 wallpaper

These images are suitable for wide screen monitors (aspect ratio 8:5) including:

  • 1920 x 1200
  • 1680 x 1050
  • 1440 x 900
  • 1280 x 800

Stirling Falls, New Zealand.

Window reflection.

Peak 43, Nepal.

Palm, Queensland, Australia.

Lenticular clouds near Mount Sefton, New Zealand.

Kalahari sand at sunset, Namibia.

Heron Island, Queensland, Australia.

Waves, Hawaii.

A MiG-29 Fulcrum performing the 'cobra' manoeuvre.

Dead Vlei, Namibia.

Dead Vlei, Namibia.

Boyd Falls, New Zealand.

Great Barrier Reef, Queensland, Australia.

Great Barrier Reef, Queensland, Australia.

Aquarium, Plymouth, UK.

1600 x 1200 wallpaper

These images are suitable for standard monitors (aspect ratio 4:3) including:

  • 1600 x 1200
  • 1152 x 864
  • 1024 x 768
  • 800 x 600

Stirling Falls, New Zealand.

Window reflection.

Peak 43, Nepal.

Palm, Queensland, Australia.

Lenticular clouds near Mount Sefton, New Zealand.

Kalahari sand at sunset, Namibia

An MiG-29 Fulcrum performing the 'cobra' manoeuvre.

Boyd Falls, New Zealand.

Great Barrier Reef, Queensland, Australia.

Aquarium, Plymouth, UK.


Creating wallpaper wasn’t as easy as I thought (nothing ever is). You need images that are in landscape format, are not too saturated, contrasty or busy and are cropped and resized to exactly the right width and height. Thankfully I had some tools to help – I used PicCrop to do the cropping, BatchPhoto for batch creation of the thumbnail images, Xplorer2 for batch file renaming and Photoshop Elements for everything else. Some of the images are only available in wide screen format as they didn’t work as well in a 4:3 format.

All the photographs were taken by me with a Minolta Dynax 7D digital camera or scanned from slides taken by me with a Minolta Dynax 700si. Goodbye Minolta cameras, I miss you.

How good are your backups?

PICT0008We all know we need to do backups. But that is only half the story. Have you actually checked you can read them back if you need to? I have heard stories of people religiously backing up to mag tape every day for years, only to find out the tapes were corrupt and couldn’t be read back when needed.

I checked my backups recently to ensure I could read them back. Here is what I found out:

  • I was backing up my SVN repository on my Mac Mini to a single .tar.gz file which I then copied across onto a USB disk attached to a Windows box. The file had grown unnoticed to >4GB in size. But the USB disk was in FAT format, which has a maximum file size of 4GB. The the file was quietly being truncated to 4GB and I couldn’t uncompress the file when I tried with gunzip.
  • I was backing up from my Windows box to DVDs in ‘live’ format. These were not readable by my Mac mini, which would have been a problem if neither of my Windows boxes were working. I have now changed to ‘mastered’ format, which is readable by Windows and Mac.
  • I was backing up the .mdf file my OnTime bug tracking database. It turns out you can’t just swap one .mdf file for another and re-start OnTime, as you get an internal consistency error. I am now creating and backing up .bak files, which you can restore.

I have lots of redundancy in my backups – backing up in multiple formats (files, SVN repository and Acronis disk images) to multiple media (multiple machines, USB disks, DVD and online). So none of the above would have spelt disaster. But it does bring home the importance of testing your backups from time to time and of having multiple forms of backup. If you think backing up to a single USB disk is enough you should read this. If you are relying purely on an third party online backup service you should consider what would happen if they went bankrupt – not inconceivable in the current economic climate.

Are you relying on a single backup strategy? When was the last time you tested your backups?