Archive for September 2009

 
 

The Sunny Side of C4[3]

The Sunny Side of C4[3]
There’s no doubt about it: C4 is a marathon of an event. For someone like me, a dedicated introvert, there can be no greater challenge than being put in the presence of 170 other people for 48 hours, and being asked to interact with them.
But oh my, who those people are. If we were talking about your average crowd of slack-jawed, too-much-TV-watching, baggy-pants-wearing, Blackberry-wielding gum chewers, I would have taken a pass. But the attendees at this conference are, for lack of a better phrase, my people.
No, it’s better than that. These are the people I want to be. For the rest of the year, I’m merely yearning to write Cocoa while I’m buried in building web sites.
So while I inwardly cringe at the thought of another C4, I go anyway: this is the place where I gather the confidence and inspiration to be one of them. And it’s damned important to me.
I’ll tell you right up front: this was my third C4, and it was the best one yet. Herein, my highlights from this C4, both of the talks I liked, and the moments that stayed with me.
Dave Dribin’s talk on unit testing was an eye opener. He introduced me to the concept of “Test-Driven Development”. This is the notion that you write your code with those tests at the very heart of what you do. Write the test for what you want your code to do, then write the code such that it passes the test. That might sound crazy, but it seems to work. You end up with what I feel is the surest sign of good, maintainable code: small modules. It’s the Ruby on Rails approach, and I’m already comfortable there (disclaimer: I still haven’t cracked unit testing in Rails. I know!). Even if I don’t use this right away with Cocoa, this is going to influence the way I look at coding. Bravo, Dave.
Michael Lopp stood up at the front of the room, and then I was told that this was @rands. Jesus Christ! I had no idea that he was some kind of alter-ego. I’ve been reading his blog postings and Twitter stream for years, and now, at last, I learn that this incredibly cerebral manager of engineers is an Apple employee. True to form, I’m impressed by his energy, and his ever-so-human approach to dealing with programmers. I’d always felt he lived in a different world than I, since I’m a one-man show, and he talks so much about managing people. But this presentation was different: it taught me about how I need to deep dive on my specific expertise, and move the curve of a project’s lifetime. From dealing with the scary parts mid-stream, to getting them over with sooner. Talking shit is knowing shit: that’s what I took away. Thanks, @rands.
Just before he went up on stage, I had the pleasure of sitting beside Patrick Thompson for lunch. I said next to nothing while he argued with another guy about really deep programming language issues. He’s very young, but obviously flush with confidence in his areas of expertise. When he began his talk, I was afraid most of it would fly over my head. But Patrick’s discussion of MacRuby was surprisingly cogent, and incredibly persuasive. To be frank, I have this prejudice against non-Objective-C approaches to building Mac applications. It’s apparently groundless: Patrick’s summary of the advantages of the Ruby language over ObjC were very clear, and shown in a way that made it clear to me as well as the developers in the room.
Still, I’m probably going to hold off for now. I’m focused on an iPhone project, and MacRuby, despite its thorough implementation, remains bound to desktop applications. But there’s no question that Patrick’s presentation made me really stop and think; I’m going to keep an eye on this one for some time to come.
It’s possible that I got more out of Peter Wayner’s talk than most others in the room. His topic was “translucent databases”, a very compelling idea that suggests that web sites loosen up on their security, and while perhaps not handing out anyone’s data, don’t go to extreme measures to protect it. Instead, with the use of one-way hashing techniques and public key cryptography, you can put so-called sensitive data right there in your database, and nobody will ever be able to decipher it. He used an example of a pharmacy, which showed drugs purchased and dosage information, but hashed out the names. That data could still be useful to marketers, for example, but won’t give out any personally identifiable information. Later, when you want to recover that data for the customer, they can provide their name and password: the same hashing algorithm will allow you to match to the records already in the system. I’m not security nut, but this strikes me as a very secure system, without having to go to the expense of physically protecting a clear text database. A lot to think about there.
So much for the big talks that stuck. The feature that really took off were the Blitz Talks, short five-minute speeches gifted out by fellow attendees in between the regular talks. And every one of them was a gem.
I loved Rob Rhyne’s talk on his new product, Briefs. It allows you to put together quick and dirty hand-drawn (or mocked up) prototypes right on the iPhone. Rob promised that a commercial version of this was coming to the app store, but he was giving away the source code right there. Awesome work, Rob.
Fraser Spiers’ talk was close to my heart: finding ways to make time for your Mac development. He’s a full-time computer instructor at a private school in Scotland, but he still manages to turn out killer products, such as the ever-popular Flickr Export. (Incidentally, I got a sneak peak of his newest product under development, known till then only as “FLOWDACTED” ha ha, and it’s freaking awesome.) This talk was as much verification of what I’m doing myself as anything else, however. After all, I’m not failing at becoming a Mac dev because of my jerking off instead of working. It’s this damned book that I have to write. Things will get better. Right? Right?
Fellow Canuck Phillipe Casgrain did a good one as well, talking about documentation. I loved his insight that documentation should be one with the code. Make it part of the project in Xcode. Keep it in version control. Make it as central as your .xibs and .m files. But just do it. It’s clear to me that what separates decent Mac apps from the good ones are those that provide excellent documentation. This is something you gotta remember, and I take this advice to heart.
Not to be outdone by another Scot named Fraser, Mr Hess took to the stage and introduced his new project, Cocoa Boutique. It’s a complete pipeline for developers to integrate a purchase experience right inside their applications. This is a great move, because developers will be able to leverage a free way to turn their trial software into mini-stores for their own product. It looks very slick, and I’m looking forward to needing that one day.
There were many other talks, and they were all terrific. But C4 is about more than the talks. To me, it’s the chance to rub shoulders with the people who are succeeding at what I want to do. And every year, I come away astonished and blessed to have this chance to walk up to these people, introduce myself, and glean some important pearl of wisdom. Some examples:
On the walk back from Gino’s, I happened to fall in step with Craig Hockenberry. Having this chance, I fulfilled my 5-year-old daughter’s request, and informed him that she is a huge fan of Ramp Champ. We continued to talk about the difficulties of life as an iPhone developer, and I was saddened to note the tone of resignation in his voice. His commitment to quality is manifest in all the work he’s done over the years, but he’s come to realize that on the iPhone, unlike on the Mac, it simply doesn’t pay. With a staff of eleven, and the incredible amount of time it takes to build something like Ramp Champ, Craig has come to the conclusion that he can’t stay on this platform. That, to me, speaks volumes about what is wrong with the iPhone platform.
Listen, Apple. Here’s what you’ve done: you’ve built a platform predicated on an obsessive (perhaps freakish) attention to the finest details. You’ve provided a set of developer tools that encourage the finest minds in the community to participate.
And then you’ve set up the economics in such a way as to drive those very best minds right out of the game. Give your head a shake and fix this, Apple.
I also got to talk with Evan Doll. You may know him as the instructor for the Stanford iPhone course, which was made available for free on iTunes. I’ve spent hours listening to this guy talk, and his course has helped me in so many ways. It was a pleasure to shake his hand and exchange some words with him, and receive encouragement in person (with the estimable Tim Burks beside him, no less!).
I had a very brief encounter with Alex Fajkowski, an iPhone developer based in San Francisco. This poor guy is famous for having his iPhone application, Presenter, rejected because they thought he’d used Apple’s private CoverFlow APIs. No, he’d actually developed his own implementation. Anyway, I was taken aback by Alex for one reason only: when he asked what I did, and I answered, he was impressed. Thanks Alex. You’re good people.
On Saturday, I sat down at a table beside Geoff Pado. He was noodling around with Rob Rhyne’s Briefs source code. As we talked, I semi-dared him to do what we were both thinking would be super-cool: write a GUI client for what is mostly a text-based interface. As we sat there for the rest of that break and the last presentation of the afternoon, Geoff set to work. When the question period came on the presentation, Geoff stood up, wordlessly, and left the room.
Later that night, after the pizza party (by the way, Gino’s Meaty Legend is as good as it sounds), I was walking the pool deck during the evening’s bash, when I heard my name called. There, relaxed like a fucking king on a chaise lounge, was Geoff, with this complete shit-eating grin. “I did it”, he said. That is, in his hotel room, and with just a quick break for some pizza, he’d overcome the technical hurdles in writing his Briefs app. He promised a functional demo in the morning. And sure enough, there he was, showing me and Rob how to create a new scene, and drop images on the window. It was a solid start, and I hope that Geoff can finish it off soon.
All in all, it was a fantastic trip, but I can’t stop writing till I thank one other guy for his role in my coming to C4. David LeBer is the head of the Toronto CocoaHeads chapter, and since meeting him at C4 in my first year, he’s been veritably saint-like, encouraging me over the years, and listening to my various ideas, and generally being a solid companion. Thanks, David.
C4. FTW. And I hope to be back next year.

