inessential by Brent Simmons

September 2002

Search Pages

Both this site and have search pages now.

Both pages search both sites—it doesn’t matter which search page you use, the results are the same.

Here’s an example search.

Brent’s Law of CMS URLs

On today I proposed Brent’s Law of CMS URLs:

The more expensive the CMS, the crappier the URLs.

Compare, for instance, StoryServer’s weird comma-delimited numeric URLs to Radio UserLand’s human-readable (and guessable) URLs.

Then compare the prices—orders of magnitudes of difference.

So, at least in this respect, there’s an inverse relationship between price and quality.

Now, surely this observation isn’t original with me, and I can’t really call it Brent’s Law. But I did anyway, just for today, just for fun.

(This whole issue comes up from reading Jesse James Garrett’s essay on User-Centered URL Design.)

Sid, Drag Queen

Steve Ivy’s weblog editor Sid is, as far as I know, the first weblog editor to accept dragged RSS items from NetNewsWire. Right on!

In case it’s not obvious, what Steve and I and many other developers are working toward is making OS X the best OS for people who read and write for the web.

The idea is that you’ll be able to mix-and-match software from different developers and build your own environment that works how you want it to work. A key part of this is the simple things like making sure drag-and-drop and copy-and-paste work between all these different apps.

Software ideas

Here are a couple software ideas, things I want but I don’t have time to create:

1. Help book creator and editor.

Creating help books for apps is a pain. I’m using BBEdit, which is cool, but what I’d really like is a tool that integrates with BBEdit somehow. The tool would handle page rendering, make it easy to place graphics, give me an outline of the contents, and run Apple’s help indexer on command.

BBEdit would be used as the text editor, but one wouldn’t have to type much HTML—the tool would handle generating the pages.

2. A Service or contextual menu plugin (or both) for viewing source in BBEdit.

I sometimes get email where people send me the URLs of RSS feeds and ask why they don’t work in NetNewsWire. I want to view the source at that URL, I don’t want to open it in my web browser or in NetNewsWire.

So this software would allow me to select a URL, choose View Source in BBEdit, then the source would be downloaded and opened in a new window in BBEdit.

I could imagine this would also be useful for any web designer or programmer, the kind of people who frequently need to look at and debug HTML.

How to encourage developers

How do you encourage developers to do good work? Say nice things about their software.

Really. It works.

I even get a little thrill when I read compliments of other people’s software. If someone writes about how much they love Radio UserLand, or Transmit, or BBEdit, or whatever—then it’s a reminder that there are cool folks out there who care about software and are nice enough to let the developers know when they do good work.

I just learned about Pretty cool. It has an RSS feed. “We spend time tracking down the really useful applications, utilities and general Mac information and provide details of them here.”

I found this site via my referers page. (Thanks for listing NetNewsWire!)

There are lots of other cool apps listed there, several of which I didn’t know about but will have to check out.

Spring EA 2

Spring—now with Jaguar support. Get it while it’s hot!

NetNewsWire Lite 1.0.1

NetNewsWire Lite 1.0.1 has been released.

Changes since 1.0 include crashing bug fixes, opening URLs in the background in the browser, remembering the pane sizes and positions, and keyboard navigation enhancements. See the change notes for more details.

Minor pet peeve

I’ve been seeing more and more that sites put up a list of newsreaders and aggregators when they link to their RSS feed.

That’s totally cool.

But lots of sites miss listing Straw, the desktop news aggregator for GNOME. Don’t forget about Straw. It’s cool.

New Feature for Big Cat

Today I started working on a new feature for the Big Cat plugin—the ability to run shell scripts from the contextual menu.

A new beta is several days away, but I figured I’d mention it because, well, it’s cool.

By shell scripts I also mean Python, Perl, and so on. In fact, I’ve been using Python mostly so far. (Python comes with Jaguar, by the way.)

Oh, and not only does Python come with Jaguar, but Python’s XML-RPC library comes with Jaguar. Sweet.

NetNewsWire Lite 1.0.1fc1

NetNewsWire Lite 1.0.1fc1 adds smarter scrolling when using the arrow keys to navigate through the headlines pane. Also, a few sites were added to the Sites Drawer.


