rentzsch.com: tales from the red shed
Notes Textcast: The Story
in Notes
Wednesday, December 24, 2008
12:00 AM

Well, the word is finally out: I'm very pleased to announce Textcast 1.0.

hg log proves Dave Dribin and I have been working on it for the past year (first commit on Dec 10 2007), which is rattling since I remember pitching the app concept to Dave as “a two-week app”. Uhm, our schedule slipped a bit…

Textcast was born while Dave and I were plotting what we thought would be our first app. We wrote some experimental code and did some planning. It became clear that this app would be a great deal of work, so I pitched Textcast as a “simpler” app to get out the door first.

Textcast is a deceptively simple app. It’s aim is simple, but it unifies many disparate technologies and applications which leads to lots of complexity under the hood. It’s one of those projects where you can get the basics working inside a weekend, but it takes months to make it a real Mac app.

Which is worth it, since I'm probably Textcast’s heaviest user. I primarily listen to podcasts generated by Textcast while commuting (by foot, train and car) and exercising. But sometimes I use it for weird stuff like listening to legal contracts which would normally make my eyes cross. I use Textcast practically every day. Indeed, it became increasingly weird to tick off the months using this app that I loved that I couldn’t tell anyone about.

What follows is a potpourri of Textcast-related developer topics. Most of it addresses 10.5-only technologies we used in Textcast:

  • Alex: Of course Textcast relies on Alex, 10.5’s new high-quality voice. Alex makes a world of difference when listening to lots of text, and Textcast probably couldn’t exist unless we cut a deal with Cepstral to bundle their high-quality voices or something.

  • PubSub: Initially I used Textcast exclusively on one-off article basis. I'd spot a long blog posting or feature-length article and use Textcast’s “Import from Safari” feature to pop it into podcast form so I could listen to it later. Dave’s the one who pushed on adding real feed support with 10.5’s new PubSub framework. There were some weird behaviors we needed to work around, but overall I'd say that PubSub was a win. Certainly better than rolling our own feed parser.

  • 10.5-only yet no GC: Textcast isn’t garbage-collected — we use the old explicit retain-release model. Interestingly, Textcast was garbage collected for a short time — I have a commit message from Jan 17 2008 “Turn on garbage collection”. But twelve days later we turned it off for reasons Dave and I can’t remember. I think Dave and I were scared of a rumored conflict between GC and NSOperationQueue, which we were just integrating at the time. Speaking of NSOpQ…

  • NSOperationQueue: I'd call our use of NSOpQ a win, but it did bring definite pain. We definitely wanted to multithread Textcast since converting text to audio using Alex can be considerably processor-intensive. Spreading the load across many cores Just Made Sense. The main pain points were integrating NSOpQ and its worker threads with Core Data, KVO in general and NSSpeechSynthesizer (which is non-thread safe in a very specific manner).

  • Core Data: Mostly a slam-dunk when coupled with mogenerator. Core Data is Standard Operating Procedure around these parts — you need a reason not to use it. The biggest pain turned out to be handling our undo model, which doesn’t fit into Core Data’s model and is thus Very Hard to get right.

  • Unit Testing: It’s official, Dave is test infected. And that’s a good thing. While there’s considerable pain (some undocumented) in getting Xcode set-up optimally, it’s well worth it.

  • Scripting Bridge:. iTunes needs a real API. Badly. But until we get a high-quality API for this increasingly integral app, we have its poor AppleScript support. At least Scripting Bridge mostly allowed us to pretend iTunes has an Objective-C API, easing integration into our app. We also use Scripting Bridge for the “Import from Safari” functionality. It was on my TODO list to also move our NetNewsWire integration from its current AppleScript form to Scripting Bridge, but I screwed up when I sent Brent Simmons our NetNewsWire scripting dictionary patch, which means we can’t use Scripting Bridge straight-up with NetNewsWire. But that patch deserves its own bullet:

  • NetNewsWire Integration: Most of the text I feed into Textcast probably comes from NetNewsWire, so we definitely needed some nice integration with Brent’s fine app. I reached for NetNewsWire’s AppleScript support. That worked fine for importing text from the currently-selected item when in list view mode, but didn’t work if you had a web view frontmost.

    So I did what you'd probably expect from the likes of me: I reverse-engineered NetNewsWire and added the feature. I sent the resulting source code to Brent and kindly asked that he roll the new feature into the next version. He was very cool about it and rolled it into NetNewsWire 3.1.7b4. Thanks, Brent!

    Anyway, the ability to execute Javascript via AppleScript against the currently-selected web view allows me to extract the selected text, covering both avenues of textual input.

    A little polish that I'd like to call out since it’s not obvious: if you don’t have NetNewsWire installed, we don’t even show the “Import from NetNewsWire” toolbar item to reduce clutter+confusion.

  • Open Source: We used a bunch of open-source packages in Textcast. Thanks Mac indie community!

    And speaking of open source, since you've read so far, here’s a treat:

  • JRFeedbackProvider: Early in Textcast’s development, I knew it would be important to capture user feedback. I raided my ~/Applications folder and searched out the best in-app feedback mechanisms. I found two winners: Things.app’s slick-looking multipurpose feedback panel and Acorn’s useful feedback panel with its pre-populated text. So I created my own version which combines both into one nonviral open-source version you can easily drop into your own app (and website!): JRFeedbackProvider. Patches welcome. Thanks to Gus and the Things.app crew for the inspiration.

