The Beauty of &&

WIJL: IOS Memory Management

Apps I Liked, 2011

Again in the “better late than never” category, here’s a list of apps I enjoyed in 2011.

Apps I Used The Most

  • Google Docs – I link to this on my home screen from a safari bookmark.
  • Feedler – a great google reader client for both iPhone and iPad.
  • Rhapsody – a music subcription service, the killer feature here is the ability to download tracks for offline play.
  • Wikipanion – the best iPhone/iPad wikipedia app.
  • iLoader – this makes bulk uploading photos to facebook albums easy.
  • Facebook – of course.
  • Camera+ – a great well-rounded photo application for cleaning up or dirtying up your photos on the device.
  • IM+ – a great IM client for multiple services such as Google Talk and AIM.
  • Amazon – of course.
  • Music Roulette – not just a personal advertisement, I truly developed this to do something I wanted: to rediscover my favorite old music that I always forget about.

Apps My Wife Used Quite A Bit

  • Groupon – pay $10 to get $20 worth of food at restaurants, a great way to discover new places to eat.
  • Runner’s Interval Timer – not only was the app developed for my wife, she uses it too.
  • Quarrel DX – the classic Risk game meets a “spell something fast!” word game.
  • TumbleOn – Some of my favorite moments of 2011 involve hearing my wife consistently giggle while she was browsing photo lolz with this app that my friends and I made.

Other Apps Worth Mentioning

  • 8mm Vintage Camera – a really cool old-style video shooting app.
  • PictureShow – another great photo app, this one leans more toward the “dirtying up”/trashing pictures style.
  • iDarkroom – this photo app seems to clean up images rather nicely.
  • Beat wave – a great little procedural music maker.
  • GarageBand – I can’t believe I can record music with my iPod with this.
  • Yelp – we use this all the time to figure out if places are good to eat at, or if a handyman is any good.
  • Cloudcam – a great “web camera” app that made it easy for us to monitor a sick kitten this past year while at work.
  • Flixster – the best app to see what’s in theaters now, in the future, and whats coming to dvd.
  • Netflix – of course.
  • Photosynth – a really cool 21st century “you are living in the future” type app that lets you take a 3d photo of your surroundings and lets you look through it in 3d too.

iPad Games

We bought the iPad this past year and ever since, I’ve been less inclined to play games on the iPod touch at all. I’m tired of playing games where my thumbs cover half of the game I’m trying to see. Many of these apps are “Universal”, which means the app works on both the iPhone and the iPad, but the game experience is better on the iPad.

  • super crate box – this game is an amazing mix of the original mario brothers arcade game with guns. The whole thing works because your score is not based on killing enemies, but instead it’s based on how many boxes you can collect in the level without dying. You can play the PC version for free to try it out.
  • Age Of Zombies – a twin-stick-shooter/robotron clone from the makers of Fruit Ninja, truly one of the best in the genre.
  • Mega worm – a Deathworm clone done in 8-bit retro style.
  • Globetrotters – a great multiplayer game where up to four people control these little spacemen trying to mine treasures out of planets and racing to grab the treasures when they fly into space.
  • Siege hero – angry birds clone with a first person perspective.
  • Eternity warriors – another twin-stick-shooter/robotron clone, this time with a diablo theme.

iPhone Games

  • Pathpix – totally an OCD puzzle game, reminds me of picross.
  • Meteor blitz – Super Stardust HD clone on the iPhone.
  • Jetpack Joyride – a great little timewaster from the people who made Fruit Ninja.

Port Games

Last, some games that have been ported from other platforms to the iPhone/iPad in the last year. Great games, now portable, and inexpensive. All of these are not-as-awesome as their big brothers from real consoles, but for on-the-go portable play, they’ll do.

That’s it for the 2011 lists. Next time we’ll talk about something a bit more interesting.

Music To Code By, 2011

A bit late with the ‘best of’ 2011 lists.. but better late than never. This is a list of some great music that I listened to in 2011.

There are different modes of coding, sometimes you need absolute silence, and at other times a loud coffee shop is the way to go. I personally code quite a bit while listening to music and/or watching netflix. I find there are different coding ‘moods’ from time to time, and differing moods require differing types of music.

Standard Nerd Stuff

It’s probably best to start with something that has at least a little nerd cred to it, and work our way down the awesome scale from there.

Just before 2011, the movie Tron Legacy was released by Disney. Daft Punk did the soundtrack to the movie, and it is phenomenal. When you come back up for air after a month of listening to the soundtrack on repeat, try the also-amazing remix album that features remixes from many popular dance/techno artists.

Along the same lines as Daft Punk, my buddy John Quarles and his friend Tim have started a whole new chiptunes genre called “chipsurf”. Chipsurf is chiptunes backed by surf-style guitar, and it is awesome. Listening to these guys is both nostalgic and gripping, the 8bit throwbacks remind you of the best days of NES music, while the guitar lines attach a new sense of melody and movemnt to the genre. Tim and John’s project is called Victim Cache. At the very least, check out the tune Tsunami Gaiden.

Something a bit more laid back

If you liked the Tron Legacy Remix album mentioned earlier, one of the tracks on there is a remix done by M83. M83 is a one-man electronic band with a definite pervasive relaxed theme. This year M83 released a double album entitled Hurry Up, We’re Dreaming. The single from the album to check out is Midnight City.

Another easy-going electronic outfit full of awesome is Healamonster and Tarsier. Their album Cupcake Cave is sure to soothe the soul and get you back to where you need to be.

