Posts Tagged with 'software'

iTunes Dialog of the Day

I’ve ignored updating a bunch of the apps I’ve downloaded to my iPhone for some time. Most are free apps, and a few I’ve paid for. So, iTunes says I’m now up to 21 “free” updates to install, and I finally decided to download the updates. What did I get? This lovely dialog:

itunes-useless

How many things can you count that are wrong?

  1. The headline is crazy long.
  2. The detailed description is exactly the same as the headline.
  3. That’s terrible writing. “Can not.” Really? And “…you have not owned the major version…” Huh? Hire a writer.*
  4. There are no choices offered – just “OK.” But it’s not okay; can’t you offer me a choice to resolve the problem?
  5. Not only is the dialog not offering to fix the problem, it doesn’t even give me enough information to fix it myself. Which app is it that I can’t update?
  6. Because there was one offending app, iTunes didn’t update any of them.

This is pure stupidity, and surprisingly common. Why is it that software usually stops everything at the first sign of trouble and refuses to proceed until each problem is resolved?

I had a similar problem with copying files from my Mac to my PC recently – whenever Windows had trouble copying an individual file, everything just stopped and I was presented with a non-specific error dialog. I forgot to get a screenshot, but the gist of it was: ‘There was a problem copying some file, but I’m not going to tell you which one, and I’m just going to stop copying the rest of the files. OK?’ I was trying to copy a large number of files, and so each time this happened, I had to manually compare the file lists to figure out where the problem was, and manually restart the copy (starting with the next file in the list). Totally obnoxious.

So, here’s my advice for how your software should handle batch operations:

  • If you can quickly assess problems at the start, do that. But (a) report the specific problems, (b) provide options to fix the problems if you can or at least specific instructions on what to do if you can’t, and (c) provide an option to skip the problem areas/files and proceed with the rest of the operation.
  • If you can only identify problems along the way: (a) skip the problems as they arise, (b) proceed with the rest of the operation, (c) present a message at the end with a specific list of all the problems you encountered, and preferably (d) provide options and/or specific instructions to fix the problems. Alternatively, report the problems as they crop up, but proceed with the rest of the operation in the background.

* OK Apple, some free advice on how to at least fix the writing in this dialog:

  • Headline: There was a problem downloading one of the updates
  • Details: You cannot download the update for [app name] because you haven’t purchased the most recent major version.
  • Checkbox (checked by default): Don’t remind me again for this version of [app name]
  • Buttons: Learn about the latest version; OK

Dumb iTunes Update “Dialog”

I got this message when I recently ran the software update (while iTunes was running) to go from iTunes version 8.1 to 8.1.1.

itunes-dialog

Unfortunately, the developers weren’t smart enough* to figure out how to do an update gracefully (in the background, without quitting iTunes, and more importantly without forcing me to do the work). I know this is possible, because anything is possible with software (that, and the Firefox developers have figured it out). I’m sure it’s hard, and it would be boring work for the team, but is that really my problem? If there’s a choice to make between developers doing more work or users doing more work, I think the developers should have to do the work. A handful of developers would only have to do the work once, but instead they have passed the buck to tens (hundreds?) of millions of unsuspecting iTunes users.

The really galling thing about this dialog box is that the text clearly shows that they know exactly what needs to happen but they are unwilling to assist me. For some reason I have to read some annoying message, go quit iTunes on my own (and wait for it to close “completely” – how am I supposed to know what that means?), return to this dialog box to click Continue, wait for the update to finish, then relaunch iTunes. Just throwing the word “please” in there at the beginning doesn’t make it polite to order me around like this. Even if Apple can’t do a graceful update, couldn’t they at least do all that stuff when I click Continue?

* I don’t really think that their developers aren’t smart enough to figure this out, but someone at Apple is to blame. I imagine “graceful updating” is on a long backlog of features to implement, but it never bubbles up as a high priority because there’s a workaround.

My Very Own WordPress Theme

When I recently updated this site and decided to start keeping a blog, I installed WordPress to run it. WordPress is an is an amazing tool in its power and flexibility, but it falls somewhat into the same trap as a lot of software in that it works really well for beginners and experts, but those of us somewhere in the middle are kind of left in the lurch. It’s not quite as bad about ignoring intermediate users as a lot of software, but there’s still a gap.