Phew, long posting. Instead of reading it, how about you listen to it?

 
Notes Ralph Rentzsch 1925-2008
in Notes
Wednesday, December 24, 2008
12:00 AM

I'm an engineer because of my dad.

He gave me my appetite for understanding how things work.
And my healthy disrespect for apparent limitations.

He encouraged me in everything I tried.
And had genuine interest and excitement in my projects.

He was a living illustration that you could be smart and sociable simultaneously.

I am who I am because of my dad.

 
Programming Special Interest Group PSIG 120 Bumped to February
in Programming Special Interest Group
Wednesday, December 03, 2008
09:50 AM

Due to a family medical emergency I'm rescheduling PSIG 120 from its usual bat-time of Thu Dec 4 2008 to Thu Feb 5 2009 (sadly, the next usual slot falls on New Year’s Day).

My Dad’s doing pretty OK, but I'm still firmly in overwhelm mode.

 
Notes Open Radar
in Notes
Sunday, November 16, 2008
12:00 AM

Radar is Apple’s internal bug tracking system. How Apple views Radar and how external third-party developers view Radar causes a bit of a conflict.

Apple heavily uses Radar internally. Thousands of Apple employees' work-days are defined primarily by what’s in their bug queue.

Also factor in how Apple is an incredibly secretive organization. There’s lots of juicy stuff in Radar, so it’s important to Apple little-to-none of that info escapes into the wild.

External, third-party developers tend not to view Radar as Apple views Radar. They look at organizations and projects with more-open or totally-open bug tracking systems and wonder why Apple isn’t like that.

External developers want an more-open bug tracking system so when we run into problems, we can easily check to see if we're bumping our head on a known issue. Or reference an existing bug so we don’t have to spend the significant period of time to write up an excellent bug report when all we want to do is “vote up” an existing bug we just ran into ourselves.

Apple encourages developers to file bugs, even those we know are probably duplicates, in order to “vote up” individual bugs and hopefully give them more priority when it comes time decide schedules.

This duplicate bug-filing encouragement never sat well with external developers, because Radar is completely opaque to us. It’s never clear whether we should spend the considerable time+effort to write up a great bug report (doing so can easily take an entire work-day or two) or if we should just do the minimum since it will just be immediately flagged as a duplicate and then mostly ignored.

Because Radar is opaque, we can’t look at an existing bug report we think is probably a duplicate and realize ours is actually an altogether different bug or that we have a critical piece of information that’s not in the existing bug report.

Sharing bug reports is very important for the indie community, and is the motivation behind things like Apple Bug Friday. We toss around radr:// urls so we can easily reference them when talking to Apple friends and include them when we know for certain we're filing a duplicate.

For over a decade, external developers have been imploring Apple to open up Radar. It’s nearly a rite of passage for new Mac developers.

But just how the request is phrased — “please open Radar” — shuts down the lines of communication and ensures Apple will never open Radar.

