Yearly Archives: 2003

Watterson and the New Year’s Eve blog post

The way I blog, I gather bits of news stories or other blog posts and write up an opinion on them for later blogging. Then when I feel like posting something, I go through the queue of things I’ve written and pick one out, or take several related stories and put them together. I used to use BBEdit for this. Then I started using NetNewsWire’s notepad. Lately I’ve been trying out VoodooPad. The interesting thing about this approach is that I end up writing about a lot of things that never get published. After a certain period of time they are no longer relevant or interesting.

For this last post of 2003, I went through the queue of a dozen or more recent things I could blog about. This thoughtful article about Calvin and Hobbes and creator Bill Watterson stood out:

“The pressure on Watterson must have been enormous, but he steadfastly refused to sell out, even a little bit. ‘I look at cartoons as an art, as a form of personal expression. That’s why I don’t hire assistants . . . and why I refuse to dilute or corrupt the strip’s message with merchandising,’ he said in his Festival of Cartoon Art speech. ‘Characters lose their believability as they start endorsing major companies and lend their faces to bedsheets and boxer shorts.'”

So I guess maybe the advice for the new year is to stay true to what you are doing. Focus on the real problem and don’t compromise your vision for the wrong reasons.

Happy new year.

Control drag hidden constant

I’m blogging this so it will be indexed by the great search engine in the sky, and perhaps save some Mac programmer out there a little time. The new control drag-and-drop Carbon Events are only partially documented. In addition to returning noErr from your kEventControlDragEnter Carbon Event, you need to set the kEventParamControlLikesDrag parameter to true if you want to receive the drag. Unfortunately this constant is missing from the headers. The correct value is: ‘cldg’.

Your code should look something like this:

Boolean t = true;

SetEventParameter (inEvent, 'cldg' /*kEventParamControlLikesDrag*/, typeBoolean, sizeof(Boolean), &t);

These new events were introduced in Mac OS X 10.2, and they are quite convenient. Happy coding.

Feed protocol

NetNewsWire 1.0.7 adds support for the feed protocol. Wes has suggested that MIME types and helper apps are the correct way to handle this, but modern browsers seem to have practically given up on good integration between MIME types and other apps.

I took a few minutes to read the feed protocol specification. It needs a little refinement, particularly the part about extensions (sending commands and parameters with the URL). For feed URLs with no commands, I don’t like that feed:// is the same as, but if you introduce a command, the real protocol (“http” or “ftp”) seems to be required. The “how to process a feed URL” section continues this confusing by saying that the real part of a URL is denoted by either “:” or “.”, but all the examples always include “http://”, which implies that feed://command/ would not be valid. Even more confusing would be an example like feed://command/localhost/.

A minor gripe, perhaps. Anyway, we’ll see whether it catches on.

Another smart experiment with making subscription easier (or at least not as disconcerting for new users) is the work done by Jason Shellen to apply CSS to the Atom XML file. The addition of a proposed “info” element helps describe what the user is seeing.

Update: Brent points to Dare Obasanjo’s pre-draft feed URI spec. On first glance it appears to be a more formal but less complete spec (not necessarily a bad thing). Apparently this is a somewhat unorganized effort.

Stopdesign on CSS layout options

Doug of Stopdesign discusses fixed vs. liquid layouts in CSS:

“Truth be told, table-based layouts are currently more capable of handling this issue than CSS layouts are. I’m certainly not advocating a move back to tables for layout. But unless dimensions are heavily manipulated by CSS, tables do work well at ‘containing’ any objects placed within their cells. This, without needing to worry about content from one cell overlapping another, or a cell suddenly getting re-positioned below a cell instead of beside it. With the current abilities of CSS, I can see why some designers have chosen fixed-width layouts.”

It’s refreshing to hear him admit the advantage that table-based layouts still have. I would have expected CSS to be in a better state by now. Designers shouldn’t have to choose fixed-width layouts just because it’s easier.

Meanwhile, the <a href=”

“>CSS Paged Media specifications (which I’d never heard of before) are nearing completion. Maybe CSS will fulfill its promise after all.

Why Cocoa text drags are broken

Apple still hasn’t fixed text drag-and-drop in Cocoa. In addition to going against how drag-and-drop has worked in previous versions of Mac OS for a decade, I believe it is based on a flawed concept. Has it seen any usability testing within Apple?

I guess the argument for this behavior goes something like this: Because selecting text is more common than drag-and-drop, dragging over a previously selected run of text should take precedence. If you really want to drag the text itself, merely hold the mouse down for a half-second after the click and then drag. Simple, right?

Not at all, for three reasons:

  1. It is counter to how drag and drop works in the rest of the system.
  2. It is slower.
  3. It is difficult for a new user to “learn” this Cocoa behavior.