We all know that times flows at different speeds for different people. And that time doesn’t flow at a constant rate for anybody.

Me, for example, I do things fast. I read fast, think fast, talk fast (except when I remember to slow down). You should see me in the kitchen cooking dinner.

It’s not an ADHD thing—I have no problem with focus, it’s just that I’m sped up.

As a boy I was known far and wide as the kid with absolutely no patience whatsoever. (And a temper that was set off by things being slow, a temper sized as the inverse of my patience.)

Luckily I’ve matured somewhat: I can at least disguise my innate complete lack of patience.

(Side note: as a boy I thought speed was a function of intelligence. I was totally wrong. I know people smarter than I am who aren’t in such a big hurry all the damn time.)

But what I’m thinking about today is a different though related sense of time. I don’t have a good term for it.

It’s the sense of recent history. Where does history end and recent history begin?

It’s different for every person.

For example, if you hear the phrase “the recent history of Europe” do you include the fall of the Berlin Wall? Prague Spring? Do you go as far back as World War II? World War I? Napoleon? The Renaissance?

What does “recent history” mean?

To extend the example: if someone says, “Europeans are more thoughtful and less quick to wage war than Americans,” then I think that person must be joking—or mad as a hatter.

But that’s because I think of the entire 20th century as being very recent. World Wars I and II were just the blink of an eye ago.

But to someone who thinks of those wars as being deeper history, to someone who thinks of recent history as starting in, say, 1989, then that statement about the character of Europeans might make total sense.

Note: this example is not intended to glorify America or disparage Europe. I’m using it just to show how one’s sense of what is recent history can totally change one’s point of view. (By the way, I’m no Europe-hater or insular American. I’m taking French classes, because I love learning other languages, histories, and cultures.)

What I’m saying is that the more I listen to people and read what they write the more I realize that people’s senses of what is recent history don’t match, and this is a source of misunderstanding, confusion, and disagreement.

It’s natural to assume that everybody’s sense of time is the same, but it’s not true.

Ratings Geeks

I’m a geek—a software developer, a literature geek, a language geek, a history geek. Even a Star Trek geek.

So when I use the word geek in the following I don’t mean it disparagingly.

I’ve identified a sub-species of computer geek that I call the ratings geek.

These are the folks who talk about directed graphs. These are the folks who make feature requests for NetNewsWire that have to do with automatically applying ratings to subscriptions. (Ratings based on things like how often does one follow a site’s links, how often does a site update, etc.)

Ratings geeks have a better grasp of math than this college-dropout-literature-major does.

The common thread to ratings geeks is that they want the computer to observe their behavior, and sometimes the behavior of other people too, and move things around accordingly.

I’m going to have to learn more about this stuff, clearly—there are lots of ratings geeks out there, and they have some truly excellent ideas.

But there’s one thing I’d like to remind ratings geeks of: most people are not ratings geeks. In fact, most computer geeks are not ratings geeks.

So, what does that mean, in practical terms? Nothing in particular. I’m just saying it.

Just that empathy is the essential quality in a software designer, and remembering that not even all geeks are the same is important. (I’m as guilty as anyone in sometimes forgetting that principle.)

Random subscriptions

One thing I’m thinking about this morning is a possible new feature for NetNewsWire—an Add Five Random Subscriptions command.

It would take five sites at random from the Sites Drawer and add them to the end of your subscriptions list.

Why do this?

There’s a joy in discovering sites that you like accidentally. You might never choose to subscribe to site XYZ based on its name or description, or based on the fact you never heard of it—but once you start reading it, you realize it’s a cool site, and you want to keep reading it.

Of course there’s no expectation that you’d like each of the five random sites. Or that you’d even like any of them. But sometimes you’d find something you’re glad you found.

It’s another way of spreading the flow, too. Some sites will always get lots of subscribers: they’re already well-known sites.

But I’ve been looking at hundreds of weblogs lately, and one thing I’ve learned is that for every well-known (and deserving) site there are many, many sites less-well-known but no less worth reading.

HTML mail clarification

To clarify:

My reason for considering filtering all HTML email to the trash is not so much my distaste for the format (though that is a factor) but because, at least for the email I receive, only spammers send HTML email.

And I hate spam.

So I have to weigh the choice. Nuke a ton of spam with one filter, knowing that I’ll probably miss a few legitimate messages, or keep creating more specific spam filters.

I’m really tired of creating spam filters.

Pep Talk from Dan Wood

Watson developer Dan Wood, in an interview with O’Reilly, gives Mac developers a great pep talk: “It’s actually possible to get a new product built and selling with a minimal outlay of time and money. Of course, you need a good idea, and you have to work hard, but it is possible to make a living and build a successful software company, even in today’s economy, even deploying on a ‘minority’ operating system like the Mac, even Mac OS X only.”

There’s more, of course—just go read the article already.

NetNewsWire Lite 1.0.1b3

NetNewsWire Lite 1.0.1b3 fixes a crashing bug and a few other glitches. Here are the change notes.

Chimera and popup ads

Xspot presents one (of many) great reasons people love Chimera.

I’ve been using it myself once I learned how to get my font settings to stick. It’s been absolutely fabulous, even at this early stage.


I am, like, two seconds away from filtering all HTML email to the trash.

It’s spam something like 99% of the time.

Good by nature? Bad by nature?

It seems to me that Americans, and maybe other people, are divided on a fundamental question.

Are people good until corrupted by society? Or does society tame our immoral (or amoral) natures?

Here’s an example of what I mean:

Some people say that racism is learned. It’s society and her institutions that teaches people to discriminate against people who look different.

Other people say that racism is innate: people fear people who look different, but society teaches us not to be racists. (Imperfectly, of course.)

So: where are you on this question?

How does your viewpoint affect your actions?

Is one outlook inherently immoral?

ht://Dig or Lucene?

I want to set up a search engine for my websites. It appears to me that my choice is between ht://Dig and Jakarta Lucene.

Does anyone have good reasons to choose one over another? Or is there another option I haven’t considered?

Good-bye letter T

Is it just me, or has the pronunciation of English actually evolved noticeably during my lifetime?

It seems to me that we’re pronouncing the letter T less and less. If it’s at the beginning of a word—two, tape, tip—we pronounce it. But if it appears later in the word it’s pronounced less and less often, it’s swallowed—right, eight, select.

(An exception to the swallowing is compound words—sometimes, for example.)

Maybe it’s just me. And maybe it’s okay, and maybe I shouldn’t worry about it so much.

NetNewsWire Review

Nolan Hester has written a very nice review of NetNewsWire. He also mentions some glitches—the most serious of which I think will be fixed in the upcoming beta (1.0.1b3).

The most-common-by-far crash in recent versions of NetNewsWire occurs deep in Apple code, in the HTML rendering code. So I’ve managed to completely remove one call to this code, and I may have figured out the problem with the other call. (A multi-threading issue, of course.)

NetNewsWire Lite 1.0.1b2

NetNewsWire Lite 1.0.1b2 has two often-requested changes:

1. It remembers the size and position of the split views between runs.

2. You can tell it (via the General prefs panel) to have URLs open in the background in your browser. (Jaguar only.)

Control over browsers

Another very common NetNewsWire feature request is better control over what the browser does when it’s asked to open a URL.

People want to specify that the browser should stay in the background, for instance. Or open every URL in a new window. Or never open new windows.

The problem is that Cocoa gives us just one dinky little call to open a URL. No control over the browser.

But I’m continuing to investigate, and it looks like LSOpenFromURLSpec, from the LaunchServices framework, may provide the control people are asking for.

I’ll give it a shot and see what happens. I can’t promise it will work, but I’ve got my fingers crossed.

One of the big drags with something like this is all the testing. Lots of browsers to test.


A suggestion I’ve heard several times is that NetNewsWire should get the sites for the Sites Drawer from a file stored on my server. (Currently it gets it from a file, SourceList.plist, stored in the application bundle.)

Then, when NetNewsWire starts up, it would download the file and populate the Sites Drawer.

It’s a good suggestion, and two years ago I probably would have done it this way.

