Archive for the 'Reviews' Category

MacUpdate alternatives

Saturday, June 30th, 2007

Following the recent flap about MacUpdate prematurely listing Perian 1.0 before it had really gone 1.0, I think it appropriate to present a list of software-listing sites that are not MacUpdate. If you want to boycott or just casually avoid MacUpdate, whether for that reason or other reasons, this list will help you do that.

You’ll know some of these, but you may not know all of them. I’ll start with the ones you probably know and build up to lesser-known sites. That said, the order is not strict, so just because site A came after site B doesn’t necessarily mean site A is any better or lesser-known.


  • VersionTracker: The old standard. This was the very first Mac-specific software-listing site, and MacUpdate’s primary competition (indeed, MacUpdate exists to compete with it).

    VT’s main downside is used to be that it is was a very ad-heavy page. This inspired MacUpdate’s founding principle: fewer (initially no, as I remember it) ads, so that the page would load faster.

    One handy—though well-hidden—feature is that on the “Updates by Category” tab, at the bottom, there’s a list of single-license lists, including a freeware-only list.

    UPDATE 2007-07-06: VT has mostly done away with ads, and has a freeware view. Thanks to Hoopla for pointing out my error and the freeware view in a comment.

  • Download.com: The other old standard. I’m not sure which is older. Unlike VersionTracker, Download.com was for Windows (maybe even DOS) first, then added Mac software later.

  • Softpedia: A more recent entry (at least on the Mac). It’s quite similar to Download.com and Tucows, IMO. You can tell that they were a Windows site first because of what every developer they list gets: an (unintentionally-)amusing email certifying that the developer’s software is virus-free, along with an icon on the listing page indicating the same certification. Mac users (at least those who haven’t used Windows recently) see this “100% virus-free” graphic and think “Yeah? Why wouldn’t it be?”.

    One nice feature is that, like VT, it lets you filter the list to only freeware.

    UPDATE 2007-07-06: The same update as above. Specifically, I added “, like VT,”.

  • Tucows: The third of three (that I know of) sites that originally only listed DOS/Windows software; also the other other old standard. I never used it much, but it’s much better than I remember it: the last time I tried it, I couldn’t figure out how to download any of the software listed.

  • iUseThis: The newest entry into this field. The hook of iUseThis is that it works similarly to digg: If you use an app, you can go to its listing and vote it up (that is, digg it) using the “i use this” button. AppFresh integrates it, which is nice if you’re both an iUseThis user and an AppFresh user. (Be sure to click the button on AppFresh’s iUseThis listing for mad cyclicality.)

  • Macintosh Products Guide: The elder of Apple’s two software-listing sites. Though it’s open to any software, the MPG emphasizes commercial products.

  • Apple’s Mac OS X Downloads: I suspect this isn’t well-known, because Apple’s main effort to publicize it is a menu item in the Apple menu. (It’s much better-known among Dashboard widget authors, as it was the first site indexing widgets.) Trying to help that, MacBreak did a recent MacBreak Minute about it. (To be clear, I had already known about it before the MacBreak episode.)

    Not to be confused with the Macintosh Products Guide, listed above.

    (Added a few minutes later: Chris tells me it actually does bring in a fair number of downloads, especially if you get featured.)

  • Pure-Mac: Unlike the others, Pure-Mac places less of an emphasis on the running list of new and updated titles, instead presenting above the fold its list of categories. This is Pure-Mac’s central feature: the other sites simply maintain a blob of software that you search with a field, whereas Pure-Mac breaks them down into smaller category blobs.

    Pure-Mac is also probably the fastest-loading of the sites, because it uses static pages rather than CGI.

    Full disclosure: I do know the maintainer somewhat, as both I and the maintainer have been regulars on the same IRC channel at the same time. That didn’t affect Pure-Mac’s placement within this list.

  • HyperJeff: Perhaps the smallest of the software-listing sites (though Pure-Mac gives it a run for its money). HyperJeff’s site lists libraries and frameworks alongside applications, and notes whether each app is Carbon, Cocoa, or Java. He has written about his catalog’s characteristics on his “Why this listing exists” page.

  • Open Source Mac: A simple, digested list of what the maintainers think are the best open-source apps on the Mac. If you’d like to use as little closed-source software as possible, this is a good first stop.

    Full disclosure: Adium is listed here, and I’m one of Adium’s developers. Again, that didn’t affect the placement of the site within this list.

  • Mac Games and More: Guess what it emphasizes!

    I found this one upon searching Google for “mac software” to check whether I’d missed any. I’ve never used it before, so I haven’t much to say about it.