The first is easy enough. If you can drag most “things” (a file in the Finder, or a window, or an object in a graphic design application) by clicking and dragging right away, why should dragging selected text be any different?

And it’s slower not just because you have to click and hold, but because you have to think too much. How long do I hold? Half second? Full second? Us humans never know exactly, and it’s easy to make a mistake and get a selection when you wanted a drag.

To illustrate what I mean by the last reason, let’s go over how someone would learn to make selections and use text drag-and-drop.

The Cocoa way: User makes a selection. They want to drag that selection, but instead the app keeps making a new selection where they clicked. User tries a few more times, then gives up, thinking that the app doesn’t support dragging of text. They use copy-and-paste instead.

The Carbon and old Mac way: User makes a selection. They drag that selection and it works as expected. If they are a new user, they might try to make a selection inside an existing selection, but without meaning to drag it. In this case they get the wrong behavior — the text starts to drag and they are momentarily confused. The next time this happens, they realize that they should single-click to remove the selection before making a new one in the same run of text.

See the difference? With the original Mac drag-and-drop behavior, the user might make a mistake once but that process teaches them how selection and drag-and-drop works. With the Cocoa behavior, the user might never learn how text drag-and-drop works!

Luckily, Mac developers using Cocoa can override this behavior in their application (which speaks to the power of those frameworks), but I have yet to see an application that does.

Running Mac OS X

Congratulations to James Duncan Davidson, whose Running Mac OS X Panther has gone to press just in time for him to enjoy the holidays. I had the opportunity to review the book, and it’s a solid achievement. He covers many topics that will be useful to new and long-time Mac OS X users alike. Even in the most basic chapters there was nuggets of goodness, little tricks that will make working with your system easier. I particularly like how he covers the command-line tool equivalents for many features, which makes the book a good resource to turn to later.

Mike Clark has a fun review which will surely make the back cover. The official web site is also now up.

Independent comics

I’ve been digging back into comics lately, hence some of the comic-related posts. One of the things that fascinates me is the abundance of great web comics out there. Tons of artists who haven’t quite found the right business model, but are producing incredible stuff anyway.

Chad Townsend pointed me to Kazu’s work at His latest there is a quality monthly one-page comic called Copper.

I went shopping in the real world the other day, and came back with the Adventures of Mia, by Pixar story Enrico Casorosa; The Red Star, colored by Animation Nation member Snakebite; and a few issues of Bone, the award-winner from Jeff Smith.

What will the future hold for independent comic artists? Who knows. Here’s a semi-related excerpt from a Dave Sim speech from 1993:

“The critical difference with Spawn is that Todd McFarlane recognized that he is hot NOW, while he was working on Spider-man. He recognized that he was making an enormous amount of money for Marvel Comics and that the percentage of that money that he was being paid was minuscule. He recognized that there was a window of opportunity NOW to make his future financially secure and to take control of his career. He recognized that at Marvel, his career was out of his control. A change of editor, of editorial policy, of company ownership, any number of things could throw him out in the street at a moment’s notice. If Marvel could throw Chris Claremont away after fifteen years, refusing even to let him write a farewell note on the letters page of the book he had made into the industry standard, what security is there? Todd McFarlane recognized that there is no security. There never has been and there never will be.”

Over a decade ago I bought most of Todd McFarlane’s Spidey comics, as well as the first few issues of Spawn. Fast-forward to today: Spawn is drawn by someone else and McFarlane is a millionaire. And Dave Sim is a few months shy of wrapping up the entire 300 issue run of his independent comic, Cerebus. (He started 26 years ago.)

Christmas lights

House lights

I’ve come to enjoy the yearly tradition of putting up Christmas lights: balancing on a wobbly ladder, hanging over the side of the roof, and searching for that elusive burned-out mini-bulb. This year we put our lights up in record time, before the sun set on the eve of December 1st. Ah, the holidays.

(Not a great photo above. I was trying to capture the lights on the bird feeder.)

Roy leaves Disney

The New York Times covers Roy Disney’s resignation:

“Roy E. Disney, a nephew of the founder of the Walt Disney Company, said on Sunday that he was leaving the board of directors and called for the resignation of the chairman and chief executive, Michael D. Eisner.” has a reprint of the full letter to Eisner and the board:

“I have and will always have an enormous allegiance and respect for this Company, founded by my uncle, Walt, and father, Roy, and to our faithful employees and loyal stockholders. I don’t know if you and other directors can comprehend how painful it is for me and the extended Disney family to arrive at this decision.”

Big news. It’s a shame that Roy is the one to leave. It’s clear that Disney (the company) has lost its way, and Eisner has no vision for what the company could be.

Mac files, volumes

