Archive for May, 2003

Bull Market

Thursday, May 29th, 2003

The real stock market may be stuck in a rut, but you’d never know it from the way things are hopping over at BlogShares! At the risk of sounding irrationally exuberant, I must say I’m giddy at the recent performance of my own firm—er, weblog.

You see, today I looked at my BlogShares account for the first time in a couple of weeks and was shocked to discover that Sci-Fi Hi-Fi’s share price had balooned to the point where my P/E was a staggering 22.24 (anything over 1 is considered to be overvalued!).

I immediately issued a 5/1 stock split in an attempt to bring Sci-Fi Hi-Fi shares down to manageable levels, but it doesn’t seem to have had any effect on my P/E. I also tried to issue more shares, but the system doesn’t seem to want to let me (it won’t allow me to set the amount higher than zero). Obviously there are a lot of things about BlogShares that I don’t understand, but I’m enjoying the ride nonetheless!

(Update: As Erik points out, Blogshares has actually made a change to the way P/E is calculated: anything over 20 is now considered to be overvalued. So, I was correct that my weblog was overvalued, but not quite to the level I imagined. At the time of my initial post, the BlogShares manual hadn’t been updated to reflect this change.)

San Francisco, Here I Come (Again)!

Monday, May 26th, 2003

It was a very difficult decision. Should I go to MacHack, catch a talk by one of my heroes (James Duncan Davidson), and enjoy the laid-back hacker vibe? Or should I go to Apple’s Worldwide Developer’s Conference, get the skinny on Panther, and hobnob with the Mac development elite? Or maybe I should just save my money and vacation time and stay home…

It was a tough one alright, but facing the early registration deadline, I finally caved: MacHack would be fun, and a lot cheaper, but I figure I should go to at least one WWDC in my life, and there’s no time like the present!

So, it looks like I’ll be spending another week in beautiful San Francisco. Unlike my trip to MacWorld, however, I’ll be alone this time, so I hope to see some of the weblog crowd around. See you there!

Matrix Reconsidered

Thursday, May 22nd, 2003

Finally—someone gets it! Just when the brutal backlash (read the Kuro5hin review, pointed out to me by Justin Williams, for example) was beginning to make me feel like a complete moron for raving about The Matrix Reloaded, satisfied PodWorks customer and weblogger Evan DiBiase linked to Erik Davis’s wonderful article in Salon.

Davis has almost exactly the same take I do: the movie is not without its problems (the Zion scenes are a bore, some of the dialogue rivals The Phantom Menace at its most wooden), but these flaws are more than compensated for by the dense and heady web of intellectual allusions (and illusions) woven by the Wachowskis. As Davis says:

…I have no problems with the pretentious, concept-heavy dialogue. Some reviewers imply that this metaphysical kitsch detracts from the fun; for some of us, it is the fun.

I couldn’t have said it better myself! Watching The Matrix Reloaded, I found myself excited in both my gut and my head, and I can’t remember the last time I could truly say that about a movie.

(Update: Apparently Apple über-coder David Hyatt is also among the ranks of those who “get it.” He even comes to the same conclusion I did about the true nature of Zion. Good on you, Dave!)

Apple Complaint #10: Al Gore

Tuesday, May 20th, 2003

This last installment of my “Apple Complaints” series may be controversial, but it shouldn’t be. You see, I don’t think you have to be a member of any particular political party to appreciate how little Al Gore, who joined Apple’s board in March, brings to the table.

Before you castigate me for playing politics, I think some background is in order. Children of the dot-com boom probably don’t realize it, but corporate boards are supposed to be more than just hobbies for the rich, the famous, and buddies of the CEO. Boards are actually meant to play an import role in both strategy and corporate governance. It was an abdication of responsibility in the latter area, in particular, that paved the way for many of the worst excesses of the late 1990’s (including the spectacular misadventures of Tyco’s Dennis Kozlowski).

Apple’s board isn’t nearly as bad as Tyco’s was, but it has taken more than its fair share of criticism. BusinessWeek, for example, named it one of the eight worst boards in the US, while Jerome York (who sat on the company’s compensation committee at the time Jobs was awarded his $90 million jet) found his association with the Apple board a liability when asked to join (ironically enough) the board of Tyco. Meanwhile, Larry Ellison was widely noted for his absenteeism from board meetings, and has stepped down as a result.

Which brings us to our former Vice President. It was certainly a wise idea for Ellison to step down, but Gore is, in my opinion, a poor replacement. You see, in the wake of scandals like Tyco and Enron, the role of corporate boards has come under a lot of scrutiny, and it is increasingly critical for companies to reassure investors by courting board members who are old industry hands and seasoned businesspeople—the kind of folks who aren’t likely to be asleep at the wheel. As Nell Minow of the Corporate Library told Business 2.0 this month:

There’s a difference in what describes a marquee name now…It’s not a former Cabinet member. It’s somebody who can read a balance sheet.

Gore is not a businessman or technologist, but rather a career public servant whose chief qualification is that he understands technology pretty well—for a politician. He does, as Jobs points out in a press release, do “his own video editing in Final Cut Pro,” but by that standard I would say most readers of this weblog are eminently qualified to be an Apple Director. I suppose his appointment might have made sense if Apple wanted to, say, pursue government contracts in a major way (hmm—I did hear recently that PowerPC processors were being used to guide smart bombs—iMissiles anyone?), but that seems unlikely. It is pretty clear to me that Gore brings little but a famous name to Apple.

Don’t get me wrong—I’m sure Gore is a smart guy (and, now that I think about it, I suppose he does have some experience in education). My concern is just that there has been a lot of hand-wringing lately about the oversight (or lack thereof) provided by corporate boards, and, given that Apple’s has been counted among the worst, I’m not sure bringing in a marquee name with weak qualifications is the best way to counter criticism and inspire investor confidence.

So there you have it Robb—if the last nine complaints didn’t ensure that I will never be hired by Apple, you can bet that this one will put the final nail in the coffin :-).

Apple Complaint #9: The Finder

Monday, May 19th, 2003

There is a long and wordy history of weblog-based OS X Finder criticism, which I won’t even try to read, let alone recapitulate here. Nicholas Riley, John Gruber, and John Siracusa are all far more knowledgable arbiters of good UI than myself, and have produced their own, thorough dissections of the Finder’s shortcomings. For my part, I think Michael Tsai, in a post last month, does the best job of summing up my position on the matter:

Spiffy new features and a religious war over the spacial and browser paradigms are putting the cart before the horse. At this point, all I want is a polished Finder. Just something basic that lets me manage my files without frustration will be enough. By basic, I mean windows that auto-refresh and remember their settings, being able to move large numbers of files quickly, and other things that we used to take for granted. For the rest, I can wait for 10.5 or 11.0.

Well said! Forget piles, journaling file systems, and other showy upgrades: if Apple really wants to put the user at the center of Panther, they need to fix the Finder’s problem with non-sticking view options (one of the perennial OS X bugs), its inability to auto-refresh file listings, its lackluster performance, and a number of other issues. I think it’s safe to say that these fundamental problems have affected my personal user experience far more than my inability to stack files on top of each other!

Apple DRM Revisited

Sunday, May 18th, 2003

In a previous post detailing my research into the iTunes Music Store’s digital rights management scheme, I promised to continue hacking away at the problem and post updates on my progress. In keeping with that promise, here is an account of my recent “hacktivities.”

The first thing I should mention is that Phil “Schillermania” Schiller recently gave an interview to BusinessWeek wherein he, for the first time, publicly names the ITMS’s DRM scheme. It turns out that Apple is using a system called FairPlay, which was evidently developed by a company called VeriDisc. Schiller, in keeping with Apple’s silence on DRM matters so far, is extremely cagey about discussing the true nature of the protection. When asked “Is there any DRM built into the downloads themselves or is it all in iTunes 4,” Schiller responds:

No, it’s all built into the [iTunes] system. Our goal is to make it transparent for the user so that they never have to think about DRM. We’re using a DRM technology under the hood called FairPlay. It’s a DRM technology used by iTunes and QuickTime at the system level.

To which I respond: lies! This is obviously false—if the downloaded files didn’t contain any DRM information you would be able to copy the same file from computer to computer and iTunes would be none the wiser.

Readers who saw my earlier post may remember that I closed with a bit of speculation as to which part of the AAC file actually contains this DRM information: the ‘drms’ atom. The atom name itself strongly suggests this, and a quick comparison of the relative structure of protected and unprotected AAC files seems to reinforce the idea (note that the only obvious difference between the two is that the protected file contains a ‘drms’ atom in place of the unprotected file’s ‘mp4a’).

This, then, brings to mind an obvious question: would removing the ‘drms’ atom and replacing it with an ‘mp4a’ atom effectively remove the DRM protection? To find out, I began reworking my original AAC parsing code so that it could read an entire atom structure into an object hierarchy, modify it, and then write the whole thing back out to disk.

It took awhile to get my code to the point where it could produce files that didn’t crash QuickTime, so you can imagine my elation when I finally managed to generate a valid, unprotected AAC file (as confirmed by QuickTime’s movie info window).


