A Home Page To Nowhere

I very much appreciate Firefox's ability to save and restore my window and tab settings every time I quit and relaunch the app. It's one of my favorite things about Firefox.

Firefox Startup and Home Page Settings

But I seem to remember that there was once a way to enable this feature while also having Firefox open new blank windows, that is, empty windows with no web page loaded. I believe this was an independent setting in Firefox 2, but now the only place I see such a setting is in the startup behavior, and I'll be damned if I'm going to turn off my session restore behavior.

By default, Firefox 3 opens all new windows with your homepage. If you try to leave this setting blank, Firefox 3 will use its own branded Google search page. But there is a way to tell Firefox to make your home page an empty one. Instead of using a URL in the Home Page field of the Main preferences tab, use about:blank. By doing so you're telling Firefox that a blank page is your home page, and thence onward Firefox will open all new windows empty, blank, bare as white paper. And that is just great.

Much Better!

If you're like me, you don't need to see your home page every time you open a new window. In fact, there's no page I want to see every time I open a new window. It seems like a goofy default. I wish the Firefox devs would either bring back the preference to open new windows sans content or change the default to a blank page the way it is with new tabs. It just makes more sense.

Until they do, though, I'll be setting my homepage to nowhere.

CalDAV On iPhone

One of the exciting new features in the iPhone 3 OS is the ability to access calendars via plain old, standard, vanilla CalDAV. This allows you to finally keep an updated version of all your calenders without syncing your phone to your computer. Just subscribe to your calendars on your iPhone, just like you do in iCal on your Mac, and you'll always be up to date because you'll always be accessing the centrally-located, server-side calendar. This is right and proper and as it should be. But CalDAV over iPhone does have some quirks and limitations.

Subscribing to a Single Calendar

The first thing that's not readily obvious is how to connect to your CalDAV calendars. It is possible to subscribe to multiple Google calendars, for instance, but doing so is neither straightforward nor apparent. Still, once it's done it's done, and it's mostly better than the alternative.

