Registered Member
|
This is my second idea regarding Nepomuk/Strigi and files. The first one was this: brainstorm.php#idea85896, dealing with duplicate files.
Summary: Synchronization and backup, I feel, are much needed for home users and others. I couldn't find anything satisfactory and simple enough for me so far. I think Nepomuk/Strigi infrastructure is ideal to create a synchronization & backup framework and tool for KDE. Synchronization and backup are a bit different, but share many similarities in operation, of course. I'll focus on synchronization mainly, and point the differences I see. Motivation: Nepomuk/Strigi infrastructure seems to me to be most suitable to maintain copies of files in different locations, specifically maintaining the most recent version (Synchronization). It might be possible to maintain versions of files, similar to svn, but much easier to deploy for the Linux home user (Backup). Being a solution that comes built-in with the desktop, I think this could give another edge for KDE and Linux. For me, syncing files and creating backups easily is essential. I couldn't find something satisfactory, having gotten used to the simplicity of MS SyncToy powertoy, which enables creating syncs and backups for all needs in less than 10 minutes. Nevertheless, I believe the potential in KDE is greater, and that just: we could do better than that. Description: Nepomuk/Strigi update the DB of files continuously. Adding the ability to sync (or to backup) requires adding some functionality. I'll specify how I see it, though I'm not updated what the current cutting edge status is. First, use cases: Setting no.1: I'm a home user and a student, and I'm running around a lot. Therefore I have 2 computers - a desktop and a laptop, an external hard-disk for backup, and a flash drive for mobility. I have several types of data: my courses summaries and books in pdf, my music collection, and pictures. The requirement: I need all my pdfs on both computers, in total sync. I need some of my pdfs on my flash drive, in sync. I need all my data in backup and in sync on the external drive - my studies material need to be backup, but to the latest version only; my photos need incremental backup, in case I ruin one by editing; my music need to be synced to the local collection, because I don't care ripping some music cd again. Method: Going to Nepomuk/Strigi 'File Operations'/'Sync&Backup' tab I choose my studies folder and set it to backup to my external drive, and sync to my laptop's studies folder, which is shared over the network; I choose several specific courses' folders to sync to my flash drive; And so on. GUI (Will try to create a mockup): Similar to choosing folders to crawl, there are 2 trees to choose 2 locations, and buttons to choose the operation (sync or backup) in between. I think the locations should be tabbed, each tab for a different set of operation and settings, with the operations and settings appearing on the tabbed area. For example, I would choose the studies directory, choose the sync operation, choose the laptop's folder, and set the settings; Then choose the backup operation, choose the external drive's folder (in a different tab) and choose other settings (on this different tab); Then I'd choose some sub-folders, choose sync and my flash drive's folder on a 3rd tab. Setting no.2: I'm running a small network, with a server and several clients. I need to backup some user's home dir to the server, but not all of it, since the user canceled his automatic backup. Method: Reaching for the home dir in Dolphin, I open the backup folder on the server as the other directory. I choose one of the sub-folders to backup and drag it to the server's directory. The menu contains the usual operations, with the new 'Backup', 'Sync', 'Create' (with 'Auto-sync' & 'Auto-backup' as sub-menus). Setting no.3: I want my favorite music on my mp3 music player, always. I listen to a new song, and tag it as favorite or rate it as 5-stars. Method: When I connect the mp3 player to the computer and mount it, the computer syncs all songs tagged as favorite and rated 5-stars (which are the 'favorite playlist') to the player, without my interference. Operations' settings The settings for operations I can think of are the operation's trigger and for backup - the type. Trigger can be 'None', 'Scheduled' - with an option for different schedules, 'Device' - like when dis/mounting a flash drive (Using Solid? This is very important and novel, as far as I know), 'Login', 'Logout', etc. For backup, I see only the option to keep versions or not. Under the hood: Realizing how much work it is, I think most of it is done already in the form of Nepomuk/Strigi and Kcron (and rsync). The simple way I see it is that strigi and programs accessing Nepomuk update files and setting a 'changed' flag for these that are marked for sync or backup. When triggered, the operation queries Nepomuk DB accordingly, and performs the operation for these files only. The sync/backup thus could utilize more advanced queries, as change in attributes other than date or size (tags, ratings or the like). The data of the operation (i.e. folders, devices etc.) could be stored as a different object defining the query, and timed in Kcron. Thus I believe can be created a very clean, beautiful and useful sync & backup solution, which requires minimal system resources and human interference. |
Registered users: Bing [Bot], Google [Bot], Yahoo [Bot]