Introduction and an Idea

Thomas Cameron tom at drdabbles.us
Mon Nov 10 05:01:12 UTC 2008


Hello all,

This is my first post to ubuntu-devel-discuss, but not my first posting
to a linux development list. I posted to ubuntu-devel after being
directed there, but that group is literally ubuntu developers only.
Anyway, I was heavily active on the lists in the earlier days of BusyBox
and uClibc, as well as a few other packages along those lines. Rather
than drone on, I will try to keep this post mostly business.

I would like to discuss Brainstorm Idea #1
(http://brainstorm.ubuntu.com/idea/1/) with you. I feel that backup and
restore is an extremely important topic as we move further and further
into the digital future. Media such as digital photos, home movies,
school and university work, and much more are all at risk. This is
something that many of us know too well.

In the past couple weeks, I have picked up the code to Sbackup- the
Simple Backup utility. The application is very basic, and needs a bit of
work to bring it up to snuff with the rest of the utilities included by
default with Ubuntu, but I have started the work. What I propose is a
two-pronged effort: Distribution buy-in and Vendor buy-in.

Distribution
------------
Ubuntu should include a simple yet powerful backup utility in the
default installation. I know the default package count is climbing, but
clearly this is an important area. Upon successful completion of the
install, the user should be prompted to configure some backup settings.
This task could be completed by the installer itself or by a
notification that runs when the system is logged into.

I could foresee an icon in the system tray area that would display a
notification to the user much like the binary driver notification. When
the user clicks on this icon, a backup preferences dialog would appear,
allowing both novice and experienced users to tailor their backup
selections, backup times, media, etc..., to their individual taste.

This dialog's first page should be new/novice user friendly, allowing
them to choose to back up the files in their home directory. Perhaps
radio buttons offering “Backup all my user files,” “Backup my documents,
photos, and music,” and so on.

On the second page, a schedule should be offered-- “Once a day,” “Once a
week,” “Once a month.” By default, selecting “Once a day” would make a
single “full” backup once per week and capture differences on a daily
basis. This is not only space efficient but also time efficient. If a
backup takes too long, users will inevitably get frustrated and stop it.
IT experience has taught me this hard lesson time and again.

The third page would simply allow users to choose their destination from
an extensive list. This list would be created on execution by a list of
destination plug-ins. I feel using a plug-in architecture will give the
best trade off between coding complexity and application extensibility.
Many advanced users make use of services such as Carbonite Backup,
Amazon S3, Jungle Disk, and a host of others. Allowing outside parties
to write their own plug-ins for this backup application makes it much
simpler to add and remove these services as the come on and offline.
Also making extensive use of GVFS simplifies most of the file-system
work, which allows developers to spend more time on the applications
featureset rather than normalizing access to network and local storage
resources.

Finally, the fourth page would offer advanced users a more in-depth
experience with the previous choices-- Creating custom schedules,
backing up and excluding extra directories, etc... This page could also
offer more in-depth configuration of the previously selected
destination. Also of possible use would be the ability to add an
auto-run action to a specific external disk. This feature could offer a
user the ability to automatically start a backup every time their backup
disk is plugged in, thereby further simplifying the task of teaching mom
and dad how to back up.

Vendor
------
On Canonical/Ubuntu's part this effort would take a bit of work.
Obviously the community needs to agree on a backup platform, and a host
of other options. It may also be important to steer people toward
keeping the utility written in Python, a language Canonical/Ubuntu seem
to have adopted with much success in the community.

An interesting project may also be for Canonical to reach out to
hardware vendors that currently sell pre-installed systems, and have
them offer a “free” backup disk at the time of purchase. A disk around
250GB would probably be the sweet spot right now, as they are low cost
to vendors, and have enough space for most users' photo, music, and
document collections. Obviously, more powerful users such as developers
and serious media consumers may want to opt for a larger drive, but I
think getting the idea out there is most important here.

As of right now, Microsoft has drastically improved the built-in Windows
backup software, and Apple has Time Machine, which is a suite that
includes both software and hardware. I feel it is important for
Canonical/Ubuntu to get behind this effort sooner, rather than later.
The Linux community, and more specifically the Ubuntu community have
quite a lot to give here. Developing a flexible, powerful, and simple
backup solution for Linux would would poise Ubuntu as a stronger
user-friendly distribution, which positions Canonical as a stronger
leader in Linux development.

I understand this list can not speak for Canonical, its partner
relationships, or anyone involved in either of those two areas. But, I
think with a push from the Ubuntu / Canonical organizations, we could
make some strong progress for the next release. In the mean time,
though, I think some serious development needs to happen. It may be a
chicken-and-the-egg situation, but I'm willing to help get things
rolling. If we can produce an application that satisfies most users, I
think we have won a serious battle.

I'd like to discuss this with others out there. So far I have a working
script that tars up a specified directory, calculating a hash and
gathering filesystem details, and writing this metadata out to an sqlite
database. This is really only a few hours worth of work, as I had to
learn a new language for our phone system at work this week.

Tom





More information about the Ubuntu-devel-discuss mailing list