The Short Story

Given the choice between taking someone else’s theme and just applying it to my site or developing one from scratch, I decided to do the later. I got in a little over my head, learned more PHP than I wanted to spend time learning, but in the end I’m generally happy with the result. So, what you’re looking at isn’t just an off-the-shelf WordPress theme with a custom header image, but something I built myself.

Mind The Gap

There are a couple of theme frameworks out there that are trying to serve people like me — they abstract a lot of the options that you might want to customize about WordPress in a way that’s more friendly for people without coding skills. The two frameworks that I looked at (and worked with for a while) are K2 and Hybrid. They are both powerful and have a lot of things going for them. They are built on the premise of providing a much more robust base theme than the defaults that come with WordPress, while also providing a way for you to customize further by developing a “child” theme. The child theme inherits everything the framework does unless you override it.

Unfortunately, they suffer from being so robust and comprehensive that if you want to step outside their expectation of things you should be able to customize easily, it’s overwhelming. Not only do you have to learn how WordPress works, you have to learn how the framework works. In (briefly) working with them, I was constantly encountering problems where (a) I didn’t really know the consequences of my actions (was I breaking dependencies that I didn’t know about?) and (b) when I understood what I needed to do to achieve a certain goal, there seemed like a lot of extra work to make it happen. I kept finding that to do what I wanted I would need to modify the framework just a little bit here and a little bit there to get what I wanted. That kind of defeats the purpose of using a framework with a child theme, so I ventured out on my own. (I don’t really mean to disparage these in any way, because they are great, definitely worth checking out, and I probably wouldn’t have been able to develop my own theme so quickly had I not studied these themes).

What I Was After, What I Got

Although my goal isn’t really to release a theme to the public, I created it with the idea in mind that it be easily customized by someone else. I figured that if I did that, it would make my own life easier if I want to change it later. For me that meant:

  • Keeping it lightweight. The more places there are to look to have to change things to your liking, the more daunting it is (and the more likely you’ll miss something). Instead of the hundreds of files that make up K2 and Hybrid, there are 9 files in my theme (not including images). If I want to change something or if something is broken, there aren’t a lot of places to check. Their frameworks are about 1.3 MB and 1.7 MB (including images). My theme is about 170 KB.
  • Keeping it simple. There’s only one custom function in my theme, and it’s only a couple of lines long. Instead of creating a bunch of different templates for different page types, I kept just about everything in the index.php file and used a few conditional statements. This may not be the best coding practice, but I don’t need it to be particularly modular, and this way I can keep track of everything much more easily.
  • Keeping CSS semantic and separated. I broke my CSS into 3 files: a reset.css file (clears out all the default browser styles) a base.css file (building up things like basic typography, spacing, formatting that was stripped out in the reset file) and the theme’s style.css file which basically defines all the custom things you see. And everything is named in a meaningful way, rather than in some crazy shorthand. With just reset.css and base.css in place, the site would look like a web site from 1992, but all the content would be there and everything would work.
  • Putting lots of comments in the code to explain what’s going on. I figure if I don’t touch this for 6 months, I’ll be in trouble if I don’t include good comments.

Unfortunately, there are still some things that I’d like to change that are going to require some heavy lifting on my part. There are a few things that seem to be buried deep in WordPress’s functions that shouldn’t be (text strings and CSS styles). I’ll probably have to learn some more PHP to write functions to override the behavior I want to change, but I don’t think there are too many of these things. There are also a couple of minor CSS hacks to get things working across the 4 browsers I tested (Internet Explorer 7, Safari, Firefox 3 on Mac & PC). If I get to updating some of this, I may release the theme to the public.

A Few Thoughts on How WordPress Could Improve

I imagine that this has been the trend all along as WordPress has been updated over time, but these are some of the main shifts I’d like to see with WordPress:

  • Every bit of what can be displayed should be modularly accessible. I should be able to choose to show very granular bits of information or not rather than sometimes getting the kitchen sink.
  • Text and styles should be completely configurable. Text strings shouldn’t be written into WordPress functions, you should be able to confure them. Most HTML tags and CSS ids or classes shouldn’t be hard coded into WordPress functions, you should be able to use the ids and classes you want.
  • There should be a consistent way to configurable all this stuff. It would be nice to have a web UI to do it all from your WordPress dashboard, but even just having a standard way to call the display of each element, and pass text, HTML or code to display/execute before & after the element would be great. It’s possible that this last bit exists, but I just haven’t figured it out yet. My sense is this is that what I want is only partly there.

