Skip to main content

My parents gave up on Linux and bought a Mac Mini. We bought an AppleTV for the kids and filled it with their favorite DVDs. I stood in line for three hours to buy my wife an iPhone 3G for her birthday. And nobody gives a shit about freedom 0.



So, hypothetically speaking, let's say you want to design a system where you had absolute control over which applications your customers were allowed to install on your device. Certainly you would want to ensure that you were the only source for applications. But for extraordinary cases, you might also need to create a blacklist of applications.

Each entry in the blacklist would also need a human-readable title -- presumably the name of the app -- and perhaps even a human-readable description to explain why the app was blacklisted. But each entry would also need a unique identifier, of course, so you don't accidentally get confused between six apps named "TODO." Finally, you would probably want to include the date that the entry was added to the list.

Furthermore, since you anticipate continually adding new applications to this blacklist to protect your and your partners' business model, you would need your proprietary non-browser-based client to periodically poll the list for changes.

All of which raises a very serious question: what data format should you use for the list?

If you answered "JSON" then congratulations, you win the Trendy Tech of the Month Award lose! To collect your prize, please proceed through the door marked "This way to the egress." Some restrictions apply.

Update: OK, OK, it's a "Core Location" blacklist. Big deal. I'll see your tree and raise you a forest:

... an independent engineer discovered code inside the iPhone that suggested iPhones routinely check an Apple Web site that could, in theory trigger the removal of the undesirable software from the devices.

Mr. Jobs confirmed such a capability exists, but argued that Apple needs it in case it inadvertently allows a malicious program -- one that stole users' personal data, for example -- to be distributed to iPhones through the App Store.

As I've said before, "protecting users from malicious programs" is code for "cryptographically enforcing restrictions on applications to protect our and our partners’ business model." The bullshit about "stealing personal data" is just a rhetorical sleight of hand, like the RIAA claiming that piracy hurts "artists and other rights holders" when 99% of artists don't own the rights to their own songs. How many apps has Apple de-listed over privacy concerns? Only one that I know of, and it was quickly reinstated after a quick update. How many apps has Apple de-listed (or prevented being written in the first place) to protect their business? Lots and lots.


My non-lawyerly reading of the GPL says no, or at least, not without some significant buy-in from Apple.

This is the relevant portion of GPLv2 section 3:

3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following:

a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or,

b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code ...

Since all iPhone apps must be distributed through a third-party (Apple's "App Store"), that would make Apple the "distributor." Which would mean that Apple -- acting as the distributor of GPL-licensed object code -- must provide source code or a written offer to provide source code. It's analogous to a Linux distribution -- they distribute binaries of upstream GPL programs, so they need to host the source code as well.

Is this correct, and if so, will Apple be set up to do this?

(My non-lawyerly reading of GPLv3 just makes my head spin, so I won't even venture an opinion about that.)


I have nothing to say about the iPhone that hasn't been said already. Apple made it very clear what they were offering: a carrier-locked, closed-development mobile computing device where every aspect of the user experience would be controlled by Apple. I'm told it can also make phone calls. If that's what you want, then buy it. If not, then don't. If you want an iPhone without the phone, buy an iPod Touch, but it doesn't run third-party applications either. (So much for the "network security" argument, but never mind that.)

Buy it for what it is, or don't buy it at all. Your choices don't get any more granular than that. Apple has been unwaveringly clear that the iPhone is theirs. Not yours, not Ambrosia's, not J. Random Hacker's. You may own the hardware, but you only have a limited license to use the software, and an ongoing contract to use the network. If you don't like those terms, your only recourse is to shop somewhere else to begin with.

I have a friend who purchased an iPhone on day 1. She will never hack it to add unauthorized applications or get it to work with another carrier. She uses it every day, raves about it, and says it has changed her life. She doesn't even resent the $200 price drop. Her only regret is that she couldn't buy it sooner.

Apple is betting that there are a lot of people like her, and not a lot of people like... well, like me. Or, if you hacked your iPhone, like you either.

Once upon a time, I bought an iPod Video 5G. It did what I wanted. It was based on documented video standards, so I could make my own videos. I still use it every day (connected to an iGroove in my home office). But it's been a bit of a hassle to continue using it after leaving the Apple universe and switching to Linux on my primary workstation. Smart people have reverse-engineered the undocumented iPod database and allowed it to work (syncing music with Amarok or videos with gtkPod), but I view these as temporary hacks to get me through this transition period, after upgrading my desktop but before upgrading my music device. (That reverse-engineering is an ongoing effort, by the way. I don't know or care if Apple was intentionally malicious or if it was just collateral damage, the end result is the same: time and effort spent chasing Apple's tail.) When this iPod dies, I won't buy another; I'll buy something that works out-of-the-box with my Linux workstation. Live by the penguin, die by the penguin. Apple doesn't want my business, so why reward them?

I don't understand this continuing obsession with buying things that you need to break before they do what you want. It's not just the iPhone; people did the exact same thing with the AppleTV too. Primarily to add support for other video codecs, like DivX and XviD. Why? (No seriously, why? I bought a Philips DVP 5960 for $60. It's a DivX-certified DVD player with a USB port. Out of the box, it'll play a DVD-R full -- or a thumb drive full -- of AVI files.) I thought the big draw for Apple hardware was that "It Just Works." By breaking it, you must know you're giving up the "Just Works" factor, so what's left? Rounded corners?

My current theory is that it's some twisted form of wish fulfillment. "I wish this company understood the value of openness, but they don't, so I'm going to keep buying their closed, crippled shit until they get it." Yeah, let me know how that works out for you. And while you were waiting breathlessly for them to "get it," Apple locked out third-party videos. And third-party hardware. And third-party ringtones, applications, and carriers. ProsperityOpenness is just around the corner!

John Gruber makes this point, perhaps more constructively:

There’s only one way to pressure Apple into opening up iPhone development, and it isn’t by developing underground iPhone apps. It’s by not buying iPhones. Money talks, and right now, there doesn’t seem to be a shortage of people willing to give Apple money in exchange for a completely closed iPhone.


1995 — Apple's "Been there, done that" t-shirt (which I still own, BTW):

1984 Macintosh · Graphical User Interface cut, copy, paste, undo · QuickDraw bit-mapped graphical display, long file names, 3.5" floppy

2006 — anonymous fanboy hating on Linux:

You're going from "It just works" to "Hope it works". ... I want the OS to stay out of my way. No f'ing popups and no applications that look completely different from one another with nonstandard behaviors–there should be a standard way to copy and paste something from one window to another and it should work reliably.

2007 — the iPhone debuts:

One problem is that the iPhone doesn't support the concept of selected text. That means you can't just select a specific portion to quote of the message you're replying to; nor can you select a chunk of the quoted message and delete it while editing. The only way to delete text is one character at a time (although the keyboard does let you press-and-hold to repeat).

... With no menu bar, there's no Edit menu. With no keyboard, there's no command-key shortcuts. The Newton solved this with magic gestures. The iPhone solves this by not having a clipboard at all. No copy, no paste.

You gotta admit, that's at least a little bit funny.