You know, I never realized how many Mac-software listings there are before making a list. There are nearly a dozen listed here. That’s a cool fact right there.

Really cheap flash memory

Thursday, June 28th, 2007

At your local Micro Center, behind the counter, they have USB flash-memory sticks for $16 for 2 GB.

Here's a photo comparing the size of the stick to the size of a US 25¢ coin. The stick is about twice as long as the quarter, and ⅔ of the width.

There is a catch: It comes with a second read-only memory device containing preinstalled software for Windows. Fortunately, this is easy to disable with a simple fstab rule.

The main storage device, on the other hand, is easily reformatted in Disk Utility. The stick is USB 2.0, as you can see from my dd results:

Plugged into my keyboard (thereby constrained to USB 1.1)

dd bs=62914560 count=1 if=/dev/zero of=temp          %/Volumes/Stick of data(0)
1+0 records in
1+0 records out
62914560 bytes transferred in 63.105605 secs (996973 bytes/sec)

Plugged directly into one of my USB 2.0 ports

dd bs=62914560 count=1 if=/dev/zero of=temp          %/Volumes/Stick of data(0)
1+0 records in
1+0 records out
62914560 bytes transferred in 11.250311 secs (5592251 bytes/sec)

In case you’re wondering, 62,914,560 bytes is 480 megabits, the theoretical maximum throughput of USB 2.0. If I were using 100% of that bandwidth, the write would have happened in one second. As it was, the write did about 5+⅓ MiB per second over USB 2.0, and 1920 MiB per second over USB 1.1.

Pretty good for $16, I think.

UPDATE 2008-11-29: Sometime in the last few months, Micro Center reorganized the front of their store. Now, the cheap store-brand flash memory is in racks right there on the counter.

And prices have come down even further, of course. Now, 4 GiB will cost you $10. And they no longer limit you to USB thumb drives: they now offer SD cards, as well.

Comparison of compressed archive file sizes

Saturday, May 12th, 2007

While writing an upcoming blog post, I decided to get some hard numbers. So here is a comparison of archive formats and compressors.

The input is Adium 1.0.3. Specifically, I copied the volume of the official disk image to my RAM disk; this created a folder. I deleted the custom “disk image” icon from the folder (using Get Info), but otherwise left it intact.

I created a script that starts each compression process, followed by a wc -c command to print its size in bytes. Prior to running the script, I created one zip file using the Finder; all other files were generated from the script.

These are the results:

Bytes Filename Comment
8108955 Adium_1.0.3.7z
8479898 Adium_1.0.3-Binary.sitx StuffIt 11, “Best Binary Compression” method, compression level 5 (of 5)
11464784 Adium_1.0.3-StuffIt.tbz StuffIt 11, tar+bzip, compression level 9
11472453 Adium_1.0.3-pbzip2.tbz tar and pbzip2
11507671 Adium_1.0.3-cjf.tbz tar cjf
13209615 Adium_1.0.3-StuffIt.tgz StuffIt 11, tar+gzip, compression level 15 (of 15)
13363283 Adium_1.0.3-UDBZ.dmg hdiutil create -format UDBZ
13690168 Adium_1.0.3.tgz tar czf
14723809 Adium_1.0.3.sitx StuffIt 11, “Choose Method by Analysis”
14757937 Adium_1.0.3-UDZO9.dmg hdiutil create -imagekey zlib-level=9
15554735 Adium_1.0.3-StuffIt.zip StuffIt 11, Deflate method, compression level 15 (of 15)
16010091 Adium_1.0.3.zip Finder’s “Create Archive of” command
30497119 Adium_1.0.3-zip.zip zip -r9