As we've seen above, Apple views Radar as an internal system that just happens to have a protected web form that allows outsiders to post things into it. Apple parses “please open Radar” as “please expose your internal secrets”.

Seen that way, you can understand why Apple is reluctant to “open Radar”.

External developers obviously see it differently. I've long advocated that Apple add a checkbox to Radar requests that would flag them as “public” — anyone with a Radar login could search+see them. I would love to make most of my bug reports public, and I suspect most of my fellow developers would as well.

But that was yesterday.

Kicked off by a tweet from Dave Dribin, Tim Burks created a new Google AppEngine site named Open Radar. It’s already being populated as I type this by different folks, so it looks like it’s taking off (Open Radar also has a twitter account and a lot of this is happening over twitter).

Dave Dribin wrote an app called RadarForwarder that accepts those radr:// urls I mentioned before and opens an Open Radar page for them.

And I just wrote OpenRadar.app, which allows you to file your Radars normally, but captures the information and saves it locally. I'll be adding auto-upload of that information to Open Radar soon. It’s the next-best-thing to a “make public” checkbox.

I'll announce it here (and on twitter) when I feel OpenRadar.app is ready for general public usage.

We won’t be getting that “make public” checkbox I've long requested anytime soon, but thanks to a little effort across a few talented people, it looks like we'll finally get that “open” bug tracking system we've been wanting for so long.

 
Programming Special Interest Group PSIG 119: Thu Nov 6 2008
in Programming Special Interest Group
Wednesday, November 05, 2008
09:15 PM
When:
Thursday, November 6th, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
Jonathan 'Wolf' Rentzsch will talk about PDFKit, Apple's framework for creating, viewing and modifying PDF files. Introduced in 10.4 and enhanced in 10.5, PDFKit is remarkably sane. I'll show you how easy it is to display PDFs in your application and dynamically generate your own.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.
 
Programming Special Interest Group PSIG 118: Thu Oct 2 2008
in Programming Special Interest Group
Thursday, October 02, 2008
12:02 AM
When:
Thursday, October 2nd, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
Celebrating the death of the iPhone NDA, Tom Swift will present "iPhone Development: Zero to Sixty". Tom will walk us through all the steps of creating a new app, including the tricky parts of actually getting it loaded on your iPhone/iPod Touch. Brace yourself, it's a bumpy ride.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.
 
C4 C4[2] Final Schedule
in C4
Saturday, September 06, 2008
12:37 AM

It’s here. I’ve added three speakers since C4[2] sold out:

 
C4 C4[2] Iron Coder Prizes
in C4
Thursday, September 04, 2008
12:00 AM

Representing well over eleven-thousand dollars worth of software, I’m pleased to present the incredible list of software C4[2] attendees have donated as prizes that will be preloaded on Iron Coder winner’s shiny new MacBook Air.

As I expected, the sum total of the donated prized dwarfs the value of the MacBook Air itself. But I’m floored by just how far you guys have gone. Deep thanks to all the donators.

Remember this year the API is Core Location and the theme is paranoia. Also keep in mind if your app is cool enough, you can ignore the API and/or theme and still win. Unlike “normal” Iron Coders, it’s encouraged that you have your submission prepared ahead of time. C4 is to cool to spend locked in your hotel room with gdb. If you want more details, most of what I wrote about Iron Coder Live last year still applies.

Without further ado, here are the prize donations (presented in order of donation).

