Wednesday, September 24, 2014


ATTENTION RECRUITERS : Your company's cumbersome application process does not weed out the untalented, only the ones who hate your system.

Making your application process difficult doesn't stop unqualified people from applying, it only increases the number of desperate applicants. If you have a tedious job application process it only eliminates the people that are not desperate, not the untalented. Brilliant people look at your laborious process as a sign that you are behind the times and you haven't yet figured out how to glean the users job history from their .doc, .pdf, .txt. Making them fill out field after field of their job history is no measure of how good they are, it's only a barometer of how much free time they have. What you get are only the most desperate people, who are willing to put up with your shenanigans long enough to pay their rent. If you want to really recruit great talent make it easy for them to apply and let a human decide whether or not they are right for the job.

Sunday, September 14, 2014

I made a game.

The details behind making the game are not intersting.  The interesting part is the game submission process.  I thought it would be easy.  Just sign in, click a button, and you're done.  HA!

The final 10%

When you're done programming the app, all you want to do is get it into the various mobile stores so people can start using it.  You can't wait to post to all your social media platforms that you have done it.  You want to scream from the mountain tops that you have completed your Herculean task, and have something to show for it.  Unfortunately you are a staff of one.  Before you even think about clicking the submit button, you have to do all of the little things to get it ready for submission.  I realize that taking screen shots and making icons in 20 different sizes is important, but that doesn't make it fun.

Google Play

Getting your game into the Google Play store is relatively easy.  The trick is the XML manifest.  The manifest is like a short description of your game in XML format and is required when compiling the game.  Trying to figure out what needs to be in the manifest, and in what format, was an endless back and forth of error messages and googling.  Once I got a working manifest I paid my $25 submission fee and uploaded my game into the store.  An hour later it was available for download.

iTunes Store

Submitting my game to the iTunes store was insanely frustrating, and if they weren't 50% of the gaming market I would have skipped it completely. When you make an app for the iTunes store, you need certificates and provisioning profiles for both developement and distribution.  The upload process is controlled through the XCode application*. Once your profiles are loaded into XCode, the profiles need to be associated with either distribution or development. If you're lucky, when you submit your app, everything just works.  If you're not you get this error...
Apple has always been amazingly vague with their error messages, and this is no better.  I remember in the OS 7 days, people would buy the "Macintosh for Dummies," book, just so they could get the list of error code numbers with some explanation.

After searching the internet I found just as many different solutions as there were questions submitted about this error.  Fortunately, when you pay your $99 yearly application developer subscription fee you get two incident tickets.  So I decided to use one on this problem.  After a month and a half of back and forth** with the Apple Support person, let's call him 'Bob'***, I was able to solve the problem on my own.  You'll have to hang in until the end to find out what the solution was.  Here's the crazy part.  The Apple Support reps don't know anything more than you.  Maybe that's a little harsh, but there's nothing that my rep told me that I didn't also see online. Even though he works for Apple, Bob has no access to any log files or additional error information to help solve the problem. Those error messages are as cryptic to him as they are to you.  Maybe Apple doesn't want to reveal to the end user all the ins and outs of their process, but someone at some point should be able to look at a log file and say, "It is looking for [this] and you gave it [this].

Five days after I submitted my app, I find out that my app was denied.

"Improper Advertising Identifier [IDFA] Usage - Your app contains the Advertising Identifier [IDFA] API but you have not indicated its usage on the Prepare for Upload page in iTunes Connect."

If your app has any kind of advertising in it and you didn't check the box when you submitted your app, you'll get this error.  I went back and checked the box.  Two days later I got an email that I was missing a screen shot.  I faked a screen shot.  Two days later my game was approved.  You can find it here.

The Moral of the Story

The moral of the story is, never make any assumptions about an unknown process.  What should have taken an afternoon took six weeks.  Just remember, the thing that you guessed would be simple might be the piece that causes you to miss your deadline.

What made it work?

So here was the trick that allowed me to upload my app.  When you create the environment for your app in Apple's Developer center, you have to give it an Application ID.  If I was creating an app called, "myApp," it would look something like com.alanhome.myApp.  You also have the option for the developer center to create a unique identifier in front of that. That might look like  When I was downloading my provisioning profiles I had three options,,, and com.alanhome.myApp.  I'm not sure why the first one had TG9624758 twice. I created provisioning profiles many times to solve the problem, but I never picked the first option.  As strange as it looked, the first one was the one I was supposed to pick.  Once I revoked the other provisioning profiles and used the one for it worked.

* XCode is Apple OS X only.  If you want to publish an app, you'll need a Mac to get it into the store.
** This back and forth was not an everyday affair.  Because this is purely a hobby my submission debugging was confined to the weekends.
*** The names have been changed to protect the unhelpful

Helpful links :
How to Publish from Xcode 5 to the App Store.

Wednesday, August 27, 2014

The Thankful Project


Every year my friends and I get together the weekend before Thanksgiving and we have our own pre-Thanksgiving party. We all take turns talking about what we are thankful for. I leave the party feeling great. It's not just because I've reconnected with friends, but I've taken stock of my life and realized that I'm doing OK. I decided to try to create that experience all year long by starting the Thankful Project.