But here’s why I won’t do it now.

1. I’m ruthless about minimizing potential sources of failure. If the download fails for some reason—such as that my server is down—then one has no sites in the Sites Drawer, and that’s unacceptable.

My server should be able to go down without affecting NetNewsWire’s functionality. The worse that should happen is that you can’t get news from my sites.

2. It’s a bandwidth and time issue. The file size is up to 136K, and it will keep growing. Downloading that file means more bandwidth is used by me and, more importantly, by NetNewsWire users. I want to minimize the amount of bandwidth used, not maximize it.

3. Some users are paranoid about contacting the vendor’s server. I wouldn’t use the connection in some nefarious way—but still, if there’s no connection at all, that’s one less thing to be paranoid about. You can watch your traffic and see that NetNewsWire contacts my server to read RSS feeds only (that is, if you’re subscribed to any of my feeds).


Simone Bettini emailed me an excellent idea. The idea is that other people could maintain smaller lists of feeds on specific subjects, and that there would be a way for a NetNewsWire user to download and incorporate any of these lists in their Sites Drawer.

For instance, one might have a list of Italian news sources, or baseball news sources, etc.

Of course, the challenge is the user interface. Actually implementing something like this is a piece of cake. UI suggestions are of course welcome.

Remembering split views

One of the most common requests for NetNewsWire is that it remember the size and position of its split views.

Good news! I’ve been working on it this morning, and this feature will be in the next beta.

NetNewsWire Lite 1.0.1b1

NetNewsWire Lite 1.0.1b1 has been posted. (I created a new page for betas, so the main page can always point to the current release version.)

The important change in this version is that the clipboard formats for RSS sources and RSS items have been cleaned up and documented. Sample code is provided for both Carbon and Cocoa.

The idea is so that other apps can work with NetNewsWire via copy-and-paste and drag-and-drop.

Of course, this isn’t the final step in getting apps to work together, but it’s an important step.

Apps working together

It’s almost like a religion with me—apps should work together. No app is an island.

This is one of the things that got me into scripting (and later into working for UserLand Software).

And it’s one of the reasons I like OS X. It blends two worlds, Mac Apple events scripting and Unix scripting.

The bare bones level of working together for GUI apps is the clipboard. Can you copy from one app to another? Can you drag from one app to another?

Later today or tonight, if all goes according to plan, I’ll release a new beta of NetNewsWire Lite with cleaned-up and documented clipboard formats.

The idea being that you could drag an RSS subscription to Tinderbox, for instance. Or copy an RSS item into Archipelago or Blapp. And so on.

So, along with a new beta of NetNewsWire Lite, I’ll also put up a page that documents the clipboard formats for RSS items and RSS subscriptions that NetNewsWire exports. (When copying and when dragging it uses the same formats.)

Along with the documentation I’ll release sample code, a Cocoa app and a Carbon app, that show how to get the information from the clipboard.

Of course, it will still be up to other developers to take the sample code and integrate it with their apps. But I’ve talked with a few people via email and I think we’ll see this happen.

Which is totally cool.

Understandable Software Award

NetNewsWire Lite today received the very first Understandable Software Award. Thanks!


A telemarketer just called me (from Evergreen/Washelli) and let me know that I’m entitled to a $200 discount on cremation or burial.

Holy cow!

I hung up, naturally.

I can’t say enough bad things about people who call me up to remind me of my mortality. So I won’t say anything in particular. Except that it’s bad.


Speaking of Doug Baron (see my previous post)—I just remembered one of the funnier things to happen some years ago at a UserLand meeting.

During a break, Doug and Bob and I were talking about vacations, which led to talking about sunscreen lotion.

Doug explained that he used SPF 32.


We started laughing—only to a programmer would 32 be a round number (as a power of two).

(Perhaps you had to be there.)

Nordic Paul Bunyan

Nat Irons: “I learned that Brent Simmons is not a giant blond man. Based on zero evidence, I had always envisioned him as sort of a Nordic Paul Bunyan. It’s always jarring to meet someone in person and give up my whimsical mental pictures. However, he does have very precise diction.”

