C4 Abridged

October 22nd, 2006

I just got home from Chicago. C4 was awesome. Big cheers for Wolf for putting it on and managing the events of weekend. High praise also for his volunteer assistants, who were clearly working hard the whole time.

I really couldn’t have predicted just how great the collection of attendees was. I had a great time meeting as many of them as I could. Given the final attendance of 98 people, I think I probably managed to meet 80% of them over the course of the event. Not bad! I wish I could have met everybody but I guess that leaves some interesting people to talk to next time. I really appreciated that a few people took advantage of the photo I posted and came up to introduce themselves. I was impressed by the mix of students, indie developers, and employees of large and influential corporations. Apple employees numbered at least 7 or 8, and two guys from Microsoft attended and have been blogging about the experience. I was expecting one person from Apple who didn’t end up making it, though his lonely name tag and T-Shirt sat at the bottom of an otherwise empty box. Hopefully I’ll meet him next time!

So how can I parlay my fun and exciting exciting weekend into a blog entry worth spending your precious time to read? I figure you sad suckers who couldn’t find the time, money, or initiative to get to C4 this year are feeling pretty down right about now. At the very least you deserve an editorial summary of the speakers’ main points. Unfortunately, I don’t think I can provide that. I didn’t take notes. Well, I took a few, very few, but then misplaced the sheet of paper. So instead of accurately conveying the actual points of speakers I heard, I’ll present a verbatim transcript of my memory. Everything that made it from the stage, through the air, was processed by my lethargic brain, drunk on Jamba Juice, and somehow got recorded to memory. Except for comments. And intermissions. And especially bathroom breaks.

Live from Chicago (recorded earlier), it’s C4 as heard by Daniel Jalkut, October 21-22.

Jonathan “Wolf” Rentzsch (web link): Hello and welcome to C4! C4 stands for “Code, Culture, Community, Conspiracy.” The first three being key components that make developing for the Mac a unique experience, and the conspiracy, well… it sounds cool. Hybrid theory? Forget about it! Hey, I can reimplement BombApp.app in zero lines of Cocoa code, because this QuickTime movie crashes everything I try it on! So about this conference: developers need a place to meet up and exchange ideas apart from WWDC, and without corporate sponsorship. Let’s see how this goes, and let me know if you have any feedback!

John Gruber (web link): The HIG is dead. Not dead like meaningless, but dead like hopelessly out of date. It can’t possibly keep up with Apple’s implicit standards because Apple has abandoned some fundamental traditions of the HIG, such as uniformity in appearance and behavior across all applications. The web is proof that they’re at least partly justified. People aren’t stupid, they know a button when they see a button, regardless of how it’s drawn. Would I prefer a consistent UI personally? You bet! Any chance of that happening again? No way. The genie is out of the bottle and developers have two choices: constantly monitor the state of the “implicit UI guidelines” and synthesize your own standardized interpretation, or else go out completely on your own and invent something unique yet beautiful. The new HIG guideline is simply: does this look good?

Brent Simmons (web link, presentation link): More and more desktop applications on the Mac are “web-enabled.” These products run from the obvious features of web browsers to more subtle nuances like iCal’s shared calendars or Seasonality’s presentation of web-based weather information. I know a lot about web-enabled applications, because I wrote two biggies: MarsEdit and NetNewsWire. WebKit is freakin’ awesome even if it does crash every once in a while. You should use it, and here are some practical code samples for how you might get started. WebServicesCore is the super-suck. Don’t use it. Did I mention WebKit is cool? NSURLDownload is also great for almost any kind of simple download you can imagine, with some caveats. SyncServices is cool if you can use it, but useless for cross-platform syncing. If I would have known syncing would be such a major feature in NetNewsWire, I probably never would have started the project. Here are lots of great tips on syncing.

Aaron Hillegass (web link): Between 1973 and 1983, the world saw an awesome number of technological advances in computing. We went from personal computers being non-existant through the development of the Internet, relational database systems, and the Mac in just 10 years. Since then, we’ve been in a slump because people are not solving real problems anymore. Delicious Library is a great example of a fake problem. People have bookshelves, they don’t need a virtual one! Wil, you’re an amazingly talented developer, but your talent was wasted on this product. OmniGraffle was great! Too many Mac developers are obsessing over the fake problems of the consumer software market, and the obvious problems of the multimedia and business markets. These markets are already dominated by Apple, Adobe, and Microsoft. Think outside the box! Thousands of real problems need to be solved, and rich people are willing to pay you lots of money to solve them. Talk to people with money and figure out the problems they need solved, then do it.