The premise is simple. I find something I'm thankful for and tweet about it. It's harder than it sounds. I guess if I wanted to call my Twitter account, "I Love My Cat," it would be easy to tweet about his antics on a daily basis, but I wanted more from the experience. I want to find new things all the time, rather than recycle old thoughts. I want to find mundane things that make me happy. The fact that I'm making it harder on myself makes the project better. It forces me to actively look for things that make me happy, rather than letting the mundanity wash over me.


I chose Twitter for the home of my Thankful Project because I wanted it to be open to everyone, but also to post automatically to my Facebook page so I didn't have to double post it myself. I wanted it public because I wanted people to share it with others I had never met, in the hopes that it might make them happy. My Twitter account is dedicated to the thankful project which gave it a hidden benefit. Anytime I'm feeling down I have a resource that is 100% positive. I like Facebook, but it has a lot of negativity. My Twitter account is a warehouse of positivity waiting for me to once again relive my happy memories.


I'm not interested in followers. I'm writing this post to inspire everyone else to do what I have done. Make a place for your happy thoughts that is only happy thoughts. Put it on the web, write it in a book, or scribble it on your shoe. It should be a place that you can update at any time and is always top of mind. Trust me. It will make your life better.

Do it.

If you want to see what I've done, you can see it here : @thankproj

Tuesday, October 25, 2011

Asset Aging

Data storage is not limitless. If you’ve read the previous article, you’ll know that expanding any storage has a ripple effect that requires increased redundancy, time to make backups, and increased off-site storage.

Ideally, you’ll want to archive old, rarely used assets to tape or disc, and delete them off your server. You could make copies of every asset, and keep them with every project, then archive old projects, but depending on the asset, this practice could wildly bloat your space consumption.

Identifying old assets by creation or modification date is easy, but how do you know which ones you frequently use? How do you sift through terabytes of data trying to find the treasures?

The short answer is databases.

At a previous job, we tracked all our digital assets through our document management system. When a user checked out a document they manually entered all the image IDs into the document management system. Our automation team scripted Adobe’s inDesign to place the image on the page and made a record in the database as to the document it was in and when it was used. When it came time to purge the server, another script would query the database, and based on the results would move old files to a special server partition that would be backed up to tape.

Even more important than asset archiving, is managing asset license expiration.

Example : You purchased several images from a stock photo library, but you’re only allowed to use them for a year. Violating the terms could cost the company big fines, or even a law suit.

Who manages the licenses? How do you prevent users from re-using old images?

The answer is the same, databases, but with the added complexity of making sure that old images are not restored from tape after the rights have expired. This boils down to making sure the IT department is well aware of the digital rights management issue, and to check with the license manager before restoring any assets from archive.

This aspect of asset management is something that is rarely discussed within the department, and can easily be forgotten after enough turn over within the group. How do you make sure everyone stays abreast of these issues? Stay tuned next time for, “The Value of the Department Wiki.”

Wednesday, June 22, 2011

Business Continuity : Data Redundancy

How long can you be away from your data? If your company has copies of data synced across multiple platforms, then it’s minutes rather than hours to get you back to your data.

RAID Redundancy

Every server now has RAID storage. Simply put, a RAID is a collection of disk drives that makes them appear and act as one disk. RAIDs come in many different varieties. For your file server, you’ll want RAID level 5 or 6. With that type of RAID, if one of the disks fail in the RAID the RAID can continue without interruption. To learn more about RAIDs you can read about it here. The ad agency invested in a 10 terabyte 16 bay RAID. The agency could easily see two drives dying at the same time, so they invested in a RAID that had two hot swappable drives. It would take three drives failing simultaneously to bring this RAID down.

Server Redundancy

What happens if the server goes down? What if the server going down destroyed the RAID? It could easily take a day to bring the server back up, even with the RAID in place, and the agency didn’t feel they had that time, so they bought a second server with the same RAID configuration as the first. Now it would require six drives to fail over two machines to take the system down. Every night the two servers were synced together, and no ad was more than twenty-four hours out of date.

Historical Redundancy

The agency needed to keep a history of all documents and images, and even though 10 terabytes seems like a lot, it did fill up. (Stay tuned for the article on asset aging.) The agency also needed off-site storage of their data, so they purchased a twenty-four bay, backup tape carousel. The entire server could be backed up on eight tapes over the weekend, with the other sixteen there for future backups and performing nightly incremental backups to data that had been changed during the week. All backups would be run against the backup server, after the sync with the main server was complete. This freed up the main server to serve files to the users as the tape backup continued long into the next day.Each week the full backup tapes were shipped off to an off-site data storage facility, to ensure access to the data if the building was to become unusable.

Location Redundancy

What if you facility is unavailable long term? The agency was able to work out a deal to use another office space, in another city within driving distance, and even secured a standing reservation with a hotel across the street to ensure that the employees would have a place to stay during the week rather than commuting. They purchased another server for that location, and the two locations were synced over a dedicated T1 line nightly.

Users as Redundancy

