More Shareware: Snapz Pro X 2, SpamSieve, and NetNewsWire

I used to buy a lot of shareware.

Mostly because there weren’t free software alternatives on the Mac platform for the common utilities.

For example, I bought ZipIt, which puts a nice, Mac-like UI on top of standard Zip archive functionality. Remember when you had to do that to get out a Mac port?

I contributed to the Mac version of Opera, though I was disappointed with the result (and especially the attitude.)

But the high water mark was when I paid for Netscape Communicator. Yup, I bought the crappiest Netscape browser ever, which the vast majority of users treated as freeware anyway, less than a year before they made it freeware in name as well as fact. I guess I thought I could support them in the Good Fight against Microsoft. Yeah, that worked.

When OS X came out, it seemed like all the free command-line Linux/Unix utilities that were now available would destroy the market for Mac shareware. Apple would squeeze out the rest with free, polished GUI applications in its bid to remain competitive with Microsoft.

But perhaps the tide has turned. I’ve gotten out my wallet again, for more than just one app here or there. The difference these days is that I don’t need these apps – there are always freeware or built-in alternatives. But they improve my life, and that’s worth something.

Snapz Pro X 2
Goofy name, good product. I’d used it before as part of the OS bundle that comes with new Macs, only to lose it when I upgraded to the next version of OS X. I used the movie capture feature at one point; it was a good way to see what was going on in the first few moments of window initialization in one of my projects.

So I had to decide, this time around, whether to splurge for movie capture or not. It was an extra $40, not a trivial amount.

I finally decided against it. Ambrosia played it right, I think, to make the purchase of the lower-end product plus upgrade not more expensive than buying the high-end version all in one go: I can spend the lesser amount that’s in my comfort zone without feeling I’ll be ripped off if I upgrade later.

I’ve been taking a lot of screen captures lately, since the side project I’m working on requires that I compare pixel measurements to be sure I’ve gotten it right. Apple’s built-in screen capture feature only does PDF files, which don’t scale crisply when you enlarge them. You can convert them to other file formats in Preview, but that’s an extra step, an extra step I finally got tired of. And little touches like being able to set the file owner (in my case, I like GraphicConverter), show or hide the cursor, and turn off the (on repetition) quite annoying camera click sound, were also a nice incentive.

Not strictly a programmer’s utility, but every programmer uses email, eh?

On my copy of Mail, junk mail filtering died mysteriously. Nothing was being marked as junk. I tried the freeware JunkMatcher, but eventually got tired of how it hung Mail when processing large amounts of spam. Sometimes you just gotta pay to get the quality.

Is $25 worth not having to reinstall my OS, and/or tinker and tinker and tinker to get Mail’s filtering working again, and get better filtering to boot? You bet. Less time sorting through mail means more time programming.

Also not strictly for programmers, but blogs are definitely the best way to keep up to date with a wide variety of very smart techies and programmers, most of whom post more frequently than I do. That reminds me, I should update my blogroll, I’ve found a few new good ones.

Heh, am I blazing trails by recommending these two already very popular Mac products? Probably not. But an extra vote of confidence can’t hurt.

One problem I’ve had with NetNewsWire Lite, which I’ve been using for a while now, is that it seems to crash when trying to load some feeds at some times. Not always reproducible, and it happens too fast for me to see which feed it is.

It’s an interesting situation. Do I try to hit up Brent Simmons before I even pay for the software? After all, it’s a show-stopper. Do I move to a different app? PulpFiction seems to have problems with my feed list, too.

I finally decided to pay first, and ask questions later, and here’s the lesson: Brent’s presence on the Web conveys competence, stability, and reasonableness. This is a person I will most likely be able to work with to resolve this, if it continues. Nice guys finish last? Well, this nice guy just got $40.

Does it hurt that NetNewsWire 2.0 has been promised as a free upgrade? Not at all.

Note that the extra features in the non-Lite version didn’t entice me at all. I’m paying to support a good product. If he gets bought by AOL, though, I’m gonna be pissed.