There’s no doubt about it: C4 is a marathon of an event. For someone like me, a dedicated introvert, there can be no greater challenge than being put in the presence of 170 other people for 48 hours, and being asked to interact with them.

But oh my, who those people are. If we were talking about your average crowd of slack-jawed, too-much-TV-watching, baggy-pants-wearing, Blackberry-wielding gum chewers, I would have taken a pass. But the attendees at this conference are, for lack of a better phrase, my people.

No, it’s better than that. These are the people I want to be. For the rest of the year, I’m merely yearning to write Cocoa while I’m buried in building web sites.

So while I inwardly cringe at the thought of another C4, I go anyway: this is the place where I gather the confidence and inspiration to be one of them. And it’s damned important to me.

I’ll tell you right up front: this was my third C4, and it was the best one yet. Herein, my highlights from this C4, both of the talks I liked, and the moments that stayed with me.

Dave Dribin’s talk on unit testing was an eye opener. He introduced me to the concept of “Test-Driven Development”. This is the notion that you write your code with those tests at the very heart of what you do. Write the test for what you want your code to do, then write the code such that it passes the test. That might sound crazy, but it seems to work. You end up with what I feel is the surest sign of good, maintainable code: small modules. It’s the Ruby on Rails approach, and I’m already comfortable there (disclaimer: I still haven’t cracked unit testing in Rails. I know!). Even if I don’t use this right away with Cocoa, this is going to influence the way I look at coding. Bravo, Dave.

