Archives for : July2009

Flo Shrugged

This story starts, for me anyways, at WWDC. The theming for Moscone West was bursting, flying app store icons. Up on the second floor, the windows showed icons captioned with the name of an app, where it was created, and some fanciful stats (“Marriages saved: 700”, “Bullets fired: 2,000,000”, that kind of thing). One that caught my eye was this somewhat “Western manga-style” icon:

That’s Flo, the lead character of Diner Dash, the first and most popular of PlayFirst’s casual games (more on the series from Wikipedia). The game is based in time-management: you get more points by chaining your actions (seating customers, taking orders, delivering meals) in groups, so you try to juggle impatient customers, buffering them up for a few seconds so you can get them all in the same mode (ordering, eating, paying), and thereby build up a combo.

Since the original dates back to 2004, I ended up buying one of its more modern sequels, Wedding Dash, and have been playing the heck out of it. Between self-employment and high-maintenance kids, I don’t have time for long PS2 sessions (Final Fantasy got me in the mindset of setting aside at least an hour whenever I turn on the PS2, something I can never do), but knocking off a Dash level in five minutes is a nice break.

One thing that struck me about the game is the simple story that unfolds between levels, as lead character Quinn starts planning weddings for friends and slowly turns it into a career, and a business that Quinn builds as you progress through the game. Flo cameos frequently to keep Quinn’s head in her business:


About the third time that Quinn described the work of the game as her “business”, it hit me that there is a none-too-subtle message to this game, about building a business as a virtuous pursuit. With rare exceptions (like Miyazaki’s least typical film, Kiki’s Delivery Service), you really don’t see that often in pop culture; companies are much more typically portrayed as insufferable sweatshops, or rapacious empires. And given the times, Flo and Quinn’s DIY messages really stand out as a breath of fresh air: here in handout-happy Michigan, it seems like a lot of people are sitting around waiting for their share of stimulus money (i.e., their grandkids’ future taxes), and as video games go, it’s a sharp contrast with the “build a criminal empire” ethos of the Grand Theft Auto series and its many, many knock offs.

Continuing that message, PlayFirst just announced a collection of women’s apparel that builds on the idea of Flo as a 512-pixel Dagny Taggart. The t-shirts offer slogans like:

  • Roll up your sleeves. Dreams take work.
  • Not another princess. I’m my own Fairy Godmother.
  • Elbow grease is the new black.

From the PR:

The launch of Flo’s Closet is deliberate in its timing as it aims to inspire and encourage women to strive towards success in challenging times. A recent study* reiterates this potential showing that female business owners are surviving the downward trend better than other businesses and Flo’s in-game character notoriously rejected the corporate life and aggressively pursued a more meaningful venture as a successful restaurateur.

So, yay PlayFirst. The games are fun, and the message is something that all of us, women and men, need to hear more of. I’m now following PF on Twitter, and the PF jobs Twitter is a nice feature with a shockingly low number of followers (13?!)

Noted: iPhone System Audio Unit Access Guide

Oh, this is new.

[iPhone] System Audio Unit Access Guide

Looks like it got quietly posted the week before WWDC. Some little-known info in here, like the description of the Voice Processing I/O Unit:

Has the characteristics of the I/O unit and adds echo suppression for two-way communication.

That’s very interesting and important, as previous descriptions of the vpio unit all had this very cagy description about allowing processing of the audio, and said nothing about echo cancellation (in fact, at the WWDC session, I still couldn’t tell if you got echo cancellation from the unit, or if it just facilitated bringing your own DSP to the table).

I think I’m going to have to update a sentence in the iPhone SDK Development book’s Core Audio chapter. Oh well, good problem to have. Now I need an excuse to use the vpio unit.

iPhone Camp Atlanta talk pre-release[?] video

I found a link on (Low-Latency Core Audio with Queues, Units, Graphs, and AL) to the talk I gave at iPhone Camp Atlanta a few weeks ago. Here’s the <embed>:

I’m not sure if this is meant as final, or if the conference’s home page will have updated video links later. I sure hope it’s not final, because the video is several minutes out of sync with the audio. To wit, I’m looking at 10:27 right now, where the video shows a dialog indicating the hardware latency of the Audio Unit demo, but the soundtrack is still one topic back, talking about Audio Queues. It also cuts out at least five minutes before the end of the talk.

While it was short and off the cuff, I thought it went well and covered a lot of important stuff for people who’ve touched Core Audio and want to know how far down the rabbit-hole goes. Hoping they’ll post a fixed video someday.

Someone Else’s Story

An odd little coincidence. Six years ago tomorrow, I wrote the first version of Wikipedia’s article on the musical Chess. A few bits of that draft are still in the current article, including a very convenient phrase I used to describe the plot:

The story involves a romantic triangle between two players in a world chess championship, and a woman who manages one and falls in love with the other.

It’s that last bit that somehow quickly gets across the whole “this is not going to end well” concept of the show. Not a big deal, just atypically efficient writing for me.

So, amusing to notice it appearing nearly verbatim in PBS’ page for the Great Performances broadcast of Chess in Concert a few weeks ago:

… the East/West Chess Championship and the romantic triangle that develops between the Russian and American competitors and the beautiful woman who manages one and falls in love with the other.

Looks like someone used Wikipedia to write their blurb. Which is entirely sensible, just a total giveaway when you take the best bits verbatim.

For what it’s worth, I almost never contribute to Wikipedia anymore: as a reader, almost any interesting topics or excellent writing that I find gets deleted eventually, and that’s a huge disincentive. To steal someone else’s phrase, Wikipedia has forgotten more great writing than I’ll ever know.

Source Tags and Codes

iPhone Camp Atlanta was a great event. It’s really hard to believe this was the first one, considering the number of sponsors they signed up, the quality of the site and the AV setup, and even the smart touches like having the caterers set up cold pop alongside the continental breakfast for an 8AM start. My neurons appreciate cold caffeine in the morning.

With projectors and eyes-forward seating, this was an unconference for speakers more than chatters, although there was a room set up for organized group chats. Many of the iPhone speaking slots remained unfilled through the day, despite the high attendance (I heard that the respective signups for iPhone Camp outnumbered the co-located Mobile Camp by 4-to-1), which makes me think that while there are a high number of iPhone developers, many are early in their careers and are attending to hear talks rather than give them. I suspect that’ll be very different next year.

I did a brief talk, somewhat abbreviated by A/V setup problems with projector brightness, touring four approaches to iPhone audio engines: Audio Queues, RemoteIO unit with a render callback, RemoteIO unit in an AUGraph, and OpenAL. The examples were from the still yet-to-be-published article series that led to the earlier posts An iPhone Core Audio brain dump and An iPhone OpenAL brain dump, and will make a lot more sense once those articles are posted, since 25 minutes is really too short for diving into code this hard. Still, they recorded video of the sessions, and I’ll link to it from the blog once it goes up at the conference site.

A great touch at this conference was the use of QR codes on the badge, shown below:
Screenshot 2009.07.20 07.10.47

The 2D bar code at the lower right encodes my name, company, e-mail and Twitter URL. Various applications for smart phones (and some models of not-so-smart cameraphones) can read this format. I purchased the $1.99 QuickMark for iPhone app and was impressed that it analyzes the incoming camera data and can grab the barcode before you even click the photo button, resulting a scanned contact like the following:
Screenshot 2009.07.20 07.09.06

These contacts can then be added to your Address Book for later contact or Twitter-following.

The QR Codes are a great idea, and a nice equalizer for attendees who don’t yet feel they’re important enough to print up business cards. And let’s face it: the very idea scratches the geek itch. I’m going to make this a feature request for future conferences, starting with CodeMash ’10.

Oh, Atlanta!

Tomorrow is the big drive down to Atlanta (seriously, this is going to take 13 hours) for iPhone Camp Atlanta.

Normally, I wouldn’t want to make my conferences so far away, but I did live in Atlanta for 14 years and know the way well. Plus, we still own a house down there (have renters, waiting for them to close… it’s complicated and bad).

My plan is to offer a session on low-level Core Audio engines, just walking through Xcode projects (from those articles I wrote and which await publication) that use Audio Units, AU Graphs, and OpenAL. It should be a lot of the stuff that I brain-dumped about OpenAL and about Audio Units. I may pull together a couple unrelated pieces of code to compare to Audio Queue too; just a matter of how much time is left between now and Saturday morning.

At the moment, I don’t have a laptop. Mine died Monday night in the middle of a build. It was just tooling along, and snap! it was gone. I suspected it was a bad crash, because the charger went from brown to green at the moment of the crash, which made me think the power manager was having a bad day. When I couldn’t turn it on again, my fears were confirmed. So, it went to service at the Apple Store on Tuesday morning, on the dim hope that it could be sent out, fixed, and FedExed back by Thursday. I’ve got a FedEx tracking number saying it’s on a truck, headed to the Grand Rapids Apple Store by 10:30, so maybe this is going to work out.

Just to add to today’s activity load, I’m lunching with Dianne Marsh over at The B.O.B., then Neko Case concert tonight at Meijer Gardens with my wife (and hopes that the babysitter can withstand the kids for 3-4 hours).