While looking for something else the other day, I ran across this Apple technote. I think it illustrates quite nicely the kind of sacrifices that were made to put Mac OS on top of unix. In the end the rewards are worth it, but the way volumes are handled is a step backwards. Seems like they could have created a small root partition, just for links to standard unix directories (usr, lib, etc), and mounted volumes in their own directories /My hard drive, /My apps, etc. This “/Volumes” business is silly. It’s another example of the fragility of the new system.

We used to brag that you could rename your System Folder and the Mac would still boot. Those days are long gone.

Related: John Siracusa reviews Panther.

HorseBack Salad

The Austin Chronicle profiles HorseBack Salad Entertainment:

“In February 2001 — working out of their homes — the four formed HorseBack Salad, a ‘ground up’ animation and multimedia firm whose chief claim to fame was and is its ability to generate unique results fast, whether the project is a music video, an animated pilot for the Cartoon Network, or a piece of educational software — you know, for kids. With an animation style that occasionally echoes Jamie Hewlett’s work for Brit hip-hop popsters Gorillaz and encompasses everything from their own projected animated shorts and series (this is where the kung-fu robots and Kabuki snowmen come in) to more serious (but not too serious) outings like their bouncy animated segment in local singer-songwriter Andrea Perry’s ‘Simple’ video, HorseBack Salad has initiated or had a hand in 44 separate projects: a whopping record considering they’re the new kids on the block.”

I first saw their name when the Question Authority interactive game showed before the Matrix at the Alamo Drafthouse. It was immediately obvious that these guys had talent, with some traditional animation know-how that is absent from a lot of online content.

Peppercoin and web comics

It’s been a few years since Scott McCloud’s Reinventing Comics was published. In that time, a couple digital cash companies have probably closed their doors, and thousands of web comics have been created by artists with little expectation of even covering their costs.

Peppercoin is the latest company trying to solve this problem (not just for web comics, but for any small purchase, such as music downloads). An article on Technology Review covers the details, and I have to admit it’s a pretty clever idea:

“One transaction out of a hundred, selected at random, is sent to Peppercoin. After Peppercoin pays the seller 100 times the value of that transaction, it bills the customer for all of her outstanding purchases from all sites that use Peppercoin. Since about one out of a hundred purchases is processed, her last bill will have come, on average, a hundred purchases ago. That’s the trick: by paying the seller and charging the customer in lump sums every 100 purchases or so, Peppercoin avoids paying the fees charged by credit card — roughly 25 cents per transaction — on the other 99 purchases.”

But it still requires the user to install new software. The content will have to be extremely compelling for people to install new software they’ve never heard of just to access it. Even BitPass, a competing service just getting started, is completely browser based. As is PayPal, for that matter.

Meanwhile, we recently resubscribed to the local paper. (You know, the physical one that shows up on our driveway every morning.) Imagine my surprise that the comics section is now a full one-and-a-half pages, not just the one page when I was growing up. Now that’s progress.


Something interesting is going on with VoodooPad, winner of O’Reilly’s Mac OS X Innovators Content. It’s the best front-end to a Wiki I’ve seen, but more than that, the implementation for talking to servers is XML-RPC based and open (overview and more documentation).

The API is simple, and you could probably use it as a front-end for other custom content-management systems, not just Wiki. But it is yet another API. I wonder if they considered building off of one of the existing weblog APIs, or the Atom project.

I’m going to give VoodooPad a try for general purpose note taking. I’ve always liked the idea of a Wiki but have never been able to successfully use one for anything meaningful.

G5 vs. Power Mac 9600

My new G5 arrived last week. This machine replaces (supplements) my old TiBook, which was really showing signs of age even with Panther. It is an understatement to say the G5 is a fast machine, and it makes programming a joy again.

Of all the machines in my office now, the new G5 most resembles another machine I got just a few months ago: an old Power Mac 9600. That machine was a monster in its day too. As a Linux server, it does the job quite nicely. I finally finished migrated this site and email to it last night. (If you’re wondering why I would move this site to such an old machine, I should point out that this site used to run on a Power Mac 7600, even more ancient and running an extremely old Linux Kernel. Both run Yellow Dog Linux.)

In the process I learned something valuable: Webmin is your friend. I had heard of this web-based unix administration suite years ago, but finally tried it yesterday. I configured a bunch of stuff that I didn’t know how to touch before now. I like the power of the command line, but using Webmin probably shaved two hours off of what I was doing. The only real problem I ran into was with Postfix, and I had to do a little troubleshooting with netstat and friends. Overall the migration went very well.

New York City and Al

After visiting family in Louisiana last week (wait, 2 weeks ago), we took a trip to New York City for a few days vacation. It was great New York City weather: cold, and a little rain one night. We did the usual tourist sites, Broadway show, and walks in Central Park. We covered the city on foot, by taxi, and in the subway. All great experiences, and even though I’m back at home I catch myself jaywalking. Oops.