Michael Lopp stood up at the front of the room, and then I was told that this was @rands. Jesus Christ! I had no idea that he was some kind of alter-ego. I’ve been reading his blog postings and Twitter stream for years, and now, at last, I learn that this incredibly cerebral manager of engineers is an Apple employee. True to form, I’m impressed by his energy, and his ever-so-human approach to dealing with programmers. I’d always felt he lived in a different world than I, since I’m a one-man show, and he talks so much about managing people. But this presentation was different: it taught me about how I need to deep dive on my specific expertise, and move the curve of a project’s lifetime. From dealing with the scary parts mid-stream, to getting them over with sooner. Talking shit is knowing shit: that’s what I took away. Thanks, @rands.

Just before he went up on stage, I had the pleasure of sitting beside Patrick Thompson for lunch. I said next to nothing while he argued with Louis Gerbarg about really deep programming language issues. He’s very young, but obviously flush with confidence in his areas of expertise. When he began his talk, I was afraid most of it would fly over my head. But Patrick’s discussion of MacRuby was surprisingly cogent, and incredibly persuasive. To be frank, I have this prejudice against non-Objective-C approaches to building Mac applications. It’s apparently groundless: Patrick’s summary of the advantages of the Ruby language over ObjC were very clear, and shown in a way that made it clear to me as well as the developers in the room.

Still, I’m probably going to hold off for now. I’m focused on an iPhone project, and MacRuby, despite its thorough implementation, remains bound to desktop applications. But there’s no question that Patrick’s presentation made me really stop and think; I’m going to keep an eye on this one for some time to come.

It’s possible that I got more out of Peter Wayner’s talk than most others in the room. His topic was “translucent databases”, a very compelling idea that suggests that web sites loosen up on their security, and while perhaps not handing out anyone’s data, don’t go to extreme measures to protect it. Instead, with the use of one-way hashing techniques and public key cryptography, you can put so-called sensitive data right there in your database, and nobody will ever be able to decipher it. He used an example of a pharmacy, which showed drugs purchased and dosage information, but hashed out the names. That data could still be useful to marketers, for example, but won’t give out any personally identifiable information. Later, when you want to recover that data for the customer, they can provide their name and password: the same hashing algorithm will allow you to match to the records already in the system. I’m not security nut, but this strikes me as a very secure system, without having to go to the expense of physically protecting a clear text database. A lot to think about there.

