Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 512

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 527

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 534

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-settings.php on line 570

Strict Standards: Declaration of Walker_Page::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_Page::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1199

Strict Standards: Declaration of Walker_PageDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1244

Strict Standards: Declaration of Walker_Category::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_Category::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1391

Strict Standards: Declaration of Walker_CategoryDropdown::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/classes.php on line 1442

Strict Standards: Redefining already defined constructor for class wpdb in /home/martingo/martingordon.org/blog/wp-includes/wp-db.php on line 306

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 103

Strict Standards: Redefining already defined constructor for class WP_Object_Cache in /home/martingo/martingordon.org/blog/wp-includes/cache.php on line 431

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/query.php on line 61

Deprecated: Assigning the return value of new by reference is deprecated in /home/martingo/martingordon.org/blog/wp-includes/theme.php on line 1109

Strict Standards: Declaration of Walker_Comment::start_lvl() should be compatible with Walker::start_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_lvl() should be compatible with Walker::end_lvl(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::start_el() should be compatible with Walker::start_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Declaration of Walker_Comment::end_el() should be compatible with Walker::end_el(&$output) in /home/martingo/martingordon.org/blog/wp-includes/comment-template.php on line 1266

Strict Standards: Redefining already defined constructor for class WP_Dependencies in /home/martingo/martingordon.org/blog/wp-includes/class.wp-dependencies.php on line 31

Strict Standards: Redefining already defined constructor for class WP_Http in /home/martingo/martingordon.org/blog/wp-includes/http.php on line 61

Strict Standards: Non-static method unfancy_quote::init() should not be called statically in /home/martingo/martingordon.org/blog/wp-content/plugins/sem-unfancy-quote/sem-unfancy-quote.php on line 55
<br /> <b>Strict Standards</b>: call_user_func_array() expects parameter 1 to be a valid callback, non-static method unfancy_quote::strip_quotes() should not be called statically in <b>/home/martingo/martingordon.org/blog/wp-includes/plugin.php</b> on line <b>166</b><br /> Martin Gordon's Blog

Newspapers and Magazines by Home Computer

From the video:

Engineers now predict the day will come when we get all our newspapers and magazines by home computer, but that's a few years off. So for the moment at least, this fellow [video of a newspaper vendor] isn't worried about being out of a job.

Twenty-eight years later, he's finally starting to worry.

(via NSLog();)

Growing Up Star Wars: 1977-1985

Growing Up Star Wars: 1977-1985

A nostalgic look back at the world-wide Star Wars phenomenon through the creativity of the first generation of young people to experience it. Vintage photographs and scans of childhood Star Wars drawings, costumes, toys, homemade crafts, birthday cakes, local showings and events ( and local ads for such ) and more. The focus is on the personal experience and the variation & customization that was common in the early days of Star Wars.

I was clearly born 10-15 years too late.

Ranch Party Gang - Watermelon Smiling on the Vine

I had some berries and mango for breakfast, but boy do I wish I had some watermelon…

CD Baby's Shipment Confirmation

CD Baby's shipment confirmation:

Your CDs have been gently taken from our CD Baby shelves with sterilized contamination-free gloves and placed onto a satin pillow.

A team of 50 employees inspected your CDs and polished them to make sure they were in the best possible condition before mailing.

Our packing specialist from Japan lit a candle and a hush fell over the crowd as he put your CDs into the finest gold-lined box that money can buy.

We all had a wonderful celebration afterwards and the whole party marched down the street to the post office where the entire town of Portland waved "Bon Voyage!" to your package, on its way to you, in our private CD Baby jet on this day, Monday, January 5th.

I hope you had a wonderful time shopping at CD Baby. We sure did. Your picture is on our wall as "Customer of the Year." We're all exhausted but can't wait for you to come back to CDBABY.COM!!

Thank you, thank you, thank you!

Sigh…

Companies with personality ROCK.

I, for one, welcome our new toddler overlords

On Podcaster and App Store Rejections

Podcaster, an iPhone app that downloads podcasts over-the-air, was rejected from the App Store this past Friday on account of it "duplicating iTunes functionality." The Mac community is justifiable upset, with at least one developer refusing to develop any more apps, and others looking to coordinate some form of organized protest. I think that many are confounding two separate issues that the Podcaster rejection raises. First, that there are App Store approval guidelines that extend being what is listed in the developer agreement, and second, that Apple has seemingly decided to not allow any third party applications to compete with their own.

The first issue is not new. I wrote about it in my post about Flickup being rejected and we've seen it many times of the past couple of months. This incident just gives us yet another item to add to our unofficial approval guidelines. That these guidelines are (1) not published provided by Apple, and (2) a result of trial and error on the part of many very frustrated developers is inexcusable and irresponsible. As both Fraser Speirs and Paul Kafasis mention, development takes time, effort and money, and without a reasonable expectation that an app will be approved makes the App Store that much more unappealing to develop for, scares away developers and undermines Apple's goal of building a long-lasting ecosystem around its mobile operating system.

The solution, of course, is simple. Apple needs to release an all-inclusive set of guidelines. Knowing what is off-limits cuts developers off from the get go instead of forcing them to develop an app and spin the roulette wheel. Developers may not be happy that they can't release an app that does X, but at least they'll know before pouring weeks into development. A scary, but entirely possible situation is that Apple hasn't released such a document because even they aren't sure exactly what's in it.

The second issue is the anti-competitive nature of this specific rejection. I don't want to spend too much time extrapolating meaning from this specific rejection, particularly the common view that this rejection indicates that Apple won't allow any application into the store that competes with *any* of its products. I don't see Apple being stupid enough to actually have an explicit non-complete policy in place, so my view is that this is simply a case of a reviewer not fully understanding Apple's (currently nonpublic) approval guidelines and I fully expect Apple to correct this mistake. Until we see more cases of this anti-competitive policy being applied, I don't think we should go running for the hills just yet.

Technorati Tags: , , , , ,

R.I.P. Leroi Moore

It pains me greatly to post this, but I just learned that Dave Matthews Band saxophonist Leroi Moore passed away today. The news came via the band's official site:

We are deeply saddened that LeRoi Moore, saxophonist and founding member of Dave Matthews Band, died unexpectedly Tuesday afternoon, August 19, 2008, at Hollywood Presbyterian Medical Center in Los Angeles from sudden complications stemming from his June ATV accident on his farm near Charlottesville, Virginia. LeRoi had recently returned to his Los Angeles home to begin an intensive physical rehabilitation program.

Leroi had been with the band since its inception in 1991. I will miss him tremendously and there is no doubt that he will be missed greatly by the band, the crew and the entire DMB community.

Jeff Coffin has been filling in for Leroi since his accident in late June. Leroi's final show was at the Nissan Pavilion at Stone Ridge in Bristow, Virginia on June 28, 2008. If anyone would like a copy of the show, let me know and I will provide you with a copy or tell you where you can get one (DMB explicitly allows taping of their shows, so it is completely legal).

Technorati Tags: , , ,

Crazy Easy

Merlin Mann on iPhone development (from the SF iPhone Dev Camp):

Think about having the courageousness to make an app that is crazy easy. Instead of making a circus that’s really fun to play in, just make something that’s easy to get in and out of quickly without hassle.

Yes! This is exactly what I'm going for with Flickup. I wanted it to be dead simple to post photos to Flickr and I think I've gotten pretty close. While I don't want to add frivolous features, there are some that are reasonable to consider - uploading to a set, security settings, etc. I struggled to fit the metadata view onto one screen and now I'm faced with the challenge of adding these new features without undermining the simplicity that I was going for in 1.0.

Technorati Tags: , , , , , ,

Flickup 1.0 Is Out!

A few hours after my post about being rejected from the App Store, Flickup was approved. If that was all there was to the story then I would have posted about it immediately. Sadly, however, it took nine days from the time Flickup was approved until the time it was actually available for sale on the App Store.

In preparing the now-defunct demo version of Flickup, I stumbled across the contracts page on iTunes Connect and realized that my Paid Applications Contract wasn't complete. I completed it on July 17th and incessantly refreshed the contracts page to see if it had been approved yet. When Flickup was finally approved hours after my last blog post, I was met with the status of "Pending Contract" and frustration returned. I would have thought that three days would have been enough time for someone to review the contract, but apparently that wasn't the case. Having given Apple some breathing room, I finally sent them an email on the 24th asking how long the process would take. Their response? Nothing.

I didn't hear anything from Apple until the contract was approval last Monday, July 28th and the status changed to "Ready For Sale." When I finally got tired of searching the App Store every few minutes to see if Flickup was listed, I sent Apple another email. Again I received no response. It wasn't until I saw a tweet from Jon that I learned that Flickup had finally been posted and that the three week ordeal was finally over.

When I first started working on Flickup I set a lifetime sales goal ("If only X number of people ever buy the app, I would be satisfied"). I'm happy to say that I reached 10% of that target in the first full day alone. Since the app went live, I've been answering support emails (already!), pushed out (well, submitted to Apple anyway) a new version with some bug fixes, and already started working on some new features.

Now go out and buy it!

Technorati Tags: , , , , ,

Rejected (Twice!) From the App Store

I am now a proud member of the elite group of developers who have had applications rejected from the iPhone App Store.

The application I have been working on since a few weeks after the SDK came out is Flickup, a simple Flickr uploader. When Apple announced the July 7th deadline, I pulled an all-nighter that day to finish it up and submitted the app to Apple around 6am in order to meet the 3pm deadline for inclusion in the App Store at launch. When the App Store is launched on Thursday/Friday, my app is nowhere to be found and the status remains "In Review". I sent an email on Saturday to Apple asking why Flickup was still in review and I received a non-response three days later telling me that "In Review" means my application is being reviewed by Apple. I responded immediately clarifying my inquiry and I finally received this response yesterday:

At this time, Flickup cannot be posted to the App Store because it does not allow the user to logout or change the Flickr account that they are using.

In order for your application to be reconsidered for the App Store, please resolve this issue and upload your new binary to iTunes Connect.

This is a perfectly valid critique, and an oversight on my part, but did it really take them two weeks to tell me about it? Would they have even told me had I not emailed them about my app's status? In any case, the time it took to get a decision on Flickup gave me time to fix some bugs, and of course add the required logout functionality.

As an aside, the Flickr Authentication API's Implementation Guidelines merely states, "Users must be provided with 'logout' functionality." The API documentation does not provide any way to revoke tokens and log users out. I had to resort to directing users to their revoke permissions page instead.

In the mean time, the App Store turned one week old and gripes about the review functionality sprouted everywhere, particularly with regard to the ability for people to review an app without actually having used it. This "feature" of the App Store prompted the cheapskates out there to use reviews as a medium to complain about price. Taking this to heart, I spent some time last week preparing a demo version of Flickup that would allow people to sample the app before dropping two Washingtons on the full version. I submitted the demo version on Friday and received a decision today:

Flickup Demo cannot be posted to the App Store because it is a beta or feature-limited version. Any reference to demo or beta needs to be removed from the binary and metadata. Free or "Lite" versions are acceptable, however the application must be a fully functional app and cannot reference features that are not implemented or up-sell to the full version.

In spite of the lightning fast turnaround time, I am still just as angry about this rejection than the last one since there was no prior warning (in program agreements or otherwise) that demo versions would not be allowed. It's hard to believe that Apple isn't aware that people are crying out for demos and trials; going as far as explicitly prohibiting them (while letting all other sorts of crap through) is nothing short of infuriating.

Technorati Tags: , , , ,