27 January 2008

MacBook Air

It took me several days to decide, but I did order my MacBook Air, and am waiting for it to arrive.

Lots of people have been claiming that it’s not a good first machine (as opposed to being a secondary portable). I’m not sure I agree — in part because it probably will be my first machine.

It’s true that it’s not going to be faster than my MacBook Pro, like a new MacBookPro would be. On the other hand, my MBP was of the first generation. The MBA clearly doesn’t beat its specs, but it does have as much RAM (since I upgraded the MBP). The hard disk is a little smaller, and certainly fewer RPM. The CPU runs at a slower clock speed.

But it’s a Core 2 Duo as opposed to a Core Duo — that’s a small improvement. And it has a faster bus (800 MHz as opposed to 667 MHz) and a bigger L2 cache (4 MB as opposed to 2 MB).

I’ll know for sure once the machine arrives and I do some real world tests (as well as standard benchmarks), but I suspect it will be about the same speed.

To lose over 1 kg (3.0 lbs/1.36 kg vs 5.4 lbs/2.45 kg) is probably worth the small speed penalty — I commute with the machine, and plan on taking at least two trips to Europe this year. And the smaller screen will make it more usable on the bus, and make little difference when I can plug either machine into a larger external display.

The one real drawback is the smaller disk size. To deal with this, I copied my 31 GB of music (it’s legally downloaded) to an external drive. I don’t really need to travel with that, since I load up my iPhone with almost 2 days worth of music.

Oh, and the lack of a security slot. That omission seems odd. Hopefully it won’t become an issue!

Networking will probably be the same — for some reason, I don’t get more than 100 Mb/s from my Ethernet at home, and that’s as fast as the switch at work. And 802.1n is actually faster than that…

I’m looking forward to wireless backup at reasonable speeds — I’ve ordered a Time Capsule to make use of Apple’s excellent Time Machine.

Perhaps I should be waiting, but Apple tends to keep prices the same for the life of a product, so buying early in the product cycle makes more sense. And I have a developer discount expiring soon — I could wait for the next MacBook Pro, but that probably won’t be a huge improvement (other than RAM capacity).

It could be that the new machine will be slower than what I’ve been using, and I’ll be sorry. On the other hand, this seems like a good way to change things up a bit, and get a lot more wireless. I’ll soon find out.

20 December 2007

MacSanta

As a small developer, I really appreciated the MacSanta promotion last year. And it’s back! A Sharp’s software (notably Opal and Addressix) will be 20% off on Friday, 21 December. For the rest of the year, they’re 10% off. Check out the MacSanta site for details.

01 December 2007

It really should be in Mac OS X

Reviews of utilities frequently say something like “this should be part of Mac OS.” I almost never agree, even if I myself use it. That’s because I’m a power user, and so is the reviewer. The utility does something, um, useful, but it also adds to the complexity of the user experience, and so probably doesn’t belong on everyone’s Mac.

Mac OS X 10.5 introduced Quick Look, where you can almost instantly get a preview of a file’s contents. Apple provided viewers for a number of typical formats, as well as some more specialized ones like property lists. But there was no way to see what was inside the .zip archives that Mac OS X itself creates. This seemed like an obvious omission, that wouldn’t add any complexity. And I kept meaning to file a bug report.

But xdd and Taiyo created a ZIP preview.

And now Robert Rezabek has gone several steps beyond: BetterZip Quick Look Generator. It supports ZIP, TAR, GZip, BZip2, ARJ, LZH, ISO, CHM, CAB, CPIO, RAR, 7-Zip, DEB, RPM, StuffIt (.sit), DiskDoubler, BinHex, and MacBinary. I like the indented format better, and it supports a lot more formats. This is going to make it much easier to clean out my Download folder (which is full of various archives).

I’ll probably still file that bug report, but now the only missing format is Apple’s disk image (.dmg).

16 November 2007

How Mac Games Should Save

Putting on my GameHouse hat, I’d like to post on how games should save their state. (I often receive games that do it wrong.)

Games should not save state within the game bundle.

Games should not save state next to the application.

Both will fail if the game is run from a read-only volume (such as a disk image), or if the user doesn’t have write permissions to the /Applications folder (where someone may have installed the game).

I recommend saving to ~/Library/Preferences (or a folder therein). Locate this with FSFindFolder if you’re not using CFPreferences or NSPreferences.

Why not ~Library/Application Support? I figure most games track options such as sound effect and music volume. These are definitely preferences. Apple says of ~/Library/Application Support: “This directory should never contain any kind of user data.” And saved games are definitely user data.

So I’d say: anything the game saves goes in ~/Library/Preferences. Additional levels, downloaded user avatar images, etc. would go in ~/Library/Application Support.

10 November 2007

Stacks in Leopard

One cool thing about a stack: you can click on its Dock icon, then drag a file. I’ve found this especially handy with the Downloads folder: you can drag a file right to the Trash, or to the Dock icon of an application you want to open it in.

I’ve written before about how the Downloads stack is useful because you can sort by date added. It’s thus easy to get at whatever I most recently downloaded. (I set this stack to View as Fan because it looks cooler, and because I have over 200 items. There’s really no point in seeing the whole thing in a menu.)

Although stacks can be fun and useful, sometimes the old standard menu was handier (especially if you had a folder of folders in the Dock). It would be great if the menu were View as > Fan | Grid | Menu — don’t get rid of stacks, but let us use the old way as well.

09 November 2007

Leopard Spotlight searches any metadata

In Leopard, much more of Spotlight’s functionality is exposed. You can now search on any defined attribute. Several tips are floating around on how to search for system files, but the search window is far more flexible — it lets you query metadata from any application with a Spotlight importer. For example, here’s how to search for all Opal outlines with a lot of topics:

1. Open a search window (in Finder, choose File > Find)
2. Click the Kind popup
3. Choose “Other...” from the bottom of this menu (not from the “is” menu)
4. Locate “Topics,” select it, and click OK.
5. Choose “is greater than”
6. Type the number of topics

04 November 2007

Programming in Leopard

As a developer, getting to use Leopard on a daily basis means getting to use Xcode 3.0 on a daily basis. I’m pretty happy with this update, though some of the changes simply take a bit of getting used to. The new SCM integration is much better, though it also introduces the concept of a project root. SCM applies to all files in the root. With Opal, this isn’t a problem. With a GameHouse game, it is, because each game uses 4 libraries and one game-specific folder from the root. Getting SCM info for the other 50 game-specific folders takes a lot of time, and showing said info confuses things.

It’s a little disconcerting that rebuilding a Cocoa application changes its behavior. For example, Opal’s Export as command used NSExportableAs to specify the possible types. Under Leopard, this requires the use of UTIs, which Opal didn’t use. So Export as (which worked fine in Leopard) broke as soon as I rebuilt. Another change was the preview pane in Print dialogs. This showed up only after I rebuilt in Leopard. That was cool, new behavior for free! Except it wasn’t quite right. So I had to figure out how to hook Opal’s print dialog controls so that they updated the preview. Bottom line: an application that works fine in Tiger may require significant work as soon as you touch it under Leopard.

I haven’t seen anything similar in the Carbon world (which GameHouse games use).