Attendee Company App Retail
Ian Baird Skorpiostech Changes $39.95
Manton Reece Riverfold Software Wii Transfer $19.00
Marko Karppinen Marko Karppinen & Co BaseTen $199.00
Luis de la Rosa Happy Apps WebnoteHappy $24.95
Fraser Speirs Connected Flow FlickrExport $24.84
Joe Pezzillo Metafy Anthracite Web Mining Desktop $99.00
Wil Shipley Delicious Monster Delicious Library 2 $40.00
André Pang Real Mac Software RapidWeaver 4 $79.00
Dave Nanian Shirt Pocket Software SuperDuper $27.95
Christopher Liscio SuperMegaUltraGroovy TapeDeck $25.00
Christopher Liscio SuperMegaUltraGroovy FuzzMeasure $150.00
Jon Trainer Outer Level LicenseKeeper $19.95
Rich Siegel Bare Bones Software BBEdit $125.00
Rich Siegel Bare Bones Software Yojimbo $39.00
Scott Morrison indev software MailTags $29.95
Scott Morrison indev software MailActOn $24.95
Keith Alperin Helium Foot Software MercuryMover $24.00
Benjamin D. Rister Decimus Software Synk Professional $45.00
Benjamin D. Rister Decimus Software DTerm $20.00
Benjamin D. Rister Decimus Software Screen Mimic $65.00
Jon Gotow St. Clair Software Default Folder X $34.95
Marcus S. Zarra Zarra Studios iWeb Buddy $25.00
Nicholas Raba SecureMac MacScan $49.99
Roustem Karimov Agile Web Solutions 1Password $49.95
Glen Aspeslagh ecamm network PhoneView $19.95
Glen Aspeslagh ecamm network Call Recorder $14.95
Paul Kim Noodlesoft Hazel $21.95
Gus Mueller Flying Meat VoodooPad $49.95
Gus Mueller Flying Meat Acorn $49.95
Gus Mueller Flying Meat FlySketch $24.95
Justin R. Miller Code Sorcery Workshop Pukka $16.95
Justin R. Miller Code Sorcery Workshop Meerkat $19.95
Ben Artin Fetch Softworks Fetch $25.00
Timothy Wood OmniGroup OmniGraffle Pro 5 $199.95
Timothy Wood OmniGroup OmniFocus $79.95
Timothy Wood OmniGroup OmniPlan $149.95
Timothy Wood OmniGroup OmniWeb $14.95
Timothy Wood OmniGroup OmniOutliner Pro 3 $39.95
Timothy Wood OmniGroup OmniDazzle $14.95
Timothy Wood OmniGroup OmniDiskSweeper $14.92
Timothy Wood OmniGroup OmniObjectMeter 2 $149.95
Craig Hockenberry IconFactory xScope $26.95
Craig Hockenberry IconFactory Twitterific $14.95
Craig Hockenberry IconFactory IconBuilder $79.00
Craig Hockenberry IconFactory iPulse $12.95
Troy Gaul Adobe Lightroom 2 $299.00
Paul Kafasis Rogue Amoeba Audio Hijack Pro $32.00
Paul Kafasis Rogue Amoeba Fission $32.00
Mike Ash Eloquent Software LiveDictionary $25.00
Daniel Jalkut Red Sweater Software MarsEdit $29.95
Daniel Jalkut Red Sweater Software Black Ink $24.95
Daniel Jalkut Red Sweater Software FlexTime $18.95
Daniel Jalkut Red Sweater Software FastScripts $14.95
Daniel Jalkut Red Sweater Software Clarion $14.95
James Rea Provue Panorama $299.00
Matt Shedlick Deep Prose Software Booxter $49.99
Mike Piatek-Jimenez Gaucho Software Seasonality $24.95
Sanford Selznick Selznick Scientific Software PasswordWallet $20.00
Rob Raguet-Schofield Wolfram Research Mathematica $2,495.00
Dave Verwer Shiny Development Speakapedia $14.95
Geoff Pado Elgebar Studios Misu $19.00
Geoff Pado Elgebar Studios Bokeh $17.00
Dan Messing Stunt Software On The Job $24.95
Dan Messing Stunt Software Overflow $14.95
Dan Messing Stunt Software Downsize $19.95
Pat Lee VMware Fusion $79.99
Philippe Casgrain Corel Painter X $379.00
Justin Williams Second Gear Today $15.00
Steve Scott Mac Developer Network MDN Membership $25.00

Update: I’ve finally added Justin and Scotty’s donations to the pot, which is rather generous of them since they didn’t even attend C4[2]. I’ve also sheepishly added Philippe Casgrain’s donation of Corel Painter X, which somehow slipped through the cracks. Sorry, Philippe.

I also have another gift in the queue, but this one goes out to all attendees. Watch your mailbox.

 
Programming Special Interest Group PSIG 117: Thu Sep 4 2008
in Programming Special Interest Group
Wednesday, September 03, 2008
02:12 AM
When:
Thursday, September 4th, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
Against my Doctor’s recommendation, I’m holding PSIG 117 the night before C4[2]. But I’m not worried, since Ben Gottlieb will be giving the big presentation.

