(What is PSIG? | PSIG 102 announcement)
PSIG last week! I stayed for the whole thing this time, which means I was there till hotel security kicked us all out around 2 AM :). I've decided life is way too short to worry about leaving PSIG at a sane hour. It's just that good of a group.
Books, demos, notable tidbits

- Blake C. informs me that the "interesting feature" I mentioned in my last PSIG post regarding Dave's device browser is actually a significant exploit, and that by blogging about it, I am thereby responsible for releasing it into the wild. Eheh, oops? ^^;;
- I talk about why I
hateam mildly critical of Twitter. Half the group's never heard of this hot new Web sensation, so Wolf helps out by demonstrating the app and executing a few tweets up on the big screen. After much drama and debate we eventually come to the agreement that Twitter can be both good and evil, depending on how you use it :) - Ben Gottlieb demoed his winning Ironcoder app -- a screensaver that tiles Wikipedia pages!
- OpenGL SuperBible
- Jason demoes the FizzBuzz program he wrote in Erlang, as well as a version of the program he created in Quartz Composer for all our rainbow-colored FizzBuzz needs.
- Paul tells us he succeeded in booting OS 10.4.6 on his G4 off of a Lacie USB/Firewire thumb drive.
- Essential PHP security, Professional PHP 5
- It is stated that "it's too hard to find Rails jobs." I suggest the checking out of jobs.rubynow.com, rubyrockstars.com, and jobs.37signals.com. Tom says he does not recommend Craigstlist ;)
- Game Physics: Engine Development, In Search of the Ultimate Building Blocks, Facts and Mysteries in Elementary Particle Physics. Love the comment on that last one: "It was written for the intelligent layman, which is what I am."
- Mastering Cmake
- Dave mentions that his King's Quest game for Windows actually runs using DOSBox, so apparently it was really easy to thingagummy the whatsit and... something. Way over my head ^^;;.
- Later Dave demos an amusing new feature to his MAME OS X emulator -- Quartz Composer integration! For all our rainbow-colored copyright-violating video game needs!
- The transferring of a wheresgeorge.com dollar occurs at some point.
- "Now why did that die?" "Cuz you're plugged into the projector, doing a demo."
- (On Parallels) "I like to see this as the right place for Windows -- in total subservience to OS X."
Iden.tify.us
Tom gave a great presentation on his Crazy New Web 2.0 Startup Site, iden.tify.us. It's a community site where users can upload music files or add video links and get their songs identified by other users. By Web 2.0, we're talking features like an embedded player for your site, tag clouds, RSS feeds with podcast enclosures, and "no business model. (YET!)" Looks promising :).QTKit: 1990s Multimedia Wrapped in 1980s Objects
Wolf gave an very informative talk on QTKit, the Cocoa framework for QuickTime. He walked us through QuickTime's history and explained the .MOV file format. Basically, QuickTime files are organized in hierarchically nesting data units called atoms. There are classic atoms as well as the more powerful QuickTime atoms, which can tell you whether or not they contain other atoms. This container format has been made a digital media standard, and is the basis for formats like MPEG-4. You can use Apple's Dumpster tool to examine and edit atoms.
You can also examine the different tracks on unmuxed video files using QuickTime Pro. Besides the audio and image tracks, we find that Cocoacast episodes include a disabled text track which contains all the chapter titles, and another text track which holds the hyperlinks.
Apple's first attempt to provide a QuickTime interface was in the easy to use but very basic NSMovie and NSMovieView, members of the AppKit framework. These were deprecated in OS X 10.3 with the arrival of QTKit, which replaced them with QTMovie and QTMovieView. QTKit also comes with support for user media editing -- the same stuff that makes up QuickTime Pro 7. QTKit provides read-access to slight majority of the data model, but much has not been Cocoa-fied yet.
In addition to QTMovie (subclass of NSObject) and QTMovieView (subclass of NSView), QTKit provides 3 other NSObject subclasses: QTTrack, QTMedia, and QTDataReference. There are also two data structures: QTTime and QTTimeRange.
A warning: Apple's website contains a lot of old QuickTime information that doesn't apply anymore, and unfortunately, a lot of the new stuff isn't documented anywhere. The nice thing about the "language barrier" between old C and Obj-C is that you can tell it's the new stuff if it's in Obj-C. (I've also noticed that the old pages are styled differently, with Apple's old serif font for the title and smaller body text which shows up non-anti-aliased on my box. Of course, when you have screenshots like what you find on this page, that's a good clue as well ^^.)
See Apple's QTKitPlayer sample code for a demonstration of QTKit's capabilities. It comes with basic control graphics, but you can totally poach the big shiny QuickTime buttons from your Mac using Spotlight. An important point is that QTKit does not show up by default in Interface Builder. It's an optional palette which you have to enable in IB preferences. All of the optional palettes are located at /Developer/Extra/Palettes/.
Hopefully, says Wolf, the QTKit API will be fleshed out soon. The FAQ for QTKit seems to suggest that some of this will happen in OS X 10.5.

