Monday 28 December 2009

Version 1.7.4

Several minor bug fixes in this version

  • Tags on emailed puzzles are now encoded properly so spaces and funny characters all work ok.
  • Screen timeout is disabled when you are playing a puzzle.
  • A couple of weird display glitches are fixed - not sure when they appeared.
And, the big new feature:



You can now grab sudoku puzzles in real time! Just wait until the puzzle turns green and then touch the puzzle in the grey area - that will grab whatever puzzle was just recognised.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 21 September 2009

LEGO Robot Solves Sudoku

Check out this video of a lego robot solving a Sudoku Puzzle.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 11 September 2009

Version 1.7 is live!

Version 1.7 went live last night.

In the new version we've got:

  • Internationalisation - you can now run Sudoku Grab in German

  • Automatic grader - works out how hard a puzzle is based on how a person would solve it

I've also added a link to other application I've written - currently there's just Space Invaders, but hopefully the catalog will grow...

Someone called Mike asked in the comments if it would go back and grade already captured puzzles - unfortunately not at the moment, but that is quite a good idea.

I'll be interested to see how well the grader works in the real world - at the moment it is pretty simplistic. Automatic Sudoku grading seems to be a bit of an art form. So if you get any puzzles that you think are graded completely incorrectly use the email to a friend feature to send them to sudokugrab@gmail.com and I'll take a look.

Also, there's a great web site here: Sudoku Solver by Andre Stuart that has a huge amount of resources on this solving Sudoku puzzles. I used a lot of the explanations on the solving strategies to help build the grader.

If you are having problems with the latest version then please try the following steps:
  • Power off and restart your phone - this should resolve issues with taking photographs of puzzles

  • Uninstall Sudoku Grab completely and download it again - this should resolve any issues with the upgrade process not working as it should

A few people (well, quite a few) have pointed out the slightly embarrassing spelling mistake on the main menu - that's fixed along with a few minor bugs in the next update that is currently going through the Apple review process... So it will be a couple of weeks at least.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Wednesday 12 August 2009

Progress update

The Sudoku Grader has now been integrated into the App and translation into German is almost finished.

Hopefully both of these will be released this weekend followed by support for Italian.

In the mean time I've released another app - this one is a bit different from Sudoku Grab, it's space invaders! You can read it about it on the app store

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 3 August 2009

Progress

Good progress on the next version.

The Sudoku Grader now supports 10 different solving techniques inluding X-Wing, Single Chains and Y-Wing.

The intention is to use this to grade how difficult a puzzle actually is when it is captured. Hopefully this will be finished and submitted this weekend.

I've also had some help with translating the app - German and Italian versions should be released soon as well.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Sunday 26 July 2009

What's planned for version 1.7

I was going to do a quick pick and solve option for version 1.7, but I've got a bit sidetracked investigating automatic grading of puzzles and intelligent hinting.


So version 1.7 will have an automatic grader that calculates how difficult the puzzle you've just grabbed really is.

This will feed into version 1.8 which will have an intelligent hint system.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Sunday 19 July 2009

Sales stats update - 5 or 6 months on the app store

I've been a bit slack updating the sales stats recently. It's now about 5 or 6 months on the app store. The reason for the lack of stats is that there's not really been very much exciting to report!

We left things with the app being featured on the US app store - you can read all about that here.

As predicted though, that did all come to an end and the app slowly slipped down the charts. Despite that it still turns over between 10 and 30 copies a day. As I posted in a earlier blog, downloads crossed the 25,000 mark a few weeks ago.

Anyway, here's the current daily sales chart:



There's a bit of a spike at the end - The app got mentioned on a Dutch website - but the sales there have quickly died back down again.

To date, total paid downloads stands at 25591
Free downloads 8436 (to celebrate 25000 the app was set to free for a couple of weeks)

I guess free is pretty popular!

All in all though I'm quite happy - I've got a lot of satisfied customers, well I hope so anyway.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

How does it all work?

Thanks to everyone for visiting - you can get Sudoku Grab from the app store for 99cents.

I get the odd email from people asking how Sudoku Grab works. I've replied to quite a few individually, but I thought it would be much easier to just explain it on the blog. Also when I demo the app people are often amazed (and equally, some people are also often not amazed...).

For the ones that are amazed they can get a bit enthusiastic and start coming up with all sorts of amazing ideas on what you could do with "the technology". I then have to explain to them that it's actually not doing anything really clever and that their idea might actually be quite a hard problem in comparison.