Ben writes Newton Palm PocketPC some-new-fangled-PDA software and has some great hard-won experience to share. I would say more, but the walls have ears.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.
 
C4 C4[2] Beta Schedule
in C4
Wednesday, September 03, 2008
01:51 AM

Folks are wanting a little more detail than ”Strive to arrive at the hotel by Fri Sep 5 at 5:30 pm. It all comes to an end Sun Sep 7 around 4 pm” so I whipped up a C4[2] beta schedule that has a little more detail about what’s going down.

Sorry that schedule doesn’t have detailed speaker times, but since C4[2] sold out I’ve added additional speakers and I’d rather not tip my hand just yet.

 
C4 Win Iron Coder, Win a Preloaded MacBook Air
in C4
Monday, August 25, 2008
11:46 PM

I’ve been racking my brain trying to think of an awesome prize for C4[2]’s upcoming Iron Coder contest. I didn’t want to just go around begging random vendors for prizes, and I wasn’t feeling last year’s Golden Dogtag again. (Turns out bling and hackers don’t really mix.)

I’ve come up with something that I feel really good about, a prize that feeds back into the community.

I’m going to award a shiny new MacBook Air to the 1st place winner of C4[2]’s Iron Coder competition. Right there’s a swell prize.

But I’m much more excited about the next part: the winner’s MacBook Air will be preloaded by C4[2] attendees’ own software.

I’m sending out an email asking C4[2] attendees to donate two licenses of the software they’ve written to add to the prize. The first license will get loaded onto that MacBook Air. The second license will be part of the Runner-Up’s software-only prize.

C4 is all about celebrating the indie community, and I can’t think of a better prize than the results of our own handiwork.

Better get crankin’ on your Iron Coder entry. I bet this year’s competition will be stiff.

 
C4 C4[2] Scholarship Application Deadline
in C4
Saturday, August 09, 2008
12:52 PM

This one’s a quickie: the deadline for C4[2] scholarship applications is this Monday, Aug 11th.

Students: apply by sending your name, email address, website if you have one, and why you want to attend C4 (in Markdown format) to c4@redshed.net. Please put “scholarship” in the subject line.

 
Programming Special Interest Group PSIG 117 in September, Really This Time
in Programming Special Interest Group
Wednesday, August 06, 2008
09:38 AM

Remember when I said the next PSIG 117 would be in August? I forgot that DEFCON 16 begins Friday morning. I’ll be flying out Thursday night to attend it, so I’m bumping PSIG 117 back yet again to Sept 4th.

For those of your playing at home, that’s the night before C4[2]. What could possibly go wrong?

 
C4 C4[2] Registration Open
in C4
Friday, August 01, 2008
12:00 AM

C4[2], scheduled for September 5-7 2008, is now open. Register now. Update: C4[2] sold out inside 40 hours.

Speakers

