I was all set to give this week's column over to a new register-direct implementation of a JavaScript interpreter that's many times faster than all currently available implementations. It's not exactly growing hair on a billiard ball, but a nitro-boosted JavaScript will put a shine on AJAX and keep my most beloved language on track to becoming the gold standard for dynamic languages.
Apple decided to nix that story in favor of yet another iPhone piece, this one to celebrate the short life of a project that opened the iPhone and the iPod Touch Unix to developers. The keepers of the project are responsible for its demise, because they made it impossible for Apple to discern between innocent developers looking to create an unencumbered open source community on Apple mobile hardware, and those who want to force Apple to break its exclusivity deal with AT&T.
Up until a couple of days ago, it was possible to develop software for iPhone 2.0 devices (the iPhone, iPhone 3G, and iPod Touch running 2.0 firmware) without the encumbrances of Apple's onerous developer contracts and code-signing requirements. A very tidy iPhone 2.0 app called Cydia set up an App Store equivalent for open source developers and those interested in sampling their wares. With Cydia, there's no credit card required, no tracking of who had downloaded what, and no restrictions on the capabilities of applications.
Open source software for iPhone 2.0 is produced and traded within a relatively small community that, in the majority, exemplifies the commandments of ethical hacking: Don't create victims, don't take money out of anyone's pocket, and make sure that the community's influence stays within the community. In other words, no malware, no piracy, and no infiltration among the nonsavvy. If you keep to these rules, a community of hackers will generally be tolerated. Apple has quietly allowed open source iPhone development since the original iPhone was introduced. The community was gaining ground and respect. Books have been published, and one iPhone open source community leader addressed an SRO crowd at no less than an Apple Store.
Wherever treasure is unearthed, pillagers gather. iPhone open source development was enabled by a pre-SDK project to "jailbreak" iPhone 1.x firmware so that user-created iPhone applications could be installed and run. This required changes to the firmware, but it could be done without redistribution (Apple makes it freely downloadable). After jailbreaking came research into unpublished APIs and into the extent to which POSIX APIs were supported.
Open source development got under way in earnest, but for some of the people who undertook it, the jailbreak project was a stepping stone toward the ultimate goal of unlocking iPhone for use on any carrier's network. This was primarily a reaction to Apple's US exclusive with AT&T. I'm not crazy about that either, but hackers need to understand that Apple is contractually obligated to keep iPhone owners locked to Ma Bell's network. That means that Apple has to attack well-publicized efforts to unlock its device until its deal with AT&T expires.
iPhone unlockers recently issued a foolhardy boast that put them on the front page. They claimed that they had successfully unlocked the first-generation iPhone, using nothing but software, in such a way that Apple could not relock the device to AT&T. A Mac utility called Pwnagetool gave nonsavvy users a foolproof means to jailbreak and carrier-unlock their first-gen iPhones running 2.0 firmware.