Along the same lines as H&T is Ulrich Schnauss. I spent a fair amount of time this year listening to his Goodbye and A Strange Isolated Place albums. The track that will sell you is In All The Wrong Places.

Post Rock

I’m a big fan of the post-rock genre of music. My favorite tunes as a kid were always the prog-rock/alt-rock songs that started sweet and quiet and ended with a loud cathartic crescendo 7 or 8 minutes later, and post-rock is ALL about that type of song architecture. If you’re not at all familiar with post rock, do check out Sigur Ros’ album Takk, as that album is the pinnacle of the genre.

In 2011, I listened to Jonsi’s (the singer from Sigur Ros) solo album, Go. I also listened to Mono’s Hymn To The Immortal Wind for several days on repeat. And lastly, but certainly not least, I could not get enough of Saxon Shore’s Luck Will Not Save Us From A Jackpot of Nothing EP, and their It Doesn’t Matter album.

Noise

If the chaotic coffee shop while highly caffeinated is the the appropriate mood for focus, the following three albums will fit the bill at home with volume cranked to 11.

First, 65daysofstatic makes this chaotic noise “mathrock” stuff that’s really hard to pull of in a way that’d hook a listener like me who prefers melody. But that’s just it, the band has a magic touch when it comes to weaving absurd electronic drum progressions beautifully in between truly moving melody. Listening to a 65daysofstatic album is like being wound up for a heart attack and then dropped at just the moment before you itch to turn the music off, over and over. It’s amazing. The 65daysofstatic albums that pulled me through 2011 coffee shop type days were their incredible One Time For All Time album, and their 2010 release We Were Exploding Anyway.

If straight-on heart attack of bewilderment is not exactly what you needed, Broken Social Scene may be more fitting. I learned about Broken Social Scene from the great Scott Pilgrim soundtrack. There’s this really weird but oddly catchy tune on there from the band. It turns out Broken Social Scene is a musical collective that has a constantly rotating cast of characters. For example, the lead singer from Metric appears on a track or two on some albums. Broken Social Scene’s music is basically a chaotic jam session put to tape. The opening track to their self titled album sounds like three disjoint jam sessions coming together as one in the span of a few minutes. It’s not heart-attack high-BPM madness like 65 days, but it’s not verse chorus verse either. It’s odd, and usually laid back, but it’s always chaotic, or perhaps, disjoint. The two Broken Social Scene albums that held my attention this past year were the self titled album, and You Forget It In People.

Lastly, an oldy but a goody that seems to just automatically come out on my coffee shop chaos days now: Nine Inch Nails’ instrumental Ghosts album. If you liked the social network score at all, you’ll love Ghosts. Ghosts is 2+ hours of the social network type music, with more bite, and of course, enough random change between beautiful quiet melodies and maddening walls of noise. Chaos as art at its finest. Don’t knock it till you try it, it’s not industrial mope-pop, at all.

Mope Rock

All that being said, I didn’t get into Nine Inch nails at 16 for their instrumentals, and for those baeurocratic work days there’s an appropriate genre, mope-rock. I’m 30 now, and listening to mope-rock at this age can be downright embarrassing from time to time, but we’ll save real embarrasment for later on. This year there were a few albums I listened to that made the the-world’s-not-quite-right genre a still-wearable badge of honor.

First, the obvious, The Paper Chase’s Someday This Could All Be Yours, Volume 1 is a must listen. My wife and I *loved* their Now You Are One Of Us album and have listened to it for years, but it took a rhapsody subscription for me to do what I knew was right: give this album a spin. Man. It’s as awesome as anything else they’ve ever done, which is saying something. The Paper Chase is like spooky/horror story lyrics over wall-of-noise guitars making sounds guitars don’t make, all carried along by killer drum/bass & piano. The theme of this latest album is natural disasters, one per song. The lyrics are equal parts bleak and beautiful, as are the songs. A straight punk “we don’t give a shit how it sounds” progression leads into a full on orchestra with lump-in-the-throat melodies intertwined, and back again. This is a band that knows how to pull you up and over whatever blah blah you’re getting around to facing, and makes you feel good about the entire process.

Next, something a bit more pedestrian in terms of mope-rock/pop-sadness. Linkin Park’s 2010 album A Thousand Suns is *really good*. Like, you may not be embarrassed for listening to their back history good, it’s that good. I never really enjoyed the band’s early couple or three albums, but their Minutes to Midnight album from a few years back surprised me and showed promise. This one, A Thousand Suns, shows the promise fully realized. The album’s a concept album of some sort about a nuclear holocaust and the aftermath, or something like that. It opens with a chilling sound byte from Oppenheimer talking about the moment trinity succesfully detonated, and then leads into song after song that flows up and down intertwined beautifully. Reviews for the album said it reminded many of how public enemy albums sounded, which makes me want to check out public enemy sometime, it’s that good ๐Ÿ™‚

Last, the king of mope rock and sad songs, my friend Greg “The Shark” Shark released a solo album this past year. Greg and I spent many hours in high school listening to The Fragile, everything Deftones, and way too much Radiohead. Radiohead’s influences show the most on Greg’s solo effort, particularly on the Lament For Wolves track. If nothing else, check out The Fall, I lost days of my life in 2011 listening to that track on repeat, vowing for hours to “stop after just one more listen”.

Remasters

You know you’re a full-on adult and “old” when your most cherished albums are being remastered. This can have good, bad, and who-cares effects on your precious memories. It’s kind of a roll of the dice, honestly. In past years U2,The Cure, Pink Floyd, The Beatles, Nirvana and even Weezer have released remastered albums. The albums are occasionally “deluxe” sets, so you get some rare/obscure b-sides or demo tracks along with the remastered album, so that can be cool. In the cases listed above, I never listened closely enough to the originals to notice a true difference in sound on the remasters. That’s not to say it isn’t there, it’s just that Pink Floyd has been remastered twice every five years for the past 2 decades, so any variance at all is just too small to notice to me.

