Joe Kissell

New .Mac storage limits: still way behind

Among the many interesting announcements from Apple yesterday was an expansion of .Mac’s capabilities, but with the same price as before. And there are lots of groovy new things, such as the Web Gallery and the capability to use .Mac with your own domain. Unlike most people, my reaction to these changes was, in a word, “Ugh,” by which I mean “I now have to spend many days updating my book Take Control of .Mac to reflect the current truth.” Yeah, I know, boo hoo.

However, what most caught my attention was the change in storage limits. Previously, .Mac came with 1 GB of storage for $100 per year, and you could increase it to either 2 GB (for $50 extra per year) or 4 GB (for $100 extra per year). Now, at those same prices, you get a base level of 10 GB, which you can increase to either 20 GB or 30 GB. And it seems a lot of people are thinking, “Wow, a 10x increase in space at no extra cost! Great!” But I’m thinking: not great.

As before, that space has to be divided among Mail, .Mac Groups, and iDisk—and, of the iDisk space, a lot of that will presumably go toward sharing all your photos and videos and iWeb sites. You can use whatever’s left for sharing files or backups. But here’s the thing. Apple is still way behind the times; they should have done that two years ago and made yesterday’s upgrade another order of magnitude greater. At least. Compared with other Web/email hosting providers (because really, that’s basically what .Mac is), .Mac still gives you a fraction of the typical storage space at a higher price. For example, Dreamhost will give you 145 GB of storage (which, by the way, increases by 1 GB each week) in their cheapest plan, which is $9.95 per month—just $20 per year more than .Mac (and you can decrease that to $7.95 per month by prepaying for two years).

My particular area of concern here, though, is backups, because I’ve written a lot on that subject, and am at this very moment in the process of updating Take Control of Mac OS X Backups to say a lot more about, among other things, online backup services. If .Mac stacks up poorly against Web hosting providers, the comparison with online backup providers is even bleaker. Mozy gives you unlimited backup storage space for $5 per month. And CrashPlan is right behind—you get 50 GB for $5 per month, with additional gigs at 10 cents each (so, 100 GB would be $10 per month, and so on). That’s exactly the sort of space:price ratio where Apple should be. Previously, they were at 1 percent of that, and now they’re at 10 percent. I find that kind of insulting, as though I’ll see all the pretty graphics (yes, they are pretty) and forget that I’m still being overcharged and underserved.

Speaking of that 1 percent figure…I find it interesting that the new iMacs released yesterday can include up to 1 terabyte of disk space. Clearly, Apple expects you to fill up that space with all your excellent new media. Equally clearly, they expect you to put no more than 1 percent of it (10 GB)—or, maybe, 3 percent (30 GB)—online. That’s weird and sad. I say this even realizing the realities of internet bandwidth (sure, it’d take months to back up 1 terabyte over a DSL connection). That’s no excuse to let your competitors leave you in the dust.

All this is not to say I don’t find .Mac useful. I do find it useful—enough so that I keep renewing every year (even though I also have to supplement it with other services). And I’m happy that it’s gotten considerably more useful in the past 24 hours. But let’s not kid ourselves: this is one area in which Apple is still far, far behind the curve.

Safe Sleep addendum

My article in last week’s issue of TidBITS, Stewing Over Safe Sleep, generated an awful lot of feedback. Most of it was of the “Yeah, that was really stupid of Apple” or “Thanks; now I know how to solve an annoying problem” varieties. Some of it was along the lines of “How could anyone not love safe sleep?” or “I’m not seeing 49-second delays on MY machine” or “It probably doesn’t really matter if you move your computer while the RAM is being cached to disk” or the simple and elegant “You’re an idiot.” Well, thanks one and all for sharing your thoughts, constructive and otherwise.

Two particular threads of discussion, though, are worth a more detailed look.