7-zip and StuffIt X are included for academic purposes only, since the average user doesn’t have a decompressor for them. (The decompressors are The Unarchiver for 7-zip and StuffIt Expander for StuffIt X.)

Those two formats, the oddballs, are the clear winners—both break the 1-MiB barrier. These are followed by bzip2, gzip, and finally zip.

Specific engines do make a difference. StuffIt‘s engine won across the board. pbzip2 beat tar cjf, which is strange, since pbzip2 uses libbzip2. Even StuffIt’s tgz beat UDBZ, and the two command-line tbzs beat it by a couple of MiB (probably the size difference in the uncompressed meats). For gzip compression, StuffIt beats GNU zip. (The StuffIt X format, with the “Choose Method by Analysis” method, appears again in between gzip and UDZO; apparently, StuffIt’s analyzer needs some work.) Finally, zip: It seems obvious that the implementation of zip(1) is amazingly bad, considering how badly it got beaten by both StuffIt and Finder.

StuffIt made an impressive showing in this test, and interface-wise, I’m happy to say that it’s a lot better than it was back in versions 6–8. I may start using it again for future compression work. (No, I’m not being paid by Smith Micro.)

Of course, your mileage may vary.

ICeCoffEE and Services are your friends

Thursday, April 12th, 2007

ICeCoffEE is an APE extension by Nicholas Riley that lets you ⌘-click on a URL in any NSTextView to open that URL in your favorite browser.

But it has another feature that’s far more useful than that.

ICeCoffEE is named after ICeTEe, an extension for Mac OS that also provided the ⌘-click feature. ICeTEe added it to TextEdit (that’s the “TE” part; TextEdit was the text-editing control in Mac OS, and it’s totally separate from TextEdit.app). But ICeCoffEE has one other feature, which I find far more useful. It’s a two-part feature:

  1. It adds a Services menu to your contextual menu.
  2. And you can edit that menu.

What that means is that rather than having to mouse all the way up to the Application menu, then rifle through an enormous list of services*, you can instead simply right-click on the view that already has your focus, and find the service you want among the set of services that you actually use.

(Before you mention ServiceScrubber: That works by editing applications’ Info.plists. Not a good way to go about it. I’d rather have services specifically excluded from the Services menu without having to edit any part of the applications. ICeCoffEE provides this.)

This is pretty big. The major reason why people don’t use services—even in the face of ThisService, which is the greatest developer tool since Interface Builder—is having to cross half the screen and then wade through several dozen menu items. ICeCoffEE solves both of those problems, so now you have no excuse not to use the full power of services in your work.

It also lets you put the Services menu in the menu bar, but while that beats having it hidden in the Application menu, I don’t think that that’s as cool as having it in the contextual menu. Worse, it doesn’t let you edit the menu-bar Services menu. The one in the contextual menu is a hundred times more useful.

ICeCoffEE is free and a UB, and works in any Cocoa app. You’ll need Mac OS X 10.1 or later, though current versions require 10.3.9 or later.

* My Services menu has 46 menu items in it, and that’s counting submenus as 1 each.

How to make the HP Photosmart M425 work on a Mac

Monday, March 12th, 2007
  1. Get out the HP drivers CD.
  2. Put it in one of these.
  3. Push the button.

Silly me, trying to use a device with the Mac drivers that come with the device. Turns out it works just fine with the built-in Mac OS X drivers, either via PTP (whatever that is), or as a mass-storage device. In fact, Image Capture works the same either way.

With the HP drivers, a program called “HPCamera_PTP” would crash whenever I plugged in the camera, whether I did this in Image Capture or iPhoto. I found that switching the camera to mass-storage mode (“Disk Drive” in the USB Configuration menu) worked around that problem nicely, and Image Capture (and iPhoto) even work transparently in this mode.