At the agency we had a proprietary, home grown document management system. Its great strength was that it, checked out the document, copied the documents locally for use, checked it back in to the server, and saved a version on the users machine. This reduced network and server traffic because the user wasn’t constantly saving back to the server, and it also created a history of the file that was not on the sever. If a file was ever deleted off of the server, it was easily retrieved from the history file of the last user.

In the End

Most businesses can’t afford a remote facility, but the other precautions we took is a minimum for any serious organization running their own file server. Many might scoff at purchasing a second server, but buying/repairing a server, installing it, and restoring files from tape might cost you a week of productivity. Before ruling out any redundancy situation, you should also calculate how much lost productivity will cost you.Ironically the one scenario we almost needed, but never planned for was, "We can’t get to our local files, and we’re too far away from the remote facility to get to the ads in time," and it could have been solved by a few laptops and an Internet connection.

Friday, April 15, 2011

Kinect™ vs. Move

Say what you want about the Nintendo Wii, it paved the way for motion controlled gaming, and I couldn’t be happier. For those who don’t know, motion controlled gaming is playing a game, not with button presses, but with movements that mimic the actions seen on screen.

Recently Sony’s PlayStation® and Microsoft®’s Xbox® got into the mix. Which one is right for you? If only it was that easy. Let’s break it down.

Xbox® Kinect™

The Good : Minimal contollers. The Kinect™ controller plugs into the USB interface of your Xbox®. It’s the only thing you’ll need to control Kinect™ games. No extra controllers to purchase, no batteries to buy, one item and you’re ready to go. The crazy thing about the Kinect™ is that it recognizes your whole body with almost no calibration. Feet, hands, and head are all recognized just by standing in front of the camera.

The Bad : Xbox® Kinect™ has a definite lag, and doesn’t interpret every move correctly. I found myself kicking repeatedly in Kinect™ Sports Soccer before it registered my movements. Kinect™ also recommends a 6’-10’ distance from your television. If you live in a major metropolis your limited floor space might bump you out from using the Kinect™. Kinect™ is also limited to “waving” style games, no shooters, guitar hero, or delicate movements here.

Why you should get this : If you want to get some exercise and bust a sweat NOBODY does it better than Xbox® Kinect™.

PlayStation® Move

The Good : True one to one movement. The buzz term “one to one,” refers to the exact replication of movement from what you do, to what appears on screen. The PlayStation® Move is everything the Wii promised.

The Bad : If you want two people playing at once, the maximum for simultaneous play, you’ll have to buy two move controllers ($50/each) and the PlayStation® Eye ($35), and possibly additional Navigation Controllers if you’re looking for more “hardcore” gaming options. The additional dollars, plus the management of keeping them all charged can cost you a lot of time and money. Plus the move only registers your hands, so soccer and dodgeball are right out. Be very careful in choosing a game for this platform. Many developers are not as solid as writing for the Move, so each title should be scrutinized before purchasing.

Why you should get this : Gaming should be about real life skills, not about button combos and power ups. If that’s your mantra, then this is the system for you.

In the end
I’ve been playing the PlayStation® for fun and Xbox® for exercise, but bottom line I recommend them both. If you’re like me you’re a video game addict from the 70s and need to snatch up all that these two platforms have to offer.

Wednesday, August 11, 2010

The internet is not forever.

I'd like to say that there is some cosmic reason why we think things we see on the internet will always be there. Something about our concept of object permanence or maybe how a magazine is printed, it's real and tangible so we just think the internet applies to the same rules. But I think it's just out of laziness. The same laziness that prevents us from backing up our computers is the same laziness that keeps us from saving that recipe that we saw online. Here are the most common scenarios that demonstrates the fleeting fancy of the web.

Free on the web

The craziest thing I've seen people do is put their precious thoughts and memories into free online sites expecting them to always be there. I've seen blog sites throw away old posts and photo sites deleting old pictures. There's nothing in any free site's policy that says they need to keep your uploaded assets there forever. All that storage on their end costs money and in bad economic times they might start pruning your files to cut costs. The next time you write a blog post, write it in Word, Pages, or Note Pad, save it on your computer and then copy and paste it to the web.


Mobile phones are probably the most unstable of any computing environments. Most people think that they're backing up their phone by synchronizing it to the internet. You should still synchronize any mobile device to your home computer. The most shocking example of why you should do this was when the T-Mobile phone "Sidekick" went to synchronize itself to the web, and a glitch in the system wiped out all the data on the phones. All the major phone providers provide software to backup your phones to the desktop.


It's 5:00, they're coming at 7:00, you click on the bookmark for that dish you were going to make tonight, and the site is down for maintenance until tomorrow. Back to square one and another trip to the grocery store.

It doesn't do that

We make the mistake thinking that the makers of internet applications think like we do. So what happens when you want to retrieve an old post that your friend made on Facebook? I search my old emails for information all the time, but most social networking sites aren't built around the idea of recalling old posts that contained information you didn't need...until
If it's important to you, keep a copy on your computer. Hard drives are huge, so you won't run out of space, and every major platform has an indexing system that will pull up any file quickly.