Gus Mueller (web link, presentation link): Adding an embedded script interpreter to your application is cool because it makes it easy for users to add their own crazy features to your app. Even if you end up writing the script for them, you don’t have to muddy your app’s feature-base with their nutty idea. There are lots of languages you might use, but I chose Lua because it’s super-fast and easy to embed. One major advantage to using a script language in development is you eliminate the compile and link delay. I love that! Lua is used for application development by several . notable . developers. Here are some examples of how easy it is to embed Lua in your app. In fact, let’s add a simple Lua plugin facility to TextEdit that allows arbitrary text processing. Neat huh? [presentation link forthcoming?] The main downside to using Lua is practically nobody knows how to write it, but I just post lots of sample scripts to help my users figure it out.

Steve Dekorte (web link, PDF presentation link): The way most people go about thinking about multiprocessing is wrong. The heavy-duty “system threads” that most people use to distribute computing tasks are extremely expensive, and therefore only suitable for scales of hundreds of tasks. By adopting the actor model of concurrency, objects maintain a queue of requests and only operate on themselves. This eliminates the locking mechanisms required with preemptive system threads, and requires much less state management memory. The actor model of concurrency scales comfortable to the scale of tens of thousands of concurrent tasks. Anyway, Io is my language for easily adopting the actor model. The increasing number of cores in hardware has major implications for computer design going forward, because an increasing number of cores will be competing for access to the same memory across the same bus. And, now listen very carefully Daniel Jalkut. Yes, that’s right. I’m talking to you. Wasn’t that Jamba Juice tasty? Now I know you’re not completely getting this, even though you’re interested as hell, so just look at the pretty graphics. Cores blah blah acting technical stuff like hardware actor objects blah and the world is saved from almost certain doom. Any questions?

Brian Fitzpatrick (web link): First of all, I work for Google, and what I’m about to say is all under NDA. That is, not definitely agreed-upon. I’m impressed and awed to see that so many of you have heard of Subversion, let alone are using it. Subversion’s growth over the past few years has been insane, and we’re totally psyched. Not in a taking over the world way, but in a providing the best source control system money can’t buy way. Now that we’re more or less at feature-parity with CVS, we’re looking to to the future for ways we can make it even more compelling to current users and users of other source control systems. One of the improvements we’re looking at is the possible removal of “.svn” directories for working directory management. These are terrible for performance and the main reason we used them was to enable “detachable subtrees.” Not worth it. We also know about some of the ways Subversion sucks for Macs in particular. Trust me, I’m a Mac guy. The bundled document problem is on our radar and we totally get it. Daniel Jalkut! Wake up … it’s not time for Gino’s East yet. Stop daydreaming, ya nerd! See? You can’t even remember the last improvement I mentioned, even though you were totally excited about it only two minutes ago. Man, this is sad. Sad, sad, sad. How am I gonna wake this guy up? Did I mention that we’re looking into off-line code commits? Ah, that did the trick.

Panel Discussion (Moderated by Drunkenbatman, including speakers above minus Gruber plus Paul Kafasis). Apple could do lots of things to make life easier for developers. We know they’ll never do them but it’s fun to dream. Lots of us would like to have better access to existing bug reports – it would help save us a lot of time. Oh no you didn’t. You did not just bring up DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. DRM. Cocoa vs. Carbon. Cocoa vs. Carbon. Cocoa vs. Carbon. AppleScript Sucks. AppleScript Sucks. AppleScript Sucks. <Applause>. AppleScript Rules. <Very light applause>. DRM sucks. No, your DRM sucks. DRM. DRM. DRM. DRM. Actually something like an iTunes Software Store would be pretty cool. DRM. DRM. DRM. Can we change the subject? Yes, it’s time for dinner.

Once again, major kudos to Rentzsch for putting this event on, and to all the speakers who made it such a memorable (for some definition of the word) occasion.