The night we arrived, Al Franken was signing books. I finished his “Liars” book a few nights ago. It’s mostly good stuff, and I found myself laughing out loud at 1am, trying not to wake the sleeping three-year-old next to me. But there’s a darker side too. There’s only so much “funny” you can put in September 11, and he puts very little.

Of course ripping apart conservative talking heads is fine, but the problem is not just with the right. Cable news in general has spiraled down into so much sensationalist garbage that there’s little or no time for real journalism. Even so, most of Franken’s arguments are pretty dead-on and well researched. (Disclaimer: I don’t actually have cable anymore, so what do I know.)

One of the unfunny chapters is a moving description of the memorial service for his friend, Senator Paul Wellstone. Now Al Franken is contemplating a run for senator in Minnesota:

“Driving him as well has been his distaste for the Bush presidency, he said. ‘I felt like after 9/11 this president had a chance. We were united in a way that I had never seen, and he had a chance to take this country forward in a spirit of mutual purpose and mutual sacrifice. Instead, he just hijacked it and used it to his own political ends.'”

Some people look to 2004 and ask, “How can a Democrat hope to win against Bush?” But this president’s credibility has been weakened, and the uphill battle right now is his. Wait to see the turnout on election day. Democrats hate this guy, maybe even more than many Republicans hated Clinton.

Semi-related: George Soros gives $5 million to, attacks Bush.

(Don’t worry, politically-themed posts to this blog will be very rare.)

Porco Rosso

Earlier this week, the brand new English dub of Hayao Miyazaki’s Porco Rosso was screened at the Paramount Theater as part of the Austin Film Festival. I bought a full pass to the festival to make sure I wouldn’t get cheated out of seeing this film, and I thought I could catch a few other films and the pass would pay for itself. No luck, I haven’t made the time to see any other films. But who cares. This is Miyazaki for crying out loud, and the only chance to see it on the big screen before it hits DVD next year.

As John Lasseter said on some of the Miyazaki’s DVDs: “You are lucky. You get to see (insert great film here).”

The film was fantastic, and the audience loved it. Funnier than his other films, but also with that sincere Miyazaki touch — beautiful sky scenes, not afraid to pause and appreciate a moment.

Cindy and Donald Hewitt answered questions afterwards. They did the English dialogue for Porco Rosso and also for last year’s Academy Award winning Spirited Away. Sounds like they enjoy working on these films, even though they have a short time to get the screenplay done (2-3 weeks). They are also playing a bigger role in directing the voice actors.

To see how potential voice actors will fit the part, they use Final Cut Pro to take audio clips from other movies and play it over the animation. When working on the English version, they just practice the dialogue while watching the movie, trying to get the lip sync right (lots of rewinding). They use the direct translation and also other existing dubs as a guide.

Miyazaki’s next film, currently in production, is Howl’s Moving Castle.

Rustboy book

My copy of the Rustboy book arrived the other day. It is an incredible achievement, one of the best “making of” books I’ve seen. Like the upcoming film, it was put together by one guy, a Mac with off-the-shelf software, and some good design sense.

Much of the book contents can also be found on the main Rustboy web site, but there is new stuff in the book too, plus some great insight. And hey, it even comes with 3d glasses.

I only hope that he can finish the film itself relatively soon. Yesterday I caught myself saying that he would never finish it at this rate, or that it would take 5 years, but the truth is that I can see it being completed in another year or two. My only concern is that the story might not be strong enough to engage an audience for 25 minutes, but his work is beautiful so it hardly matters. And he has been such a perfectionist up to this point, it’s better to give him the benefit of the doubt.

Hackers and Painters

Paul Graham’s Hackers and Painters essay surprised me. I put off reading it for months, because I assumed I knew what it was about — that programmers are artists, that their work today is just as important an art form as that of painters during the Renaissance. And sure, there’s some of that in there, but that’s not really the point at all. By looking for patterns between two seemingly unrelated subjects, Paul attempts to better understand the strengths or weaknesses of different approaches to programming. In the process I think he also defines what a hacker is — a tinkerer, a designer, but also someone who jumps in and starts coding. Not all programming projects should be tackled this way, and that’s fine too.

“If universities and research labs keep hackers from doing the kind of work they want to do, perhaps the place for them is in companies. Unfortunately, most companies won’t let hackers do what they want either. Universities and research labs force hackers to be scientists, and companies force them to be engineers.

“I only discovered this myself quite recently. When Yahoo bought Viaweb, they asked me what I wanted to do. I had never liked the business side very much, and said that I just wanted to hack. When I got to Yahoo, I found that what hacking meant to them was implementing software, not designing it. Programmers were seen as technicians who translated the visions (if that is the word) of product managers into code.”