Anyway, there are some remasters I’d highly recommend.

Pearl Jams VS/Vitalogy remaster package is fairly amazing, for the VS remaster alone. I remember when VS came out there was quite a bit of news hubbub about it selling pretty well, against predictions. Now that the remaster is out, you can really tell that the record company didnt pour a lot of money into VS the first time around. I never thought of VS as muddy or lacking definition and edge, until I heard the remaster. Some of the better-mixed record-label-money single type songs don’t gain much from the remaster, and WMA in particular seems to suffer a loss of dynamic range to me, but the other tracks being brought up to par makes it all worth it. Pearl Jam’s first album, Ten, was also remastered recently, but I havent checked it out yet (I can’t stop automatically putting VS on :)).

The Smashing Pumpkins also put a couple of amazing deluxe/remaster packages out in 2011 for Siamese Dream and Gish. Both packages include a dvd of a live show from the era, and a second disc including a number of bsides and previously unreleased material. The “Starla” remaster on the Gish package bonus disk pretty much made my year in music, as that’s one of my all time favorite songs ever. Remaster-wise, Siamese Dream shows very minor improvements here and there, much like Nirvana’s recent Nevermind remaster. This is unsurprising as Butch Vig apparently knew what he was doing on the pre-master mix and polish in both cases. Gish shows a lot of improvement though, so much improvement that it’s on my radar for the first time really, the old production was that crappy to me. I’m really looking forward to the Pisces Iscariot, Mellon Collie, Aeroplane, and Adore remasters coming out in 2012.

Pop

Sometimes all you need is a catchy tune, or a nice album full of catchy tunes, and I found more than a few worth at least a listen.

Death Cab For Cuties’ Codes and Keys is a great album to get your day started, and the Naked And Famous’ Passive Me Aggressive You delivers a great pick-me-up when food coma hits around 3pm. Alternatively, the Cults’ self titled effort is a great light-hearted collection of tunes all the way through.

If you liked The Postal Service, definitely check out Owl City. Both of his albums (Ocean Eyes, and All Things Bright And Beautiful) feel like the spirit of The Postal Service with a bit more upbeat optimism flowing throughout.

Finally, if you enjoy the SNL digital shorts from Andy Samburg’s Lonely Island supergroup of comedy, then you really *must* check out 3oh!3’s Streets of Gold album. I can’t tell if these 3oh!3 guys are serious frat-pop or if they’re a satirical comedy troupe, I hope they’re serious, because it makes the album that much more funny. That being said, their tracks are really catchy, fake or real, you’ll feel a bit embarrassed to give it a listen, but you’ll be back listening again and again no matter how silly it seems.

That wraps up the memorable music for my 2011. Next time I’ll cover a list of iPhone and iPad apps that I enjoyed last year. Until then, happy coding, or spreadsheeting, or whatever it is you do.

Runner’s Interval Timer 1.5

Runner’s Interval Timer 1.5 was released a few weeks ago. It contains a few new features worth mentioning.

The most exciting new feature is the music playback controls that were added to the bottom of the interval timer screen, as show below.

These playback controls make it easy for you to skip tracks, or pause/play your music while working out.

The second big feature is backgrounding support. Now you can jump out of the application and change music selections or whatever you may need to do, and the interval timer keeps on keeping on. You’ll even hear the interval change sounds while the application is sitting in the background.

Our new video of the application demonstrates the new backgrounding functionality:

Finally, I added one of the features that the great MacLife review suggested. Now there’s a setting that allows you to choose if you want your music to pause when interval change sounds are playing.

I hope you all enjoy the new features, and please do let me know if there’s anything else you’d like to see added to the application.

Midnight Ramblings: The Taj Mahal

A few years ago, there was a big cross-organizational management summit, and my division’s director was the host of the event. The whole point of the summit was to exemplify and foster cross-division collaboration, which was rare in the company (rare in any company of size, really..). Our division director purchased a massive 6,000 piece lego set of the Taj Mahal for a team building exercise during the multi-day summit.

That’s all I knew to be true about the summit. I was a grunt, not first line management or higher, and certainly not middle-management or director level, so I was not invited to the summit. I had to deal with the results though, and they were not good.

The Taj Mahal team building exercise lasted only an hour or two, and that was not long enough for 30+ managers to get on the same page, more or less. What resulted was a great foundation to the Taj Mahal, with about 1000 pieces of 8 varieties put together. But, more than 5000 pieces were left in an unsorted mess, and for a team building exercise of 30+ people, the Taj Mahal’s progress looked more like an omen than a bright start to a bright future of collaborative bliss.

The resulting mess was placed on a small table within ear shot of my cubicle in the office, with anyone and everyone invited to help finish the project. For several weeks, my cube neighbors and I would hear perhaps 2 or 3 people per day come by the Taj Mahal table, sort through legos idly for 5 to 10 minutes, and leave.

At one point I overheard a conversation between two engineers putting the bricks together, they were frustrated that it was taking so long just to find the “one” piece they needed. They too gave up within 5 or 10 minutes, leaving more frustrated than they began.

A few days later an out-of-town engineer with a love for legos spent several hours on the Taj Mahal while waiting to leave for a delayed flight. He left the table a bit dejectedly, frustrated that he’d put less than 100 pieces together after a couple hours of effort.

