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.

Pros:

  • 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

Cons:

  • 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.

Pros:

  • 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

Cons:

  • 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 ...

*** SHOWING YOU HOW TO WIN! ***


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!

15 April 2011

The Waiting is the Hardest Part

It was 11:00 PM on 8 April that the refreshed Bakers Game went to Apple for review.

It is still awaiting that review.

Fortunately I've managed to keep busy.  I've identified a couple of ideas for new projects and selected one. I've pulled down the data necessary for it.  I've got some code written, and the code has spawned newer ideas.  One mega-project has now suddenly morphed into two mega-projects.

And still I find myself refreshing the "Waiting for Review" page.

It's not like this is my first rodeo.  I had one app take two weeks from submission to publication.  I've witnessed apps from other developers taking months.  One week is nothing.  It's a feeble drop in the bucket, especially when you see hundreds of apps going live every day on the App Store.  You just know your ticket number probably resembles this year's deficit figure.

BRB ... nope, still "Waiting for Review".

I've a ton of work to be done on my advertising campaign for Bakers Game.  I've got copy to write, I've got reviews to solicit, I've got to select my targets, and I've got to finalize my budget.  If Apple suddenly approved my app today I would be woefully unprepared.  It's not a bad thing they've taken this long; I've been very bad about getting my stuff together!

There just aren't enough hours in the day to get everything done.

But there sure would be more if I wasn't "Waiting For Review".