ADHOC/MacHack 19 Report

I had fun this year.

I missed David Pogue’s keynote, though I saw a few snippets from the tape and they looked funny. Steve Hayman, from Apple, did the second night’s presentation, and he was hilarious. He was subbing for Jordan Hubbard, who was having his own “personal denial of service attack” (he was sick).

To my surprise, I co-won Best Paper, which means I get to go there next year with no registration fee. I got to go this year the same way by writing the paper in the first place.

The conference had noticeably fewer attendees this year. Per my sources, maybe half the number from last time around. Otherwise, it seemed mostly unchanged.

People still called the hack contest “the hack contest,” even though officially it had a new name – even the conference organizers had to correct each other.

19 hacks this year. In my impression, the hacks didn’t have the same technical wow factor as previously. There was nothing, for example, like Quinn’s FireStarter from 2002.

Still, I had fun, and the organizers called this year a success.

Would I mind seeing the conference do things dramatically different next year? Nope. Shinkage without change isn’t a strategy you can continue indefinitely. New location? Different format? Merge with another conference? Dunno. If I had any big ideas, I suppose I would’ve volunteered to help run things next year. Since I don’t, I will merely wish next year’s organizing committee the best of luck.

Something in Comma

I was unable to demonstrate my Xcode projects today at my ADHOC presentation. They produced an obscure error when building.


Not because I’d moved the project, or renamed the project or its enclosing folder. Xcode can handle that.

It was because I’d renamed the enclosing folder to contain a comma.

I remember when Project Builder location paths couldn’t contain a space.

This is probably a similar issue having to do with the underlying, Unix-based technologies (i.e. gcc).

I wonder if the fix will involve merely putting in a few more quotes around command-line options, or if it would require deeper surgery.

Hard Drive Me Crazy

Though the title of this post might sound like a pornographic spam, it actually refers to a hypothetical situation.

I thought of it in response to a comment to my last post; Jon Johnson talks about what would happen with the password-changing utility if someone got a hold of your laptop.

This got me thinking. Mac OS X 10.3 “Panther” provides you with the possibility of encrypting your Home directory. This directory is unencrypted magically for you when you log in, and then encrypted again when you log out. That’s probably a simplification, but it’ll do for now.

The idea behind this feature is that if somebody steals your laptop, and you’ve logged out, they don’t automatically get access to your files, because they’re encrypted on disk. BUT if getting access to those encrypted files is as easy as runnning a startup CD/DVD utility, then the feature doesn’t help very much, does it?

My question is this: if I change the password with the utility, will it decrypt the HD when I log in with the new password, or is the HD still encrypted with the old password?

I am not about to try this at home with my laptop, which is why I called it a “hypothetical” scenario above. I would, however, be interested in the result of someone else trying it.

Any takers?

Ball and Keychain

You know that little aside I made in this post, about how helpful it can be to reset your computer password from your install CD/DVD?

Welllll…that’s not the end of the story.

I found that that same password I couldn’t remember for my computer had been embedded – separately – in my default “login” keychain. I couldn’t add anything to that keychain or change anything about it, including the password, even after I reset my computer password!

The solution was to delete the keychain and all the data associated with it, and then reset my keychains to their default state with the new password. Could have been a real pain, if I’d had a lot of entries for that keychain. I didn’t, so I was lucky.

Just an FYI.

“In a world gone mad…one man”, a.k.a. Pesky Implementation Details

Have you seen the trailer for Jerry Seinfeld’s movie Comedian? It skewers the deep, ominous voiceovers of Hollywood blockbuster trailers by showing what seems like a real movie announcer in his recording booth.

But the person behind the scenes is no laughing matter (sorry!) for the purpose I talked about in my last post: finding a comments format that had a worthwhile translator into documentation.

I was planning on spending some time trying to track down the HeaderDoc implementors, to find out the status of the project and maybe some answers to the puzzles I’ve discovered, but Wolf’s comment about Doxygen got me thinking along different lines.