At that time in my career I was running close to burn-out. When you’re a software engineer who works best in quiet without distraction, and you’re running close to burn-out, hearing thousands of lego bricks being pushed around day in and day out starts to get on your nerves. When you’re an engineer, and something starts to get on your nerves, you naturally try to solve the problem.

After hearing the visiting engineer leave for his flight in frustration, my first instinct was to type up a rash email and send something to our division director pleading for him to trash or move the Taj Mahal. The project wasn’t helping anyone who came near it and it was certainly annoying several of us who sat near the disaster. Instead, in a rare display of self-control, I decided first to gather evidence about the disaster before starting to type my smoldering complaint.

When I went to look at the Taj Mahal table I was immediately self-satisfied. The project was even more of a mess than when it landed outside my cube. I couldn’t wait to email the director, but I thought I’d better make some sort of contribution to the “move this!” complaint before sending the email, better to be a part of the solution than just a complainer, right?

I started placing various chunks of the Taj Mahal that were composed of 10 or 50 pieces into some boxes, and dumping 4 or 5 small boxes of 4500 unsorted pieces into one big box to tidy things up a bit. All the while I was mentally debating the zinger to include in my email, was “I’ve already packed it up to be moved to storage and forgotten!” too harsh?

In the midst of that minor OCD organizational effort, I lost myself.

As I moved these minor partially-completed chunks of effort around I noticed that several of the chunks just needed one type of piece on them, a common type. That’s where it started, I started searching for just that type of piece, every instance of that piece, and put them in a little pile to the left.

I had one piece completely sorted in only a few minutes. Then I stopped to think. I did a rough count, there were only 50 or 60 types of lego pieces in the set. A quick mental estimate told me I could sort the rest of the pieces in an hour, so I just kept sorting.

While I sat there sorting the legos I started laughing to myself, inventing a story of how the Taj Mahal project is just like any software project. The story went something like this:

Here’s this Taj Mahal lego set, a 6000 piece puzzle that 30 people were given 2 hours to solve. They solved perhaps a sixth of the puzzle in that time. Since that time, perhaps 30 engineers have invested a further 5 to 10 hours making even less progress than the original 30 leaders. Isn’t this so typical and familiar?

Wouldn’t it have been fun to be a fly on the wall watching the 30 leaders try and sort things out? Did a few leaders burn the entire exercise attempting to establish dominance, placing themselves in charge of several others? Did other leaders perhaps declare a certain chunk of the project their own and competitively set their tunnel vision on just making their piece be finished first? Were there a few more leaders who were just there to chat up their peers and didn’t really care for the project at all, idly sifting through the sands of lego pieces, seeking a gem?

Did any of that matter? Shouldn’t 30 accomplished adults be able to sort a puzzle with 50 piece variants in a couple of hours? Perhaps, but unsurprisingly, the result was a somewhat decent basic direction (the foundation) with pseudo-sorted bags of pieces strewn here and there among thousands of other pieces haphazardly tossed together in big boxes.

“Let the engineers sort it out.”, right?

And what of the engineers? Spending perhaps 1/6 as much time as the leaders on the project, with not much progress made to build or sort the problem. Were the engineers at all interested in seeing the project have progress? Was the problem space so dauntingly large that few even attempted to sort a piece here and there? Had some engineers sorted pieces one way, while others dismantled that work in favor of another half-completed sorting scheme?

Had ANYONE stepped back from the problem for 5 minutes, looked at it from another angle and thought to attack the primary problem in any project: getting the pieces sorted out? Surely someone else thought of that direction, right? Was that plan stifled in political bickering, or some other lack of harmony? Were the tunnel-visioneers mucking up everyone else with a scorched-earth policy of single-focus, leaving piles of disorder they did not care about in their wake?

Who was going to win the prize when the project was finished? And who was going to win when the project was a demotivating disaster for engineers to stare at for weeks afterward?

At the calculated rate of 70 hours (30 leaders x 2 hours, 10 hrs x 1 engineer) per 1500 bricks put together, the remaining 4500 pieces certainly was daunting. In fact, if it was going to take 200+ hours to finish this, it may never have been finished at all.

How much faster could the Taj Mahal project be finished if someone (me) put some serious effort in to evaluate, replan, and dig the project out of a ditch? Would an hour or two spent sorting all of the pieces, all of the infrastructure to building the project, make the project complete faster? Or would my time just be a waste, with the finish still taking 200+ hours to complete?

As I’m sitting here sorting this mess, I empathize with those who came before me, those leaders and engineers who bowed out in frustration. 4500 legos is a LOT of data to sort, especially when you take a brute-force approach of picking a piece at random and placing it into the correct pile, or worse: simply discarding it if it’s not the one you want. I almost gave up immediately using that method for sorting, with the same 5 or 10 minute level of effort as others, but before I gave in completely I thought for a moment.

I took a moment to do what it seems none of us have done, I pulled back from the basic goal of “sort as fast as possible” that was leading to universal burn-out and failure. Instead I re-evaluated the situation and refocused on a new goal: “break this down into something manageable.”

My solution isn’t rocket science. I dumped all 4 large boxes of pieces in one big pile, designated one box as x-small, another as small, .. medium, large. I was able to sort 4500 pieces into these classifications in less than 10 minutes. Further breaking a given box into 15 little piles per box was much easier than trying to constantly recall 60 piles for any given piece I picked up at random. *This* is the secret sauce we’re missing in this project.