As I use it to blog, I’m sure I’ll more to write about WordPress and its UI problems big and small. But for now, long live WordPress!

Mozy Disappoints

mozy-logo
Over the course of the past few months (since early November) I have been on a kick to have a real backup strategy for the computers in my household. I had been using Time Machine with our old PowerMac for a few months (since upgrading to Leopard), but it’s actually not my main machine. I spend most of my time on my new laptop (a MacBook Pro), and it has been woefully unprotected since I got it a couple of months ago. Worse still is the state of our Windows XP desktop. We’ve had that machine for about 5 or 6 years, and I’ve only backed it up once, a couple of years ago.

If any one of these hard drives completely died it wouldn’t be a complete disaster, since many files are on more than one machine (music files, some pictures, some important documents). This hasn’t been a backup strategy so much as result of not having a good means for sharing files. In any case, losing a hard drive would be real pain. Many things would be lost forever, and sifting through the other machines to recoup what I could wouldn’t be much fun.

You would think that I would have learned my lessons. About 8 years ago I lost a computer to what I assume was some freak electrical surge. Every component in the thing was fried, including the hard drive. In that case, I did have a backup of important documents that was just a few months old. Frustrating, but not too tragic. And about 4 years ago, I heard the tell-tale clicks of a dying hard drive coming from my Powerbook. Luckily I was able to clone the drive just before it completely failed. Disaster averted!

Welcome, Mozy

Mozy Menubar

So, I finally got serious about backing up. I had read about this online backup service, Mozy, some time ago, and decided I would check it out. It’s a pretty good deal:

  • About $5/month for unlimited storage.
  • It’s supposed to be easy to set up and use.
  • It’s Mac & PC friendly.
  • Files are stored remotely, so we’re set if the house burns down, or something equally tragic happens. We may lose the furniture, but at least the MP3s are safe from smoke and water damage.
  • It’s encrypted (or at least they say it is) with super-strong 448-bit Blowfish encryption. I don’t know that much about encryption, but I do know that blowfish are fairly poisonous, so I figure my data will be safe from marauders.

I checked out a bunch of other online backup providers too, but I was sold on Mozy. So, I signed up for one year on two machines (for my laptop and the PC).

Getting Going

I figure that even though I’ve got many, many gigabytes of data to backup: (a) UNLIMITED storage for one low price, (b) I’ve got pretty fast DSL at home, and (c) even if it takes a long time (several days? a week or more?) to get through the first backup, after that it should be smooth sailing. Mozy does differential backups (just backs up the changed files), so after the initial pain, it should be all good.

As far as I remember, installation was pretty simple on both machines. There are even some nice controls for throttling the bandwidth so that your internet connection isn’t completely saturated with sending backup files all the time. Nice.

So, I start the first backup going on both the PC and the Mac. It’s slow. Really, really slow. I know that part of this is the nature of trying to upload a lot of data on a home DSL connection (slower on the upload than the download), but it seems inordinately slow. So I decide that it’s probably not a good idea to do the first backup on both machines at once. I cancel the laptop’s backup, and the PC starts to make better progress. The estimate is that it will take several days, which is fine. We were about to head out of town for a few days for Thanksgiving, so I figure that by the time we get back it will be done (or close). When we get back, the status says that it’s something like 60% complete. I’m a little surprised that it’s not farther along, but it doesn’t seem unreasonable, so I leave it to do it’s thing. A few hours later, it hasn’t made any more progress. Something froze, and it’s not clear why. After I get it started up again, I find that Mozy is starting over from the beginning. Tens of gigabytes of data were transferred, but none of it is saved on Mozy. I should have just given up on Mozy right then. But, after some trial and error on both the Mac and the PC I finally resign myself to the idea that Mozy cannot suspend and resume backups.

Did I mention that I planned to use Mozy with my laptop? Do you know what I do with my laptop frequently? I take it places. To do that, I close the lid and it goes to sleep for a bit. So, unless I’m willing to leave my laptop connected for a week or more just to see if it will eventually finish the initial backup, I’m out of luck. That’s just not reasonable. This is a complete failure for an online backup service.