The original, protected AAC


An AAC output by my code

Unfortunately, my elation evaporated as soon as I actually tried to play the file, only to encounter silence. That is, QuickTime had the length and all of the file properties (sample rate and so forth) correct, and would begin playing the file normally—it just wouldn’t produce any audio.

Further research suggested that I probably needed to preserve the elementary stream descriptor atom, which always seems to be embedded within the ‘drms’ or ‘mp4a’ atom. With this in mind, I rewrote my code so that it preserves the file’s ‘esds’ atom within the substituted ‘mp4a’. Unfortunately, the results are the same—silence.

So, I seem to have reached an impasse. I have produced some pretty nice code for parsing QuickTime-like files, but I really need to take a break from my hacking efforts to get some much needed rest and work on other projects, so I’ve decided to publish my latest code and shelf the project (at least for now). It can be downloaded (as usual) as a Project Builder project:

- AACExperiments2.dmg

Once again, I ask anyone who makes progress based on this code to keep me informed. I would be particularly interested to hear from someone who might be able to bring a better understanding of MPEG-4 to bear on the problem (this project has definitely put “learn more about MPEG” on my To Do list!).

Matrix Rehashed

Saturday, May 17th, 2003

Now that I’ve seen The Matrix Reloaded, here (as promised) are my impressions (oh—and though it makes me feel like a goofy, Aint-It-Cool-reading fanboy to say this: spoilers!):

  • Justin Williams hits the nail on the head in his review: the scenes in Zion are every bit as lame as Adam Gopnik said they would be. Morpheus’s speech (“Hear me Zion!”) is so corny as to be cringe-worthy, while the big “rave in the cave” dance sequence is gratuitousness itself. For the most part, the Zion interlude provides prime material for the proverbial “cutting room floor.”
  • Nearly everything after the Zion sequence is pure, unadulterated genius! I’m not being facetious here—I went to this movie with a very healthy amount of skepticism and came out a true believer. Even the much-ballyhooed philosophizing, which I was quite ready to snicker at, impressed me. Believe the hype: the Wachowski brothers have actually managed to make an action movie that vividly dramatizes some of mankind’s oldest philosophical questions (free will, systems of control, cause and effect, McLuhan-esque speculations about our symbiotic relationship with technology—they’re all in there). I would be particularly interested in reading a transcript of the “Architect” scene—there was so much being said there that I didn’t really have time to digest it all!
  • I disagree with Jason Kottke’s assertion that the CG during the huge fight scene looks fake. I was looking pretty closely, and it seemed surprisingly natural to me. Kudos to John Gaeta and company!
  • The 14-minute car chase alone is worth the price of admission. The twins are very bad-ass characters. ‘Nuff said.
  • It’s pretty clear to me, based on Neo’s conversation with the counselor on the “engineering level,” Agent Smith’s sudden ability to influence events in the “real world,” and Neo’s newfound ability to stop sentinels, that Zion is just another level of the Matrix. I guess we’ll find out for sure in November.

Matrix Reloaded

Saturday, May 17th, 2003

This evening I will be going to see The Matrix Reloaded. I have no doubt I will enjoy it (at least as much as, say, X2), even though my opinion of the movie has already been irrepairably influenced by the (mostly negative) advance reviews I’ve read. Timothy Shey, for example, pointed out Adam Gopnik’s review in The New Yorker, which, in a tone of unremitting snark, demolishes the decade’s most anticipated film. So great is Gopnik’s antipathy that, even while praising the first movie, he can’t resist a savage (and hilarious) dig at the franchise’s star:

Even Keanu Reeves, bless him, played his part with a stolidity that made him the only possible hero of the film, so slow in his reactions that he seemed perfect for virtual reality, his expressions changing with the finger-drumming time lag of a digital image loading online.

Ouch! And that’s an example of when he’s trying to be charitable! My favorite part of the article is his description of Zion in the new film:

Like every good-guy citadel in every science-fiction movie ever made, Zion is peopled by stern-jawed uniformed men who say things like “And what if you’re wrong, God damn it, what then?” and “Are you doubting my command, Captain?” and by short-haired and surprisingly powerful women whose eyes moisten but don’t overflow as they watch the men prepare to go off to war. Everybody wears earth tones and burlap and silk, and there are craggy perches from which speeches can be made while the courageous citizens hold torches. (The stuccoed, soft-contour interiors of Zion look like the most interesting fusion restaurant in Santa Fe.)

