« Chirb, April 2007 | Main | PSIG 103 | PackageMaker »
PSIG 102 | QTKit: 1990s Multimedia Wrapped in 1980s Objects
Monday, April 9, 2007
(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.
11:56 AM

Comments
Thanx for the mention, and it was great to see you again!
As for the exploit, we'll have to wait for the MOAB assholes to resurface to determine if it poses any "real" threat. If you wanna have some fun, try baiting the rixstep guy(s) with that info :)
Cheers, see you next month.
Posted by Blake C. at April 11, 2007 1:28 AM
(cont. from Chirb, April 2007)
"Yeah? What about her?" I asked, finally looking him full on again. He writhed a little under the radiation of my pinched thin, Norman-Rockwell smile. I felt him summon some courage under his breath, or maybe he was formulating his response and... ah, there. I could tell from the way he would look away, and then slightly into the sky, that just thinking about her--"this girl"--deactivated all advanced cerebral function.
Truth is, I'd been working on him for some time now; it's like... that's my job as his big sister, right? I mean, sometimes I pity any poor paramour--ahaha--who, male, lacks an older sibling, female. Seriously, how's he going to figure it out, trial and error? It's like the time I was sitting in the cafeteria (doing math homework; not, of course, gorging myself on snack foods and killing time doodling). The table just across the way hosted a couple, but the main event was the... guy. A guy and a girl, but it was the guy who... oh man. Let's just say that I got an urge to hurry home and read some serious Jane Austen in a belated effort to nurse my IQ back to health; that kid had some profundity issues. It reminded me of that one ancient philosopher dude, whatsisname, Vladismar, who was famous for this one theory about babies and their interlinkings to adults:
"You-and-me-morphic parrots, really, when yous comes down to it, wazza? Like, yas think they're learning from yous, like, really gaining intelligences and all those greatnesses, but that's only if yous not really paying attention, wazza? A closer look shows you how really incapablers theys is, socially... truth udda fact is, theys not so great at learning as theys is mimicking, which yous can see when yas really pays attention and sees that the specialty of em all is the musicality of it, wazza? A babbie--like your average no-brainer wossname--can mimick tones of voice much better than the words themselves, and therein lies the rub."
Opening remarks from the Uncharacteristically Colloquial Treatise on Infant Sociology by Zephyr Vladismar
Which brings us full circle, of course. I looked at my brother as his sharp intake of breath cued that he was finally going to say something. He wiped his hands on himself and turned to face me.
"I don't know. She's really pretty... cool."
Inside, I slapped one hand on my face. My word, had he learned nothing?
Incidentally, isn't it kind of funny when you pronounce "OMG" like "homage"? Like, "I'm paying OMG to such and such old president." Serve me to the lobsters, that's funny stuff.
Posted by Crack me up and... at April 17, 2007 2:10 PM
hey there!
I don't really know what you were talking about in this post, but i just wanted to let you know that I really really really miss you! i hope to see you soon! love...
Posted by PJ at May 17, 2007 2:31 AM
So I'd be sitting there and then I'd suddenly say to my self, "Hit the DECK, Wang!" And I'd get down there in pushup position and knock out something audacious, like ten.
Posted by Weien at May 31, 2007 8:00 AM
Hey Victoria, I have been meaning to say thanks for including me in this write up and sending some traffic my way.
P.S. where are those show notes from PSIG, i already forgot what happened last time.
Posted by Thomas Swift at May 31, 2007 11:51 PM
Victoria! Oh my god, I so wanted to comment on your realistic piece because, good lord, the SHADOWS. THE REALISM. It's beautiful and alas, I wasn't allowed to splurge there. But thus, the flailage here. :D
Hey hon! Long time no communicate? Was wondering if you ever got my letter... I did try to send it out ASAP after coming back from WashU. Anyway, just checking up on you and I must say, seeing all your doodles gives me a very warm and fuzzy feeling. Probably a combo of the fact that you're a great artist and there's just so much you've been doing.
Hope to talk to you soon, yeah?
Posted by Cyn at June 16, 2007 4:30 PM
