24 November 2012

Heat Map Monkey

Way back in the day, I worked for a telecommunications company called Flowers Direct. The idea was to connect you, as close as they could, to a florist where you were actually sending the flowers. None of the mess of finding out they sent gladiolas instead of roses because they were out of roses that day ...

Not as useful in the Internet era and flat-rate calling, but this was back when Linux was being sold on card tables at the back corners of computer trade shows.

Learned a lot - like how zip codes and area codes aren't these semi-permanent things but change crazy fast, if viewed on a national scale. Or that there really are weird people who call up just to hear the automated voices speaking to them - and they will go down a line of pay phones as you block them off one-by-one. And I learned about marketing.

See, the marketing group at Flowers Direct was, essentially, the kiss-of-death. Everyone who had worked on that team was, in some way or another, forced out of the company in disgrace. Even the consultants weren't having a good time of it. And so, being the junior programmer and the junior employee - well, the marketing team needed a programmer, and I was going to be the sacrafice.

That's when I learned about the Census Bureau and their whacky statistics. And companies like Melissa Data, who aggregate it and a whole mess of other facts besides.

So I hatched a plan. If I was going to be driven out in disgrace, then I wasn't going to go quietly into that night. I was going to go out with a bang. I was going to correlate the data we had on our customers and produce the most far-fetched marketing plans that they'd have no choice but to conclude somebody had lost their sanity - and since I was the one with the data, it would be clear THEY needed the straight jacket.

"Sixty percent of the people who use our service have pools and guns," I would announce. "We need a promotional piece to emphasize firearm use and water sports!" They undoubtedly had visions of the skeet surfing from "Top Secret!" pop in their brains. "All of our customers our calling from the largest MSAs (metropolitan statistical areas) - we're losing the rural customers!"

They did not ask for these statistics. They did not want these statistics. And I made sure they really and truly did not want them. I would always tack one or two at the end of every report, every memo, and into every conversation.

I survived the marketing group. Sure - I eventually fell to the axe when the company hit bad times, but it wasn't because of marketing.

And then I read XKCD today


21 June 2012

Skylab Weather

The amount of orbital debris currently circling the planet is simply staggering. Of course most of it is in the paint-chips and urine-icicles. But, according to NASA, there are more than a half-million pieces that are between 1 and 10cm in diameter. Now, a lot of it will burn up if it reenters the Earth’s atmosphere, but there’s always that chance.

Is anyone old enough to remember Skylab?

In July 1979, after six years in orbit, the space station known as Skylab was de-orbited by ground control and aimed at a spot in the middle of the ocean. They missed. Skylab did not disintegrate as planned and, combined with other errors, portions of the space station struck Western Australia.

The TV show “Max Headroom” would later parody the fall of Skylab, with the falling of space debris a time of celebration and partying, with everyone wearing fanciful hats or carrying decorative umbrellas.

NASA had estimated the chances of Skylab debris hitting a human being at 1:152, with a 1:7 chance that debris would strike a populated city. The Orbital Debris Program Office official position is that modern-day orbital debris poses no significant risk to life or property; most of the debris burns up, and anything that survives is more likely to hit a body of water than land.

I sense a conspiracy theory possibility!

The same NASA office that tells us that there is no risk from orbital debris slamming into the Earth also readily admits that, on average, one piece of debris fell back to Earth EVERY DAY FOR THE LAST 50 YEARS!

I think it would be awesome to have an app for that.


  • Anything that supports a conspiracy theory sells. If you combine it with outer-space it sells even better. If it could potentially pose a direct threat, it sells better still!
  • It is the right combination of technical precision with abominable accuracy that directly appeals to geeks. Done properly, a good portion of geekdom will download the app simply for the nerd appeal


  • Niche hobby app - the app solves no real problems and isn’t likely to be entertaining after the first 5 minutes
  • If you don’t pull the debris catalogs and do real math, you’ll face a lot of negative comments. If you do, you’ll truly have wasted your time
  • For best results, the app is going to be graphics-loaded. A good app will be a tricky design

25 May 2012

-- --- -. -.- . -.--

So here is the first of the app ideas from that grab-bag-o-stupidity discussed in the previous entry. The title is your clue: write a Morse Code decoder!