We’re so concerned with where we stand, or how much fun we’re having, or an approaching deadline that we’re not putting in the time once in a while to step back from our projects and products and look at the big picture. We’re not taking time to invest the painful, and by all appearances wasteful, extra couple hours to regroup and figure out the best way to attack the problem. Instead we rush toward a deadline, descoping, throwing our hands in the air claiming the project will never come to completion, all the while holding tightly to our established “that’s how it’s always been done” processes of picking a piece at random and seeing if it fits, then throwing it back in the pile if it does not.

This should change.

Two hours later (classic estimation skills on my part, recall that I mentally ballparked an hour for this sorting exercise..), every remaining piece in the set had been sorted into separate piles, bags, boxes, etc.

Instead of emailing my story or complaint to my director. I emailed the story to a fairly wide distribution list in our organization and included not only our director, but our VP as well.

The next day, I went on a one week vacation, and when I came back, I learned that the Taj Mahal was completed in less than 10 additional man hours, in one week.

The VP spread the email around to his other reports, our director did some damage control, my front-line manager simultaneously praised my story while cautioning for perhaps warning him and letting him proof read anything I intend to cc our VP on.

Others emailed saying they loved the story, and some used my soap box as a vault for their own tangental agendas. All in all, I hadn’t been fired for speaking up and it felt good to know my fellow engineers, and even leaders, empathized and agreed with me.

One reply in particular stuck out. One of my cube neighbors responded to me providing a perspective I had not even considered: He said that he himself had spent a couple of hours wading through the sands of bricks, and that he found it soothing and almost zen like to approach the problem in that way.

His response made me think a bit more about the Taj Mahal project and the similarities to software product & software company development. Though bright engineers with an OCD edge may be able to efficiently bring a project into focus, it is still vitally important to have bright engineers with the zen edge on your team as well, because otherwise, your OCD guys will suck out all of the fun and perspective. ๐Ÿ™‚

In the real world, software products have deadlines to hit. Without a ship date in mind, you can’t synchronize other dependent products, or the marketing machine, or much of anything. Further, in a company with any amount of history behind it, you’ll have established ways of doing things. Often established norms have champion employees who invented or inherited ownership of the concept at hand, and changing those norms is not a simple process.

Introducing change and a breath of fresh air to the way things are done can be an uphill battle. Fostering cross-division collaboration takes time (years, not days), and digging yourself out of a hole takes considerable investment of both time and money. Working with and against champions of outdated norms can take forever, but the good news is that there are a lot of very bright engineers on your team, some of the OCD variety, and some of the ZEN persuasion. Good engineers have an innate “moral/ethical/analytical” compass that guides them towards making things better and more efficient. Sometimes all you need for positive change is to take a little time or freedom to think about the bigger picture goal and find a different angle of attack.

Idea to iPhone Product, App Promotion

In my last post (Idea to iPhone Product, The Last Mile), I covered the ins and outs of pushing the final build of your application to the app store. That process will take anywhere from 1 to 2 months. That downtime will be a great timeframe to start up your promotional phase, if you haven’t already.

I strongly recommend that you pick up a copy of the The Business of iPhone and iPad App Development: Making and Marketing Apps that Succeed book by Dave Wooldridge and Michael Schneider. The book contains a wealth of beginners information on branding, marketing, and the like.

The book recommends different ways to get what you want from marketing: interest. It’s easy to put your app out there and spam your friends, family, and the whole wide world on Facebook, Twitter, and so on. It’s easy to build great feedback mechanisms into your app that encourage users to contact you, tweet about your app, share your app with others via e-mail, and review your app. What’s not so easy is getting traction.

Most successful software products are not an instant/over-night success, and app promotion is kind of gambling situation, so the easiest way to gain traction is to improve the odds in your favor as much as possible. That is, you want to promote your app in as many ways as possible. Really marketing the app takes time and dedication.

At a bare minimum, I would recommend that you create a website for your application. Go register for a nice domain name for your app and/or company on godaddy, and find yourself a web host such as dreamhost. Then create a website, from scratch if you prefer, or better yet, build something beautiful easily with a great CMS like wordpress.

Next, make it easy for users to contact you. Users are less likely to give your app bad reviews if they can easily figure out how to contact you from within the app itself, so setup a support email address and build easy feedback functionality into your app. When your users email you to suggest features or report a bug, email them back as soon as possible with a personal message thanking them for reaching out to you. Fix the bugs fast, and email the user back when the update ships, again letting them know how valuable their input has been toward making your product better.

Next, make a video of your application, and link to it from your website, app description on the app store, and app’s help screen. This 1 or 2 minute video will be the major selling opportunity for your app to potential buyers and reviewers.

With the website, email, and video in place, your next step is to promote the app by submitting it to websites that review applications. Prepare a press release detailing what your app is, how it’s better than the competition, and provide links to your website, your app video, and your app’s app store listing. Mention in your press release that promo codes are available upon request for lesser known websites, and go ahead and give promo codes to the big sites.

Promo codes are codes your users can use on the app store to get a free copy of your application. You can obtain them through the iTunes Connect website. You only get 50 promo codes per app version, and each promo code expires in 28 days, so be prepared to provide larger sites with another promo code later if/when your app makes it through their long list of apps to consider for review.

Don’t forget to give promo codes to your friends, family, and beta testers. Tell your fellow developers, designers, friends of friends, etc about the app and always give the promo codes away freely. The network effect of one person enjoying and talking about your app to their friends is worth more than $1.50 in app royalties that you may get if your friend pays.

