Secondary DNS in Leopard

I covered secondary DNS configuration in Tiger (10.4) Server a while back. And while the buttons have moved around a bit, most of those instructions apply to Leopard as well. Leopard does have one fairly cool new addition worth mentioning, though: forwarders. Generally I'm setting up secondary DNS for internal networks, and generally those internal DNS servers  serve DNS only for the internal networks. Everything outside the internal network is handled by external DNS servers (or by DNS servers that sit on a network of which we are a subdomain), and our internal DNS servers need to know who those server are. These external servers are called forwarders, in DNS parlance. They are the first stop for all DNS outside your local network. And you can now set them on your secondary DNS server in the Leopard Server Admin application.

Leopard's Forwarders Pane

To get to the settings, navigate to the "Settings" tab under the DNS service. In the bottom-most pane of the window you will see a box labeled "Forwarder IP Addresses:" Click the plus sign to add a server to the list, then type in an IP address. Typically you will add two addresses, one for the primary external DNS server and one for the secondary. These will often be your ISP's DNS servers, though if you're on a subdomain of a larger network you'll use the DNS servers for that network's domain (i.e. the subdomain systemsboy.com.mail will use the DNS servers for the domain systemsboy.com). Once you've entered and saved the settings, restart your DNS service and you're off to the races.

Requests for internal network resources will still be handled by your internal DNS server, but now external requests for things like "google.com" will be passed to the appropriate external DNS server. Even if your secondary has to take over DNS duties for a long period of time, you'll still be able to properly reach the Big Bad Internet without having to use cached or stale settings.

This is a very handy addition to the DNS configuration GUI in Server Admin.

Cheaper, Better and Only Slightly More Difficult

I don't usually buy albums online. So far my best option here has been the iTunes Music Store, but most songs on iTMS are of the low bitrate, DRMed variety, and I just can't abide by that. Why pay for music that assumes I'm a criminal when I get better, unfettered results by stealing? Generally, however, I try not to steal music either, so my preferred method has been the purchase of the tried and true CD. I'm an adult. I make a decent living. I certainly don't mind paying for music that brings me great enjoyment. Case in point: Elvis Costello's Taking Liberties. My girlfriend owns this excellent album of early, unreleased tracks. On vinyl. And I've been looking for an updated, digital version for my own collection for a while. But the record's been out of print, until now. Taking Liberties is now available, digitally. Via download. Only.

You can get the album on iTunes, or, as my girlfriend pointed out, on Amazon. After checking out the Amazon Store, I decided to give it a whirl. Particularly once I realized that the Amazon tracks are all DRM-free, and all feature high quality 256kbps bitrates, all for less money than iTMS equivalents, which are only available for certain tracks.

Buying music on Amazon for the first time is slightly more painful than via the iTMS, because you need to download and install the Amazon MP3 Downloader software. This is a fast download, and the installer takes no time at all. And once it's installed, downloading whole albums is a simple matter. Just go to Amazon's site, find the album you want and buy it using your Amazon account. The Amazon software will take care of the rest, downloading the files and importing the music into your iTunes library.

Amazon MP3 Downloader

While the Amazon process is slightly more convoluted, requiring a separate install and a secondary application, there are advantages even beyond the high quality, DRM-free tracks. For one, I'm saved the trouble of reverse engineering said DRMed tracks when it's time to back up. In fact, never mind backups. I'll just use Time Machine for that from now on. Also, my music isn't tethered to one machine. And I can buy music from any web browser anywhere.

Overall, my first Amazon music purchase experience has been extremely positive. Amazon may just bring me smiling into the age of digital music downloads.

Syncing Makes Me Cranky