So much for the big talks that stuck. The feature that really took off were the Blitz Talks, short five-minute speeches gifted out by fellow attendees in between the regular talks. And every one of them was a gem.

I loved Rob Rhyne’s talk on his new product, Briefs. It allows you to put together quick and dirty hand-drawn (or mocked up) prototypes right on the iPhone. Rob promised that a commercial version of this was coming to the app store, but he was giving away the source code right there. Awesome work, Rob.

Fraser Spiers‘ talk was close to my heart: finding ways to make time for your Mac development. He’s a full-time computer instructor at a private school in Scotland, but he still manages to turn out killer products, such as the ever-popular Flickr Export. (Incidentally, I got a sneak peak of his newest product under development, known till then only as “FLOWDACTED” ha ha, and it’s freaking awesome.) This talk was as much verification of what I’m doing myself as anything else, however. After all, I’m not failing at becoming a Mac dev because of my jerking off instead of working. It’s this damned book that I have to write. Things will get better. Right? Right?

Fellow Canuck Phillipe Casgrain did a good one as well, talking about documentation. I loved his insight that documentation should be one with the code. Make it part of the project in Xcode. Keep it in version control. Make it as central as your .xibs and .m files. But just do it. It’s clear to me that what separates decent Mac apps from the good ones are those that provide excellent documentation. This is something you gotta remember, and I take this advice to heart.

Not to be outdone by another Scot named Fraser, Mr Hess took to the stage and introduced his new project, Cocoa Boutique. It’s a complete pipeline for developers to integrate a purchase experience right inside their applications. This is a great move, because developers will be able to leverage a free way to turn their trial software into mini-stores for their own product. It looks very slick, and I’m looking forward to needing that one day.

There were many other talks, and they were all terrific. But C4 is about more than the talks. To me, it’s the chance to rub shoulders with the people who are succeeding at what I want to do. And every year, I come away astonished and blessed to have this chance to walk up to these people, introduce myself, and glean some important pearl of wisdom. Some examples:

On the walk back from Gino’s, I happened to fall in step with Craig Hockenberry. Having this chance, I fulfilled my 5-year-old daughter’s request, and informed him that she is a huge fan of Ramp Champ. We continued to talk about the difficulties of life as an iPhone developer, and I was saddened to note the tone of resignation in his voice. His commitment to quality is manifest in all the work he’s done over the years (at the very least, check out the Ramp Champ web site! My god, it’s gorgeous), but he’s come to realize that on the iPhone, unlike on the Mac, it simply doesn’t pay. With a staff of eleven, and the incredible amount of time it takes to build something like Ramp Champ, Craig has come to the conclusion that he can’t stay on this platform. That, to me, speaks volumes about what is wrong with the iPhone platform.

Listen, Apple. Here’s what you’ve done: you’ve built a platform predicated on an obsessive (perhaps freakish) attention to the finest details. You’ve provided a set of developer tools that encourage the finest minds in the community to participate.

And then you’ve set up the economics in such a way as to drive those very best minds right out of the game. Give your head a shake and fix this, Apple.

I also got to talk with Evan Doll. You may know him as the instructor for the Stanford iPhone course, which was made available for free on iTunes. I’ve spent hours listening to this guy talk, and his course has helped me in so many ways. It was a pleasure to shake his hand and exchange some words with him, and receive encouragement in person (with the estimable Tim Burks beside him, no less!).

I had a very brief encounter with Alex Fajkowski, an iPhone developer based in San Francisco. This poor guy is famous for having his iPhone application, Presenter, rejected because they thought he’d used Apple’s private CoverFlow APIs. No, he’d actually developed his own implementation. Anyway, I was taken aback by Alex for one reason only: when he asked what I did, and I answered, he was impressed. Thanks Alex. You’re good people.

