Archives for : June2008

Of bandwidth “hogs”

Noted in the Chron, an article saying Online bandwidth hogs to be cut off at trough, covering technologies being tested by broadband providers to meter internet usage and cut off heavy users, or at least push them into a more expensive tier.

It’s an interesting bit of bias to see how the article takes the ISP’s at face value by decreeing in the headline that heavy users are “hogs”. To be objective about it, just what is “hogging” the line? In a case study of a cable system in Texas cited by the article, Time Warner bumps users into the next pricing tier when they use more than 20 GB a month.

How much does it take to blow your limit, and can you do it without being a BitTorrenting media pirate? Well, I only have to look at my development work. For a while, Apple was putting out an iPhone SDK beta almost every week, at 1.5 GB each. So, four weeks of that and you’re up to 6 GB. Let’s say I also pick up a new Snow Leopard seed… recent Mac OS X install DVDs have been about 6 GB. Two of those in the same month and I’m up to 18GB. Add the documentation, a few software updates, an iTunes movie, any of the same downloads to a second computer, or just typical web use over the course of a month, and I’m over the limit, without ever having BitTorrented a damn thing.

Or, to hear the broadband providers tell it, I’m a bandwidth hog.

Their position isn’t too surprising, of course. If I were still trying to make 21st century revenues off 20th century infrastructure (or, in the case of the phone companies, 19th century), and I had a government-enforced monopoly to protect me from competition, then of course I’d want to give customers as little for as much money as I possibly could. And I’d get away with it, because exclusive government enfranchisement, funded with a small amount of campaign cash, would let me do more or less whatever the hell I wanted with my captive customers.

And if all the software development jobs move to less backwards countries, well, that’s not really the fault of the government and the ISPs, now is it? Nah, sleazy public-private collusion at the expense of the economy is the American Way.

Death or glory, vol. 3

When we all got laid off from Worthless Piece of Crap Wireless Software Company #2, I vowed I’d never touch mobility again. When we crawled to the finish of Swing Hacks, I vowed I’d never write a book again.

So, when I say that I’m co-authoring a book on the iPhone, well, I guess I’ve got some ‘splaining to do.

The teeming dozens of you who read this blog — well, more than one dozen — have probably picked up on my interest in the iPhone OS platform and the Cocoa Touch framework. It’s one of the first new platforms we’ve seen in a while, and a highly appealing one at that, thoughtfully designed, with good documentation and tools provided, and with millions of users already out there, and tens of millions more waiting for the iPhone 3G. Apple’s App Store strategy stares straight at 10 years of carrier and device-maker restrictions on (or utter prohibition of) third-party applications and gives it a long-overdue middle finger, something that has developers swarming to the platform.

Let’s noodle with a little math. Let’s say you could sell a $3 app to 1/10 of one percent of iPhone owners. Your cut would be about $2 a copy. Assuming 20 million iPhones by the end of 2008 — the 6 million already in use, plus many more at the low price point and available in 70 countries instead of 6 — you’d multiply that $2 times 20,000 and get $40,000. Do that twice a year and it’s a decent day job. Adjust price points, popularity, frequency, and/or expectations, and there are many ways to make this work.

And that’s not even considering the likely consulting/contracting opportunities for enterprise iPhone app development. I’m available now, and my rates start at $80/hour. Contact for a free initial consultation.

So, while I was teaching myself iPhone app development — I got the SDK the day it came out, and was working through the introductory docs on the plane home from the Java Posse Roundup — Daniel Steinberg of the Pragmatic Programmers contacted me about joining on with an iPhone book. The Prags’ approach is excellently-suited for the topic, as their build-your-own-PDF beta program and constantly-available updates are well suited to a topic as much in flux as the iPhone SDK (anyone who has tried out all the betas can attest to this… the default XCode template continues to be in play, even after 7 betas). Their philosophical approaches to book-writing and guidance to authors is also highly appropriate and based in real-world experiences… some of which would have made my earlier books work out better.

There are currently three authors on this as-yet untitled book. Marcel Molina, Jr. is a long-time Rails expert, and Bill Dudney is a “former Java guy” (I’m hearing that term a lot in iPhone circles) who just finished a nice book on Core Animation that I was fortunate enough to tech review (he has a chapter on QTKit integration that covers playback and capture… awesome!).