The next level of free/easy promotion is the social networks. Open social network accounts on Facebook, Twitter, and so on. Make a Facebook page for your company and/or App, and make a company twitter account. Search twitter for people having problems with a competitors app or for people looking for an app like yours, and directly tweet to them about your offering. If the user expresses interest, give them a promo code so they can have your app for free (and, hopefully, tell their friends and family about it).

Finally, if you have the funds, you should consider paid advertising avenues. Look into google adwords, or advertising opportunities on community websites for your target audience. There are a few magazines with an iPhone/mobile focus, these are also great advertising mediums.

Promoting the app beyond these easy steps will be time consuming, be sure to keep touch with app review websites each time you release a new update or feature for your app, and continue to find other ways to promote your app and get the word out.

With the right promotional avenues in place, your app should be set up for success. Success may come quickly, or perhaps slowly, or maybe not at all. What’s important is that you make your app’s information easily available and accessible for your next customer to find.

In the next article in this series, I’ll cover a wealth of resources for iPhone and iPad development and app promotion.

Idea to iPhone Product, The Last Mile

In the last post in this series, Idea to iPhone product, a brief howto, I covered the basic information you’ll need to get from a basic idea to a 1.0 product ready for app store submission. This post covers the “last mile” from the 1.0 build to your app being listed in the app store.

Simply put, you’ll need to do the following:

  1. Form a business.
  2. Create a business bank account.
  3. Create your apple developer account.
  4. Upload your app.
  5. Promote the app.

Each of these steps from 1.0 to “go” will take a bit of time, so prepare yourself to hurry up and wait.

Step 0: Get a Lawyer, And A Tax Guy

Before you start down the path to starting your business and figuring out how you think taxation will work for you, do yourself a favor and find a real lawyer and a real tax guy.

You can save a bit of money by educating yourself before you meet with the lawyer and the CPA, but books, friends, and even this article are no substitute for a professional’s advice.

Step 1: Forming A Business

You can make a Sole Proprietorship, a Limited Liability Company, a Corporation, or a variety of in-between type business structures.

You may consider a Sole Proprietorship if you’re alone in your business, but beware that that type of business structure makes you personally liable for issues with the business. If the business goes bankrupt or gets sued, your personal assets are up for grabs, even personal assets totally unrelated to the business such as savings, houses, cars, etc..

Limited Liability Company business structures are a step above Sole Proprietorship in terms of liability. An LLC make sense if you’re worried about personal liability, or if you have a few business partners going in on the business with you.

Finally, a Corporation is a business structure in a wholly different league above LLC. There’s a bit more paperwork, formal meetings, and hurdles with a Corp than an LLC, but if you want to have stock or eventually sell the company, a corp looks better than an LLC, or so I’ve heard.

Choosing your business structure will be difficult without doing some research. I highly recommend the Form Your LLC book by Anthony Mancuso (an Attorney). The book helps you understand the difference between Sole/LLC/Corp and greatly simplifies the LLC formation process for you.

No matter which business structure you go with, you’re going to do some or all of the following:

  1. Write up some organizational contractual papers.
  2. Get your contractual papers notarized (Apple may demand this later..).
  3. File some paperwork with the state to form the business.
  4. File some tax paperwork with the state.
  5. Pay the state fees for the formation. ($300 in Texas for LLC).
  6. Sign up for a FEIN (Federal tax identification number).

You may not be required to do all of those steps. For example with an LLC you’re not necessarily required to write up contractual organizational papers and have them notarized, but if you don’t, your company will be subject to state law defaults should any court case arise.

You also may be able to get away with using your SSN instead of signing up for a FEIN, but it feels a bit safer to be giving various companys a FEIN rather than your personal SSN when you can.

Forming your business is not a one-shot deal, once you’ve formed the business you’re going to be required to behave like a business should. You will need to keep capital account ledgers, write down plans and meeting minutes, comply with any federal and state tax legislation that a business must fulfill, and more. That LLC book, Form Your LLC, covers these topics in detail for LLCs.

Furthermore, you’ll need to hang on to any and all paperwork associated with the business, such as forms you received from the state, and so on. Banks and Apple will want you to email copies of those things later.

Step 2: Acquiring A Business Bank Account

After the state has acknowledged formation of your new business, you’ll be able to open a bank account. An important rule of thumb for businesses is to keep business funds separate from personal funds. This simplifies accounting on your part, and is simply a basic rule of running a legitimate business.

The establishment and type of account you’ll sign up for will depend on your needs. For our LLC, my pocket sized giraffe partners and I did a bit of research. First, we discussed what we wanted and needed from a bank..

Our basic criteria for our bank account were the following:

  1. We needed a FDIC insured bank.
  2. We needed a checking account with a debit card to pay Apple and others.
  3. We did not need or want any savings, credit, or investment accounts.
  4. We wanted online banking, as well as brick and mortar stores (because our personal banks charge way too much to wire-transfer to online-only banks).
  5. We wanted to minimize banking fees.

We found that Bank Of America suited our needs, though Wells Fargo was almost identical in its offerings. With BOA, we have a business checking account with zero fees as long as we have more than $3,000 in the account. The account came with a debit card, free online banking, FDIC insurance, and everything else we wanted.

Signing up for the account online was easy. We filled in personal info for our LLC members (including names, addresses, and SSNs), as well as info about our newly formed business. A few days later the bank emailed us asking for faxed copies of various bits of LLC formation paperwork. Then we were asked to agree to various terms & conditions contracts online like you have with any banking account. Then, a week or two later, our debit card came in the mail.

