What Really Went Over The Wire?

The point is, some days you have to drop down into tcpdump and pcap files to get the truth.

- Steve Souders while tracking down how much HTML5 video data iOS actually receives.

Turns out server logs were giving an incorrect picture of the amount of data that was being transmitted. It took watching individual packets to track down what was really happening. Go read the post for the odd twist at the end.

Reading this reminded me of using Wireshark to track down multiple packet issues in HTTP POST requests from XMLHttpRequest.

OpenVBX

While playing around with Twilio I stumbled across OpenVBX, which is an open source (MPL) virtual telephone exchange that leverages the Twilio API to provide phone services. It runs on a standard LAMP stack; MySQL 5+, PHP 5.2+ and Apache/Nginx.

Twilio having awesome APIs is nice to see, having an open source VBX that anyone can use to easily manage phone services built on top of Twilio is taking it to the next level. The UI is usable as it stands, though could use a bit more polish to make it easier for beginners. Feature wise OpenVBX would probably work just fine for most small to medium size offices, with very little effort.

The source code for OpenVBX is at https://github.com/twilio/OpenVBX, making it easy for anyone to grab a copy and start hacking. I skimmed through some of the source code and saw that they are using Gravatar for user images, which is great.

What I’m really excited to see is the OpenVBX iOS app. I haven’t tried it yet, so no verdict on how well it is has been executed, but I love the concept. The source code of the OpenVBX iOS app is available at https://github.com/twilio/OpenVBX-iPhone.

Making it possible for an office manager to take care of voice services via a web or mobile app with just a few clicks is totally the future, the sooner we get there the better.

iOS6 Safari Caching POST Responses

With the release of iOS6 mobile Safari started caching POST responses. Mark Nottingham talks through the related RFCs to see how this lines up with the HTTP specs. Worth a read for the details, here is the conclusion:

even without the benefit of this context, they’re still clearly violating the spec; the original permission to cache in 2616 was contingent upon there being explicit freshness information (basically, Expires or Cache-Control: max-age).

So, it’s a bug. Unfortunately, it’s one that will make people trust caches even less, which is bad for the Web. Hopefully, they’ll do a quick fix before developers feel they need to work around this for the next five years.

Over the years I’ve run across a handful of services and applications that claim to be able to cache HTTP POST responses. In every case that turned out to be a bad decision.

iOS 6 Needs To Require iPhone 4 Or Newer

With iOS 6 rumors getting into gear it is time to take a reality check on what versions of the iPhone Apple will continue to support going forward.

I’ve got an iPhone 3GS running the latest version of iOS 5. With each update of iOS my 3GS continues to get slower. In some cases really, really slow. I’ve heard similar reports from other 3GS users. With iOS 6 I’d expect that problem to only get worse. Either iOS 6 needs to not include support for the 3GS or Apple needs to get used to giving people a really poor experience. I expect them to pick door number one.

I don’t think this is a major surprise, and meshes nicely with a few other iPhone issues. Presumably there will be a new iPhone release during 2012. At which point I’d expect the iPhone 4 to become the new “free with 2 year contract” option.

The rolling three year plan for currently offered devices seems like an obvious pattern for Apple to continue. This pattern makes it easier on everyone, app developers and customers will all know what to expect (at a high level).