The New and Improved Mozy for Mac 1.6
Of course, it can’t really be both new and improved. Logically, it has to be one or the other. It’s just that I’m excited about the 1.6 release of Mozy’s Mac client. It was finished last week and the response has been very positive.
It seems that with #Mozy for #Mac 1.6 it’s finally reliable. Awesome! — @donut2d
Latest Mozy update (1.6) on Mac OS X is a major improvement – it actually works, and doesn’t suck out all of your RAM. — @mmetcalfe
Our last few releases, while making improvements in many areas, seemed to have lingering and subtle problems. With the 1.6 version, we hope to have finally put them behind us.
We turned on auto-update today. If Mozy hasn’t updated itself yet, please feel free to grab the latest version of MozyHome (or MozyPro) and let us know what you think.
Official List of Changes
You can see the official list at the pages linked above. Mozy only makes the list of changes available for the current release, so I’ve copied them here for the future. You can see the changes in Mozy for Mac 1.4 and Mozy for Mac 1.5 too.
Enhancements
- Removed dependency on Spotlight since Spotlight queries are unreliable under certain circumstances
- Changes to backup selections are now saved automatically
- Reduced memory usage
- Decrease size of SupportFiles.zip file
- Improved the performance of the Configuration window
- Improved support for Snow Leopard and fixed issues caused by Snow Leopard’s 64-bit architecture
- Improved interaction between Mozy’s preferences and Snow Leopard; Mozy’s preferences no longer require System Preferences to be re-started
- Improved the use of temporary files
- Improved reports in Admin Console for Pro users
- Improved support of our external drive feature by addressing edge cases that can cause stability issues
- Improved feedback when setting a preference to an invalid value
- Improved error handling when an auto-update fails to download successfully
- Added support for nine non-English languages
- Added the ability to delete a Backup Set using the keyboard
- Added the ability to undo and redo configuration changes
- Added the ability to sort Backup Sets by file count or total size
- Added history information to main Configuration window
- Added “Install updates automatically” checkbox to dialog which prompts user to upgrade
- Added ability to manually check for an update
- Added ability to back up network drives using the NFS protocol for Pro users
Bug Fixes
- Fixed issues which caused the “Show status in menu bar” preference to not work properly
- Fixed the link in the Readme file for downloading the software
- Fixed a computer name display issue in the Setup Assistant
- Fixed an issue causing the Configuration window to crash when browsing a folder with lots of files
- Fixed an issue which caused the file exclusion warning to not show up properly
- Fixed an issue which caused network connection errors
- Fixed an issue which caused several duplicate warning dialogs to appear
- Fixed an issue which prevented the use of certain non-Roman characters in a password
- Fixed an issue which caused a file to be accidentally excluded
- Fixed an issue which caused the Backup Set Editor to display the wrong file size
- Fixed an issue which caused files to be re-uploaded unnecessarily
- Fixed an issue which caused files in Trash to be backed up
Languages
One of the two major changes in this release is support for nine languages in addition to American English:
- German
- Greek
- British English
- Castillian Spanish
- French
- Italian
- Dutch
- Portuguese
- Slovenian
If you have chosen one of those languages in System Preferences, Mozy will use it automatically. No assembly required. If you find spots where the translation doesn’t make sense, please let us know.
File Scanning
The other major change — the one I’m most excited about — is the new file scanning engine. This is how Mozy finds all your files and decides which ones to back up.
In the past, we’ve depended on Spotlight, Apple’s file scanning feature in OS X, for about half of our scanning. Backup Sets that searched for files of a certain type used Spotlight. Backup Sets that matched a folder (and selections made in the Files & Folders tab) scanned the hard drive directly. We kept finding that Spotlight returned inconsistent results in some cases. So we decided to stop using it.
While we were making the change, we simplified how things work and made everything but the initial scan much, much faster. Mozy now uses far less memory, even when backing up millions of files. There are still some improvements we want to make, but the new file scanning engine makes Mozy feel rock solid.
Conclusion
If you’ve gotten this far, thanks for reading. Please feel free to drop me a note (dan at mozy dot com) with any comments or suggestions. Oh, and Mozy for Mac 1.6 has two new easter eggs. :-)
If you’re new to Mozy, you can try our 2GB-for-free, no-strings-attached version here.
How to Optimize WordPress, Part 2
My last post on how to optimize WordPress covered some general optimization techniques to speed up a website. Reducing HTTP requests, removing wasteful plugins and decreasing file sizes helped quite a bit. Now it’s time to try out page caching.
If you remember, the five things that normally occur for each page are:
- Initialize PHP
- Query the database
- Create the page
- Send the page
- Send additional files
Page caching plugins, like Hyper Cache and W3 Total Cache, eliminate steps two and three, except when creating a page the first time. WP Super Cache also cuts out step one.
All of the plugins were fairly easy to install. And I discovered during my tests that WP Super Cache, at least at Nearly Free Speech.NET, works just fine with safe mode on.
This graph shows the time it took to load my home page with each of the caching plugins enabled. I have circled the point where I first turned on page caching.
Hyper Cache and WP Super Cache both performed well. W3 Total Cache seemed to struggle. It does more than page caching, like reformatting files to save space, but clearly slowed things down.
WP Super Cache has a few advantages over Hyper Cache:
- It supports browser caching better
- It doesn’t need to load PHP
- It checks for security problems and suggests fixes
So I am now a happy WP Super Cache user.
UPDATE Dec 2009:
After a few days, I started having issues with WP Super Cache and switched back to Hyper Cache. You can see how the irregularities went away. I’ve been using Hyper Cache for almost a week now, and things have remained stable.
After being contacted by the author of the W3 Total Cache plugin, I’ve agreed to give it another try. I turned off all the settings except for “disk enhanced” page caching. I’ll update the article again in a few days.
UPDATE Jan 2010:
After looking into things a bit more, my results are still showing Hyper Cache to be faster than W3 Total Cache. However, when I test using the curl command line tool from home, it seems that both plugins are about the same speed. My web hosting company uses a network-level reverse proxy and a few other caching tricks that eliminate the need for some of the features provided by these types of plugins. I’m not sure what’s going on here, but will be sticking with Hyper Cache for now since it appears to work better with my particular situation.
I do like that W3 Total Cache handles page compression properly. I could not get page compression to work with Hyper Cache and had to turn it off. I’d recommend you try all three plugins and measure which works best for you.
UPDATE Apr 2010:
I’ve been having some troubles with Hyper Cache recently. Page redirects were working properly in Firefox, but not in Safari. I tried a new caching plugin I hadn’t heard of before: Quick Cache. Redirects are now working in both browsers. After a week of using Quick Cache, it’s performance is very good. I’ve decided to stick with it.
How to Neglect a Product to Death
My friend and former co-worker Matt Ryan recently commented on the impending death of Novell Forge. A message on the Novell Forge site confirms that Novell will be shutting things down soon. I can corroborate some of Matt’s story as I was on the Forge team for about a year during its heyday.
But what really interests me about the situation are the implied instructions on how to neglect a successful product into a slow death that can be blamed on the product itself.
- Avoid rewarding or recognizing any of the people involved. Even better, reward someone else.
- Do not feed its success. Withhold funding, staffing and career growth opportunities.
- Provide poor support. Delay fixing problems.
- Set unrealistic goals and expectations. Blame the product or team for failure.
- Find excuses to kill the project. Focus on the negative in all meetings with executives.
This was a particular worry at Mozy when it was acquired by EMC. They promised that EMC did not want to be the lumbering elephant that accidentally squashed its shiny new purchase. And it was true. But we worried about accidental squashing anyway.
It has been two years, and I have seen projects and executives come and go. Though I do not believe it was intentional, at times it felt like Mozy was being neglected. But the core of Mozy has remained strong and continues to grow.
Based on my experience, here is what to do to keep a successful product moving forward:
- Execute anyway. Deliver a quality product in the face of neglect.
There is precious little a neglected production team can do other than produce. I heard something once I have always remembered: nothing succeeds like success. It is much harder to produce in the face of neglect, but it is also nearly impossible to ignore or argue with.
Mozy is clearly not perfect, but despite occasional neglect it continues to provides a valuable, profitable service. Working with smart people helps. Working for smart people helps. Working with people you like helps. Working on something you care about helps. Working with cool technology helps. But over time, delivering a useful, profitable product is what matters.
Changes in Mozy for Mac 1.5
After a two week beta period, the 1.5 release of Mozy for Mac was released today. We’ve made a lot of improvements over the last few releases. If you’re new to Mozy, you should try our 2GB-for-free, no-strings-attached version here.
The official announcement is on our blog. Here’s more details about what changed in this release:
Enhancements
- Consumer and business versions of the software can now run simultaneously on the same machine.
- Added a file scanning progress indicator in the Configuration window.
- Added a warning that appears when a backup is started before the product is fully configured.
- Added a warning to prevent changes being lost when the Configuration is closed without saving.
- Simplified the list of options in the menu bar.
Bug Fixes
- Improved memory usage during backup and restore.
- Improved the way network encryption keys are retrieved.
- Improved the ability to restore default backup sets in the Configuration window.
- Improved the efficiency of the log file collector.
- Improved the handling of temporary files.
- Improved the handling of database corruption.
- Eliminated unnecessary API calls to improve performance.
- Fixed an issue that prevented some Mac 10.4 (Tiger) users from backing up properly.
- Fixed many instances of potential configuration corruption.
- Fixed an issue importing a personal key into the decryption utility.
- Fixed a potential root exploit security issue.
- Fixed an issue that prevented some files with aliases in their paths from being backed up.
- Fixed an issue where Status would get stuck if the backup process was not running.
- Fixed an issue that caused Restore to crash for some users.
- Fixed a rare issue when restoring files with resource forks.
- Fixed an issue where the uninstaller missed some files.
- Fixed an issue with handling email addresses containing a “+” sign.
- Fixed a display defect in the Files and Folders tab.
- Fixed a display defect with the “Temporary Files Location” in the Preferences window.
- Fixed the display of exclusion notifications.
- Fixed a display defect which appeared after saving changes in the Configuration window.
- Fixed a rare issue which forced user credentials to be reentered.
How to Create an Alias Programmatically
First, a disclaimer. Apple will warn you not to do this. The only supported way of creating an alias is to use the Finder. If you must do it programmatically, you will be told to use AppleScript. But if AppleScript won’t work for you, and a simple Cocoa method is what you want, read on.
Mozy’s Mac client doesn’t create aliases, but our customers do. We want to make sure our software backs them up correctly. So we added some unit tests to our build process that create aliases and check to see that Mozy handles them correctly.
We first used AppleScript, but ran quickly into two issues:
Our build server runs as the root user, which doesn’t have a UI context. AppleScript doesn’t work without a UI context.
Even running as a normal user, AppleScript cannot access the system temporary files location (/tmp) which is where we wanted to create our aliases.
That’s when the fun began.
I spent quite a bit of time failing to find the right bit of magic to create an alias that functioned properly in Finder. It turns out that an alias is a data structure inside another data structure stored in the resource fork of an empty file. Those structures need to have the correct record types for everything to work.
Having gone to the trouble of figuring this out, I thought I’d share. This code creates an alias for a folder, but it should serve as a good template if you need to create another type.
- (void)makeAliasToFolder:(NSString *)destFolder inFolder:(NSString *)parentFolder withName:(NSString *)name
{
// Create a resource file for the alias.
FSRef parentRef;
CFURLGetFSRef((CFURLRef)[NSURL fileURLWithPath:parentFolder], &parentRef);
HFSUniStr255 aliasName;
FSGetHFSUniStrFromString((CFStringRef)name, &aliasName);
FSRef aliasRef;
FSCreateResFile(&parentRef, aliasName.length, aliasName.unicode, 0, NULL, &aliasRef, NULL);
// Construct alias data to write to resource fork.
FSRef targetRef;
CFURLGetFSRef((CFURLRef)[NSURL fileURLWithPath:destFolder], &targetRef);
AliasHandle aliasHandle = NULL;
FSNewAlias(NULL, &targetRef, &aliasHandle);
// Add the alias data to the resource fork and close it.
ResFileRefNum fileReference = FSOpenResFile(&aliasRef, fsRdWrPerm);
UseResFile(fileReference);
AddResource((Handle)aliasHandle, 'alis', 0, NULL);
CloseResFile(fileReference);
// Update finder info.
FSCatalogInfo catalogInfo;
FSGetCatalogInfo(&aliasRef, kFSCatInfoFinderInfo, &catalogInfo, NULL, NULL, NULL);
FileInfo *theFileInfo = (FileInfo*)(&catalogInfo.finderInfo);
theFileInfo->finderFlags |= kIsAlias; // Set the alias bit.
theFileInfo->finderFlags &= ~kHasBeenInited; // Clear the inited bit to tell Finder to recheck the file.
theFileInfo->fileType = kContainerFolderAliasType;
FSSetCatalogInfo(&aliasRef, kFSCatInfoFinderInfo, &catalogInfo);
}
I consider this code to be in the public domain. Please feel free to copy and paste. And let me know if you find any problems or have suggestions.
If you need a complete solution, Nathan Day wrote a nice set of classes called NDAlias. We didn’t want to import 9 classes for just a handful of unit tests.
I later found some of Apple’s sample code from 1999 demonstrating a similar approach. I think our Objective-C example is much easier to use.
WordPress After 8 Months
Early this year, I switched from Movable Type to WordPress for my blog. I’ve been very happy with that decision. So I thought I’d give an update on how I feel after using WordPress for eight months.
First, I should say that the speed issue hasn’t bothered me like I thought it would. I haven’t added caching, but may still do so at some point. Let me know if things feel slow.
Second, I’ve changed the which plugins I use, so let me give you the current list.
- NEW — Twitter Friendly Links let’s me use my own domain for short URLs instead of Bit.ly or TinyURL.com
- NEW — RF Twitter Post will update Twitter when I write a new post. I’m testing this one and hoping the next version adds support for Twitter Friendly Links
- NEW — SexyBookmarks makes it easy for readers to share things they find interesting
- Aksimet filters comments from spammers of which there are many
- All in One Adsense and YPN handles the ads on my site though I have them turned off now
- FD Feedburner Plugin lets me use FeedBurner for my RSS feeds
- Google Analyticator adds the Google Analytics tracking code
- KB Robots.txt allows me to add my sitemap to my robots.txt file
- Markdown allows me to write using Markdown syntax
- Recently Popular highlights what posts people find interesting
- Simple Google Sitemap automatically creates a sitemap for me
- Twitter lets you know exactly what I’m up to at all times
- WP-DB-Backup makes it easy to back up the content on my site
- Yet Another Related Posts Plugin suggests additional posts that relate to the one you’re reading
Since January, I’ve stopped using Automatic Timezone because putting WordPress 2.8 and PHP 5 together makes the daylight savings time magic work.
Third, I was able to find several WordPress themes that I liked and get them installed fairly easily. And switching between them is simple.
Overall, I’m still very happy.
2009-12-05: I spent some time optimizing WordPress which you can read about here.
Changes in Mozy for Mac 1.4
The Home and Pro versions of Mozy for Mac 1.4 are out. We’ve been working on this since January, and it feels great to finally get it out the door.
The major change in this release is the new file scanner. We’ve greatly improved how Mozy looks for and keeps track of files that need to be backed up. The release has been enabled this afternoon for new customers and existing customers which manually upgrade using the links above. Auto-update will be turned on for all existing Home and Pro customers shortly.
Since we don’t have an official place for showing our Home users a list of what’s changed, I’m including the full list here.
Enhancements
- Improved overall performance and stability for file selections and backups
- Added menu option to automate the collection of log files
- Moved Preferences to global System Preferences
- Improved sorting of the Files and Folders Configuration window
- Improved the behavior of saving and canceling in the Configuration window
- Added a new icon to indicate partially backed-up folders in the Configuration window
- Added menu item to start a backup from the Configuration window
- Added the ability to create backup sets to exclude files
- Added the ability to sort by column in the Backup Sets window
- Updated online guides
- Added menu item to send product feedback or suggestions
- Improved appearance of menu bar icons and other graphics
- Improved speed of file preparation
- Added the ability to use the escape (ESC) key to close the Configuration window
Bug Fixes
- Fixed rare case of file changes not included in backup
- Fixed several “database is locked” and “database disk image is malformed” errors
- Fixed memory leaks
- Increased the accuracy of the bandwidth throttle
- Fixed creation date issue for restored files
- Fixed problem with excluded folders being backed up
- Fixed an issue limiting the amount of custom backup sets
- Fixed an issue when the user restarts the computer before completing installation
- Removed redundant column in the Backup Sets window
- Fixed an issue restoring a file with a resource fork
- Fixed an issue restoring a file with identical copies being backed up
- Fixed the occasional “ClientError15″ error caused by stopping a backup in progress
- Fixed “no files selected for backup” message from mistakenly being displayed in the Configuration window
- Fixed some Snow Leopard compatibility issues
UPDATE: We’ve got an official announcement on Mozy’s blog. I updated the links to point to the 1.4.3 release, which has fixes for OS X 10.4 and Time Capsule.
Mozy Coupon for July
Mozy is offering 10% off new annual and bi-annual subscriptions for MozyHome Unlimited and MozyPro this month. Just type JULY into the referral box when you sign up.
If you’re interested in Mozy’s free 2GB of online backup, just sign up for a MozyHome Free account. I’d recommend using someone’s referral code as you’ll both get an extra 256MB of space. If you can’t find a referral code online, you can use mine which is 56EEVL. But Mozy employees get free accounts so try to hook someone else up if possible.
And if you’re a Mac user interested in helping us beta test the Mozy for Mac 1.4 release, please drop me a line at dan at mozy dot com.
Review: AppleTV
I’ve been using an TV (also known as AppleTV for those who lack Shift-Option-K goodness) for about a year now. It’s a great little device with a couple of really annoying flaws.
The Good
I like that It’s small, about an inch tall and eight inches on each side. It has an HDMI video output, and both optical and analog sound outputs. It can play almost anything in my iTunes library.
The best thing is probably the screensaver where pictures from your iPhoto library float up the screen. We hardly ever look through our “digital albums” on the computer, and it’s nice to have an easy way to see all those pictures.
The Bad
In order to play properly on the TV, movies have to be below a certain quality. iTunes will play high-quality movies that the TV ignores. The TV handles most mainstream movie formats, including H.264. But it is not upgradable unless you’re willing to tinker a bit. I’d like to see support for Netflix, Hulu and others built-in.
The parental controls option prevents purchases, but does not hide anything nor prevent previews. I assume the only reason to include that feature is for kids, so why not just hide filtered content completely? If I want to watch something else, I’d be happy to put in my passcode to see the filtered content. Since the filtered content is not hidden, the whole feature seems nearly useless for me.
The Ugly
The TV never sleeps. Which means it always seems hot enough to roast an egg. I would really like an option to “sleep after so many minutes.” Or at least have it turn off the hard drive. It’s hard on the drive and wastes energy. Unlike the TV, I do sleep at night.
The worst thing is how slow the navigation feels on occasion. Even with the most recent software update, there is way too much stuttering and jumping. I suspect this occurs because I am streaming content from my iTunes library on another computer.
I could avoid streaming if the hard drive in the device was bigger. Or if it was semi-easy to put in a new one. Or if it supported external drives connected via the USB port. It doesn’t happen all the time, but waiting even 3 seconds for it to respond is really annoying.
Conclusion
Overall, I like my TV. It’s really easy to setup, and gives me a simple way to watch or listen to media stored on my computer. A Mac mini would work too, but is more expensive. It also lacks an HDMI output. And I worry that my kids would be confused if it ever dropped out of Front Row, the TV-like software that comes with Macs.
On the other hand, a mini is a computer which makes it easy to customize. It would allow me to watch streamed movies and rented DVDs (the TV lacks a DVD player). I wonder why Apple doesn’t allow the TV to play DVDs that are in another computer sort of like they do with the Macbook Air.
If I had my purchase to do over again, I’d certainly get an TV or a mini. Just not sure which one. What I’d like is a mini with an HDMI port.