Sudoku Grab is a collection of some fairly basic image processing techniques that most engineering students at University could probably figure out how to put together. All of the algorithms used are either commonly available and can be found on the internet or can be written pretty easily. Obviously tweaking them and getting them all running together seamlessly is the real trick...

A good source to get started with is the OpenCV library which can be compiled on most platforms (including the iPhone). I wish I'd been aware of it before I started this project as it would have saved quite a bit of time.

One of the things that makes recognizing Sudoku puzzles an easier task than most image processing/recognition problem is that it is a highly constrained problem - a standard Sudoku puzzle is going to be a square grid and it will only contain the printed numbers 1-9.

These two points are very important. The first point - it's a square grid tells us what shape a puzzle is and what we should be looking for in an image. The second point - it will only contain the printed numbers 1-9 tells us that we aren't going to need a sophisticated OCR system. When we look at the problem there's nothing that jumps out and says "nobody has solved this before - it's probably really hard".

We can also add some additional assumptions -

  1. In a photograph of a sudoku puzzle, the puzzle is going to be the main/most important object on the page

    A user is going to be photographing the puzzle - they aren't going to take a picture of a whole newspaper page, they won't be taking a photograph of a coffee shop and expecting us to find a sudoku puzzle that someone is playing four tables away. Also, the user is going to try and capture the whole puzzle, they won't miss a corner or chop off the top.

  2. The puzzle will be orientated reasonably correctly.

    No-one (hopefully) is going to be taking a picture of an upside down puzzle, and typically they will be trying to align it nicely in the camera viewfinder so it is reasonably straight without too much distortion.

So at the start of our Sudoku puzzle recognition we'd expect to be getting an image similar to this one:



We can see that this meets all the assumption above. We've got the whole puzzle - there are no bits missing, the puzzle is reasonably straight - it's not upside down or at some crazy angle, it's also the main thing in the picture - there's not a lot of distraction in the image, it's just a picture of a sudoku puzzle.

So, how are we going to go about recognising this image? There are basically 4 main problems to tackle:
  1. Where is the puzzle?
  2. Once i've found the puzzle how do I turn it back into a square puzzle?
  3. I've got the puzzle - how do I find the numbers?
  4. How do I recognise the numbers?

Let's look at each of these in turn:

1. Where is the puzzle?



The first thing to do in any image processing problem is to reduce the amount of data you are dealing with. We started from the full colour high resolution image. The first thing we can do is to throw away the colour information. Looking at our sample image, having colour does not add any information that is useful to us*.

What else can we see - an obvious thing is that this is a printed page, it's basically a black and white image. So the first step in our image processing is to throw away even more information. We are going to threshold the image so that we have either background pixels (the paper) or foreground pixels (the printed elements).

There are a variety of thresholding techniques available to us: http://en.wikipedia.org/wiki/Thresholding_(image_processing)

The initial naive approach is the obvious one. Light pixels are the paper and dark pixels are the ink, so lets pick a number (say the average pixel value for the image) and anything less that that we'll set as foreground and anything higher than that is background. This would give us an image that looks like this:



It's kind of ok - there's some paper showing up as foreground in the top left, but the puzzle is also showing up, but as we go down towards the bottom right the puzzle starts to break up. We can see that this simple approach doesn't really handle variable lighting on the page. And we can imagine that if there are any shadows on the page the results will be even worse.

What we need is a thresholding method that can take account of this problem. My personal favourite is a simple adaptive threshold. For each pixel in the image take the average value of the surrounding area. If the pixel is less than 90% of this value then it is ink, if it is higher then it is paper. The reason for choosing 90% of the value is that this lets us filter out flat areas or areas that aren't changing very much (ie blank bits of paper or solid black sections).

This results in the image shown below:



As you can see it's a lot better than the previous attempt.

We can now apply one of our assumptions: "In a photograph of a sudoku puzzle, the puzzle is going to be the main/most important object on the page" - we can interpret this in the following way - the most important thing on the page probably has the most foreground pixels. So let's extract every blob of set pixels and see which blob has the most. That blob of pixels must be our Sudoku Puzzle. To do this we'll using a blob extraction algorithm.

The simplest way of doing this is to scan through the image looking for a set pixel. Every time we find a set pixel we perform a "flood fill". The pixels that we fill in make up our blob.