Later, I was tinkering with Image Capture in some way (I forget why) and noticed that it has its own PTP driver. This gave me an idea, and having long ago uninstalled the HP uselessware, I switched the camera back to PTP mode (“Digital Camera” in the USB Configuration menu) and plugged it back in. Huzzah! It worked exactly as it did in mass-storage mode.

Kudos to Apple for making it do the Right Thing either way. Antikudos to HP for making non-functional drivers.

I also got a new scanner yesterday, a CanoScan LiDE 600F. Unfortunately, it doesn’t work without drivers. Fortunately, its drivers work. (Both devices let me use Image Capture without touching any of the apps that come with them, which I consider mandatory given the nearly-consistent asstasticity of the UIs of such apps in general.)

Screencast codec showdown

Friday, December 8th, 2006

So I’m looking at making some screencasts in iShowU. I noticed that, thanks to QuickTime, it supports rather a lot of codecs:

iShowU's codecs pop-up menu, showing 29 different codecs of various suitability.

Dizzying, isn’t it?

So I asked the Goog about some of the codecs, and also more generically about screencast codecs. H.264 is a popular choice, but I found no comparison to other codecs nor any discussion of what any of the codecs is particularly good at.

I also had a small amount of previous experience with the difference between codecs. I’ve watched two of rentzsch‘s screencasts: “Introduction to Core Data” and “Embedded Cocoa Frameworks”. The former is 1024×768 using H.264; the latter is 800×600 using Sorenson 3. “Introduction to Core Data” looked flawless; “Embedded Cocoa Frameworks”, OTOH, had noticeable artifacts. I wondered at first what the difference was, and after I found out, whether there wasn’t a better codec with which to implement screencasts.

Part of the problem is that there really isn’t a codec that’s been well-optimized for screencasting. Video codecs have historically been optimized for, well, video — that is, video shot with a camera. Screen images usually don’t change much except to follow mouse movements; a compressor specifically optimized for recording the screen should make a big difference in screencast file sizes. Are you listening, Apple? (Or Ambrosia?)

Anyway. In order to find the perfect (so far) screencast codec, I recorded a brief screencast using iShowU in demo mode using the None (no-compression) codec, and used QTAmateur by Michael Ash to export it to all the other codecs.

The results? Well, you’ll just have to read the screencast codec showdown for yourself. ☺

SketchFighter 4000 Alpha

Friday, December 1st, 2006

First, despite the name, this apparently is a regular release. The Get Info string says it’s version 1.0.0 — no alpha there. The name of the game is “SketchFighter 4000 Alpha”, in a misplaced attempt at increasing the whole sci-fi-ness of it.

Second:

Save points must die.

Seriously. Every game that has save points can be massively improved by replacing them with a “Save game” command in the menu.

Third, the save games are next to useless. They save your last location, but not the deaths of all the enemies and objects you’ve blown up. So when you restore, SURPRISE! All your enemies have come back from the dead, and they’re understandably pissed.

And fourth, a note to all game developers: Please ship your games set by default to windowed mode, not full-screen. Nobody has a CRT anymore, and nobody has an LCD with a native resolution of 800×600 anymore. More to the point, maybe I don’t want to start right into your game right away; I’d like to go through the Options first, and as long as I’m doing that, there’s no reason for me to not to have my email and IM windows visible.

The best developer tool since Interface Builder

Tuesday, October 31st, 2006

Yesterday, wootest created an app called ThisService. I’ll put this disclaimer right up front: He is a reader of this blog, and he allowed me to test a prerelease version of ThisService. But neither of these facts affects the opinion that I’m about to state.

ThisService is the greatest developer tool since Interface Builder.

UNIX has an interface paradigm called the “filter”. This is an application that reads zero or more input from its standard input special-file, operates on or with the data in some way, and writes zero or more output to its standard output special-file. This simple design is amazingly versatile, and highly conducive to simple but effective IPC.