One non-obvious thing we noticed with BOA was that you’re not automatically enrolled in online banking for your new bank account. When you login to see how your account status is going, you’ll see some vague instructions about seeing a link to sign up for online banking. The non-obvious bit is, that link is a few pages away from where you are. Click around through the menu system on the top part of the page until you find a page that has a link that mentions online banking (but doesn’t really sound like “sign up for online banking!”).

Step 3: Creating the Developer Account

In Idea to iPhone product, a brief how-to, I recommended that you create a throw-away personal developer account to get your product on test hardware. Assuming you did that, it’s now time to fork over another $100 for the legitimate business developer account.

Signing up for the business developer account will be as easy/tedious as the bank account was. You’ll create the new account, and fill in most of the same information the bank account asked about the business and members. Then Apple will instruct you to fax them most of the same documents you faxed to the bank (make sure Organizational contracts not filed with the state are notarized). A week or more will pass, and someone from Apple will get back to you on the phone to let you know the account is open or ask you for more paperwork/information.

Step 4: Uploading Your App

After your developer account is open, you’ll create an iTunes Connect account. This is created via the Developer Portal, by clicking around until you find it (I think you click IOS Developer, then it’s on the right somewhere..).

The iTunes Connect account may be the part where you send Apple paperwork and wait for a while, rather than the developer account, I can’t recall ๐Ÿ™‚

Anyway, once you have the iTunes Connect account, you’ll want to login there and enter your bank account information on the “Payments and Financial Reports” page, so Apple can pay you.

Next, you’ll create the app information and prep for upload. This is a little confusing the first time around, so here’s the basics:

  1. Review the Apple App Store Review Guidelines and the HIG, make sure your app doesnt break anything that will get it rejected.
  2. Create test accounts for the Apple reviewer/tester if your app uses online accounts in any way.
  3. Go to the IOS Dev Center, click “IOS Provisioning Portal” on the right.
  4. Click “App Ids” on the left, and create the basic information/keys for your application. Various docs on the Provisioning Portal will guide you through these steps. You’ll generate crypto keys on your box, upload them, download different keys, import them, and so on for several steps. At some point the App Id for your application will be ready for the iTunes Connect steps..
  5. Login to iTunes Connect, and create your application using the App ID information you created earlier in the Provisioning Portal. Here, you’ll fill in various bits of application info such as title, urls, description, test account info, and screenshots. Then, when you’re ready, you’ll mark the application as “Ready for Binary Upload”.
  6. Open your project in XCode, and edit the various settings required for upload, archive, and upload the app using the XCode 4 organizer. Apple docs on this process are currently out of date, you should follow this amazing step by step tutorial instead: Creating and Uploading a distribution build with XCode 4.
  7. Wait for a week (or however long average review times seem to be taking), while your app makes its way through the review queue.
  8. Fix anything Apple rejects your app for. Rinse, wash, repeat
  9. Publish your app, and celebrate!

Step 5: Promoting Your App

While you’re waiting through the month or two delay of waiting on bank accounts, Apple accounts, and app reviews, you’ll have plenty of time to come up with brand and marketing strategies.

I’ll cover application marketing options in the next article in this series.

Idea to iPhone Product, a Brief How-to

About a year ago, my wife evaluated ten Interval Training applications on her iPod Touch. She and I were bewildered by how difficult it was to find an application that just made sense. All we wanted was something that made it easy to configure a couple of timers and a sound to beep when each timer ended. From that moment, Runner’s Interval Timer was born.

The idea is it. That’s all it takes, really. Turning the idea into a product is formulaic, and remarkably simple, assuming you have the skills, the team, and the dedication to stick with it. The rest is (sort of) easy.

Now, just to get it out of the way, some of the not-so-great realities of app store development that you should be aware of..

Not So Great: It’s not free

As you probably know, developing for the App Store isn’t free. You’ll need apple hardware with a recent (10.6+) OS on it, and a developer account that allows you to publish apps to the app store costs $100 per year. Further, if you’re going the non-free route for your software, you’ll want to setup an LLC or corp, and setup fees for that can be a one-time cost (depending on where you live) of $300+. Then, later, you’ll need a bank account, and the big boys like Bank Of America and Wells Fargo want you to have $3K sitting in your business checking account or they’ll charge you $20 a month for the privilege to have an account. So, if you already have the mac hardware and OS, figure $3600 in startup costs, $600 for the dev account + LLC fees, and $3K to sit there and save you money until sales income rolls in. You don’t need all of the money the moment you start working on your great product, but you will need the LLC, bank account, and developer account before you can actually publish.

First, you need an idea. If this is your first self-made product, you need to keep your idea simple and limited in scope. There are a plenty of steps and hurdles you’ll have to conquer to get all the way across the finish line, and a software product that requires a massive time investment is not the way to start. Think “agile”, but not in the buzzword way, think in the “if you’re going to fail, it’s good to fail fast” way. That is, you should aim to get something out there in front of people soon, and learn, fast.

Not So Great #2: It’s kind of like the lottery

With your awesome idea in hand, if you’re aiming for non-free, you need to adjust your income expectations. Yes, Angry Birds has made many millions of dollars, but did you know Rovio published some 50 video games before they released Angry Birds? It’s estimated that a week on the top best seller chart at a $0.99 price point rakes in $300K per week, but what you don’t see is that even mildly successful apps will make on the order of several hundred dollars per month (and that’s if they’re doing well)! Prepare yourself for a potential reality where your time and financial investment reaps little return.

Idea. Check. Expectations. Check. Next, do a little research on how apps in your target category are doing. Check out App Shopper’s and App Annie’s stats for your competition. Watch your competition on the app store and the web. Do the top selling apps in the category have updates from time to time, and long term twitter/facebook followers and activity? Are you seeing the top apps promoted for a month or two and then fading away? That may indicate that even the very best apps of the category aren’t making very much money. If that’s going on, can you make the app that will be the exception? How?