At this point, I’ve already paid my money, so I figure I will keep playing with the settings and back up a smaller amount of data, just some really critical things. Well, critical files that aren’t too big, anyway.

The User Interface

Mozy Backup Sets Tab

Mozy Files and Folders Tab

Screenshots of the main interface
(Backup Sets tab and Files and Folders tab)
Mozy Edit Backup Set Dialog

Mozy Preferences

Screenshots of the other key interface stuff
(Backup Sets Edit dialog and Scheduling tab on the Preferences dialog)

The UI doesn’t have a lot going on. I usually appreciate that. But on first blush and after using it for a while, it’s just not clear what’s going on. That’s not good. My model for what I should be able to do is:

  1. I choose files and folders that I want to back up (either based on their location on the drive or based on file type), then add these to a new or existing backup set
  2. Mozy shows me a summary of what’s going to be backed up.
  3. I can choose to start backing up immediately, set it for a time in the future, or schedule it for a recurring time.

I’m pretty sure you can do most of that here, but it’s not clear.

Big Problems

  • Mozy can’t suspend and resume backups. This should just happen automatically. With a laptop, this makes Mozy useless for me. Even for a desktop, it’s not really acceptable. This is especially true for home users, where network interruptions are a fact of life. I have a DSL connection with a dynamic IP address at home. I don’t know how often Verizon forces me to renew the DHCP lease, but I’m guessing that may have something to do with why I never am able to finish a backup.
  • Mozy freezes and crashes all the time. Not really a UI design problem per se, except in the sense that it makes the product unusable.
  • The “Backup Sets” tab is not a list of backup sets. It is, instead, a list of search queries and folders that you want included in your backup set. As you can hopefully see, the construction of the queries is inscrutably arcane. You better like their default queries! You can also add folders on this tab. Wait, then why is there a Files and Folders tab?
  • You only get one backup set. Since that list of backup sets isn’t really a list of backup sets, I’m pretty sure you only get one configuration. It’s not the worst limitation in the world, but it’s a pretty severe limitation. You choose what you want to back up, and that’s it, as far as I can tell.
  • It’s not clear what’s being saved when you “Save Configuration”. You can select different things on the Backup Sets and the Files and Folders tabs. The “Save Configuration” button is placed outside of the tabbed area, leaving some ambiguity as to what you’re actually saving. Is it the selections on both tabs, or just the one you’re looking at?
  • The main application doesn’t include a control to start a backup immediately. You can only do this from the drop-down in the menu bar, unless the drop-down in the menu bar is broken, like mine (notice how everything is grayed out, so I can’t select anything?). I’m not a fan of design by feature list, but this is one I’d put on my feature list for backup software.
  • Scheduling is tucked away in the preferences. Scheduling your backup is one of the main tasks associated with backing up, on a par with choosing what to back up, and so should be a part of the main interface.

The Little Stuff

  • The application is constantly calculating file sizes. Whenever it displays something new (meaning on launch), it starts calculating. It does this for things whether or not they are selected, so it pretty much means counting all the folders, files, and sizes on your hard drive. Do you know what a crazy resource drain that is? I’ve had Mozy up in the background for 10 minutes or so, and it’s still calculating. If you try to actually click around in the UI too much while it’s calculating it will freeze the app and then crash.
  • The Save Configuration button quits the application. What? Is that a joke?
  • The table in the Edit Backup Set dialog is sorted by Location. I can see how this kind of makes sense, except when it doesn’t. The column headings are clickable, but they do not sort. There’s also no indication in the header of which column is the sort column. Annoying!

The Saga Continues Ends

I signed up for Mozy almost 3 months ago. I still don’t have a successful, completed backup. Instead, I bought some external drives. Time Machine works great on the Mac and Retrospect Express works on the PC. It probably took less time to set up the drives than it did to write this post. I still don’t have the security of off-site backups yet, but I’m better off than I was before, and certainly better off than I am with Mozy.

Update (Feb 2010): I gave up on Mozy and cancelled my account before the annual renewal. If you read the comments you’ll see that they’ve tried to make improvements, but it sounds like they still haven’t delivered on the promise of a good online backup solution. External drives are cheaper, faster and they actually work, so I’m sticking with that for now.