Hibernating Only When Necessary First, Greg Nicholson sent me a clever script he wrote (to replace the one I showed in TidBITS) that’s significantly smarter. Greg pointed out that there are certain situations, such as a long flight to China, in which one might be much more likely to want the default Safe Sleep behavior. So his script, which he runs every 10 minutes with cron, checks the battery life. If it’s over 50%, it turns off hibernatemode (as my script does). But if the charge is less than 30%, it turns hibernatemode back on. Very spiffy, and I wish Apple would have built something like this right into Mac OS X. You can, of course, tweak the percentages and so on to your liking. Here’s (my slightly modified version of) Greg’s script:

#!/bin/sh
MODE=`/usr/bin/pmset -g | grep hibernatemode | awk '{ print $2 }'`
LEFT=`/usr/bin/pmset -g batt | grep Internal | awk '{ print $2 }' | awk -F % '{ print $1 }'`

if [ $LEFT -lt 30 ] && [ $MODE != 3 ] ; then
  {
     echo "Less than 30% remains" >> /var/log/system.log
     echo "setting Hibernate mode 3" >> /var/log/system.log
     `/usr/bin/pmset -a hibernatemode 3`
  }
elif  [ $LEFT -gt 50 ] && [ $MODE != 0 ]; then
  {
     echo "Greater than 50% remains" >> /var/log/system.log
     echo "Setting Hibernate mode 0" >> /var/log/system.log
     `/usr/bin/pmset -a hibernatemode 0`
     `rm /var/vm/sleepimage`
  }
fi

Greg noted that since the script requires root privileges, you need to add the following to your sudoers file:

ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 3
ALL ALL=(ALL) NOPASSWD: /usr/bin/pmset -a hibernatemode 0

An easier way to achieve that effect would be to put the cron job in your system crontab, if you feel comfortable doing that.

Dealing with an Unencrypted “sleepimage” file Correction (08-Aug-2007): I see I munged some of my facts here earlier, so I’ve rewritten this paragraph to reflect what I currently believe to be the truth.

Second, the issue of encryption came up. It turns out that using hibernatemode values of 5 or 7 (the prescribed values for those using Secure Virtual Memory) don’t actually result in your sleepimage file being encrypted—in fact, it’s just the opposite. If you have Secure VM turned on and use 5 or 7, your encrypted RAM is apparently decrypted while being written to the sleepimage file. So if you’re using Secure VM and want your sleepimage file, too, to be encrypted (which you should), stick with values of 1 or 3 (3 being the default).

Now, in the real world, this fact probably makes little practical difference for most people, most of the time. Even if you don’t encrypt your VM, it’s not a given that any particular password (or other sensitive data) will actually be in RAM when it comes time for your computer to sleep—it might be, or it might not, depending on a long list of details about how particular programs do things, how recently you logged in, what applications you have running, and so on. And also, the risk is certainly greater for power users who enter an administrative password multiple times per hour than people for whom that is a rare occurrence. Even then, the contents of your RAM is cached to that unencrypted disk image only when your computer goes to sleep and only when the hibernatemode setting is at its default (3) or “always hibernate” (1). And even then, the fact that potentially sensitive stuff is sitting on your hard disk in a readily readable format only causes problems if someone gets access to your computer and knows how to find this data. So, like I say, not a problem for most people, most of the time.

If you’re concerned about this, though, DO follow my advice to turn of Safe Sleep. But go a step further. Instead of using

sudo rm /var/vm/sleepimage

to delete the RAM cache, use the secure version of rm, srm, and use the -m flag for a 7x overwrite rather than the default 35x overwrite:

sudo srm -m /var/vm/sleepimage

The command will take a long time to run, but the disk image holding your RAM contents will be safely overwritten. Note that you only have to do this the first time. If you’ve set up a script (as discussed previously) to check regularly to see that hibernatemode hasn’t turned itself back on, having a simple rm in that script will do the trick. The reason? When hibernatemode turns back on, Mac OS X recreates the sleepimage file immediately. But initially, it’s blank. It doesn’t fill up with the contents of your RAM until your machine tries to go to sleep. If your script runs and deletes the (blank) image before then, nothing incriminating will have been in that file.

I truly hope this all gets sorted out in Leopard.