ICHC Road Map

Now that ICHC 2.0 was approved, I’m starting on 2.1, which has one very major change: instead of my scraped feed, which goes down pretty often, it will use the new Cheezburger Content APIs. Other features I’m planning are full iPad support and sharing LOLs on FaceBook or Twitter. I will most likely release an update which only switches it to the new APIs, since that’s a fairly urgent change.

I haven’t abandoned PicSlide. My plans for it include additional photo sources such as Flickr recent & interesting, defaulting to medium instead of easy level, as well as full iPad support and maybe additional puzzle sizes for the iPad.

ICHC 2.0 Is Ready For Sale!

I just got an email from the iTunes Store informing me that I Can Has Cheezburger 2.0 (both free & pro versions) is ready for sale. It may take a few hours for it to appear in all of the app stores as an available update.

It was approved in 8 days (1 week after I got an email saying the review process will require extra time). This is the first time Apple approved both the free & pro versions at the same time, even though I always submit them at the same time.

Now I can work on 2.1 using the new content APIs.

Cheezburger app feed was broken

The ICHC app feed was broken today. Whenever that happens, I always get about a dozen emails asking if there’s something wrong with the application. No, it isn’t the application; it’s the feed.

This time it wasn’t a problem with the server. Something in the first page of icanhascheezburger.com confused my script and caused it to exit. I added some additional error checking so it should work now. This is always a danger when you’re using a scraped feed, as I’m doing in the app. I’ve made it more robust than the original script, but it’s still always one step away from breaking if the slightest thing on the page changes.

The real fix will come in 2.1 when I start using the new Cheezburger featured content retrieval API, which will return exactly what appears on the site and lets you retrieve multiple pages of items. However, not all content is currently available via that API, although they’re working on bringing it up to date.

I submitted version 2.0 exactly one week ago today, and one day later I received the dreaded email:

We are currently reviewing an app that you submitted for inclusion on the App Store, and want to let you know that the review process will require additional time. We apologize for the delay and will provide you with an update on the status of your app as soon as possible.

I still haven’t heard anything further from Apple.

ICHC 2.0 Submitted

I’ve submitted I Can Has Cheezburger 2.0. Here are the changes:

  • Completely rewritten based on Three20.
  • User interface is much more responsive
  • New home screen with site icons
  • Shake to shuffle can be disabled
  • Movies no longer play automatically
  • About screen has a link for latest news
  • ‘create LOL’ will restore the last LOL if unsaved.
  • Now requires OS 3.0 or later.

Cheezburger app feed was down today

The FastCGI gateway on my server went down earlier today, and as a result the ICHC app stopped working for a while. I moved the feed scraper to a separate user account, so it should be less likely to go down now.

Nginx uses a fixed number of FastCGI sockets (currently 5) for each user running on the server. Certain processes (one of which seems to be the PrMac importer I use at MacMegasite) will cause it to run out of FastCGI connections resulting in a ‘Bad Gateway’ error. By moving the app feed to a separate user, it now has its own set of FastCGI sockets so other processes should be less likely to bring it down.

If you do ‘ps ax’ on a DreamHost VPS shell account, you can see how many FastCGI processes are running:

 3927 ?        Ss     0:00 /dh/cgi-system/php5.cgi -b /home/sampo/.php.sock
 3932 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/jimi/.php.sock
 3933 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3934 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3935 ?        S      0:01 /dh/cgi-system/php5.cgi -b /home/mysites/.php.sock
 3936 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock
 3937 ?        S      0:02 /dh/cgi-system/php5.cgi -b /home/mysites/.php.sock
 3938 ?        S      0:00 /dh/cgi-system/php5.cgi -b /home/newapp/.php.sock

Time to drop 2.x support.

Pocket Gamer reports that Apple is no longer charging for the 3.x firmware upgrades for iPod Touch. This means that developers can now safely drop support for firmware 2.x and move forward.

I was already planning to make I Can Has Cheezburger 2.0 require firmware 3.x, since Three20 requires it. This makes my decision a lot easier.

Call for ICHC 2.0 beta testers

I finished implementing the last features in I Can Has Cheezburger 2.0 and I’m now looking for beta testers to give it a good workout before I submit it to the app store.

If you’re interested, send me your iPhone or iPod’s UDID through my contact form. You can get the UDID by connecting your iPhone and going to the summary tab in iTunes. Click on ‘Serial number’ and it will change to ‘Identifier (UDID)’. At that point, hit Cmd-C (copy). Although it won’t give any indication, it will copy the identifier as text.

ICHC 2.0 Progress Report

Today I fixed the two major crashes in ICHC 2.0 (one of them, thanks to the server being down). There are only a few remaining things before I submit it, and hopefully I’ll get a chance to take care of them this weekend and submit it next week.

Here are my todo items:

  • Add a login button to the create window (pro version only)
  • Adding favorites adds the wrong item (need to use Asset ID rather than LOL ID)
  • Change the “tap to play movie” graphic
  • Run with instruments to find memory leaks

Plus of course more testing.

I also have some features planned for 2.1 which I’ll start as soon as this is submitted, in particular to use the new featured content retrieval API rather than my scraped feed and make sure it’s fully iPad compatible.

Server crash

As you’ve probably heard, wordpress.com was down today, which means ICanHasCheezburger, FailBlog and other related sites were down. Since my feed proxy script used for the iPhone app accesses those sites, it eventually ended up crashing my entire server.

A support person at Dreamhost explained:

Yeah, the issue was likely that your PHP scripts were hanging due to not
getting a response, which then caused the requests to build up and
overload the running PHP processes.