Right now, we’re cranking to have a substantive beta, and I’m enjoying the benefits of having started most of my study with the non-GUI elements of the iPhone, allowing me to dig deeply into media and networking (you may have seen hints of this work here, here, and here, among other places), and then come back to the GUI. Moreover, when I started writing my sample code, my example forced me to jump right in and do paged-based navigation, so instead of dicking around with little one-off “play with some trivial widgets” experiments, my first GUI apps ended up being big enough to give me a sense of how all the parts of UIKit relate to one another, so while it was a steep hill, stuff has come pretty easily after getting over it.

Oh, and if you’re wondering about my web radio client, ported from iPhone back to Mac, and the ADC support issue I filed on Audio Queue Services callbacks? I met the ADC engineer at WWDC. It turns out the ADC engineers all got pulled into the iPhone crunch, which has left a lot of ADC issues neglected. He did send me some code which may get me unblocked, but I haven’t had a chance to try it yet. Even if it works, I almost certainly won’t be ready for the App Store opening; I’ll probably table it until after the book’s beta. But still, it would be nice to get an app on the store before one of us has to write the chapter on how the reader can get his or her app on the store.

And that gets me to one of the really great things about the Prags’ approach. They’re strongly reader-oriented, with a concept of getting the reader to go on a journey of learning and accomplishment. When I was doing the QuickTime book, my editor encouraged me to abandon “we” and speak directly to the reader: “I” think this, “you” can do that. This was a good approach for developing a dialogue, but the Prags take it to the next level, and actually have a valid use for reintroducing “we”: it’s the things we do together, collaborating as author and reader to master this topic.

Anyways, the crunch is on. Right now, I’m handling file I/O, database, preferences, network I/O (Cocoa and CoreFoundation are practically two topics), followed by a bunch of media topics. My guess is that I’ll be in for 60-80 pages of the beta. And I’ve got about 30 now.

So the next couple weeks will be a little crunchy…


I just removed the Google Ads banner. For a while, it was kind of cool to see links to H.264 encoders and Java and Cocoa stuff, relating the otherwise disparate topics I’ve been blogging about. But recently, it’s all been single skyscrapers, the same thing over and over again, and I’ve gotten bored with it.

Would I feel differently if it were generating serious money? Probably not. Like I said when I set it up, I was somewhat motivated by just wanting to understand the ubiquitous Google Ads. Now that I have… meh.

Fry’s burns me

Considering we go to Fry’s practically once a week, it figures that sooner or later I’d get burned by their legendarily bad service. I bought a 500 GB drive for the tower (rather than partitioning to install Snow Leopard, it seemed easier to just get another drive, considering the Mac Pro has drive bays to spare). I should have thought twice after I realized the package had already been opened (the seal on the wrap was torn, and I later noticed the cable bag had been opened), but it’s a 45-minute drive each way to Fry’s, so I just went ahead and installed the drive.

It works, but it has a buzzing sound that comes up every second or two. Not real bad, but it is audible over the Mac Pro’s fan (wouldn’t have heard it over the Power Mac’s fan, but the Mac Pro is quieter). So that’s a little annoying. Actually, what sucks is the principle of selling returned merchandise as new, especially since Fry’s is usually good about marking returned merchandise on the shelf.

Then again, for $80, it’s not worth getting all that mad over. That’s about what I paid in baggage fees to be mistreated by AirTran last week. Thing is, in a year, terabyte drives will probably be $80, and we’ll be in Grand Rapids, nowhere near a Fry’s or AirTran. So I won’t be doing business with either for much longer.

Ergo, screw you guys, I’m going home.

An arbitrary collection of hastily taken, poorly composed iPhone photos from WWDC 2008

What can I say about WWDC 2008? Well, not that much actually — all the sessions other than the keynote were covered by NDA, so beyond the publicly-available session schedules and descriptions, the content of the show remains off-limits. So, yeah, I learned about stuff in Snow Leopard, QuickTime X, and iPhone 2.0, but I’ll have to wait until Apple releases the stuff before I can comment on it.

