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

WordPress & WPMU are merging in 3.0

This is why I’m looking forward to WordPress 3.0:

It was announced at WordCamp San Francisco last year that WordPress and WordPress MU would be merging codebases. This has now happened in 3.0-alpha, and we’re working on smashing bugs and tidying up a few screens. If you’re currently using a single install of WordPress, when you upgrade to 3.0 you won’t see any of the extra screens associated with running a network of sites. If you’re currently running MU, when you upgrade you’ll notice a few labels changing, but upgrading should be as painless as usual. If you’re going to set up a new WordPress installation, you’ll be asked as part of the setup if you want one site or multiple sites, so that’s pretty simple. If you want to turn your single install into one that supports multiple sites, we’ll have a tool for you to use to do that, too.

Right now WPMU, which we use at Teens In Tech, always seems to lag behind WordPress for updates and many plugins don’t fully work in WPMU. I’m really interested in seeing how they manage this.

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.

Make web apps act more native

With a simple trick you can make a web-based app look and act more native on an iPhone or iPod Touch.

Adding the following tags to your <HEAD> will make your application open in full screen and hide Safari’s toolbars. In addition, if you add it to your home screen, it will appear to open without Safari and no page will be added to Safari.

<meta name="viewport" id="viewport" content="width=device-width,user-scalable=no,minimum-scale=1.0,maximum-scale=1.0" />
<meta name="apple-mobile-web-app-capable" content="yes" />
<meta name="apple-mobile-web-app-status-bar-style" content="black" />


The following tags, which should also be added to <HEAD>, will provide an icon for the home screen and a splash screen to be displayed when it opens.

<link rel="apple-touch-icon" href="http://example.com/webclip.png" />
<link rel="apple-touch-startup-image" href="http://example.com/startup.png" />


The first application I’ve seen which uses this trick is Fever.

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.