rentzsch.com: tales from the red shed

ADC Core Data Video Tutorial

Links

Apple Developer Connection has published my latest piece: Building a Sample Core Data Application. Notes:

  • Big version. You can download the entire high-quality full-length 38 MB movie if you want to watch the from start-to-finish without having to load each segment.

  • The “Series”. Notice the “ADC Video Tutorial Series” heading. I’m going to stay tight-lipped on this, but if you have pet Apple tech topics you’d like to see get the video tutorial treatment, now’s the time to toss me an email.

  • Article Layout. This is the most video-heavy article I’ve written, and ADC’s standard template groaned under the load. Putting each video in-line with the text chopped up the flow something awful. I knew it didn’t feel right, but I didn’t know what to do about it. Fortunately, this is Apple we’re talking about. They reworked the template into what you see there now, with small clusters of videos set alongside the supporting text. Highly scannable and elegant.

  • Source code. The source code to the “CheckIn” example is in my SourceForge subversion repository.

  • Audio quality improved. Compared to my PyObjC piece, the audio quality should be improved — I got a new microphone. Initially I was using a desktop-mounted mic, connected to an small battery-powered amp and plugged into my PowerBook’s line-in audio input. The problem was the mic was really good at picking up background noise. Worse, the distance from my mouth to the mic would vary slightly while I recorded, and you could tell, especially in-between recordings.

    Dealmac posted a deal on a analog Plantronics headset mic, and I figured it was worth dropping the $16 bucks to see if a headset would help or hurt the output quality. But when I went to purchase it, I saw its USB big-brother. I hit Plantronics website and it said it was Mac OS X compatible, so I have it a shot. Glad I did.

    Yes, I know I’m inching towards renting studio time. Please God help me.

  • Fragments. For the first time, I tried recording a lot of little segments and then combining them at the end. In contrast, my WebObjects 5 in 15 Minutes screencast was one long shot. It was very frustrating, since one mistake at minute 13 meant starting all over again. The benefit of many-little-segments is that I have more freedom to experiment with wording and what I show. The downside is my perfectionism kicks in. Badly. “Oh, you didn’t move the mouse to the area you were discussing”, I’ll tell myself, “it’s only 30 seconds to reshoot”. Well, I screw up another thing, or I don’t talk loudly enough or I stumble over a word or I think of another thing to mention or I decide not to mention something else since it’s not critical and so on and so on. And that little 30-second re-shoot becomes a 25 minute re-shoot.

  • Setup reproduction is hard. Another problem with shooting in fragments is that act of starting and stopping, changes program state. I’ll view the movie and accidently bump the window I was filming. Gah. Now I need to pixel-diff the movies. Basically, I shoot what’s there, bop it to a movie, concatenate the new movie against the last shoot and step back and forth between the last frame of the old and the first frame of the new. I memorize what’s changed and then attempt to recreate it on the current screen. And you thought my pixel imperfection was bad. I have new respect for filmmakers.

  • Loop-de-loops discovered. Apparently I loop-de-loop my mouse pointer when I’m thinking of the next thing I do. Wacky. I’ve mostly (completely?) edited them out so they shouldn’t distract you.

  • >One hour per video minute. Shocking metric: for each minute of video, it took me more than an hour to create it. I expect this to worsen. I picked up a copy of Motion 2 because I feel hampered by straight screencasting. Now I’m unencumbered by simple linear video, but the time investment just went way up.

  • Learning my lines. It’s funny, I’ll walk through what I want to show. I’ll think about how to phrase it, getting the wording right. However, I hit the record button, and I got blank or stumble over myself. To get around this, I’ll first write out what I want to say. Then I’ll start recording again, reading from my script.

    The problem with reading from a script is that it’s completely obvious. My energy level goes down, and my inter-word latency creeps up. My on-screen movement also slows or halts. I don’t seem to have the mental bandwidth to read, speak, and mouse around while driving the project forward at the same time.

    So, the solution is to not read what I wrote, and that surprisingly works out okay. It appears I just need to write the words out to serialize them. Once they’re serialized in my head, I don’t freeze and almost don’t need to look at them.

  • Uncompressed. For the first time, I also worked with uncompressed video+audio until the very end. Winds up being about 1.68 GB per minute. Uncompressed video is strange to work with — it’s totally IO-bound. You machine is idle, but nothing is happening.

  • Long time coming. Your eyes do not deceive you. I do indeed point to a date picker populated with “today’s date”, with that date being “10/18/2005”. This video tutorial was a slow waltz — hopefully the next one will be a jitterbug.

Monday, March 27, 2006
08:20 PM