There’s a great quote over at Startup Quote: “You can’t make anything viral, but you can make something good.”. I think this is a key cornerstone to setting your motivational compass in the right direction in terms of product development. If you’re only making an app for the money, you may set yourself up for disappointment in a flooded market place of 300K+ applications. On the other hand, if you’re making something that you have a sense of pride in, you cannot fail. Unless, of course, you violate the HIG.

The success of the iPhone and apple products in general build upon a baseline human interface guideline (HIG). Apple’s user interface experts, designers and engineers have spent many man years developing a UI foundation that “just works”, and as you’ve heard, Apple enforces those guidelines fairly strictly when they review your application. You shouldn’t fear the guidelines, just know that they’re out there, and use them as a learning tool to understand how application UI on the iPhone works.

While you’re learning the HIG, consider poking through a couple of other great user interface design books such as TapWorthy, Don’t Make Me Think, and The Design Of Everyday Things. These books and others are a coder’s only hope of understanding and pitifully emulating what’s going on in a great designer’s mind.

We’re almost to the fun bits, but before you start development, if you can, you should really consider finding a partner to join your cause. A team of people is better than a single person, always. You’ll need one good designer with UI and Illustrator experience, or two mediocre designers. Two great coders, or four mediocre ones. And consider yourself lucky if you can find a sales person familiar with marketing who can actually produce results.

When you partner up, consider forming an LLC (or corp, or signed document of some sort) up front that clearly lays out percentage interest and ownership details before you begin. You’ll find that splitting things (the money, the vote, and the responsibility) evenly works better than the other way around.

Next you’ll need some collaboration tooling to help organize yourselves. I’ll cover these concepts in more depth later on, but the essentials to consider are: project/idea management; document sharing; communication tools; and source control management.

With your project management toolset in hand, it’s time to plan your attack. Start small, and big. Think proof of concept early on, but write down and expand your big feature ideas for later. For example, with Runner’s Interval Timer, I initially wanted to put a number of major features into the application. Some of those features, such as the ability to pause, play and switch current music, could wait, and they did wait until a 1.1 or 2.0 release. Learn early on to identify the core product features you cannot ship 1.0 without, and push the rest. Learn to focus on the big picture, one chunk at a time, and don’t get buried in the details of making code or UI immaculately perfect, just get it to work and shake out the bugs. There will be time for perfection later. Again, think agile and encourage change as well as early failure (learning opportunities) rather than resisting these inevitable moments.

While you and your cohorts are planning your amazing product, encourage your designers to poke through the UI design books mentioned earlier, and encourage your developers to pick up an objective c for iphone book or two. If your coders have previous application development experience, I’d especially recommend The Iphone Developer’s Cookbook. If your developers haven’t really seen a SDK for standard application development on some OS or mobile device, I’d highly recommend any of the Programming Windows books by Charles Petzold, especially the now-ancient 5th edition (The code is old and out of date, but his way of explaining the how and the why will apply forever). Those books will help your team understand how to piece the product together, and will allow them to mentally sort out and refine the product before development begins.

When you’re all planned out and ready to go, you’re going to need some mac hardware for your team. Developers can get away with a mac mini for $700ish, and the free Apple IDE called XCode. Designers may not need mac hardware, but they’ll need design tools like Adobe Illustrator and Photoshop, or free alternatives such as inkscape and (heaven help any designer actually trying to use this..) gimp.

Your team will be able to scrape together a proof of concept app that’ll run on the mac hardware in the iPhone simulator that comes with XCode (the books will cover how to do all of this..). Then you’ll want to run the product on actual mobile hardware, and need to pay Apple $100 for the priveledge, by signing up for their Developer program. Signing up as a company has a few delays in the process that signing up as an individual doesn’t, so consider just making a dummy account for starters if your aim is just to get the software on some real hardware.

A few weeks or months later, you’ll have a 1.0 product in your hands and be ready to submit it to the App Store. There’s a whole mess of things you’ll need to do between the 1.0 build and the actual release on the app store though, and I’ll cover those items in my next installment in this series.

Read the next installment in this series: Idea to iPhone Product, The Last Mile

Is this thing on?

Hello everyone.

They say I’ll be rich if I just twitter, facebook, and otherwise spam you with a nonstop stream of directed marketing until something catches on. I’ve never been a fan of all that. I’m a firm believer in contributing something more than advertisement spam to the world, so thats what I aim to do with Coder Cowboy.

Yes, there are a couple of Coder Cowboy products available to purchase on the Apple App Store, and I’ll certainly blog about those from time to time, but this won’t be reading like a marketing pamphlet. I’d rather tell you about the experience, ins and outs, and lessons learned while creating those products than drone on about new feature sets.

This isn’t my first time around the block. In high school and early college I self-published some shareware software projects under the label Fablesoft, and more recently I put together various bits of open source software and scripts on world’s worst software. Oh, I also picked up a computer science degree and I code for a living for big software companies you’ve heard of.

I’m going to use this blog for good. I’ll be sharing some advice & lessons learned for my fellow coder cowboys out there. Topics will range from technical to non-technical, hopefully with something for everyone from time to time.

For starters I’ve put a couple lists of links, books, and movies together:

Those lists are still in progress, but there’s already quite a bit of value.

Before I go, I should mention a few great tech blogs for any fellow coder to pick through and follow. Check out Coding Horror, Joel on Software, and Bash Cures Cancer.