NeXT took the same concept and extended it to the GUI with what it called System Services. Some of you may have seen these; they live on in OS X, more or less unchanged as far as I’ve seen. And their operation is pretty much the same: take some input (or not), do something to or with it, and emit some output (or not).

So John Gruber, according to himself, had the idea for an application that takes a filter program and makes a system service from it, and put this idea to wootest. Didn’t take him long, apparently; I beta-tested it last night, and the app is now at 1.0.

ThisService 1.0 main window.

Pretty simple. You give ThisService the filter’s name, location, behavior, and an optional hotkey, and it will create a system service application for you.

Services are very versatile. Consider the Objective-C service, or the Copy File Path service, or CalcService, or Tidy Service. Quite a range of functions, no? But Apple does not make a very big deal of the Services system’s existence, and so the feature sits unused by most users. When’s the last time you visited the Services menu?

And yes, this is despite the fact that many Apple applications — some of them big-name, some of them more quiet necessities — provide services. In fact, core OS X apps provide most of the services on most people’s systems. This, of course, is because on the whole, nobody else knows about Services.

I think that ThisService will change all that. The fact you can now write an OS X service in Python/Perl/awk/C/$FAD_LANGUAGE in exactly the same way that you would write a UNIX filter makes creating services now trivial. So I think that we’ll see plenty of applications in the future built with ThisService, perhaps with a badge somewhere on the webpage proclaiming that fact, with instructions like this:

This application is an OS X “system service”.

  • To install it, simply drag it to your Home/Library/Services folder (first creating that folder if necessary). It will then be available in most applications.
  • To use it, choose “service-name” from the Services menu in the Application menu (the menu just to the right of the Apple menu).
  • To remove it, take it out of the Library/Services folder, e.g. to the Trash.

(Feel free to copy the above instructions, even if you don’t use ThisService to create your service.)

The first wave or two of these new services will be geek-oriented. Programmers will take their existing stashes of filters that they’ve created (such as mine) and make services out of them and put them on their websites. Thus, the first influx of service users will be geeks (including, but not limited to, other programmers).

But then I predict a larger resurgence in services. People will start making new services from other filters that have broader utility, like sort. There may even be a new attraction to making services directly, either from scratch, or from a UNIX filter but with a GUI on top to specify options (i.e. not using ThisService). And then I think the larger, non-technical userbase will start using services.

It will be a great day.

Photoshop sucks

Monday, February 20th, 2006

Blunt enough title for you?

I’m mainly referring to CS2. I’ve been playing with it intermittently for the past 30 days, and I have built a list of complaints, all of which together stop me from pushing $180 across the counter for the upgrade from 5.5. I mainly arrived at that decision while making the screenshots for BZ Soundboard.


Selections can’t be moved under stupid circumstances.

Namely, when the current layer is hidden, you can’t move the selection. Huh?

Can’t drag-and-drop image files into open images.

Photoshop won’t accept the drop. You’d think it would at least check the file’s name and HFS type. Even better would be to run some kind of file(1)-like scan of the file.

The app insists upon old Mac OS behavior.

Many people like the old behaviour where clicking on any window of an app would bring them all forward. And there are several hacks that bring this to Mac OS X. But this should NOT be forced in an application. Photoshop does this, and it shouldn’t.

Can’t unlink a single layer from a set of linked layers.

Instead of you have to unlink all of them at the same time. Why? Photoshop 5.5 let you do this. Why can’t CS2?

No Unicode support in text layers.

Paste this into a text layer: ☃

Oddly, it’ll show up fine in the layers list; it just won’t render into the image correctly. You get “?” instead.

Excessive use of combo boxes.

Why do I have the ability to enter text here?

Screenshot of Photoshop's ‘Character’ (text settings) palette. Highlighted is a combo-box for entering the font.