Running this process and then taking the blob with the largest number of pixels gives us this image:


So, that's great, we've managed to go from an picture of a puzzle in a newspaper to finding the pixels which are probably part of a Sudoku puzzle. Most importantly we have the pixels that make up the outside frame of the puzzle. Now what?

Ideally it would nice if we knew the coordinates of the corners of the puzzle frame - that would let use draw a box around it and know the exact location of it. There are quite a few ways that we could approach this. A simple approach might be to scan through the pixels looking for the top left, top right, bottom left, bottom right. That might work. I've chosen to use one of my favourite algorithms; the Hough transform.

This algorithm can be used to detect straight lines (and many other shapes) in an image - and rather handily, straight lines is what make up a Sudoku Grid. So let's feed our extracted grid pixels into a Hough transform. This gives us this (this is a representation of the results of the Hough transform mapped back into an image so we can see it):



You can have a play with hough transforms here.

This image represents all the possible lines that are in our image. The x coordinate is the angle of the line and the y coordinate is the distance of the line from the origin (I've trimmed the image to make it a bit smaller so our y coordinate looks a bit smaller than it would normally).

We can see that we have a bunch of peaks around 0 and 180 degress mark (on the left and the right of the image) and a bunch of peaks in the midle of the image, around the 90 degrees mark. These correspond to horizontal and vertical lines in the image.

We really only care about the leftmost, rightmost, topmost and bottommost lines. These correspond to the peaks at the top and bottom of the two groups.

If we take these peaks and turn them back into lines we have the lines along the top, bottom, left and right of the puzzle - find where they intersect and we have the corner coordinates of the puzzle. This let's us produce the image you can see here:



We now know exactly where in the original image we have found the Sudoku puzzle!

2. Once i've found the puzzle how do I turn it back into a square puzzle?



So, we've got the corner points of the puzzle - it's currently not really usable for much - it's a bit distorted. What we need is some way of mapping from the puzzle in the picture back into a square puzzle.

We need a transform that will maps one arbitrary 2D quadrilateral into another. For this we can use a perspective transform:



This will map a point given by x,y in one quadrilateral into a new point X,Y in another quadrilateral. As you can see there are 8 unknowns in these two equations - but fortunately we have 8 values (the corner x and y coordinates of the puzzle and our arbitrary x and y corner points of our square image). Solving these equations gives us the a,b,c,d,e,f,g,h which provide us with a mapping to get our puzzle out nice and straight:

You can find a lot more information on this approach here (there is of course a trick to doing this - you don't really have to solve 8 simultaneous equations using a bit of paper! This article describes how to do it using matrices - or OpenCV has this all built in). I won't go into it in detail as to be honest it's completely beyond my comprehension...

3. I've got the puzzle - how do I find the numbers?



So we're pretty good - we've now got an undistorted square Sudoku puzzle. That's good, but it doesn't really help us that much - we could have got this far by making the user line up the puzzle with a square shape in the viewfinder when they took the picture!

Let's try and see which boxes in the puzzle actually have numbers in - this is actually pretty straightforward, all we have to is divide the puzzle into a set of boxes threshold each box and apply the blob extraction algorithm to the middle of the box. If we manage to extract a blob then it's more than likely that the box must contain a number. Throw away the empty boxes and you've got the numbers that you need to recognise.

4. How do I recognise the numbers?



We can now take the blobs from the previous stage and try and work out what numbers they represent - this is where the world becomes your oyster. There are a huge number of techniques for performing OCR.

And a huge number of non-specific pattern recognition algorithms.

For my implementation I chose to use a Neural Network. I collected a large number of extracted number images from some sample puzzles and hand classified them. I then used these to train a simple neural network to recognise the digits 1-9. This works remarkably well, but I suspect I am probably using a hammer to crack a nut in this instance...

Anyway - this gives us our final result - a Sudoku puzzle with recognised numbers!




There are a huge number of improvements that can be made to these basic steps. You can add intelligence at every step to improve your chances of recognising a puzzle.

But basically, that's it!

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Sunday 5 July 2009

Version 1.6 is live!

Get it while it's fresh.

Only a couple of minor changes in the is release:

  • Fixed delete button with 3.0

  • Added an option to hide the "You have a game in progress" message box

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Saturday 20 June 2009

Version 1.6 submitted to the app store

A couple people have come across a bug when running on iPhone3.0. Occasionally the "X" button on the puzzle playing screen can stop working. I've just submitted a fix for this to the app store (version 1.6).

If you come across this problem then there are a couple of workarounds, you can use the undo button to remove the number you just entered, or you can just overwrite the wrong number with the correct answer.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 15 June 2009

25000 copies downloaded!

To celebrate 25000 downloads of Sudoku Grab I'm setting the app to free until the 25th June. Thanks to everyone who has purchased the app and for all the great feedback you've been sending.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 5 June 2009

Heading to the Apple WWDC

Flying to San Francisco on Sunday to attend the Apple WWDC. Should be a good source of information for future enhancements.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Tuesday 12 May 2009

Version 1.5 is live

Got the email this morning. Version 1.5 is on the app store. Feel free to drop an email to the support address (sudokugrab@gmail.com) if you have any issues.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 8 May 2009

1.5 Submitted to the App Store

I submitted version 1.5 at the start of this week so it should be available some time next week.

What's new:

  • Help link on the front page.
  • Tracked down the weird bug where you sometimes couldn't navigate back from the settings page
  • You can now customise the colours of the numbers
  • You can switch the timer off
  • Built in puzzles now have history (up to a maximum of 20 per difficulty level)
  • Numbers on the recognition screen are now much bigger
  • Usability improvement for color blind users (added a ? to problem numbers).
  • Smart numbers - numbers will disable once they are completely filled in.
  • Alert when you start up if you are already playing a puzzle
  • Deletion of tags is now much easier - just swipe left on the puzzle book screen on the tag you want to delete
  • Option to delete tags that are unused when you delete a puzzle
  • Timer now handles sleep properly

And some general bug fixes.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Tuesday 28 April 2009

Version 1.5 - In progress

Almost finished - just got the online help to write and some testing then I'll be submitting to the app store.

It's taken a bit longer than expected. Things haven't been helped by computers behaving strangely.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Thursday 23 April 2009

Sales stats update - Two months on the app store

So, it's been another month on the app store. We left the previous month with the app being featured in the "What we're playing" section in various European countries. This had boosted sales in the UK up to the exciting heights of around 200 a day. Worldwide this pushed sales up into the 300s.

I must admit, I was pretty happy with this, I knew that it was never going to last, as soon as the app stopped being featured sales would go down - and as expected the app disappeared out of the featured list after a week or so and sales started to decline pretty quickly in the UK. Fortunately other countries stepped in and kept global sales at a good level.

Around this time I released a new version with a new icon (designed by the great guys at icon design). Take a look at what happened next:



Suddenly all the sales up to the 14th April look a bit silly. Finally the app has broken through into the US market - featured in the "New and Noteworthy" section of the US app store. I think this really demonstrates the power of appearing on the front page of the app store and in the featured list of the store on the phone itself.

So, there's not quite as many charts in this month's update - mainly because the only really interesting thing that has happened has been the US sales. Here's a breakdown of sales by country (I'm only showing the top 10 here):



I'm sure that this would look different if the app was localised to each country - being only available in English probably limits the appeal.

For those of you who like to know how close I am to buying that yacht and retiring to my own private island:

Sales to date:14970
At 99cents per unit$14820.30
Less Apple's 30% cut$10374.21
USD to GBP (according to google)₤7088.15
After tax of 40%₤4252.89


Still some ways to go!

As always, if you've got any questions or are interested in more details just drop me a message on the support email (sudokugrab@gmail.com). Or just leave a comment on this post.

Now it's time to get on with the next release. Version 1.5 should be submitted to the app store this weekend/start of next week.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Thursday 16 April 2009

Busy busy

Been flying to and from the US the past couple of weeks, but I'm back home again now.

Things to do:

  • Update the instructions! Version 1.4 is pretty similar to 1.3 but there are a few differences.

  • Get cracking on version 1.5

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Wednesday 8 April 2009

Version 1.4 is live

Received the email from Apple this evening. Version 1.4 should be in the app store very soon.

Let me know if you have any issues on the support email.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

A couple of reviews

Finally the app has been reviewed by a couple of sites:

http://www.148apps.com/reviews/sudoku-grab/

and

http://www.iphoneappreviews.net/2009/04/06/sudoku-grab/


Still not much action in the US averaging about 10-20 a day. The app has also moved off the front page of the app store in the UK, so sales have dropped quite significantly. I'll be posting an update in a couple of weeks time with some numbers.

Thanks to everyone for reading.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Tuesday 31 March 2009

1.4 Submitted to the app store

Bit later than I was hoping and I've had to push a couple of features out to 1.5 - it's been a bit hectic the past few days.

In version 1.4

  • Green pencil notes are slightly darker so it's a bit easier to read
  • Choose the fonts used for the puzzle
  • Choose different background colours for the puzzle
  • Option to move the Hint button to the menu
  • Delete puzzle tags

I've updated the main menu screen with some new graphics:



There's also a new application icon which the guys at icondesign. Kevin put up with my random feedback and thoughts with a lot of patience. If you need an iPhone app icon designed then they are the people to go to!

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 23 March 2009

Version 1.3 is live

Just received the email from Apple - Version 1.3 should be appearing in the app store shortly. Click here to see what's new.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Sunday 22 March 2009

Sales stats update - One month on the app store

So, according to my records it's now exactly one month since Sudoku Grab went live on the app store and it's been quite an adventure.



As you can see from the above chart; in the past week sales have suddenly picked up. Until around the 16th I had pretty much resigned myself to getting maybe 20 sales a day and I was feeling fairly happy with that. The only slight disappointment was the lack of very many sales in the US - I did think that as it was the biggest market it would have the biggest sales - just goes to show what I know about selling software...

One of things I have learnt over the past month is how decoupled the app stores are in each country. You can have a big sales spike in one country and absolutely nothing everywhere else.

The chart below shows the sales by country. I'm only showing the top 10 countries - but as you can see it tails off pretty quickly the Netherlands only has 8 sales.



I'll take each of the interesting regions one at a time. First off Japan; this was the first country to get any significant sales. Now bear in mind, when I say significant I'm only talking about breaking double figures! We're not talking about heading out to buy a yacht or retiring early.



This big spike in sales came when ipodtouchlab in Japan posted a review of the app. I have to admit when I saw those sales figures come in from Japan I started to get quite excited. Sadly, as you can see from the chart, the app store is a fickle beast and the sales tailed off pretty quickly.

Fortunately the UK came to the rescue!



The first jump in sales in the UK on the 6th March came after an unexpected mention by the kind folk at b3ta in their most excellent newsletter. This is a great source for all things interesting on the internet. However, after the initial peak sales quickly decline to a more normal level. If you look at the statistics for the youtube video of the application you can see what an impact being mentioned on a popular site has.

336 http://www.b3ta.com/links/popular/
270 http://www.spaziocellulare.com/ispazio/2009/03/09/su...
251 http://www.b3ta.com/links/
212 http://www.mobileblog.it/
108 http://pda.pl/

You can also see an Italian site driving a lot traffic my way - just as the UK sales seemed to be disappearing the Italians picked up the baton with a mention on the spaziocellulare website

Sudoku Grab è una bellissima applicazione disponibile in AppStore




Once again we see how transitory the publicity is. A brief spike in sales and then a pretty rapid decline.

Back in the UK other things were happening. I was just taking a look at the app store checking where my app was in rankings, making sure it was still there (not that I have become obsessed at all). When what do I see? My icon on the front page in the "New and Noteworthy" section and also in the "What we're playing section".



I think if you look at the chart for UK sales you can probably guess when this occurred...

The first daily sales report was good - 42! I thought, that's pretty good. The day before I had noticed that Germany had done well, but I just put it down to some mention on a random blog. But, on checking I found that the app was also being featured in Germany! This is good I think. 42 sales in the UK, 25 sales in Germany - if this carries on I might actually recoup the cost of the mac book and the phone. Then the next day's figures came in... I think the charts speak for themselves.



Sadly, as I've already mentioned the app store is a fickle beast - once the app stops appearing on the front page I expect there to be a sharp decline in sales back down to the normal levels of one or two a day.

I think I should quickly mention the US sales. This is the largest app store market - and overall things have not been bad in the US. 1 or 2 sales a day, occasionally 4, nothing very exciting. So I'm trying a few strategies to try and improve exposure of the app. I've released a press release for version 1.3 using prMac. This did actually have an impact - 22 sales on the day the press release went out which has helped moved my app onto the first page of results for "Sudoku" (it was on the 4th page before!). I'll be monitoring the figures to see what happens over the coming days.

I've also tried some facebook ads - it's unclear what success they are having, but it's cheap.

As a bit of an experiment I've also tried to use Google AdWords - for iPhone apps this seems like a waste, basically people don't use Google to find apps for their phone, they use the app store.

Now for some conclusions:

  • If you're planning on quitting your job to make iPhone applications, take a look at the sales figures before the application was being featured in the what we're playing sections of the UK and Germany.

  • If you're doing it as a hobby then go for it. $1-$20 a day is not a bad return, I've really enjoyed getting emails from happy customers, talking with other developers, blogging random things about the app. It's a nice break from real work.

  • If you do hit the app store lottery and your app is featured or you get high up in the charts then you can make a nice bit of money - I don't think I'm going to be a millionaire though...

  • If you are willing to commit money to a sustained and focussed advertising campaign then you might also be successful. The main problem is that unless you can get enough sales over a long enough period to get your app into the first pages of the app store no one will know you exist.

  • Make sure you have a novel idea. I was kind of stuck doing a sudoku app as it's a good thing to apply image processing to, but there are something like 50 other sudoku apps out there - being noticed is hard.


Thanks for reading.

Sudoku Grab is on the app store for just $0.99 go and buy it now!. If you don't I'll have nothing to write about... Or don't buy it and I'll write another article about how my sales are really bad.

In the next week or so I'm hoping that my friend Magnus will write about his experience on the app store with his FICS app "Magnus' Super Online Chess" which is also available on the app store here.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Thursday 19 March 2009

What's planned for version 1.5

These two things didn't make it for version 1.4 so they'll now be in version 1.7


  • Quick pic and solve option - One of the reviews asks for a quick pic and solve option - I think that would be cool, if I have time I'll implement it, it may get pushed to version 1.7



I'm going to start looking at internationalizing the app. Italian, French and German are the initial target languages. Not sure how long this will take.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 16 March 2009

Famous!

In the UK and German anyway. I thought I'd capture this moment for posterity - and also because it might not last very long...



I really need to work on that icon!

Just checked the UK app store - Sudoku Grab is number 72 in the top paid applications! Unbelievable.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 13 March 2009

Version 1.3

This version is now live on the store. The instructions for using the app are still the same.

New to this version:
Undo button.
The reset button has been moved behind the menu.

Some errors in the text have been corrected (It now says "Current Game" instead of "Current Came" - I think my eyesight must be going.)

I've also made the email to a friend look a bit nicer:

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Thursday 12 March 2009

Version 1.2 is live!

I've received the email from Apple. Version 1.2 is now ready for sale.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Wednesday 11 March 2009

Sunday 8 March 2009

Update to the sales stats

I've updated the sales stats to include the past week.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Saturday 7 March 2009

Version 1.2 submitted to app store!

It was supposed to be version 1.1 but there's been a bit of screw up on the version number front - so we're going straight to version 1.2

In this exciting new version you'll find the following features:

  • Email a friend - you can now send puzzles to your friends using email!
  • Label captured puzzles - you can now tag puzzles with difficulty and any random text you want.
  • Solve button moved behind a menu - everyone's complained about hitting the solve button by accident. This version fixes that.
  • Automatic pencil fill-in - want to get going on a puzzle quickly? Fill in all the pencil notes automatically.
  • Toggle numbers - ready to really go for it? Hold down a number for more than a second and it toggles on, you can now fill in all the squares for that number just by touching them.

There's been lots of emails with suggestions for more improvements. Keep them coming! It's great to know that people are actually using the software. I'll update the roadmap to include them all tomorrow.

I'm off to the sofa now with some lemsip.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Getting Started

Click here to get to the instructions

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 6 March 2009

Oh dear god

I'm in the b3ta newsletter! Hello b3tans!

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Tuesday 3 March 2009

What's coming up in version 1.2 (was going to be 1.1)?

Here's a preview of what I'm working on for version 1.1 - NOTE this is now version 1.2 (slight screw up on the version numbering so we've had to jump ahead). If you have any comments then that would be great. I'm hoping to submit the next version this weekend - assuming I get some spare time.


Toggle numbers - if you hold your finger on a number for more than a second the number is toggled (a small checkmark appears on it to indicate this). You can now populate boxes with that number just by touching them. To clear the toggle just touch the number pad again.


Solve button menu - when you hit the solve button a menu now slides out giving you the option of solving the puzzle, or automatically filling in all the pencil numbers for the puzzle (this is really cool).


Captured puzzle info - When you capture a puzzle you can now mark the difficulty and also add user defined tags.


Puzzle Book - This screen will let you filter your grabbed puzzles by their tags.


List of puzzles - shows you the list of puzzles that match the tags your specified. You can scroll through this quickly to find puzzles that you want to play. You can also delete puzzles and edit the information about the puzzles.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 2 March 2009

1.01 is live

I've had the email telling me that version 1.01 is ready for sale. It should be in the App Store soon.

This fixes a couple of bugs that slipped through in the first release.

I've also optimized the puzzle location and number recognition to it should be a lot faster.

New features - obviously wrongly recognized numbers (that break the rules of a valid sudoku puzzle) now get marked in red.

I've been working on version 1.1 I'll post some interim screen shots tomorrow night.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Saturday 28 February 2009

App Store Reviews

If you like the app and think it's great (or if you think it's rubbish) I'd love it if you could write a review on iTunes.

If you really hate the app then please email me on sudokugrab@googlemail.com and let me know what you think should be changed/improved.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Japan

That new video that was posted on YouTube (available here) came from a Japanese website. Yesterday Japan went crazy. 46 copies sold!!!

I think I will start to internationalize the app - starting with Japanese!

Unfortunately the rest of world seems to have fallen asleep :( So no yacht yet.

Still waiting for version 1.01 to go live... Work has started on 1.1 I'll post some screenshots for review in the next couple of days.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Friday 27 February 2009

Reviews

So far the app has received two 5* reviews! - one in the UK and one in the US. Thanks so much for the feedback. It's great to know that people are finding the software useful.

There's a great site here that lets you see all the reviews for Sudoku Grab in every app store.

If you go here you can give it the url of any app and see the reviews. Very useful if your own app store doesn't have any reviews yet.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Tuesday 24 February 2009

Sudoku Grab in action.

These videos are all of version 1.0 but they still show the cool camera grab facility.



I thought the theme tune from Think Of A Number was appropriate...

Just having a quick look on YouTube and there's another video from someone else!



Does anyone read Japanese?

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 23 February 2009

Version 1.01 submitted to the app store

This fixes a couple of UI issues and addresses a crash bug that shows up occasionally. There is also a tweak to the puzzle location algorithm to improve performance.

Since I was making changes anyway I've rolled in the change to highlight obviously incorrect numbers on the number recognition screen that was scheduled for version 1.1

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Known Issues

If you are having problems with the latest version then please try the following steps:

  • Power off and restart your phone - this should resolve issues with taking photographs of puzzles

  • Uninstall Sudoku Grab completely and download it again - this should resolve any issues with the upgrade process not working as it should

If you have any problems then please get in touch and let me know.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Monday 16 February 2009

Road Map

I've split Version 1.2 into a 1.1 and a 1.2 release as it was starting to look quite big. Thanks for all the feedback.


  • Version 1.01 (Submitted to App Store)
    • Highlight obviously wrong numbers on the number recognition screen.
      If the recognised numbers don't correspond to a valid sudoku puzzle we should be able highlight the conficting numbers.
    • Change info page so that help is displayed as text and not in a web view (it's just too slow and memory hungry).
    • General Bugfixing.

  • Version 1.1 (development started)
    • Label captured puzzles with difficulty, date and source
      (Thanks for the feedback Phil)
    • Add a confirmation dialog to the solve button (thanks Lee).
  • Version 1.2
    • Email a friend - send a grabbed puzzle to a friend.
      Launch an email with the puzzle contained in url that will launch Sudoku Grab on a friends phone when they click on it.
    • General Bugfixing.

  • Future
    • Upload character training data and download new OCR
      It would be great if incorrect numbers could be uploaded to a central server to train a new OCR system that could then be downloaded automatically.
    • Update OCR system to correct errors
      If you identify incorrect numbers retrain the OCR system so that it improves over time.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine

Getting Started

Version 1.3 is now released. Please update the applications (updates are free). Then jump to here for the latest info.

Add To Google BookmarksAdd To Yahoo MyWebAdd To Windows LiveAdd To SlashdotStumble ThisFav This With TechnoratiAdd To Del.icio.usDigg ThisAdd To BloglinesAdd To AskAdd To FurlAdd To RedditAdd To Newsvine