Someone recently noted that every time I attempt to synchronize some portion of my increasingly expanding digital life — be it Address Book contacts, calendars, mail, or any of the other bits of data that seem to be essential everywhere I go and at all times — I get cranky. It's true. Syncing has become the new Holy Grail for just about anyone who has data on more than one device, which is getting to be lots and lots of people. It's no surprise that my most popular post ever has been, essentially, about syncing calendars. (Publishing, actually, but it's basically a sync issue.) There are also any number of sync-related products on the market these days. But I have yet to hear of any that would meet my syncing needs for any length of time — Mobile Me, for instance, looks great on paper, but sounds disastrous in practice.

Mobile Me: Right Idea; Wrong Implementation

A new service, Fruxx (currently in beta), looks promising. But so far I've opted for free alternatives, and, most recently, those have revolved around Google (now that it supports IMAP — more on that later), which is increasingly sync-able with the Macintosh platform, and increasingly present in my digital life.

Fruxx: Looks Promising

So why the cranky? Two reasons, really. The first is that I always feel that syncing should be easy. The second is that syncing is never easy. Syncing is, at best, a big fat pain in the ass, and at worst a vector for data loss.

Why is syncing so tricky? An illustrative scenario that springs to mind is the moving of data. Let's say I have 5 GBs of data in a folder called Movies. This folder is located in my home directory. That home directory gets synced to a spare hard drive via Time Machine. Now let's say I move those movies to another folder in my home account called Old-Movies. At last sync I had a 5 GB folder called Movies and no folder called Old-Movies. Now I have an empty folder called Movies and a 5 GB folder called Old-Movies. There are a few ways to sync this data move, and none is completely foolproof. What Time Machine will do is what I call an incremental backup. That is, Time Machine will keep a copy of the 5 GB Movies folder and make a backup of the 5 GB Old-Movies folder, even though their contents are the same. This is safe, but not storage-efficient.

Another model is to mirror the data, in which case the source is adhered to strictly, and anything not on the source is deleted from the target. In this case, the files in Movies would be deleted and the ones in Old-Movies would be copied. This is more storage-efficient, but also more destructive; it does not take into account the need to access previous iterations of the data. And all this gets even more complicated when there are two data stores and each is modified separately. For instance, what if I'm storing, accessing and editing copies of my contacts on my phone, my computer and my Google account all at the same time. How do we keep these data stores properly in sync with one another?

Again, there are numerous models. But one of the best so far — and particularly for small bits of data, like contacts and calendars, but not so much for large data like, say, movie files — is what's being referred to these days as "The Cloud" model. "The Cloud" is really just a marketing term for keeping your data in a centrally located, globally accessible place. In my biz we call these servers. Using servers to store data works well for syncing because the "master" data set is accessible from all of its clients. Make a change on your phone, and that change goes directly to the server. Next time you log on to your computer, it too talks to the server and gets the latest changes.

This is the approach I've been trying to use. These days I am syncing my iCal calendar data to Google Calendar, and my Address Book contact info to Gmail. Google is a good service to use for my stuff because it's free, extremely reliable — it's Google for Christ's sake — and it works with the Mac. But setting all this up is inordinately painful. For calendars I am forced to use a Byzanntine setup process involving login info and insane calendar URLs for each calendar on each computer.

Google Calendar Setup: Painful

With 10 calendars on 3 computers, this has been annoying, time-consuming and error-prone. Not to mention cranky-inducing. For my Address Book contacts the process was much easier: I just entered my Gmail info into a sync panel in Address Book and I was off to the races. There are problems with this too, though. For some reason I only get the Google Sync option if I've attached an iPhone to the machine in question, which is ironic considering the iPhone is mainly a target, rarely a source, and generally relies on a computer to be the data "master." Also, Address Book and Google only seemed to sync when I synced my iPhone to my computer, greatly limiting the usefulness of this feature. My main Mac, my iPhone and Google are now in sync, but what about my other computers?

Google Address Book Sync: iPhone-Only Why?

But what's most annoying is that all this setup is completely redundant. It's all been done before. All the info I need is already there. In Mail.app.

For email I've long used a protocol called IMAP, which is an example of the concept of centrally located data that's been around for some time. Yup, that's right. We've been doing mail in "The Cloud" for over twenty years now. In fact, I'd venture to say that if we'd had the sort of standards for calendars and contacts that we do for mail, we might not even be having the whole "Cloud" conversation. Calendars and contacts would all be on our mail server and served over well-worn, well-understood, free protocols. Fortunately, we're getting there, and again, by running their services using free and open protocols, Google is leading the charge. And Apple is right behind them with support for standard, open formats like CalDAV and VCF in their applications. But the process needs to be simplified: If Mail.app has my Google user info, that should be all the system needs to set up the other services.

Ideally, I think it would be really neat if someone offered up a service that simplified all of this. Imagine a site or an application that consolidated all — and I mean all — your email, calendars and contacts. I know this is what Mobile Me is going for. Google is also, basically headed in this direction. But Mobile Me can't pull your Google data and vice-versa (or at least not easily). No one is taking into account users' current data sets. Thus far, these systems are still too proprietary. This all needs to work like mail does, only better. Ideally, I could enter a username and password, and the URLs of a few servers and The Service would aggregate everything for me. Just like Mail.app does with all my mail accounts now, The Service would do for contacts and calendars as well.

Of course, then what would I get cranky about?

Don't worry. I'll find something.

Addendum: Before I even had a chance to post this, Khoi Vinh, of Subtraction fame, posted some tangential thoughts on cloud computing in a financially unstable world. I found the following passage particularly relevant to at least part of my argument:

"...I pay a company to store my mail on the cloud, ostensibly, but I have no more or less trust in their longevity than I do in any other online business. Through the underestimated miracle and beauty of IMAP though, all of my messages are also mirrored on my hard drive, an invaluable insurance policy against the sudden disappearance of my mail server or host provider. To me, the IMAP approach is really the ideal approach, and I really wish it was a model for more Web services."

See? I told you so.

Khoi's article is less about syncing and more about data storage and archiving, but it's an interesting read if you're interested in where, for instance, all your Google docs will go when the company crashes under the weight of the current financial crisis, and other drawbacks to so-called "Cloud Computing."

iPhone 2.1 Goodness

One of the things that's been immensely frustrating as I transition everything in my life (my job, my home, my site) to a new version of everything in my life has been the sudden and drastic drop in reliability of a device I've come increasingly to rely on for damn near everything. That device is, of course, my iPhone. Your primary phone is not ever a device you want to go without for very long. Phone service has become so crucial that I can't think of anyone anywhere that could really do without it for any stretch of time. It's more ubiquitous — and certainly more important — than television, or even, dare I say it, The Internet (though I might hasten to point out that when it's working well my iPhone does all three). So when your primary phone begins behaving erratically, it's more than a bit of a pain. And when that lack of reliability occurs during major transitional periods of your life, well, the expression I like to use is: frickin' annoying as shit. I'm telling you, since updating to version 2.0 of the iPhone software — a plunge I honestly wish I'd waited on — I have been tempted numerous times to chuck the damn thing — the phone I've had a love affair with for the past year, this phone of phones — clear across the room, after which I would pounce upon it and tear out and feast upon its touch-sensitive insides. Seriously. It's been bad.

I'm happy — no, unbelieveably thrilled, actually — to report, however — and this is the actual purpose of this post — that the latest 2.1 iPhone dealie-o really does fix all the crap they said it would. The new(ish) iPhone 2.1 firmware, as promised, fixes all the problems I've had over the past month or so. The infuriating slowdowns and maddening drop-outs seem to be truly gone. It's like I'm running version 1 again, which is to say, glorious. Oh, iPhone! I can't stay mad it you!

Figures, though, they fix it right as I'm getting settled. I guess when it rains it really does pour.