Photoshop does provide completion, which is nice, but it should still be a plain pop-up menu. I can enter font names into that with the same effect. Even better, in the Mac version of Photoshop, it should use the Font Panel.

Non-standard UI elements.

Here’s one example:

Screenshot of Photoshop's gradient editor. Highlighted is the color pop-up for a key-point in the gradient. The arrow of the pop-up is excessively large.

Notice the hugemongous arrow. And this is a pop-up menu, not a pull-down menu. You could argue that this is a combo box, but at least on OS X, combo boxes have a text field attached. This should have the double-arrows like you see in the pop-up higher in the dialog. It also needs some kind of indicator (like ‘F’/’B’) when the foreground or background color is selected, as opposed to a static color.

I don’t mind so much this being custom, but it doesn’t look or work like a native UI element.

Preferences key combo is wrong.

Since Mac OS X, it should be ⌘,. Photoshop’s default is ⌘K. I don’t know how they thought of this selection, but it’s been around forever, and should now be retired.

Stupid save bugs.

  1. You can’t Save A Copy of a file, in PNG format, with alpha. But you can Save it As, in PNG format, with alpha. Huh?
  2. If you Save a file As in PNG format, then the window changes to reference the PNG file and the file appears saved (no “dirty” indicator in the close widget). All of this is correct. But if you then try to close the window, it’s suddenly dirty, and Photoshop complains that it “has not been saved completely because the current file format does not support all the features of your document”. Why didn’t you tell me this would happen when I saved the file?

Corrupted TIFF files.

Make sure that the “Save Transparency” checkbox in the TIFF options dialog is turned off (at least if you have an alpha channel). If it’s turned on, Cocoa can’t read your TIFF files.

No alpha support.

It is 2006, Adobe! EVERY graphics application outside of the Creative Suite supports alpha channels!

And amazingly enough, alpha support has actually regressed. Photoshop CS2 would not export the alpha of the two largest screenshots on the BZ Soundboard page (the resize screenshots). I don’t know if there is some hard-coded limit on the number of pixels that Photoshop CS2 will blend with an alpha channel, or if there’s some deeper bug, but CS2 pretended that the alpha did not exist when exporting to PNG or TIFF. I opened the PSD files in 5.5, and it exported the alpha flawlessly.


One thing I noticed while compiling this list: A number of these bugs seem to be in the class of “we’ve always done it this way”. Time for a refactor? (And I mean a real refactor, not just moving stuff around like they’ve done in every major version.)


An update (2008-03-23)

Since I originally published this post more than two years ago, several new image editors have emerged. Most people, I think, can replace Photoshop with one of these, and never miss the lost functionality.

All of these require Mac OS X 10.4 (because they all use Core Image). Prices in $ are US dollars.

  • Acorn ($50) is one of the two most popular—everybody who I know uses either Acorn or Pixelmator uses Acorn). I consider this the 21st-century update of MacPaint, and I mean that as a compliment. Start with this one—you will probably be satisfied.
  • Core Image Fun House (free) is the most basic editor you can get. It provides nothing more than filtering and cropping, and it doesn’t give you much help with the cropping (nor with scaling). However, it’s free, and you already have it: it’s one of the Mac OS X Developer Tools, as well as one of the sample-code applications.
  • Pixelmator ($59) is the most Photoshop-like, and the other most popular editor (it has the most downloads on MacUpdate and VersionTracker). If Acorn is too different from Photoshop for you, or you’re missing some of the more-advanced features, Pixelmator may be more your speed.
  • DrawIt is available in two versions: DrawIt Lite is free, whereas the full DrawIt is €29 ($42 as of this writing). It’s the most different of all the apps: The UI is essentially vector-based. The reason is that, in DrawIt, every operation is non-destructive. It accomplishes by making everything a layer. This works well, so you should definitely give DrawIt a try.
  • Iris is the only one I haven’t personally used. It’s currently a public beta; you can pre-order it for $39, or wait until version 1.0, which will be $79. The screenshot suggests that the UI is a cross between Pixelmator and Acorn.