That reminds me of when I was a new UserLand employee. The night before I first met Doug Baron, Dave Winer and I were going to Buck’s for some dinner, and Dave asked me what I thought Doug looked like. I though he’d be tall and blond. After all, the name Doug is a very blond name, and the last name Baron suggests aristocracy.

Was I right? Nope. Wrong on both counts.

File suffix for REALbasic projects

What’s the file suffix for REALbasic project files? (TigerLaunch wants to know.)

Or, if there’s no file suffix, what’s the type and creator code?

Default NetNewsWire subscriptions list

I got my first inquiry today about how to get one’s site listed in the default subscriptions list for NetNewsWire.

My current policy is to change the defaults for each release. Mainly so that I can spread the flow—there are lots of deserving sites.

But also so that no one site gets overwhelmed by additional bandwidth charges.

But what if someone asks to have their site listed as a default subscription?

As has been suggested by other people, this is probably something I should charge money for. I can’t, after all, just say Yes to everyone who asks—or else the default list would be huge, and I want to keep it to 15 sites.

I can’t think of an ethical reason not to charge money for placement in the default list. (Though of course I can reserve the right to turn down a site for any arbitrary reason.)

Reality check time. Is this reasonable and ethical, or is there something I haven’t thought of? What do you think?

Vonnegut on eloquence

Kurt Vonnegut, in an interview: “I just don’t think people get off on language anymore. Language used to be an elevated art. It used to be for people what music can be. But people don’t learn to do that anymore, so eloquence is merely a matter of waste now. Who needs a good vocabulary and proper English?” (Via blackbeltjones.)

TigerLaunch Projects Menu

The TigerLaunch Projects menu lists only Project Builder projects.

But it should also list project files from other apps.

So here are the questions:

1. What additional project file types should it list?

2. How does one identify these other project file types? (In other words, what’s the file name suffix for REALbasic project files? Etc.)


Mark Pilgrim notes that NetNewsWire has taken over the #1 spot as the most-used aggregator reading his site.

When I read that, I laughed, because here’s the irony—on this site, on my own personal weblog, Radio UserLand rather than NetNewsWire is the most-used aggregator.

(Check out the referers page.)

But you know what? It’s all good.

Though Radio and NetNewsWire have some overlapping functionality, the two apps can also be seen as complementary. I plan to develop this further in the pro version, which will be scriptable and will include the ability to publish to Radio weblogs.

On Joel on Software

John Gruber writes about developing for Macs versus developing for Windows: “All I’m saying is this: amongst computer users who actually buy software, Mac users comprise a signficantly larger chunk than 4 percent. Significantly.”

Erin apologizes

Erin Clerico: “I got a little cranky with someone who I felt was encroaching on the Weblogger name and I made some reckless threats about legal action as a remedy. I have and do admit that I was wrong...”

This site and are both hosted by Erin’s company

It’s an absolute pleasure having as my host. Erin provides great service when I need help.

My sites stay up and stay fast. No funny business.

Do I recommend to folks looking for a host? Hell yes.

Proposed Huevos Icons

Courtesy Kristopher Couch, I have some proposed Huevos app icons. What do you think?

The first two are similar. One has text, the other doesn’t. The third is more photo-realistic.




TigerLaunch 1.0b3

TigerLaunch 1.0b3 finds more applications—including apps in ~/Applications/.

It uses an icon in the menubar instead of the word Apps, and you can choose an alternate icon via the Configure window.

Subscribe to all comments

At Aaron Swartz’s suggestion, I added a way to subscribe to all recent comments. This site has a recent-comments RSS feed, and so does

Warchalking Site

The Warchalking site is “collaboratively creating a hobo-language for free wireless networking.” Cool.

And of course it has an RSS feed.

On Developing Platform-Specific Software

Dan Benjamin on developing platform-specific software: “One of the benefits of Java applications is, of course, their cross-platform portability. But the end-user, especially the home user—the ones who might just spend a few dollars to buy your software, typically they don’t care about cross-platform this-and-that.”

Lockergnome Review

NetNewsWire got a really nice review from the Lockergnome folks. “NetNewsWire, included in the Favorites section of this issue wowed Chris too. He has declared the application ‘AMAZING!’ I agree wholeheartedly.”