And tomorrow, drive drive drive. Lots of podcasts, and a listen to this new Chess in Concert album. I suspect I’m so used to the original concept album (and so hate the “for Dummies” Broadway version) that I may not give it a real chance. It’s the trap of nostalgia: compartmentalizing the initial joy of an experience, possibly at the expense of new experiences (saw that idea in a Play magazine article, of all places). Less intellectually, let’s just say It Had Better Not Suck.

Stopping at Fry’s Electronics in Indianapolis on the way back on Sunday. Haven’t been to a Fry’s in 7 months (I used to go twice a month in ATL) and have a hell of a shopping list. Really need a wifi router or access point that doesn’t suck. Unfortunately, my tweet for recommendations hasn’t yielded any useful results.

Ogg: The “Intelligent Design” of digital media

Well, another go ’round with this: HTML5 won’t mandate Ogg as universally-supported codecs, and the freetards are on a tear. I was going to follow up on a JavaPosse thread about this, but I hurled enough abuse onto their list last week.

It’s abundantly clear in this blog that I don’t think Ogg is the solution that its supporters want it to be: I have a whole tag for all the posts where I dismiss Vorbis, Theora, and friends. Among these reasons:

  • I don’t think it’s technically competitive.

  • It certainly isn’t competitive in terms of expertise and mindshare, which is vitally important in media codecs: there’s a much deeper pool of shared knowledge about the MPEG codecs, which leads to chip-level support, competition among encoders, compressionists who understand the formats and how to get the most out of them, etc.

  • Its IP status remains unclear. With even MPEG-4, following a lengthy and formal patent pooling process, attacked by AT&T’s claim of a submarine patent, I have no reason to think that Ogg wouldn’t face similar claims, legitimate or not, if there was any money behind it, which there isn’t.

  • If I go to my former colleagues at CNN or in Hollywood and say “you guys should use Ogg because…”, there are no words in the English language that plausibly complete the sentence and appeal to the rational self-interest of the other party.

On this last point, I’ve got an ugly analogy: just as proponents of “Intelligent Design” are people who don’t really care about biology beyond the point at which it intrudes on their religious belief, so too do I think Ogg advocates generally don’t know much about media, but have become interested because the success of patent-encumbered formats and codecs is an affront to their open-source religion.

Ogg’s value is in its compatibility with the open source religion. It has little to offer beyond that, so it’s no surprise that it has zero traction outside of the Linux zealot community. Even ESR realized that continually shouting “everything should be in Ogg” was a losing strategy, and he said that three years ago.

I think the open source community would like to use HTML5 to force Ogg on the web community, but it’s not going to work. As others have pointed out, there’s little reason to think that IE will ever support HTML5. Even if they do, the <video> tag is not going to replace Flash or Silverlight plug-ins for video. Despite my initial enthusiasm for the <video> tag commoditizing video, I see nothing in the spec that would support DRM, and it’s hard to imagine Big Content putting their stuff on web pages without DRM anytime soon. And while you can put multiple media files in a <video> tag easily enough, having to encode/transcode to multiple formats is one reason that Big Content moved away from the Real/WMP/QuickTime switch to the relative simplicity of works-for-everyone Flash.

I’m tired of being lectured by computer people about media; it’s as ludicrous as being lectured about computers by my old boss at Headlines. Just because you use YouTube, doesn’t make you an expert, any more than my knowing how to use a username and password means I understand security (seriously, I don’t, and doubt I ever will). Kirill Grouchnikov pretty much nailed what computer people think good video is with this tweet. I’ll add this: there are probably a thousand people at Sun who understand 3D transformations in OpenGL, and maybe five who know what an Edit Decision List is. So they go with what they know.

A couple years back, I gave a JavaOne BoF in which I made a renewed call for a Java Media library which would support sample-level access and some level of editing, arguing that enabling users to take control of their own media was a manifest requirement of future media frameworks. By a show of hands, most of the developers in the audience thought it would be “enough” to just support playback of some modern codecs. JavaFX now provides exactly that. Happy now?

People who actually work in media don’t mind paying for stuff, and don’t mind not owning/sharing the IP. Video production professionals are so accustomed to standardizing on commercial products, many of them become generic nouns in industry jargon: “chyron” for character generators, “grass valley” for switchers, “teleprompters”, “betacam” tape, etc. Non-free is not a problem here. And if your argument for open-source is “you’re free to fix it if it doesn’t do what you want it to,” the person who has 48 shows a day to produce is going to rightly ask “why would I use something that doesn’t work right on day one?”

The open source community doesn’t get media. Moreover, it doesn’t get that it doesn’t get media. The Ogg codecs placate the true believers, and that’s the extent of their value.