In general, I think a sense of ownership really matters, and it’s easier for one person, the initial author, to own a project. Doxygen is the project of “one man,” Dimitri van Heesch, and it does seem to have momentum and a much more active mailing list.

I’m still planning on finding out more about HeaderDoc, but I’ll probably try Doxygen first.

Can I just exchange one for another? Is it just an implementation detail? I’ve found that most implementations aren’t interchangeable, and any significant project design does require knowledge of how it’s going to be implemented, even if just the bare outlines, to succeed. This is why I’m chasing after implementation first.

Will it be enough, in a world gone mad, to keep me happy?

I’ll let you know.

What’s Up, HeaderDoc?

Good code comments are an art form.

Even art needs structure, though, and I had hoped that HeaderDoc would provide me a ready-made structure for comments when they’re needed, with the promise of generating useful documentation later.

Testing the second part is what the rest of this post is about.

I downloaded HeaderDoc via its main page on Apple’s Web site,, and tried to follow the instructions in the included README file to install it.

Problem: typing in the indicated sudo make realinstall gives me an error. Well, OK, first it doesn’t work because I forgot my computer’s password. Tip: your install CD/DVD can reset your password. Extremely convenient. Second, it gives me an error because I don’t have make installed. So I go to, download Xcode 1.2, and install it. This also installs what I assumed was an older version of HeaderDoc, version 2.1. So the next time you’re trying to download all those segments of an Xcode install, blame a tiny smidgen of the bloat on HeaderDoc.

The real error is that there’s no file xml2man in the folder called xmlman/ inside the install package. There’s a makefile there, though, so I run it, run the command from above again, and it works. A post on the headerdoc-development mailing list describes this exact problem. How could a major release have been made without realizing this was a problem?

The package I downloaded is called, and all the documentation says, 8.0, but version of the headerdoc2html utility installed by “8.0” is 2.1, just like the version I installed with Xcode 1.2. I must admit, version 8.0 of anything seems a bit dodgy these days. Things tend not to get up to that version number before being renamed, re-branded, etc.

There are more things that confuse me. The documentation states that comments can be embedded in “source code and header files.” I also remember reading a message on the headerdoc-development mailing list to the same effect, though I can’t find that message again now.

But the utility only seems to accept *.h files and directories, not *.m files. This certainly implies that comments in *.m files are ignored, and that’s been my impression from the tests I’ve run. This is a bit disappointing, since there are times when you want additional comments in the source code file, and I’d rather they weren’t lost.

Also, the documentation talks about “tagless syntax,” the ability to put a HeaderDoc tag in front of a function or method without needing to include a @function or @method tag in the comment. This would be good: computers don’t mistype, unlike humans. But I didn’t find this to work with comments for Objective-C methods. If I didn’t include the @method tag, then the method didn’t show up in the documentation.

These sorts of issues give me the impression that if I use HeaderDoc syntax in my source code comments, it should be merely because I like the syntax, not because HeaderDoc at this point suits my documentation workflow.

I’d be curious to hear about other people’s experiences.

ADHOC MGD Seeks Same…

I’m going to ADHOC (nee MacHack, but the old Web page is gone now) this year, and my roommate arrangements at the hotel have fallen through.

Anybody going and interested in a roommate?

The ADHOC Web site has a Share-A-Room web page, and so does CocoaDev, and I’m on top of those, but I figured anyone brought over by Wolf’s strangely familiar post might see this weblog entry first.


WWDC from the Back, and Anthracite

So guess which one of these webloggers is me (Also see the full post. The picture pages have a lot of links to Mac webloggers.) This may be the only picture of me you get, so enjoy. I’m afraid I crashed the event, having found out about it only an hour or two beforehand.

Not pictured, but sitting to my left for most of the evening: Joe Pezzillo, founder of Metafy. The interface of his star product, Anthracite, looks really cool. Go see what it does for yourself, it’s difficult to explain. But aren’t the screenshots purty? Despite the name, somehow I don’t think it involves carbon.