There are a bazillion Morse-style apps in the app store, but I was only able to find one of them that decoded Morse Code (from the microphone, that is) into text. It's a fairly simple-looking app and it sells for $9.99. The ratings are either very high and very low - there are few ratings in the middle. There appear to have been only two releases, with the last one in March 2012 - in other words, you won't be fighting a massively entrenched player!

This is exactly the type of idea that is worth pursuing. If the user interface can be made to appear friendlier you'd certainly be able to steal some sales. And coming in at less than $9.99 would almost certainly get you some sales - you could go freemium by including ads and selling an upgrade to remove them.


  • Morse Code is well established and easy, so learning curve is not hard
  • The iOS devices include sophisticated audio capabilities that will make identifying tones and pulses easier than having to do all that by hand
  • Good portfolio app: it solves a real-world problem that even non-geeks can intuitively understand


  • Well motivated enemy: the established app writer is a Morse Code fanatic and no slouch with audio
  • Difficult to stand-out: the App Store is overflowing with Morse Code apps
  • Limited general applicability: more of a "neat-to-have" than a "must-have" or everyday utility

23 May 2012

Ideas Are Worth Peanuts ...

... a perfect setup for a blog post from a Code Monkey!

So periodically across the various iOS web forums various posters begin moaning about their lack of ideas for new mobile applications.  I have never understood either the point of these posts or the method behind them.  Yes, once upon a time I was a child who would bother my parents with cries of "there's nothing do" when there was truly a vast world open for experience not more than a few yards outside ... youth is wasted upon the young.  How can a person lack an idea for development?

Posting snarky responses to these complaints was always fun, but I'd usually also open up my grab-bag-o'-stupidity and throw out a few of the ideas contained therein.  True, some of them were truly useless, such as the shoe-sizer estimator app - snap a pic of your foot and it calculates your shoe size! - but perhaps a few ideas had merit.

I think the real complaint, never expressly stated, was that the original poster wanted an app idea as successful as Angry Birds and as easy to code as Tic-Tac-Toe (though other posters seem to have inordinate trouble with TTT too!).  With Tetris and PacMan already taken, though, I could only leave our angst-ridden posters disappointed.

And yet this idea that the IDEA is all-encompassing seems quite misplaced.  It's not - success requires hard work and there aren't any shortcuts.  Defining success as a $100B Facebook evaluation seems misplaced and pointless - that level isn't going to happen to a lot of people.  But success in terms of a good salary, a good life, and enough toys to stay happy?  Seems easy enough.

Of course, if there's an excessive valuation on the IDEA of the idea, then I'd be a foolish monkey not to capitalize.  As the stock market always teaches - there's bound to be a bigger fool out there somewhere (note: if you can't spot him - tag!).

So I've got about 50 ideas sitting here on my desk gathering dust.  That's easily going to make 50 more blog posts.  And with a few more days of thought I can push that number up to the magical 101 - and then I've got a book.

Heck, in my time I've bought more than my share of "101 Circuit Diagrams", "The Engineer's Mini-Notebook", "Make", etc.  It's rather embarrassing, really - shameful.  It seems to be a successful bandwagon, though - watch this monkey grab his cymbals and bang!

28 December 2011

Monkeying with the Pirates

So one of my main concerns with this latest update of Bakers Game is the cost. The marginal cost of a solution is practically zero - and so is its utility. This forces the cost per solution downward.

There are other considerations involved beyond a pure profit from Bakers Game, of course. As a technological demonstration it will be a nice feather in my cap. It will tie a lot of disparate programming elements together to make a nice personal challenge. I can use it as a geek shibboleth at parties. However the costs have to be kept down.

The main problem with costs will be piracy. Bakers Game has already been hacked and is available on various and sundry Chinese hacker sites. Some of them charge 99 cents up-front for the cracked version (sigh). If any idiot can download a cracked version and dump a boatload of solver requests against my EC2 instances my utilization spikes and my wallet empties. Securing the requests with encryption is pointless - it would restrict me to US and Canada sales only (stupid export restrictions), and the Chinese would simply drop some coin to acquire the key. I would see one sale and then a million solver requests.

So if the set { app , phone , user } cannot be trusted, there are only two things left to trust. I can trust myself and the servers I setup.