Alex Payne: Why Scala? How a serial language enthusiast settled down with a nice Swiss language
Alex Payne spent over a year researching the best language with which to approach the architectural challenges at Twitter, the popular social messaging platform on which he works. In this talk, he’ll share for the first time in public why he settled on Scala. Learn about Scala’s winning combination of object-oriented and functional programming, its robust concurrency model, and other sexy features. Get a quick tour of the Scala community, including standout apps and emerging best practices. Find out why Scala sets the standard for next generation languages. Even if you’re happy with your language toolbox, you’ll learn something from Scala you want to take back to your daily coding.
Brent Simmons: On Going Free
NewsGator dropped a bombshell on the feed reader market by making the Brent’s market-leading NetNewsWire free of charge. Brent will talk about what the transition was like and the mistakes he made with NetNewsWire Touch 1.0.
Buzz Andersen: Apple to Indie
Buzz started out as an indie developer in Colorado, only to be lured to Cupertino for a spell. He’s since returned to indiehood, and is eager to share with us about life after Apple.
Craig Hockenberry: IPHONE ITS NOT A FRICKEN MINATURE LAPTOP OK
Follow Craig on a journey from DOS to a touch-based UI, learn about current best practices for iPhone development, and start to think about where this technology will take us in the future. Effective use of the CAPS LOCK key may also be discussed.
Mike Lee: Pimp My App
After a while at Delicious Monster, Mike has gone on to co-found Tapulous, which got in early on the iPhone App Store game with three apps. Mike will take a volunteer (or two) with a preferably shipping Mac or iPhone app. He’ll give it a complete makeover, from interface and interaction to having a graphic artist create new assets for it. He’ll unveil the new design over the course of his talk.
Rich Siegel: Red Meat and Gin
Rich Siegel opened the doors of Bare Bones Software 15 years ago, and has turned the company into one of the longest-running indie Mac shops in history. He’ll share some of the lessons he learned along the way, and offer advice on how to make it big while staying small. And he promises not to yell at any of you #&@$ kids to get off of his lawn. This time.
Richard Hipp: SELECT * FROM SQLite_internals
Hidden under the hood, SQLite powers modern software’s data storage needs. It’s built into each Mac, iPhone and copies of Firefox, PHP and Skype. Richard – SQLite’s original author – will talk about the creation and evolution of SQLite, its internals, its testing system, the license controversy and common client mistakes.
Thomas Ptacek: Everything an indie Mac developer needs to know about software security but didn’t want to pay consultants to find out
Thomas has been in the security ring for over a decade, and can spot your exploitable code five miles away before you’ve even written it. He’ll provide a basic backgrounder on writing secure applications that every indie developer should know.
Troy Gaul: Lightroom Exposed
In my mind, Lightroom is Adobe’s most interesting product. A fairly new product, version 2 just shipped – Adobe’s first 64-bit application. Troy is Lightroom’s lead and will talk about its evolution and unconventional architecture (large parts are written in Lua).
Wil Shipley: Delicious Panel
Wil leads this year’s panel discussion. He’s threatening to bring booze and custom software. Enough said.
Iron Coder Live: Engineer Idol
Come show off your mad coding skillz. I’ll give you an API and theme to code against. You’ll present your wicked app live in front of all attendees. The audience will loudly judge you. This year the API is Core Location and the theme is paranoia.

And of course expect the standard C4 fare: lunch, dinner, late night poolside parties and Gino’s East Chicago-style deep-dish pizza.

Registration

Register here.

C4[2] costs $512 including meals and is held in downtown Chicago. Strive to arrive at the hotel by Fri Sep 5 at 5:30 pm. It all comes to an end Sun Sep 7 around 4 pm.

The hotel (which I ask that you stay at if at all possible) runs ~$190/night until the group block runs out. Update: The hotel block is sold out. Feel free to book your room any way you'd like. Here's a hotels.com starter link.

Scholarship

Three lucky students will receive free admission to C4. Here’s how it works:

  • Students: register by sending your name, email address, website if you have one, and why you want to attend C4 (in Markdown format) to c4@redshed.net. (View last year’s essays here and the winners here.)
  • C4 attendees will be given a list of potentials and three votes to spend.
  • The three top-voted students receive free admission.

If you’d like to sponsor an additional scholarship slot for $512, toss me an email.

 
Programming Special Interest Group PSIG 117 in August
in Programming Special Interest Group
Wednesday, July 02, 2008
04:56 PM

Hey all, the next PSIG would occur on July 3rd. That’s uncomfortably close to Indie Day (the Independent Mac Developer’s national holiday), so the next PSIG will be in August. We’ll talk about WWDC and what, if anything, dropped on our laps July 11th.

 
C4 C4[2]: Sep 5-7 2008
in C4
and C4
Saturday, June 07, 2008
12:00 AM

More and more folks are poking me, asking if and when there will be a C4[2]. I’m happy to report I’ve decided to go for another round, and C4[2] is scheduled for September 5th through 7th.

Same physical venue as last year, except was the “Chicago City Centre” has been totally renovated and is now “Doubletree Magnificent Mile”.