I can certainly appreciate Gopnik’s sentiment, which, I would argue, is mostly a reaction to the ridiculous amounts of hype attending the movie’s release. Furthermore, as someone who has always been a little miffed at the widespread perception that the original Matrix was a wildly original, deeply philosophical work, I can understand his need to point out the Wachowski brothers’ debt to Philip K. Dick or William Gibson or the medieval Cathars. However, I think it is important not to lose sight of the fact that this is just a movie, and, most likely, a very fun one at that (14 minute chase scene? Hell yeah!). The press (and, honestly, the filmmakers themselves) may have made the mistake of taking the whole thing too seriously, but I fully intend to enjoy myself by recognizing the movie for what it is: an action movie with philosophical overtones—not the other way around.

I’ll let you know how it goes…

Apple Complaint #8: Disk Images

Friday, May 16th, 2003

I used to think that people who complained about Apple’s preferred software distribution mechanism for OS X—the disk image—were all just usability fundamentalists (the kind of people who think the Mac’s glory days ended with OS 9). Then I began distributing my own application, and I realized what a complete usability nightmare the .dmg file can be!

The problem, as I see it, is that most people, when they download software from the Internet, are accustomed to receiving some sort of archive (Zip, StuffIt, Tar or what have you) which decompresses into a folder on their desktop. They then drag the this folder into their Applications folder, where it lives happily.

Unfortunately, as I have discovered, many people try to use this same procedure with disk images, which is a sure recipe for frustration. Earlier today, I received a rather irate email from a customer who was complaining that PodWorks was giving him an error dialog instructing him to “insert the volume” (the understandably brusque subject of his message: “YOU insert the damn volume”).

InsertVolume.jpg

At first, having only the user’s description of the error to go on, I was a bit befuddled. Upon seeing a screenshot that included a view of his Applications folder, though, it became evident what was going on: he had created a shortcut to the mounted PodWorks disk image and subsequently deleted the original .dmg file.

In this example, I believe the user had made perfectly understandable assumption—he had mistaken the mounted disk image for the decompressed folder or file he was used to seeing after a download. Operating under this assumption, he then dragged it to his Applications folder (an action which evidently—I didn’t realize this until today—creates an alias). After deleting the original .dmg file, he tried to click on what he thought was the PodWorks application and assumed that I was taunting him with an bewilderingly obscure error message.

Until recently, I had always thought of disk images as an elegant concept and a cool way to distribute software. But try explaining how they work (it’s a file that OS X mounts as if it was a disk—get it?) to a non-tecie, and you’re likely to meet with confused looks. In my opinion, they represent a huge usability gaffe on Apple’s part.

To be fair, Apple does seem to have developed a solution in the form of “Internet-enabled disk images” (the ones that spit out a file or folder and then simply disappear). The only problem is, they only work in OS X 10.2.3 or above (although, according to the documentation, making a .dmg Internet-enabled doesn’t interfere with its proper functioning on previous versions of OS X). Regardless, you can be sure I will be Internet-enabling my PodWorks distributions post-haste!

Apple Complaint #7: Weak Networking API

Wednesday, May 14th, 2003

I actually had a different complaint slated for today’s slot until Brent Simmons posted a link to this Stepwise article—a comparison of open-source, Objective-C-based networking libraries available to Cocoa developers. The fact that Cocoa developers need concern themselves with such a thing underscores what I think is an important shortcoming of Cocoa’s. As Aram Greenman, the article’s author, observes:

With network capabilities required by so many applications, Cocoa developers often wonder why Apple doesn’t provide a complete Objective-C solution for network programming. While it’s possible, and often practical, to [use] the C sockets interface in Objective-C code, it doesn’t provide the ease of use Cocoa developers expect.

At the risk of turning this series into a list of reasons I like Java better than Cocoa (which I don’t), I’ll add that this statement brings to mind a frequently noted factor in Java’s success: the presence of an easy-to-use, full-featured networking API to hide the complexity of the operating system’s lower level sockets implementation.

Unlike Java, Cocoa lacks a true Socket class (don’t be confused by NSSocketPort, which does nothing to hide the native sockets interface). Rather, with the exception of a few hooks in NSFileHandle, the framework primarily concerns itself with very high level networking interfaces such as NSURLHandle (which currently supports only HTTP—and even then only in such a basic way that Dan Wood felt compelled to develop his own CURLHandle) and Distributed Objects. Developers wishing to work at a lower level (to implement, say, the FTP protocol) are left to deal with BSD sockets.

Given the importance of networks to modern applications, I think it is fair to say that no modern development environment is complete without a strong networking API. Unfortunately, this seems to be another area where Cocoa is lagging.