Subscribing to a single Google calendar — your main Google calendar, if you only have one — is really what the iPhone is interface is designed for. Where to do this is also not necessarily obvious:

  1. Open the Settings app.

  2. Press Mail, Contacts, Calendars.

  3. Press Add Account...

  4. Press Other.

  5. Under the Calendars heading, press Add CalDAV Account

  6. Enter your CalDAV server URL (for Google it's just "google.com"), username, password and a short description, then hit the Next button.

  7. The iPhone will verify your information and then, if all goes well, your CalDAV calendar will appear in the Calendar app with the description you provided with the word CalDAV next to it in parentheses.

  8. Now wait. It can take a few minutes for the iPhone to suck down the CalDAV data. I'm not sure why. But it should appear after a few minutes or so.

Navigating to this calendar will cause the iPhone to read the calendar data right from the server. If you have write access you will also be able to add, delete and modify events right on your iPhone and have the changes propagate to the server.

Multiple Calendar Subscriptions

UPDATE: See the end of the article for a better way to sync multiple Google calendars over CalDAV.

In addition to connecting to your main Google calendar it is also quite possible to connect to other CalDAV calendars to which you might want to be subscribed, though the process is hardly as automatic as the one above. Connecting to a single CalDAV calendar is easy for both you and the iPhone because the URL is simple and easy to predict, so the phone just does it for you. If, however, you want to connect to a shared calendar, the URL that you'll need to supply to the iPhone is long and complicated and, unfortunately, must be manually entered.

To do so, you'll probably want to start by getting that URL into the iPhone's clipboard. There are lots of ways to do this. You can get it right from the Google calendar site (if it's a Google calendar) using Mobile Safari. You could also send it to yourself in an email. The way I handle this is that I actually keep a spreadsheet on Google Docs that contains all my shared CalDAV URLs, that way I always have copy/paste access to them from the iPhone or from a computer. But however you do it, just get that URL into your clipboard, because you don't want to type it by hand. Trust me.

The process for adding additional calendars follows the above steps almost exactly. The one exception is that for the Server entry in step 6 you must pass the long URL you just got into your clipboard. Just paste it right there into the field. After switching fields, it will present the Server text as just "google.com" again, but it should have the full URL stored away in its memory. Continue with the process and you should see the new calendar in the Calendar application as before.

Advanced Options

If a problem occurs during subscription an Advanced Settings button will appear.

This button also becomes available after the calendar has been set up. There are three options to set here:

  1. Use SSL

    This allows you to configure your iPhone to connect via SSL, which is required by some servers. Google allows this option and may or may not require it. Generally it's best to have this on if possible. Or at least more secure. If you're having troubles, though, you can try toggling this setting.

  2. Port

    This allows you to set the SSL port, in case your server uses something other than the default of 443.

  3. Account URL

    This is the actual URL to your calendar. The one you pasted into the Server field. If something went wrong during that step you can check and fix it here.

In Practice

There are some advantages and disadvantages to this system. And while I really believe this is how any serious calendaring system should work — all your computers are clients that simply get the calendar data from the cloud — the implementation on the iPhone is not exactly mature.

For one, CalDAV calendars other than your main Google one are a major pain to add to the phone. Google provides an app for doing this on you desktop system, but for the iPhone it must all be done by hand. If you have many calendars it is a long and tedious process.

For two, receiving CalDAV data on your iPhone is, in my experience, very slow. Any changes made on the server will not be immediately seen by the iPhone. It can be several minutes after opening the Calendar app before you see the changes and there's no indication that the sync is even taking place. This can be frustrating and misleading and requires you to always remember that there might be a change that's coming that your iPhone just hasn't seen yet.

Also, from time to time, though very rarely, calendars fail to load. I can't blame this entirely on the iPhone, though. This happens to me even in the browser on my desktop system. It seems to be a problem with Google's implementation and large numbers of calendars. Apparently Apple's not the only one whose CalDAV implementation is immature.

Still, for me this system has worked pretty well thus far. I have a buttload of calendars to which I must stay subscribed, and which I must keep current. And I just don't sync with my computer that often — plus, calendar changes are made at work — so that system was equally dodgy. My calendars don't change that often either, so waiting for data to sync is less of an issue for me, though when there are major changes, getting everything re-synced really blows.

Overall, now that it's in place, I'm very happy with CalDAV on my iPhone, though there is certainly room for improvement. I suspect it will only get better with time.

UPDATE: It looks like it did just get better. I've just discovered a better way to subscribe to multiple Google Calendars that I'm pretty sure wasn't there when I set all this up a few months ago. It's much easier and doesn't require signing in to each calendar. Just subscribe to your main calendar as described in the above outlined steps, and then, on your iPhone, go to this page:

https://www.google.com/calendar/iphoneselect

Here you can select the calendars that will sync over your main Google account.

This is for Google accounts only. If you just have regular old CalDAV accounts that you want to sync with, manual entry will still be required.

UPDATE 2: This method seems to speed calendar syncing as well. I think the old method required the iPhone to log into each individual calendar, whereas this new method logs in once and syncs all the calendars with the one account. Much less work for the iPhone than before. Nice!

Why We Tell You To Reboot

This is how still images in Final Cut Pro 7 looked to me after installing and updating to the latest version (7.0.1):

Final Cut 7 Garbled Image Display

This is my dog:

Garbled Dog

She is not normally purple and green and swirly colored.

After an hour or so mucking about, reinstalling the application, trashing prefs and otherwise performing the usual maneuvers, I decided to take my own medicine and reboot. Why I don't just always do this first — like I tell everyone else to do — is beyond me. But sure enough, it worked.

Normal Dog

Ah! That's better! Crazy mutt!

A Time Machine Gotcha

Though Time Machine uses hard links to reference files from any point in time without using additional space, changing anything about a file will, obviously, trigger a new copy of said changed file to be backed up to your Time Machine disk. What's perhaps less obvious is that even simply changing the path to the file will trigger a new copy to be made.

This WIll Take a While

To wit: I have a very large folder — about 100GB — full of material that I intend to archive. That folder used to be called "BurnMe." But I recently changed my archiving approach such that the "BurnMe" moniker seemed inappropriate. So I renamed "BurnMe" to "ArchiveMe." My hope was that Time Machine would see that, yes, the folder had changed, but that its contents pointed to already existing files on disk, and that those files hadn't changed and could thus be referenced with a hard link.

Unfortunately, Time Machine isn't that smart. What it actually did was erase some older backups to make room, and then it indeed recopied the entire 100GB folder with the new name. Apparently, changing even the name of a file's enclosing folder counts as a change to the file and will trigger a new backup copy to be created.

Deleting a Backup

My solution to this problem, unfortunately, will be to manage my Time Machine data a bit. It is possible to delete previous Time Machine backups by entering into the interface and right-clicking the file or folder you want to delete, then choosing to "Delete All Backups" of the selected file or folder. From now on I will need to be mindful of name changes to large folders, and be sure and delete the previous backups before (or perhaps after, depending on available space) I do so.

In any case, this is not a huge problem, but it is a minor inconvenience in a process that is meant to be almost entirely hands-off.

Enclosing Mail Folders

A quickie: It's fairly common knowledge that, in the Finder, command-clicking the icon in the titlebar of the folder you're in will reveal the folder hierarchy that said folder lives in. This is a handy way to find your current location and "drill up" in the folder hierarchy, if you will.

I've always longed for similar functionality in Mail.app, but the best we'd had was titlebar text that displayed the email name and its enclosing folder. Until now.

In Snow Leopard Mail.app finally gets the same command-click behavior we have in the Finder (control-click also seems to work). Open a message in a new window, and command-click the icon of the message in the titlebar.

Doing so reveals the location of the message and allows you to navigate there.

Mail Hierarchy

Excellent!