Comments Subscribing via RSS

At a suggestion from Dave Winer, instead of adding email subscriptions for comments pages, I added RSS subscriptions.

On every comments page (on this site and on, near the bottom of each page, there’s a link to an RSS feed for just that page. That way you can keep up with any conversations you may be interested in.

I might also add email subscriptions, too—but I think RSS solves the problem very nicely.

Road Map

Here are some of the things I’ll be doing over the next several days:

1. A new beta of TigerLaunch.

2. Huevos 1.1b1—it will have a smaller window, and you’ll be able to specify whether or not it should be a floating window.

3. A new beta of the Big Cat contextual menu plugin. I don’t know if I’ll get all the planned features in the next beta, but planned features include running all OSA scripts, running AppleScript scripts where the script is stored in the data fork, and running shell scripts. And of course bug fixes are very important too.

4. The ability to subscribe to weblog comments here and on (It will be a members-only feature in order to prevent abuse.)

5. A search engine for this site and for

6. A re-design of this site.

Proposed icons for TigerLaunch Apps Menu

Instead of using the word Apps for the TigerLaunch menu, an icon might be better. Saves space, is more distinctive, etc.

So, courtesy Jeremy Hedley of Antipixel, here are eight possibilities.

Which do you prefer? Or something different entirely?









Why I develop for Mac OS X

The other day, Joel Spolsky wrote about the economics of developing for Macintosh.

I don’t think Joel is wrong about anything he says. It’s true, for instance, that “if your Windows product appeals to 1 in 100 Windows users, you have to appeal to 25 in 100 Mac users to make the same amount of money.”

On the other hand, it’s still true that if Joel sells 10,000 copies to Windows users of a $100 app, he makes the same amount of money as I do if I sell 10,000 copies to Mac users of a $100 app.

But whatever.

One of the reasons I develop for OS X is that, when it comes to user interface, this is the big leagues, this is the show. That’s probably what Joel would call an “emotional appeal”—and to call it that, that’s fine by me.

To switch metaphors: imagine you think you’re a good writer. You think you have the talent to write excellent novels. You also have the talent to be a really great sports journalist—you could probably get a column in some newspaper somewhere and be very comfortable, maybe even win a Pulitzer or two.

Which do you choose?

Writing novels is the bigger risk and the bigger reward, by far. I choose that (metaphorical) path. How could I not?

The other path is honorable and sensible and has its rewards too.

But to me it’s the difference between an empty night sky and a night sky with all the stars shining and a big, bright bella luna. “Emotional appeal?” Oh yes indeed. And I don’t apologize for that for one second.

NetNewsWire Lite 1.0 Ships

NetNewsWire Lite 1.0 has been posted. It shipped!

Major thanks go to everybody who helped with bug reports, feature requests, feedback, links, and so on. Getting to 1.0 has been a great experience for me, working with so many smart and helpful people.

Thank you!

To-do list

Here’s my to-do list for today:

1. Ship NetNewsWire Lite 1.0.

That’s it. Pretty short.

NetNewsWire Lite 1.0fc2

NetNewsWire Lite 1.0fc2 fixes a minor sorting bug and adds a few sites to the Sites Drawer. There’s a very good chance that the only difference between this release and 1.0 is the version number.

Last call, really

The absolute drop-dead last-chance cutoff time for the Sites Drawer in NetNewsWire Lite 1.0 is 3:30 PM Pacific time today. That’s just minutes from now (at this writing). So, if you’ve been putting off suggesting sites, now is the time. (Or wait ’til 1.0.1.)

On Building Software Product Sites

Since I’ve been working on the website for NetNewsWire Lite (soon to go 1.0), I’ve been thinking about how to build sites for software products. My current thinking—which may be completely off the wall, thoroughly nuts—I’ve written up in On Building Software Product Sites.

Seattle Weblog Meetup

I’ve decided—I’ll be at the Seattle Weblog Meetup tonight. If you live in or near Seattle, I hope to see you there!

NetNewsWire Pro Features

This page lays out the current thinking for the for-pay version of NetNewsWire.

The list of features will definitely change between now and when the for-pay version ships: no specific promises can be made. But still it should give you an idea of what’s to come.

NetNewsWire FAQ

I created a NetNewsWire FAQ because, well, there actually are frequently asked questions. Let me know if there’s anything missing you think should be there.

NetNewsWire Lite 1.0fc1

NetNewsWire Lite 1.0fc1 fixes bugs and adds a bunch of sites to the sites drawer.

Here are the change notes.

The thing to do now is find deal-stopper bugs. Are there any bugs big enough that they just gotta be fixed before 1.0 ships?

Seattle Weblog Meetup

Apparently there’s a Seattle weblogger meetup this Wednesday evening. Who’s the nut case who decided this would be on the same night as the Enterprise premiere? Don’t they know geeks at all?

Still, I might go. Not sure. I can always tape Enterprise. But then there’s the question of having enough energy. (I’m in ship mode for NetNewsWire Lite. Crunch time.)


Should I revise the design of this site to look like the new design at Should I stick with the current design? Or do something entirely different? What do you think?

MacNET 2.0

I didn’t know about the MacNET 2.0 weblog until I saw it on the Ranchero referers page. Naturally it will be added to the NetNewsWire Sites Drawer in the next release. (And not just because they like NetNewsWire Lite! It’s a good site. The link to Ranchero just happens to be how I noticed it.)

King George II

From now on I’m not going to call him President, or double-you, or George Bush—I’m going to call him King George the Second. King George II.

Why? Because it’s fun to do it.


Most obligations are promises you make, entered into freely. There are some things like paying taxes you have to do. But most things are promises you make of your own free will.

Except in the case of cats. Say you’re walking down the sidewalk, and a cat walks up to you, crying to be petted. You are under strict orders from God to pet the cat. It’s an obligation no less firm than the vows you made to your spouse. (Or, in the case of some people, quite a bit more firm.)

You can of course ignore this obligation without consequence.

That is, if you call an afterlife spent bobbing up and down in a swirling lake of molten lava of no consequence.

Proposed TigerLaunch Icon (take two)

This proposed TigerLaunch app icon is from Jeremy Hedley of the Antipixel weblog.

What do you think?

Notes on RSS 2.0

From my point of view as a developer who builds apps that read RSS feeds, the RSS 2.0 spec has at least one major practical benefit: I did not have to change one line of code in my software to support it.

As an implementor, rather than a spec designer, this pleases me immensely.

It’s my position to remain agnostic regarding RSS specs: I’m not going to endorse one over another.

Lots of people want RSS to do lots of different things. That’s totally fine by me—but what I want from RSS is what it already supplies. Most items in most feeds have title, description, and link fields. That’s what I want.

The other thing I want is not to have to play catch-up. I don’t want to be always revising my software to catch up to the latest spec. For RSS adoption to continue, stability is important. Developers should not spend their time scrambling to support new specs: they should spend their time building better apps.

So. Even though I won’t endorse any one spec, I’ll be happy to say when a spec pleases me, and RSS 2.0 does indeed please me.

Last Call

I’m updating NetNewsWire’s Sites Drawer for the final time before releasing NetNewsWire Lite 1.0. If you’re a NetNewsWire user, and you know of some sites that should be included but aren’t, please let me know their RSS feed URLs. Thanks!

Proposed TigerLaunch Icon

Kristopher Couch sent me an app icon for TigerLaunch. Like it? Not like it? What do you think?

Bugged by browsers

Some days I’m just totally bugged by the situation with browsers.

OmniWeb has way too many problems with CSS.

Mozilla, though wonderful in so many ways, drives like a tank—and I keep reading tales of how it eats its bookmark file. A little scary.

MSIE doesn’t let me block pop-up ads or block images from specific servers.

Chimera won’t let me set my font preferences, which I’m rather picky about.

I think that eventually Chimera will be my main browser, but for now, ugh, I’m screwed.

TigerLaunch 1.0b2

TigerLaunch 1.0b2 is now a background app with no dock icon. (Since its whole purpose in life is to help clean up your dock.) Also a bug was fixed where it was missing some apps.

NetNewsWire 1.0b23

NetNewsWire 1.0b23 fixes a memory leak and a few other bugs and glitches. Here are the change notes.

Cocoa XML-RPC Demo

Jaguar includes a new framework for doing XML-RPC (and SOAP) calls. I was curious about it but I couldn’t find docs. So I read the header file, built an app, and wrote a short tutorial on making a simple XML-RPC call from Cocoa.

TigerLaunch 1.0b1

Here’s the deal:

I don’t like having lots of apps in my dock: I like to keep just the half-dozen very important apps in my dock.

But pretty often I have to launch a non-dock-worthy app. I don’t like having to hunt for it. Is it in the Applications folder? Is it in a sub-folder? Is it in the Developer Applications folder? Where is it?

So a while ago I created a little utility app that lists my apps in a flat menu, in alphabetical order by name. This way it’s super-easy to launch these non-dock-worthy apps. No hunting, no digging through folders.

Today I cleaned it up and released it as TigerLaunch 1.0b1. It’s an open source (BSD license) Cocoa app.

Even if you don’t use the app, the source may be useful—it shows how to create NSStatusItems, how to add icons to a menu, and how to create a table with icons and checkboxes.

Here’s a screen shot of the Apps menu it provides. Here’s a screen shot of the configure window.

Note: the app really needs a new application icon. Right now it’s a picture of my cat Papa flying through the air. If you create a cool app icon for it, please email it to me (to brent at ranchero dot com). I’ll credit you in the About box and on the TigerLaunch page, including a link to your website.



I re-designed—but, the funny thing is, you might never notice. If you look at the user agents page you’ll note that most of the hits come from RSS news readers, from Radio UserLand and AmphetaDesk and NetNewsWire Lite.


Sheila notes that it was one year ago today we were adopted by our cat Papa.

Desktop weblog editor

Over the years I’ve grown tired of editing my weblogs in a browser. The browser interface is just too slow and too poor.

So today I got working a very early prototype of the weblog editor that will be in NetNewsWire Pro. It will support the Blogger and MetaWeblog APIs, so it will be possible to post to Radio and Blogger and MovableType etc. sites.

NetNewsWire Pro won’t itself create your weblog—but it will connect to whatever weblog software you use.

Here’s a screen shot.

The version that will appear in NetNewsWire probably won’t look much like the screen shot. The user interface is very much a work-in-progress.


It’s weird because you need coffee first before you have the energy to make the coffee.

NetNewsWire Lite 1.0b22

NetNewsWire Lite 1.0b22 fixes crashing bugs and some UI glitches. More detailed changes are listed on the change notes page.

Syntax Coloring Demo for Cocoa

For NetNewsWire I did some very simple syntax coloring—when viewing RSS source, everything in tags is colorized. I figured I’d write it up and provide some sample code: Syntax Coloring Demo for Cocoa.


You know about flying squirrels, right?

I think evolution will have taken a wrong turn if some day it comes up with flying skunks. That wouldn’t work out very well.

RSS 0.94 notes

Some notes on the proposed RSS 0.94 spec...

Actually, what I have is feature requests, based on requests I’ve heard users of aggregators and news readers make:

An optional item element that specifies the author of the given item. There are plenty of collaborative weblogs out there: knowing who posted the given item can be important.

Another optional item element, related to pubDate, would specify the time an item was modified. Currently the burden is on the newsreader software to determine modification of an RSS item, and every app does it differently (I suspect). This seems like something the RSS generator—the website itself—should specify. For instance, the correction of a typo might not mark an item as modified, and a newsreader would then not re-display the item to the user. But a more substantial change would mark it as modified, changing the modification date.

A formal way to specify the app or toolkit that generated the RSS would be useful. A <generator> tag (or similar), with a way to specify the app name, version, and its URL. (Note that in many current RSS feeds the generator is included as a comment.)

A way to specify how to reach the author via chat: a way to specify the service and screen name. (The idea is for news readers and aggregators to be able to offer a Chat with Author command.)

Smokey’s Home!

Smokey’s home! I’m so pleased. Sheila and I have been holding our breath.