Granted, the keynote isn’t NDA, since it was made available in its entirety. The blur below is Steve Jobs taking the stage in the beginning:
Steve Jobs takes the stage for WWDC 2008 keynote

Two things you wouldn’t know from watching the fixed-in-post stream or video podcast of the Stevenote:

  1. The parade of nations in which iPhone 3G will be sold was accompanied by the Disney theme park song “It’s A Small World”. Guess they didn’t want to deal with rights fees?
  2. The second time they played the ad, the sound guys forgot to bring up the ad audio. Fixed in post.

So, yeah, whatever, check out the Stevenote yourself if you must. Now onto my own impressions, starting with sessions:
WWDC 2008 Presidio room

That’s the “Presidio” room, the largest of the session rooms I attended. Actually, it’s about the front 1/3 to 1/2 of the keynote room, which was then subdivided into smaller sections for regular sessions the rest of the week. Presidio played host to what you’d call the “mainstream” iPhone sessions, stuff like intros and debugging and the various core libraries and such. The room probably holds about 2,000 people, so you can draw the conclusion from the foot traffic that WWDC was at least half iPhone developers, maybe more.

But I think that’s a little deceptive. I don’t think the Mac/iPhone distinction was particularly binary. It’s much more of a continuum of people with varying levels of interest in both platforms. Frankly, from what I could tell, there weren’t very many developers there who were completely new to Apple platforms. A lot of the iPhone developers were people who’d already been working on the Mac. Some of these are long-time Mac developers — notice how some of the Apple Design Awards for iPhone went to Mac stalwarts like Iconfactory, and how Pangea got in the keynote — others are people are those who’d been messing with Mac by night, and are interested in joining the Gold Rush (or Black Parade, if you will) on the iPhone. Actually, one thing that was uncanny was the number of people who I spoke with in line who were Java programmers or IT people by day, iPhone apprentices by night. I don’t know if this augurs a mass migration of developers away from Java, or if the kind of people who would go to WWDC would have such a typical “Mr. Anderson” day job. But having gone to JavaOne a month ago, the technical merits and appeal of the platforms are like night and day. And the Sun isn’t what’s shining.

Subjective comments about session content that avoids NDA violations:

  • Snow Leopard’s performance technologies have fascinating potential.
  • QuickTime X is a major project that was probably inevitable given the age of the QuickTime codebase (nearly 20 years old at this point). Great potential, but surely someone’s favorite features will get left behind.
  • As I blogged on O’Reilly’s iPhone site, iPhone webapps really surprised me with their capabilities. In our demands for a real SDK, we might have overlooked some coolness here.
  • Probably the biggest contrast with Android, which I investigated for a client, is that Android’s SDK is completely decoupled from any eventual implementation, while the iPhone SDK is generally well-aware of the devices on which it runs. The purists probably balk at tight coupling, but I wonder if the Android approach isn’t making a Big Design Up Front or Waterfall-style mistake: it’s promising functionality (and a quality of service) that yet-to-be-developed hardware has to back up, or at least gracefully degrade out of. The iPhone’s approach is more, well, agile: build a device, put an SDK around its features, rev the device, rev the SDK. Android will have to prove to me that it’s not going to end up as “write once, debug everywhere.”

While I’m making contrasts with Java, here’s another point on which WWDC stomps JavaOne:
WWDC 2008 session seating power strip

These power strips weren’t everywhere, but they were in enough sessions that if you got in early enough and sought them out, you could avoid needing a second battery. They had some serious power distribution bricks under the power-stripped rows, so this wasn’t some cheesy daisy-chain thing that could trip the breaker. It was done right.

I didn’t use the hang spaces much, but got a few funny shots:
WWDC 2008 hang space whiteboard job listing

Notice the note on the right: “and we have Rock Band and Wii”. At the Java Posse Roundup, I mentioned that having a communal video game system was the most effective team-building tool for a high-tech company that I knew of, particularly good at getting QA and engineering talking. As social as Soul Calibur and EA’s sports games are, I imagine the super-social Rock Band could bring this to a whole new level.

Another WWDC 2008 hang space whiteboard

Nothing super remarkable here (the Blizzard listing is interesting), except to note how packed it is with contacts and job listings. Now on the other side, let’s take a step away from WWDC for a minute and look across 4th Street to that temple of failure and delusion, the Metreon:

Closed down Metreon shops

At this point, the Metreon is more than half empty. The fifth floor’s “Where the Wild Things” attraction is long gone, as is the fourth’s “The Way Things Work” movie and exhibits. The high-end steak place on the second floor closed sometime between JavaOne and WWDC, joining the Games Workshop and the stores above, previously a Gundam store (left) and a comic shop (right). Across the hall from them we find:

Crane Game store at Metreon

…a store space with nothing but crane games. To make it more amusing, this space was originally occupied by a Microsoft retail store. Given the collapse of everything around it in Metreon, it’s hard to hang that one on Microsoft.

Back to WWDC, here’s The Company Store:

WWDC Company Store

It’s not the selection offered by the Company Store at Apple HQ, but they had a perfectly adequate set of Apple t-shirts and a few other items. Would have been nice if they hadn’t charged me three times for my purchase, but that’s for me, their vendor, and Mastercard to sort out tomorrow.
WWDC 2008 Evening Reception

One of the evening receptions… pretty typical for a Moscone event, actually… the food lines move way too slow for the number of attendees. On Tuesday, they had free drinks (fast) to go with the free food (slow). You can guess how that worked out.

OK, a few people pictures before I call it a night:
James Duncan Davidson @ WWDC 2008

This is James Duncan Davidson, who was photographing the Thursday night bash in Yerba Buena Gardens, along with partner Pinar, on an official basis. They got some shots from the fifth floor of Metreon, probably marking about the only time recently that floor’s been occupied.

Daniel Steinberg @ WWDC 2008 Party

And this is podcaster, Pragmatic Programmers editor, and original editor Daniel Steinberg at the party, with the Barenaked Ladies performing behind him. The band was ideal for the event, Mac geeks who could crack wise about arcana from System 7.6 (or, for that matter, an inclusion of one of their videos on a System 8 CD, without their approval). Compare (again) to JavaOne, where Smashmouth’s contempt for corporate gigs was perfectly captured by the disinterested singer’s banter in which he literally said “we’d like to thank YOUR COMPANY for having us here tonight.” Still, kind of a bummer to think that I never got to WWDC in the era of the Campus Bash. My bad for not jumping into the Mac platform sooner.

Not dead, just too busy to blog

Yes, I actually am at WWDC. I’ve just been so busy doing conference stuff, keeping the front page going, and blogging for O’Reilly’s Inside iPhone site, that I’ve neglected [Time code];

Sorry. I am shooting iPhone pictures for a big update later. For the time being, enjoy the irony of a screenshot from my QTKit capture app taken from inside the Graphics and Media Lab at WWDC:

More later, at least what I can blog without violating NDA.

Fees and sleaze

In the gate, waiting for my hour-late flight to WWDC. Somehow, my suitcase that’s been fine for 10 years is now too big and subject to a $30 fee.

What other industry responds to hard times by screwing the customers? I think they’ve misapplied the lessons of RyanAir, which uses fees to make up for low fares. Adding new fees to the same old fares makes us feel like we’re being gamed. If fuel is so expensive, just raise fares $50 and stop being such dicks. Sheesh.


Got my iPhone signing certificate, so I can now put my apps onto the actual iPhone hardware, instead of just running in the simulator.

Everything’s still in NDA-land, so I don’t want to get into details, for fear of Apple yanking my cert. Suffice to say that stuff sometimes works differently in the simulator than on the device, which is absolutely typical for this kind of work.

WWDC wishlist and predictions