The user will purchase solution credits via Apple's In-App purchase. The app sends the receipt over to my servers - and my servers can establish their own channel to Apple to verify that the receipt is valid. If the receipt is valid the user is credited - and the credit amount is stored on my servers. Sure, the user gets a copy - but the official record is on machines under my control. The app then receives a randomly generated token from my servers for each purchase, and this token must be sent for any request.

What this means is that some enterprising hacker group will purchase solver credits and embed the resulting token into their cracked version. Anyone who downloads their cracked app, though, plays in the same sandbox as EVERY OTHER pirate. My problems are solved - I'm selling solution credits rather than unlimited access. The more pirates the faster the credits are expended for ALL of them. But it's also fair if one of the pirates opts to go legit - the purchase of credits generates a new token sent only to that phone!

More posts on the architecture will follow, but meanwhile ... keep coding!

18 December 2011

The monkey breaks the silence

So it's been quite awhile since the last post. Let's remedy that!

It's time to update the Bakers Game application. There were around 1,000 folks who downloaded version 1.0, which was absolutely fantastic for it being my first app. This has increased to around 4,000 for version 2.0 - with around a 65% conversion ration (updates from version 1.0). Interestingly, there are still some updates trickling in even today!

Upping the game brought bug fixes, more game boards, a cheat mode, and card animation. So it looks a lot like the other card apps out there no, except, of course, my app is still free and ad-less! And there are still very few solitaire games available that guarantee a winnable board. I find this strange, as it is not all that difficult to build such boards. I spent about $20 on Amazon EC2 - surely Big Company Inc can swing that!

So version 3.0 has to bring an even bigger change to the table ...


Let's be honest - there's more power in my 2nd generation iPod Touch than ever there was on a Commodore 64, but still nowhere near enough. Heck - there isn't even power on my 2.8 Core2 Duo except that I traded memory for speed - an option not available on a simple iPod, and not available even on the new iPad. However, there is an "always-on" Internet connection - and Amazon AWS services cheaply available.

The present planned architecture is going to use Amazon's Elastic Beanstalk to run the front-end processor, reserved EC2 instances for processing, SQS to move requests from the front-end to the processors, SNS so that the components can tell each other of jobs & solutions, and S3 as a backing store. The app will simply submit a request to the front-end, obtain an estimated callback time, and check back periodically.

Expensive? Hardly - the entire thing should weigh in at less than $100 per month.

Profitable? Hardly! All prices eventually get pushed down to just over their marginal costs, and the marginal cost of solving a board is INSANELY low. That said, I haven't run a market analysis so anything is possible.

DDOS attacks? Amazon should take care of that for me. It's doubtful anybody's going to start up their own EC2 instances to assault mine.

Piracy? Heh heh heh - bring it on! This one I've got solved - to the detriment of anyone using a hacked Bakers Game. I'll post more on this one because I think it's an excellent Akido throw to be executed in software.

Time to start coding ...

21 April 2011

Why would pirates steal a free app?

The refresh of Bakers Game Solitaire was released Monday evening.  By the very next day, Chinese hackers tore into the code, hacked it, and posted it on their site.  No - I'm not linking to it.  It's easy enough to find, if you want to pay the hackers $1 for my app.

The pirates' web site is, at least, amusing:

• "You may only download this app for evaluation purposes" - because you certainly wouldn't want to evaluate the free and legal version
• They prominently display my name - free ads for me
• They provide a convenient link to my app on the Chinese iTunes App Store - more free ads!
• And, apparently, it's not only English where they have spelling problems - h4x0rs sux!

My app download numbers are up, too.  Part of this may simply be the refresh and some chatter, but I think I also have to credit the pirates.  I don't read and write Mandarin, so their conversion of my English into Chinese is most welcome.  The pirates are building a buzz around my app that I would ordinarily have to pay decent coin for.  Hey, this app is worth stealing!  Even though it's free with zero distribution costs - it's still worth stealing!  The hackers are even paying for disk and bandwidth!  Whoo-hoo!

Now I'll freely admit I placed no anti-hacking / anti-piracy code in my app.  So cracking Bakers Game is a task easily done by the greenest of code monkeys.  But consider this - the time they wasted on my app is time they didn't spend cracking any other app.  Without any anti-hacking code, there's nothing there for the hackers to learn from.  It was nothing but a giant time suck.

At the end of the day I have more downloads, an amusing blog post, and I've delayed the pirates' hacking of other apps and content.  God I love winning!

Keep coding!