On Saturday, I sat down at a table beside Geoff Pado. He was noodling around with Rob Rhyne’s Briefs source code. As we talked, I semi-dared him to do what we were both thinking would be super-cool: write a GUI client for what is mostly a text-based interface. As we sat there for the rest of that break and the last presentation of the afternoon, Geoff set to work. When the question period came on the presentation, Geoff stood up, wordlessly, and left the room.

Later that night, after the pizza party (by the way, Gino’s Meaty Legend is as good as it sounds), I was walking the pool deck during the evening’s bash, when I heard my name called. There, relaxed like a fucking king on a chaise lounge, was Geoff, with this complete shit-eating grin. “I did it”, he said. That is, in his hotel room, and with just a quick break for some pizza, he’d overcome the technical hurdles in writing his Briefs app. He promised a functional demo in the morning. And sure enough, there he was, showing me and Rob how to create a new scene, and drop images on the window. It was a solid start, and I hope that Geoff can finish it off soon.

All in all, it was a fantastic trip, but I can’t stop writing till I thank one other guy for his role in my coming to C4. David LeBer is the head of the Toronto CocoaHeads chapter, and since meeting him at C4 in my first year, he’s been veritably saint-like, encouraging me over the years, and listening to my various ideas, and generally being a solid companion. Thanks, David.

C4. FTW. And I hope to be back next year.

The Thing That Happened At C4[3]

I’m back from C4 now, and as I come down from the adrenalin rush of a fascinating weekend, followed by a not-that-bad-yet-still-horrendous flight, one thing from this weekend has stuck with me. And I think it’s going to stick with me for some time to come.