About this time next week, I’ll be queued up on 4th Street (or Mission? or worse?) for the WWDC Stevenote. Speculation about what will be announced is sure to be a hot topic on the Mac blogs this week, so here are some things I think we will see, and things I’d like to see announced at WWDC:


  • Deprecation of Carbon – I’ve already made my case for this one. With Carbon not going 64-bit, and all of Apple’s hardware already 64-bit, formal deprecation is just another shoe that must drop eventually. How they handle it is another matter entirely… has Apple already Cocoa-ized iTunes and Final Cut, and if so, how did it go?

  • Mac OS X 10.6 announced/previewed, and Intel-only – I predicted 10.6 would be Intel-only back in 2005, and though I got some hate (see my follow-ups), it’s impossible to imagine Apple including PowerPC support in an OS that’s probably at least a year off, and therefore four years after the last PPC Macs shipped.

  • A rebranded .Mac – Not my prediction; I ‘m just nodding my head in assent with the rest of the Mac community, noting the research reported by the likes of Mac Rumors and Daring Fireball. Pity if it’s true, though. I have long disliked .Mac, and don’t see a relaunch changing my mind about it. I’m not sure that Apple should be in the service business (don’t we always tout how they’re a hardware company?), especially when there are more, better, and cheaper or even free alternatives to the .Mac services.

    The real annoyance is that useful functionality is obviously omitted from Mac OS X or iLife in order to provide that functionality on a paid-subscription basis through .Mac. Consider that to sync mail, bookmarks, and iCal events between multiple Macs, you have to pay for .Mac and send your data through their servers; it’d be more elegant to keep the data within your LAN by just letting the Macs discover each other with Bonjour. And for the savvy user, Apple’s nefarious skullduggery! doesn’t seem worth the price: why not just use IMAP Gmail and put events on Google Calendar, and then sync by making all of your Macs be clients of the web service?

  • A 3G iPhone – Well, duh.

  • iPhone nano – The original iPod established buzz at a high price, then offered a less-expensive version (first the mini, later the nano and shuffle) that more people could afford. Apple can make their 10 million iPhone goal easily if they have a model that goes for $199. Question is, what do you take out to get there?

Wish list

  • A new Cocoa Touch device – Depending on how hard Apple wants to push, the iPhone OS could be the basis of many new lines of products, such as the Wii-like Apple TVii I proposed a while back. But imagine whole new devices, and how they’d work with iPhone OS. I’d love to see an automobile information system powered by iPhone OS: speakerphone, mapping/navigation, audio system, a separate rear screen for movies and other video, all wifi-enabled so your car syncs your podcasts while it’s parked in the garage overnight. If I were GM, Ford, or Chrysler, I’d throw whatever money I had left at Apple to get this in my company’s vehicles, as soon as possible (since every article I ever read on the Detroit Three says the cars we actually want from them won’t be out for another three years).

    One reason I don’t see this happening is focus. In a Fortune interview, Jobs stressed the importance of saying no to good ideas, so Apple can instead focus on a small number of key efforts (compare to, say, Sun, which says “yes” to pretty much everything, but puts insufficient resources behind them, hoping that 100 uncoordinated 3-person teams will eventually produce something revolutionary). So my gut feeling is that they’ll hold off on cool new iPhone OS devices for another year until iPhone itself is truly established.

  • More editing APIs in QTKit – Since we can’t use the classic C-based QuickTime API in 64-bit apps, QTKit is obviously the future of QuickTime. I guess I expected that by now, QTKit would offer more of the the advanced functionality of the API it is replacing. Editing in QTKit is still primitive — you get copy-and-paste, but not management of the edit list, or track modifiers like tweens. I don’t see how you write something like Garage Band or Soundtrack’s rubber-bands for level and pan adjustment with QTKit, short of putting together your own “media document” abstraction to map modifications in pan or volume to times in the media (perhaps skipping QT and working with CoreAudio instead?), and that’s kind of the point of QuickTime. If QuickTime’s going away someday, QTKit really needs to add a lot of missing pieces.

  • A Mac Apps Store in iTunes – Granted, I’m presuming the success of the iPhone SDK app store, but for a lot of indie developers, the value-proposition is highly appealing: give Apple 30% of your proceeds and you don’t have to worry about licensing, versioning, distribution, hosting download servers, etc. Plus, the store is going put your app’s description in front of more people than an indie ever could. So… wouldn’t this be awesome for the indie Mac developer, too? Wouldn’t it be great for users to be able to try, purchase, and maintain smaller and simpler Mac apps through iTunes, just like they do their music, movies, and iPod games? Please tell me Apple is at least thinking about it; I would probably start writing my own commercial Mac apps if this were available.

I might have more wish-list items later, but this is a start. I’m also interested to see what the rest of the Mac community is watching for.