Synchronizing Data


This whole Internet business has opened up some fascinating ways of letting users manage their data, but it has also created a bit of a mess. For example, when I’m traveling, I want to be able to send and receive e-mail. And when I’m back home, I’d like to be able to have access to the same e-mail that I received and, if possible, the e-mail that I sent while I was traveling.

As programmers, we can do ourselves and others a favor if we recognize the problems of data synchronization. E-mail programs are just the start. As somebody who travels a lot, I’ve worked hard to come up with ways to keep my data synchronized.

In this section instead of laying out some rules and suggestions, I’d instead like to lay out some ideas for you to ponder. Software that makes heavy use of the Internet is still relatively young, and we, as engineers, need to really consider how we can get the most out of the technology. Consider these scenarios:

  • I want to be able to send and receive e-mail from my laptop while traveling and then have access to the same e-mail from my desktop that I sent and received.

  • I want to store all my files somewhere on the desktop and still have access to them when I’m traveling. (And please don’t make me use version control software.)

  • I want to save all my bookmarks and favorites in one place and have access to them no matter where I am.

What I’m about to say next isn’t intended to make me sound like a walking advertisement. Instead, I want to use this a starting point for a solution to many of these problems. Here goes: The closest I’ve come to a central solution to all this mess is the services offered by Yahoo!. Yahoo! lets me store my bookmarks on its toolbar, which is a downloadable add-on to Internet Explorer. The bookmarks are all stored remotely on the Yahoo! server. Thus, if I make a change, the next time I log in from another computer, I’ll see the change. I don’t have the problem of storing separate versions.

This solution isn’t ideal, however. The biggest problem that keeps me from using this is that I have more than one Yahoo! e-mail address. I paid extra for the additional storage, and I use that address for some of my professional work. Another one I use for friends. And the Yahoo! toolbar works per e-mail login. If I switch to another login, I lose my favorites. But it’s a start, and a very good one.

The e-mail problem also has a solution in Yahoo!, but again, it isn’t ideal. I have my own domain name, and I use that for my main e-mail address in addition to the e-mail accounts on Yahoo!. I have my Yahoo! e-mail set up to check the POP3 e-mail on my own domain. That works fine. But recently I discovered that my hosting provider includes web access to my e-mail. And that works well, too. Both of these work well for when I’m using somebody else’s computer, and I have both set up to leave the e-mail on the server. That way, when I return home to my main desktop, I can download all my e-mail and still get copies and have them all stored neatly in my main e-mail program. Similarly, when I’m traveling with my laptop, I have an e-mail client on there that can send and receive e-mail through my own domain’s server, again leaving the incoming mail on the server.

The problem, however, is the outgoing e-mail, and to this day I don’t have a solution. When I’m traveling, if I’m using Yahoo! to compose e-mail or use the web e-mail on my domain or my laptop, the outgoing e-mail gets stored in the system that I’m using to compose the e-mail. And when I return home to the good old desktop, the outgoing e-mail doesn’t end up on the desktop. Bummer. Sometimes for an important e-mail, I forward it to myself. But that’s not good, because then I can’t find it as I would expect it to be in the outgoing e-mail, but instead it’s in the incoming e-mail with my own name as the recipient.

Storing my files is a separate problem. Because I’m a programmer, I’m well aware of version control software. But that’s just too cumbersome. When I run out with my laptop, I don’t want to have to first check my files back in from the desktop and so on. As I mentioned in “My Own Hourglass Problem Solved” in Chapter 4, “Managing Your Software’s Time,” the best solution I’ve come up with is to keep all my work files on a single CompactFlash card, which I normally use for my digital camera.

Now add to all this mess the “Wireless Revolution.” I love wireless. I have two aspects to my own wireless world: Not only do I pay for a service that lets me be online at various coffee-houses, I also have for $6 per month web access on my digital cell phone. Using the cell phone, I can check my e-mailthrough none other than Yahoo!. (I won’t go into the Yahoo! e-mail interface on the cell phone; however, it could stand some improvements.) Fortunately, the cell phone doesn’t really make the mess worse, because the cell phone doesn’t store any e-mail; instead, it’s just like using Yahoo! from any other web browser. But the cell phone is a factor in all the excitement.

REAL WORLD SCENARIO: Tear Here to Destroy the Instructions

start example

I like to cook. The best way to cook is to go buy one of those nice spice packets, because then you don’t have to mix your spices yourself. Okay, I’m just kidding. That might not be the best way to cook (I know at least one person who graduated from the Culinary Institute of America, and he doesn’t use spice packets). But you have to admit, over the years, the spice packets have gotten pretty darn good.

But somebody somewhere made a mess. This time, however, the problem didn’t originate with engineers but more likely with graphic artists. (See, we’re not the only ones to blame for all the world’s problems!) Here’s the problem: When you tear open the end of the spice packet, you also tear off the top of the instructions!

Really, now. Did these people even consider this situation? This isn’t a matter of designing the best protocol to transfer information over lines that may have a poor signal-to-noise ratio. No, this isn’t a major engineering feat. Instead, it’s a matter of spending just a wee bit more time laying out the graphics and text on the back of the packet so that I can still read the instructions.

The solution? It’s an easy one: Don’t put the instructions at either end of the spice packet! (Okay, I know, I could just tear the other end, but most humans by nature open things at the top. So don’t sue me.) Just put the instructions in the middle. (Not that I expect that the graphic artists at these places will actually be reading this book, but if you happen to know one, could you mention this to him or her? Please? I’ll cook a nice spaghetti dinner for you in return. Thanks.)

end example




Designing Highly Useable Software
Designing Highly Useable Software
ISBN: 0782143016
EAN: 2147483647
Year: 2003
Pages: 114

flylib.com © 2008-2017.
If you may any questions please contact us: flylib@qtcs.net