If you’re reading this, you’ve probably seen the movie Serenity: that feature-length conclusion to the television triumph that was Firefly. Perhaps, like me, you’ve only seen it once. That’s because of this one scene that is too painful to watch, where our beloved character Wash is — OH GOD OH GOD, I can’t bear to even write it! My mind jerks away from the moment as my hand would wrench back from a fire.
After the events of yesterday — Saturday — I’m tempted to do the same thing. A Horrible Thing happened, and I want it to not exist. Yet this moment, and what happened after, deserve really close scrutiny.
Let’s start from the top. As a surprise guest, Jonathan “Wolf” Rentzch presented Marshall Culpepper, the lead developer for a product called Appcelerator Titanium. This product does something pretty miraculous: it allows you to code a single application, in the Javascript language, and have it converted on-the-fly to the Mac, Windows or Linux. Hell, you can even use Javascript in Appcelerator to write iPhone and Android applications!
I’d never heard of this product before this presentation, but you can bet that my ears perked right up. I’m a web developer who’s struggled for years to learn Cocoa and Objective-C. Here was a guy who purported to give me a language I already knew, and build the apps I want to build, for whichever platform I wanted. Crazy talk!
I’m no software engineer, but I can’t help but fathom that there is a serious, metric assload of engineering in this thing. The kind of shit that would empty my bowels if I were to see it. So I watched with skepticism, but with an evaluating mind.
As it happened, the rest of the room — mostly seasoned Cocoa developers — had a somewhat different opinion. I saw it in the body language: the muttering to each other, the shaking heads, the rolling eyes. But the documentation is right there in the Twitter back channel. Several of us took to it with our opinions on the talk, in real time.
mikeash: My eyes glaze over the moment I see the phrase “web technologies”
4:22 PM Sep 26th from MGTwitterEngine
kevinhoctor: Adobe Air as your comparison?! AAAANNNKKK. Oh, I’m sorry. Thank you for playing though.
4:28 PM Sep 26th from MGTwitterEngine
cbarrett: Oh Ess Ecks is nails on a chalkboard.
4:29 PM Sep 26th from MGTwitterEngine
Skroob: Switching to doing your UI in HTML/CSS is gonna be a REALLY hard sell in this room.
4:29 PM Sep 26th from MGTwitterEngine
4:32 PM Sep 26th from MGTwitterEngine
jterhorst: “All the things a normal desktop app can do…” plus, being bloated and unstable as hell. Just like AIR.
4:34 PM Sep 26th from MGTwitterEngine
nilobject: Remember to get some sleep so that you don’t crack people up around you by nearly falling asleep every 5 seconds.
4:35 PM Sep 26th from MGTwitterEngine
And so on. But this wouldn’t be a true telling if I didn’t include myself in this stream:
aaronvegh: Since when is the language the major barrier to developing for a platform?
4:48 PM Sep 26th from MGTwitterEngine
Which in my defence wasn’t meant as a slag so much as a statement that frameworks are the barrier to entry (in my opinion), while this project seemed focused on the language. But I think you’ll agree, the tone of this chatter was unfriendly to say the least.
When an intermission followed Marshall’s presentation, the consensus among us was that we’d watched a pretty spectacular flameout. It wasn’t until just now that I went back to this back channel stream and read it again (in horror) that I saw a sternly justified warning from @violasong:
violasong: frigging behave, people. Marshall’s here as our guest to share something cool+geeky. How about some respect.
5:03 PM Sep 26th from MGTwitterEngine
Indeed.
Like the moment of Wash’s demise in Serenity, I think we C4 attendees were all too keen to bury it in the back of our minds, and drink after drink after drink. So when we arrived for the first talk on Sunday morning, it was with some difficulty that all of us in that room were dragged, forcefully, into living that moment again.
Before the first speaker, Kevin Mitchell, could tell us about PyObjC, Wolf let loose with a very clear, very angry, very emotional rebuke. I can’t quote it verbatim, but it went something like this:
“Every year, I try to bring you something outside of your comfort zone. We as indie Mac developers tend to reside in an echo chamber, so I want to share with you experiences outside of what you know. These people come here, at their own expense, and sometimes with great difficulty — Marshall came here in spite of having his wife over 8 months pregnant. What I saw on the Twitter back channel was rude, and insulting, and wrong. It doesn’t befit who we are as indie developers, and it’s not what C4 is about. We should be on the presenter’s side.”
The last part was the most haunting and striking part of his speech:
“Those of you who did this are not part of what C4 is about, and you shouldn’t return to this conference.”
These words were not delivered easily. The emotion was painfully apparent in his voice, and he was clearly between rage and tears. The silence in the room was achingly long, and I wondered, in those microseconds that stretched for an eternity, how it would resolve. Then, the most unexpected thing happened: we started clapping. Support for his words, acknowledgement of what he’d said, and hopefully, the beginning of a new maturity for the attendees of this conference.
Wolf did something brave in the face of craven behaviour. He looked into the darkest pit of what we had collectively done, and rather than turn away, he jammed his stake in the ground and said “this is unacceptable”. In that moment, Wolf became not just a community leader, bringing us together every year, but a moral leader. He showed us that our indie lifestyles are more than just writing code and chatting up your fellow Mac nerds. He showed us that we are snobs about our technology, and that we are not charitable to outsiders.
It’s a sobering moment, and one that I’ll carry with me for years to come. Thank you, Wolf, for demonstrating the better path.

I’m back from C4 now, and as I come down from the adrenalin rush of a fascinating weekend, followed by a not-that-bad-yet-still-horrendous flight, one thing from this weekend has stuck with me. And I think it’s going to stick with me for some time to come.

If you’re reading this, you’ve probably seen the movie Serenity: that feature-length conclusion to the television triumph that was Firefly. Perhaps, like me, you’ve only seen it once. That’s because of this one scene that is too painful to watch, where our beloved character Wash is — OH GOD OH GOD, I can’t bear to even write it! My mind jerks away from the moment as my hand would wrench back from a fire.

After the events of yesterday — Saturday — I’m tempted to do the same thing. A Horrible Thing happened, and I want it to not exist. Yet this moment, and what happened after, deserve really close scrutiny.

Let’s start from the top. As a surprise guest, Jonathan “Wolf” Rentzch presented Marshall Culpepper, the lead developer for a product called Appcelerator Titanium. This product does something pretty miraculous: it allows you to code a single application, in the Javascript language, and have it converted on-the-fly to the Mac, Windows or Linux. Hell, you can even use Javascript in Appcelerator to write iPhone and Android applications!

I’d never heard of this product before this presentation, but you can bet that my ears perked right up. I’m a web developer who’s struggled for years to learn Cocoa and Objective-C. Here was a guy who purported to give me a language I already knew, and build the apps I want to build, for whichever platform I wanted. Crazy talk!