I’m going to use WWDC 2008 to firm up speakers, so no announcements until after the big show. Just be sure to leave a hole in your schedule for the first weekend in September. It’s going to be a blast.

 
Programming Special Interest Group PSIG 116: Thu Jun 5 2008
in Programming Special Interest Group
Tuesday, June 03, 2008
12:42 PM
When:
Thursday, June 5th, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
Bring your WWDC08 predictions — we’ll be following tradition and offering our best guesses along with our updates+book reports. For the main presentation, Jonathan ‘Wolf’ Rentzsch will discuss how to add AppleScript support to your Cocoa applications.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.
 
Code mogenerator v1.10
in Code
Tuesday, May 20, 2008
02:17 PM

mogenerator is my little command-line tool that reads in .xcdatamodel Core Data model files and spits out Objective C code following the Generation Gap codegen pattern.

Version 1.10 (download, source) is out — here’s what’s changed since the last time I wrote about it:

  • Corrected generated code that got snagged on the messaging-nil-with-method-returning-float gotcha (thanks to Ruotger Skupin).

  • Adds +[newInManagedObjectContext:] method to machine files. I can’t live without this method and it’s pretty much swiped from CoreData+JRExtensions so I don’t have to include those extensions for every Core Data project.

  • Now supports ObjC2 property syntax (but retains 10.4 compatibility thanks to preprocessor magic).

  • mogenerator now support 10.5 Core Data transformable attributes (thanks again Ruotger Skupin). It uses NSObject generically, but you can specify a different class name in the attributes user info under a attributeValueClassName key.

  • Plays a better game of hide-and-seek with Xcode’s installer and where it’s decided to locate momc this week. Handles Xcode 2.4, 3.0 and 3.1. Sadly, mogenerator still assumes /Developer — perhaps one day the installer will be enhanced to ask you which Xcode base to use. Patches welcome.

  • For those of you using Core Data in a multithreaded environment, 1.10 now generates a per-entity subclass of NSManagedObjectID. For example, if you had an entity named Person, its class name will be PersonMO and its managed object ID class name will be PersonMOID. Previously, you had to pass around type-less NSManagedObjectID when you wanted to handoff a managed object reference from one thread to another. Now you can pass a reference whose type will give you a clue as to what’s going on.

 
Programming Special Interest Group PSIG 115: Thu May 1 2008
in Programming Special Interest Group
Wednesday, April 30, 2008
12:00 AM
When:
Thursday, May 1st, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
Jonathan ‘Wolf’ Rentzsch will cover Cocoa, HTTP and You. More than ever, Cocoa applications need to communicate via HTTP (thank you Mr. iPhone), so Wolf will cover your current options and surprising pitfalls. Includes a tour of the open source landscape for HTTP libraries, for both vending and consuming HTTP.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.
 
Programming Special Interest Group PSIG 114: Thu Apr 3 2008
in Programming Special Interest Group
Tuesday, April 01, 2008
11:06 PM
When:
Thursday, April 3rd, 2008 @ 7pm
Where:
Hotel Indigo (pic, directions from the Arlington Park Metra station).
Schedule:
Show & Tell
We'll start out the meeting by going around the table and talking about what we're currently working on or learning about. Handouts are welcome, or bring along your Mac and we'll hook it up to the projector.

Book Reports
Bring along the book you're currently reading, or one of your old favorites. Hopefully the book would have some relevance to programming, but we're fairly open-minded. Just give us an overview the book's topic, and what you liked (or disliked) about it.

Topics
While embedded iPhone development is the current hotness, there exists an even deeper embedded environment available for Mac programmers: microcontrollers. Microcontrollers have clock speeds on the order of megahertz and memory on the order of kilobytes, but can still be used for all sorts of fun projects. Dave Dribin will talk about setting up a development environment for the popular Atmel AVR series of microcontrollers on your Mac. We’ll go over some basic C code to light up LEDs, including how to dim them with pulse width modulation (PWM) and how to download the program to a real device (no certificate needed!). We’ll also cover how to do some simple debugging with an oscilloscope.

Dinner
If you want pizza, bring along three dollars and we'll all chip in.

Looking for Presenters:
I'm always on the look-out for folks to want to give a talk for a meeting. The talk doesn't need to be long (10 minutes is fine if your topic is small or you just want to tease the group) and you don't need to be an expert (just tell us why you think your topic is cool or your experiences). Toss me an email and I'll assign you a chunk of time.