By John Gruber
Square Reader SDK lets you use Square hardware to take payments in your app.
C4, the second instance of Jonathan “Wolf” Rentzsch’s excellent conference for indie Mac developers, took place over the weekend in Chicago. Here’s some of what you missed:
What exactly does it mean to be an “indie developer”? Wolf’s definition: working for a non-large company, writing commercial software. But it’s more than that, clearly, and what’s most exciting is that small indie shops — in many cases, one-man shows — are exerting growing influence over the software world.
The great St. Louis Cardinals pitcher Dizzy Dean said, “It ain’t bragging if you can back it up.” Keep that in mind, and it’s hard to criticize Wil Shipley. His talk on marketing advice for indie Mac developers was engaging, funny, and weird, but what made it great was that it was honest. Yes, Shipley clearly has an enormous ego and he’s not embarrassed to let it show; but he has done it — first as a founder of The Omni Group, and now as the founder of Delicious Monster.
Successful people often tend to be secretive about their strategies — it’s natural to worry about giving too much away to potential rivals and upstarts. Shipley’s ego and confidence in his own talent are such that he has no such qualms; he’s utterly unafraid to tell you exactly what he’s done and why, what works and what doesn’t, to promote and sell Mac software.
Two great lines from his talk. The first regarded attention to detail: “This is all your app is: a collection of tiny details.”
The second regarded how to generate anticipation in advance of a major release. Shipley recommends leaking screenshots, and, near the end, allowing beta testers to start talking about the app publicly. But, as for the app itself: “Don’t announce until it can be downloaded. Don’t let it be downloaded until it can be bought.”
If you think about it, this is very much in line with the promotional strategy for blockbuster movies: show tantalizing shots in advance, try to get people talking about it, but don’t let people see the movie itself until they can pay for it.
He also had a brief demo of the still-in-development Delicious Library 2.0. Very impressive.
Jalkut’s point was very simple: developers tend to think that “acquisitions” are something done by “business people”, suits making deals on golf courses and the like. In a show of hands, only a handful of the 150 or so attendees admitted to ever having bought or sold the rights to a software product. But if you’re developing and selling commercial software, you’re a business person, too.
There’s a big difference between the sort of talent and work involved in designing and implementing a new app, and what it takes to run a software business with a stable of existing products and a large user base. Developers who are good at the former and bored by the latter might do well to sell their creations and move on to the next new app.
Morel works for VMware on Fusion; his talk presented an engaging, approachable overview of how Fusion works. Ultimately, though, the feature the audience wanted most was one VMware can’t provide without permission from Apple: virtualizing Mac OS X itself. (Imagine the advantage to developers for QA testing to be able to run multiple versions of Mac OS X on the same machine without rebooting.)
Interesting background on why he chose to create TextMate, and what informed his design decisions. Best line: “TextMate is a platform on which bundles are the software.” What’s interesting about that is that Odgaard admitted that this wasn’t how he envisioned TextMate at the outset; the idea of bundles came much later, but now they’re the core appeal of the product, and he’s embracing that in his work on the upcoming TextMate 2.
Bobby Andersen, the 19-year-old wunderkind iconographer behind the newly-founded (and well-named) Pixel Implosion, held a short session showing how he created this icon for QLab. (Short answer: Cinema 4D and a lot of work.) I find iconography to be one of the most fascinating aspects of this entire racket; it requires the confluence of branding, illustration, user interface design, and pixel wrangling. It’s just plain fun to watch icon jockeys work.
Erlang is a very interesting programming language that, thanks to Ippolito’s overview, I’m now pretty certain I will never use myself.
The performance gains Ippolito’s team has seen with their Erlang-based web ad server are impressive, but linguistically, Erlang sailed right over my head.
Engst, who’s been editing, publishing, and writing for TidBITS for 17 years, previously gave talks at the old MacHack conference on how indie developers can better deal with the press. His talk at C4 was in some ways the reciprocal of Shipley’s. The point of both is simply this: How do you get attention paid to your work?
I found myself in agreement with nearly everything Engst advised. One nugget that stood out in particular was his admonition regarding how to write a press release; namely, look at the press releases from successful companies like Apple and just copy the format exactly. There’s a simple formula, and your press release is the one place where you do not want to be creative. I’m amazed at how many bad press releases I get each week, where by “bad”, I mean ones where I read the first paragraph and still don’t know what exactly is being announced.
The biggest shame of the conference is that the Q&A session after Engst’s talk was cut for scheduling reasons; I got the sense that the audience had a lot of questions.
There are two separate bridges between Ruby and Objective-C: RubyCocoa and RubyObjC. Burks wrote most of the documentation available for RubyCocoa, and then went on to create RubyObjC as an alternative. His talk was both technical and yet somehow very personal; there’s something riveting about a man driven to forge his own advanced tools. There was a wonderful narrative flow to Burks’s talk; as Buzz Andersen twittered:
Tim Burks is my kind of geek — peppering his RubyObjC programming language talk with historical/biblical allusions and metaphors.
Burks’s talk concluded in a way that was both unexpected (because the talk was billed as being about Ruby bridges) and yet somehow inevitable: he’s written a new bridge, Nu, which he describes as, “a new programming language that binds the expressive power of Lisp to the pervasiveness and machine-level efficiency of C by building on the power and flexibility of Objective-C”.
It was a beautiful talk, and Nu looks like a beautiful language.
Alex Payne from Twitter was in attendance, and he set up a special C4 Twitter “back channel”. Anyone following the “c4” Twitter account during the course of the conference received all tweets directed to that account. Simple, easy way for the audience to chatter in a way that was distracting to neither fellow audience members nor the speakers. I thought it was a grand success.
Sunday morning’s opener, and my favorite session, hands down. Hilarious, informative, insightful, inspiring. Sasser described the origins of Panic — he and Steven Frank writing Mac software on nights and weekends out of a shared apartment in the late ’90s. He described the thinking behind Coda, their newest and most ambitious project to date. He showed his UI design prototyping technique based on Photoshop layers, with each feature in a layer and related features grouped into folders. He talked about resolution independence, and how and why Panic made Coda the Mac’s first resolution-independent app. (It looks damn good zoomed in.)
My favorite part was a bit about Coda’s toolbar. Sasser had a specific idea in mind regarding how to visually indicate which tool is currently selected; the problem is that it required the app to draw all the way to the bottom of the toolbar, but there’s a limitation in Cocoa’s NSToolbar that prevents an app from drawing in the bottom three pixels.
Three pixels. And, despite many attempts, they found no way to work around it. So, two options: give up and compromise, or start from scratch and write their own Cocoa toolbar from the ground up.
They wrote their own.
Just three measly pixels, but there was no other way to make it look just right. The decision exemplifies what makes Panic, to my eyes, the most Apple-like indie Mac developers.
Lots of clever hacks — including Craig Hockenberry’s web app graphing calculator for iPhones and Rosyna’s insane animated menu backgrounds for Mac OS X — but the three I voted for (everyone cast a ballot for their favorite three) were the three that won: Glen and Ken Aspeslagh’s two-way videoconferencing iPhone app, Lucas Newman’s Lights Off game for the iPhone, and Dave Dribin’s The Bouncer, a Dock icon bouncing hack that Dribin demoed beautifully.
For the last session on Saturday, “Drunkenbatman”, as he did at last year’s C4 and at his own “Evening at Adler” event before that, led a panel discussion. This year’s panel was mostly comprised of the speakers from the other sessions at C4.
There were three main topics. The first regarded Pzizz, a Mac OS X nap timer with some scammy marketing behind it. The third topic regarded the state of open source on the Mac. Neither topic seemed relevant to the panelists nor seemed to hold the interest of the audience.
Drunkenbatman’s second topic, however, was incendiary. It began with this slide and statement: “Black People Don’t Use Macs”.
There’s a fine line between a moderator challenging his panelists (good) and ambushing them (bad). This came across as the latter; an unanswerable “Do you still beat your wife?” question.
Several panelists and audience members disputed Drunkenbatman’s basic premise. One audience member spoke up with his observation that at Macworld Expo, the largest gathering of Mac users in the U.S., there are plenty of black people. Drunkenbatman responded by turning up the hyperbole. As I transcribed it in my notebook, he said: “The only black people at Macworld are outside begging for change.”
Racial diversity is a legitimate and important topic (although I question whether it was a good topic for this panel at this conference). Some truths are uncomfortable, and the only way to get at them is through uncomfortable discussions. Drunkenbatman’s “begging for change” statement, however, was neither true nor simply a controversial opinion. It was stupid.
It was an exaggeration intended to emphasize his implied thesis, which is that black people, in general, are under-represented in the Mac community compared to the communities surrounding other OS platforms. I don’t know whether that’s true; I hope it’s not, but I don’t know. When opinions run as hot as they can regarding an issue such as racial diversity, it’s essential to argue with as many facts as possible — and but alas, Drunkenbatman had no numbers to cite.
It was a mistake the discussion never recovered from. Audience reaction ranged from offended to embarrassed (and, by the end, bored). Much like a train, once a discussion like this falls off the rails, it doesn’t come back.