I’m no software engineer, but I can’t help but fathom that there is a serious, metric assload of engineering in this thing. The kind of shit that would empty my bowels if I were to see it. So I watched with skepticism, but with an evaluating mind.

As it happened, the rest of the room — mostly seasoned Cocoa developers — had a somewhat different opinion. I saw it in the body language: the muttering to each other, the shaking heads, the rolling eyes. But the documentation is right there in the Twitter back channel. Several of us took to it with our opinions on the talk, in real time.

My eyes glaze over the moment I see the phrase “web technologies” Adobe Air as your comparison?! AAAANNNKKK. Oh, I’m sorry. Thank you for playing though.
Oh Ess Ecks is nails on a chalkboard.
Switching to doing your UI in HTML/CSS is gonna be a REALLY hard sell in this room.
“All the things a normal desktop app can do…” plus, being bloated and unstable as hell. Just like AIR.

And so on. But this wouldn’t be a true telling if I didn’t include myself in this stream:

aaronvegh: Since when is the language the major barrier to developing for a platform? 4:48 PM Sep 26th from MGTwitterEngine

Which in my defence wasn’t meant as a slag so much as a statement that frameworks are the barrier to entry (in my opinion), while this project seemed focused on the language. But I think you’ll agree, the tone of this chatter was unfriendly to say the least.

When an intermission followed Marshall’s presentation, the consensus among us was that we’d watched a pretty spectacular flameout. It wasn’t until just now that I went back to this back channel stream and read it again (in horror) that I saw a sternly justified warning from @violasong:

violasong: frigging behave, people. Marshall’s here as our guest to share something cool+geeky. How about some respect. 5:03 PM Sep 26th from MGTwitterEngine

Indeed.

Like the moment of Wash’s demise in Serenity, I think we C4 attendees were all too keen to bury it in the back of our minds, and drink after drink after drink. So when we arrived for the first talk on Sunday morning, it was with some difficulty that all of us in that room were dragged, forcefully, into living that moment again.

Before the first speaker, Kevin Mitchell, could tell us about PyObjC, Wolf let loose with a very clear, very angry, very emotional rebuke. I can’t quote it verbatim, but it went something like this:

“Every year, I try to bring you something outside of your comfort zone. We as indie Mac developers tend to reside in an echo chamber, so I want to share with you experiences outside of what you know. These people come here, at their own expense, and sometimes with great difficulty — Marshall came here in spite of having his wife over 8 months pregnant. What I saw on the Twitter back channel was rude, and insulting, and wrong. It doesn’t befit who we are as indie developers, and it’s not what C4 is about. We should be on the presenter’s side.”

The last part was the most haunting and striking part of his speech:

“Those of you who did this are not part of what C4 is about, and you shouldn’t return to this conference.”

(Update: @violasong writes that Wolf’s true meaning here was more along the lines of “if you don’t agree with what I’m saying, then don’t return to this conference.” Self-selecting rather than excommunication. Personally, I’m relieved).

These words were not delivered easily. The emotion was painfully apparent in his voice, and he was clearly between rage and tears. The silence in the room was achingly long, and I wondered, in those microseconds that stretched for an eternity, how it would resolve. Then, the most unexpected thing happened: we started clapping. Support for his words, acknowledgement of what he’d said, and hopefully, the beginning of a new maturity for the attendees of this conference.

Wolf did something brave in the face of craven behaviour. He looked into the darkest pit of what we had collectively done, and rather than turn away, he jammed his stake in the ground and said, “this is unacceptable”. In that moment, Wolf became not just a community leader, bringing us together every year, but a moral leader. He showed us that our indie lifestyles are more than just writing code and chatting up our fellow Mac nerds. He showed us that we are snobs about our technology, and that we are not charitable to outsiders.

It’s a sobering moment, and one that I’ll carry with me for years to come. Thank you, Wolf, for demonstrating the better path.

And Marshall, if you’re reading this: you deserved a better reception, you didn’t get it, and I apologize for my own role, however small, in that drama.

Update: Names removed from example tweets to protect the commenters, save my own.