As inspiring and as much fun as the scheduled speakers were, the unstructured social time both between sessions and in the evenings were just as much fun, and probably just as educational. I can’t express how grateful I am to all of you who showed up and helped to make this a weekend worth raving about for weeks to come.

27 Responses to “C4 Abridged”

  1. Blake Chaffin Says:

    I think you’ve summed it up quite well. I can’t wait to see Mr. Shipley’s response to Mr. Hillegass :)

    I was surprised that Mr. Hillegass encouraged us to jump into the PC-dominated markets. His explanation was that if we write software that costs enough and effectively solves a big enough problem, the customer will gladly buy Macs just to run it. I’m not sure that all of us are ready to tackle such a project, but it’s an interesting idea that deserves some attention. I’d like to hear about anyone who has done something like that besides Mr. Hillegass…

    And I don’t know which is cooler- chatting off-the-record with Apple coders, or being able to say “I bought drunkenbatman a beer”.

    It was great to meet you this weekend. Good luck with everything, and hopefully we’ll chat again next year.

  2. Big Green Says:

    I think Aaron is spot on, and you might be surprised how much people are willing to pay for some of these vertical market apps. A while ago, in my spare time, I wrote Market Analyst X, . It wasn’t that hard, treated it as a side project, and charged $200 for it, mainly because I didn’t want to field a bunch of customer questions. It made me $1K a month for a few years, until I switched jobs, and haven’t had the time to update it.
    But I think the point is: there’s lots of $ available if you simply charge more for a vertical market app.

    By the way, if anyone wants to pick up the project let me know.

  3. Dean Mayers Says:

    Do Drunkenbatman is alive! I hope he starts posting again.

  4. William Shipley Says:

    Although I have great respect for Mr. Hillegass, and I understand what he’s getting at, I disagree with him about what is and isn’t a “problem.” Obviously, people enjoy Delicious Library, so it must fulfill some need for them. And I think it’s a mischaracterization to see DL as a simply a digital replacement for looking at a shelf — DL can keep an inventory that is portable (take your book list to a bookstore!), it keeps a backup record of something very dear to people (ever had your CDs stolen?), it helps users make informed decisions about buying more stuff, it helps users sell their old stuff, and it helps them track who’ve they’ve loaned things to (how many books have you lost this way?).

    But even if it didn’t do all this, who cares? Even if you consider DL essentially a game, well, the world needs more games. I’d rather make people smile than make them richer, honestly. And I’ve certainly switched a lot more people from PCs to Macs with Delicious Library (I get mail every day from converts) than I did in my ten years of vertical apps and consulting at Omni.

    Frankly, I find writing vertical apps sucks. Ever heard of Salon Transcripts? It won an Apple Design Award a couple years ago… no? Never? Well, Omni wrote that. Glorious, huh? No?

    Writing apps for dozens of people is just not going to have the effect that writing apps for hundreds of thousands is. Further, the problem with vertical apps is they cause people to buy Macs in situations where they are basically going to be used as dumb terminals (eg, people don’t, say, play games on the the salon’s appointment computer), which causes the Mac ecosystem to “grow” in only an illusory sense — these people aren’t buying other apps. This is a large percentage of why Windows appears to have so much more marketshare than Mac OS, and yet all available information suggests that for most software types (excluding games) the Mac is over-represented. (For example, 40% of Adobe’s software is sold for Mac OS, last I had data on that.)

    Mind you, I think vertical apps are great, and I’m glad there are people willing to do it. But I put in my time, and I’m not going back.

  5. Simone Manganelli Says:

    Haha, sounds like it was a fun event. I too would’ve enjoyed meeting Gruber and Rentzsch (god, did I spell that right?) and Simmons and Hilleglass (whose Cocoa book got me into Cocoa programming). Unfortunately, I’m on the opposite side of the country and couldn’t afford to go to C4 (in both time and money. And it’s good to hear drunkenbatman is still alive, even if he is still chattering about the same damn things. :P

    By the way, this also is a nice look into the mind of a one Daniel Jalkut. Heh heh heh.

  6. Justin Miller Says:

    Great summary, Daniel. AppleScript Sucks. AppleScript Sucks. AppleScript Sucks. . AppleScript Rules. . cracks me up. It was good to meet you and I look forward to chatting more on #macsb.

  7. Scott Stevenson Says:

    If I’m ever in a situation where I need a written transcript of a technical presentation, I’m calling you. Just fair warning.

  8. Mike Zornek Says:

    Great writeup. Good to meet you and others at C4. I had a blast.

  9. Daniel Jalkut Says:

    Hey guys – glad you liked the write-up. I could see it easily hitting or missing, so I breathe a sigh of relief that it has met with some approval!

    Wil: I really appreciate hearing your response to Aaron’s comments because I have basically been firmly in your camp with regard to the ideal of “software for the masses.” But Aaron’s speech at C4 definitely gave me something to think about. Of course, my intial reaction (and what I asked Aaron about in Q&A) was … wait, I gotta do database management for boring companies to “solve real problems?” I’m with you at least to the extent that I have a hard time seeing that being super-fulfilling.

    What I really appreciated about Aaron’s speech though was that it called out some sort of obvious facts. Yes, there’s lots of money to be made, if you want to work on some of these less glamorous jobs. I do think the dismissal of DL because we “have bookshelves” is a little soundbitey, and that’s probably the context it should be taken in because it was part of a sort of humorous riff in his speech. It might have been irresponsible of me to summarize it out of context :)

    What I’d really like to see, if I could snap my fingers and make magic happen, is a sit down conversation between you and Aaron, where you can really hash out the pluses and minuses of these two market approaches. Maybe if you get inspired, you could write more extensively on the subject in your blog, and attempt to solicit a more counter-post from Aaron.

    I think this has the potential to be really productive and educational for those of us with less experience in indie software than the two of you have.

  10. Daniel Jalkut Says:

    And Scott: Haha! I don’t think you would want to put much faith in my Jamba-Filter, but your comment does inspire me to wonder what it would be like to dictate the presumed memory of another attendee. And now … C4 as conceptually experienced by Scott Stevenson!

  11. Blake Chaffin Says:

    Daniel and Wil: The summary above doesn’t really touch on what I thought was the driving point in Aaron’s presentation. Until the video is posted, it will be impossible to provide the full context, but I think this should be mentioned-

    Aaron invited us to go to a hospital and ask a doctor something like this- “I write software. What is a problem that you have that might be solved with software, if only that software existed?” Aaron assured us that the doctor would have a long list of such problems. The point being- when doctors have unsolved problems, people suffer and/or die. Doctors are only one example of professionals whose unsolved problems lead to seriously hurtful situations.

    We’re all familiar with the old Quality vs. Quantity thing. My take on his presentation was sort of the inverse of that. There are apps that improve the quality of human lives in various ways, as Delicious Library surely does. And then there are apps that increase the quantity of human lives on the planet, as medical and other apps surely do. I think Aaron was trying to point out the difference between the two, and the necessity of increased attention to the latter.

    Oh, and he wants robots tilling the fields or something :)

  12. Daniel Jalkut Says:

    Blake: I did sense an admirable degree of altruism in Aaron’s talk, but I think it’s a mistake to assume the connection with doctors and real problems has anything to do with “people dying.” I think it has a lot more to do with the doctors having the money. For instance, his case in point was orthodontics office management software. Not exactly the life-saving advance in technology that inspires a PBS special :) (Yet valid, and a real problem, nonetheless).

  13. Blake Chaffin Says:

    It’s entirely possible that I read too much into it, and the financial aspect was definitely a major component of his presentation. Maybe I had my own jambafication happening. We’ll have to wait for the video to refresh my memory, I guess. Or if we’re lucky, Aaron could get word of this thread and throw in his 14.2 cents…

    Where is that video, anyway? It’s been like 24 hours already :)

  14. Conor Says:

    Interesting to find out about the conference and gain a little knowledge through your blog for those of us that where unable to make it. Sounds like quite the gathering of interesting developers and ideas. Wish I still lived in Boston – seems to be another hot spot for Cocoa developers. I am with Aaron Hillegass on not wasting your time on things like Delicious Library, developers should concentrate on other type of applications; having to compete with Mr. Shipley is quite enough. DVDpedia is better than Delicious Library yet it’s the latter everybody talks about. :)

  15. Mike Shields Says:

    Daniel, great to meet you at C4. Having your picture on your blog made it simple for me to stalk you at the conference :).

    My take on Aaron’s comments is that we as Macintosh developers focus on the same areas as Apple/Adobe/MS. There’s a whole world of software out there that hasn’t been touched and has massive upside potential (use my MBA/VC voice). If I was going to write a new app today, would it be better for me to go after a niche in the current Macintosh application world, or expand out into the world of the less glamorous? Im sure that those developers out there who consult would note that most of their income comes from that world outside of consumer/pro/office software. So why not make your own product in that space and take home more than a consulting fee?

  16. Andy Satori Says:

    While I wasn’t there (I wish I could have swung the time), I think Aaron is dead on.

    Think about the complaints we all hear about Mac’s. Great platform, great tools, lacks apps. We, as Mac users know that the lack of apps can be roughly translated to ‘lack of high profile applications’ for most users, but most users aren’t the ones that we as Mac developer’s really want to talk to.

    One of the things that stands in the way of massive adoption of the Mac is a lack of applications in the ‘real business solutions’ space. I think what Aaron is getting at, is that most Mac developer’s today are focusing on the 1000 copies of a product priced at $39 market, which is fine, but these are primarily entertainment or lifestyle applications targeting consumers.

    There is a whole section of potentially lucrative business that is being overlooked, and it’s not expensive business to get into, it’s also not obvious business.

    Think about places where the Mac accels. Let’s take one vertical market that is virtually untapped by the Mac, Realtors. Realtors spend 60-70% of their time and budget on marketing. Customer mailers, Contact management, presentation of houses. On Windows they have 30-40 alternatives, and most would tell you that none of them actually solves the problem.

    As a Mac developer, you could sell 30-40 copies at $1000 with relative ease, and you could make a living at it fairly quickly by simply calling a few Realtors and asking to obseve the processes they have to go through on an average day. Let them show you the problems. Don’t ask them for solutions, they don’t know enough to tell you the solutions, only the problems. Sit with 3-4 different Realtors, and be candid about what you are trying to do. Many will let you do this for free, simply for the chance to have something that works better for them.

    In other words, what Aaron is suggesting is that we have big, untapped markets out there, but until we focus beyond the narrow scope, we won’t be the catalyst of wider growth.

    Enterprise markets, vertical markets, and integrations are all almost completely untapped markets, many of them are just *itching* to get off the Windows platform and will happily pay a premium to do so, but at this point, they don’t see a path to get there, because we, the Mac development community, are still focused on Lifestyle toys that have little to no relevance in business.

    Wil, you in specific have a cool lifestyle toy, that includes what may be one of the greatest enterprise tools hidden away in the code. The bar-code reader in an iSight. The applications for Sales and Dsitribution, as well as Healthcare, Rental Fleet Management and others is huge, along with your little BlueTooth bar code reader and the interface. Unbundle that bad boy and license it to generate another revenue stream.

  17. John C. Welch Says:

    Wil, I’d still love to see a large-capacity distributed version of DL. Have you SEEN the crap that libraries have to use for this stuff? awful. not much better than green screens. There’s a market man.

  18. Philippe Casgrain Says:

    About Subversion…

    That was the only talk where I took a transcript (I rely on you and the DVDs for the other ones). So here’s my transcript, straight from VoodooPad…

    Near future
    Merge tracking
    Stop manually tracking merges and branchpoints
    Cherry-picking made easy (1.5 or 1.6)
    Think ‘p4 integrate’

    perforce does not scale, locks the tables when doing big integrates
    blocking on read

    Merge info tracked in a revision property

    Distant future: NDA (Not Definitely-Agreed upon)
    don’t hold your breath
    Distributed features
    cool but useful? Important?

    central watering hole for a community
    offline commits are the most useful aspect
    speed is important as well

    Flexibility: support central and distributed behaviors
    A much better working copy

    .svn in bundles
    faster: no need to parse the entire directory

    may not be necessary if centralized store
    currently, can move a folder to another place and still do version control

    stop requiring full urls in working copies
    replace svn:externals
    server broadcasts behaviors to clients (.subversion directory)

    Going against subversion’s nature
    Subversion is a time machine, but it can only go forward

    we’d like to see ‘svn obliterate’

    what does this mean?
    [cvs2svn: apples from apple sauce]
    obliterate without breaking working copies or mirrors (svn 1.4)

    New FS backend
    extra from fdb and fsfs (Google has a new one)

    Indexing and searching

    Be truly “timesafe”

    Support concurrent writes of the same transaction: should speed up commits


    Native symlinks: non-Win32 supported, but not Win32

    Typed properties

    Signed changesets

    API stuff

    Have a signe, consistent, elegant, smple OO interface
    No tortoise for Mac!!!

    And something for the subversion hackers..

    Rewriting in C++
    Better build system
    Better testing framework


    Request 707: opaque collections: versioned bundled directories. Great feature, but not in there

    WebDAV: allows auto-versioning, but is slow (esp. in Finder)

  19. Daniel Jalkut Says:

    Philippe: Whoah! Hold on a minute while I update my database capacity :)

    Seriously, remember when I said you should start a blog? It’s so you can post things like this on it, and then point back to it!

  20. Blake Chaffin Says:

    Daniel the Blogstarter strikes again heh.

  21. Chris Says:

    Threads. I’ve been working in a threaded environment, and I did not realize until I read this article that my solution to thread concurrency has been to use actors. It felt right, and I think that it is the right model. I wish that I could have been there at C4. One of this days someone will spring for me to go to a coding conference…

  22. Tyler Says:

    Interesting Discussion here in the comments. Think about this:

    Aaron Hillegass says: “Thousands of real problems need to be solved!”

    The three winners of MyDreamApp.com are:
    1. Atmosphere – A dynamic desktop picture thingy.
    2. Portal – A sync app.
    3. Cookbook – A cookbook application. In cocoa. With an itunes-store-like recipe online-database. A fucking cookbook program!

    Who will use this? Who will shell out real money for this? What a waste of time, effort and talent… *sigh*

  23. Blake Chaffin Says:

    Funny that you mentioned that- MyDreamApp was the topic of some discussion at C4, but I think it was all off-camera :(

  24. Conor Says:

    I never did understand why cookbook won; we were going to develop a similar application ourselves a year ago, having a collection app oriented framework, but the market is full of them and MacGourmet does a good job. Now he can add a nice full screen mode and the voice command and reading for 2.5. I was hoping Hijack would win; that I would have bought. :(

  25. Andy Satori Says:

    LOL, maybe one of these days I’ll have an app I can enter into one of these things, but to be honest, I don’t expect it. I’m too busy solving business problems to be able to write a ‘fluff’ code.

    I mean seriously. Let’s take an example of a desktop app that could sell well. Look at Altova’s XMLSpy on Windows. It’s the best there is, and it sucks (and I think I’m being generous). If one of the Cocoa UI wizards were to apply their skills to a good, robust XML/XSL editor with debugger and an innovative & usable UI, they could easily sell the thing for $199+. I know I’d pony up. Just because I *can* edit XML in BBEdit or SubEthaEdit doesn’t mean that I should.

    Come to think of it, there’s another example of an app that has an obscenely cool feature that could readily be applied to solve many business solutions, SubEthaEdit’s sharing / multiple users editing the same content, live, instead of passing the doc’s back and forth. Quite interesting in say a print shop, or a marketing shop collaborating on ad copy.

    That last one even works in the aforementioned real-estate market, where you might have your custom Real Estate application, where you need several people collab prepping the MLS listing, that also generates the Web Page and interactive Virtual Tour leveraging iMovie, iPhoto and Pages to generate the output content and then do automated post of the FMLS listing.

  26. Andy Satori Says:

    Ok, because it’s been percolating, and I’m not going to be able to do anything about it, I’ve written up a rough draft of what I’m talking about.

    On my Blog

  27. Adam Lindsay Says:

    @blake (re: “ask a doctor”): That’s interesting–I spent a year’s project essentially doing that with researchers in the arts and humanities (and I largely spoke to mac-centric, computer friendly academics). Their wishes fell into two camps: software that already existed (e.g., “try handbrake”), or (much less often)software that was so individual to their needs that it just wasn’t goping to happen.

Comments are closed.

Follow the Conversation

Stay up-to-date by subscribing to the Comments RSS Feed for this entry.