Stories
Slash Boxes
Comments

SoylentNews is people

This discussion has been archived. No new comments can be posted.
Display Options Threshold/Breakthrough Mark All as Read Mark All as Unread
The Fine Print: The following comments are owned by whoever posted them. We are not responsible for them in any way.
  • (Score: 2) by Common Joe on Tuesday September 08 2015, @05:41AM

    by Common Joe (33) <common.joe.0101NO@SPAMgmail.com> on Tuesday September 08 2015, @05:41AM (#233627) Journal

    For many years, I haven't liked any of the backup programs I've come across for various reasons. I've been collecting notes for possibly writing my own. After I write it, I'd like to open source it. (I have plenty of pages of raw notes that I'd like to type up into cohereant documentation. I've given it a lot of thought over the years.)

    I'm not saying that I'll find time to write it. (I'm up to my eyeballs in things to do.) What I'd like to know, though:

    • What kind of features you would like to see in a modern backup program?
    • Is there real interest in a program of this sort? Who would be interested?
    • Since I don't have a job, how could money be made from this if I do write it? (Open sourcing is important to me. For one, because of trust reasons. It would allow others to verify my work and it could be seen that I didn't put any back doors in there.)

    Ideas at the 30,000 foot level:

    • multiple file versions
    • files linger for a certain amount of time within the backup after being deleted (user specified time, of course)
    • deduplication (file level and chunk-sized* level)
    • Hash checks of files on both the backup and original. Auto-fix the files that became bit-rotted.
    • GUI and command line versions of the program
    • single-user or client-server mode. Target would be home users or small / medium sized firms.
    • continuous backup (i.e., no full / incremental backups; when you restore, it would look like a full backup has occured, but you could pull single files, selected folders, or everything if you want)
    • easy to use for newbies + advanced options for pros
    • runs on multiple operating systems (At least Windows and Linux); Haven't figured out how to capture security details. I'm thinking about writing it in C# because that is what I know and it is portable. (Well, portable in theory.)
    • easy to read instructions that details what all the options do.
    • easy to read dashboard that tells you the status of the program and the status of your backups.
    • Pop-up nags that remind you that you haven't plugged in your backup drive in a while.

    Encryption and compression would probably use third party tools. Not quite sure how I'd make that happen yet. I'm thinking 7zip and a truecrypt variant. Because of some heavier-duty reporting and power-failure protection, I'm thinking about also using PostgreSQL to help me. Obviously, not all details have been fully thought through.

    I'd aim to use external drives or NAS for storage. (The documentation would have some heavy "NAS is not a backup" warnings.) I'd like to see how possible it is split files across multiple drives, but I'm not 100% sure yet how I'd do that. (Sure, splitting files onto multiple drives is easy. Splitting deduplicated chunks* of a multi-gigabyte file with multiple versions without swapping out the external drives a bunch of times? That's hard.)

    *chunking: When a user edits a file, only the portion of the file that was changed is backed up.

    Starting Score:    1  point
    Karma-Bonus Modifier   +1  

    Total Score:   2  
  • (Score: 2) by Common Joe on Tuesday September 08 2015, @08:00AM

    by Common Joe (33) <common.joe.0101NO@SPAMgmail.com> on Tuesday September 08 2015, @08:00AM (#233673) Journal

    Gah. Just remembered some other features while I was working out that I thought you might find interesting:

    • Ability to stop the backup "in the middle" and have it pick up again right where it left off. In client-server mode, it's handy for laptops on the network that need to come and go. It can literally be interrupted in the middle of the file. (It will have to start over on the file when it comes back, of course.) On a single computer, it allows you to quickly stop the backup so you can disconnect the drive and get underway with your laptop.
    • Skips locked files and comes back to them. If they remain locked for too long (which is user defined; 1 hour? 1 day? 1 week?), then it notifies the user.
    • Copies all necessary files to the backup drive so that no Internet is required for restore. In other words, the install files are placed onto the backup. Scenario: House burns down, you get a brand new laptop, grab your offsite backup, but don't trust your Internet at the hotel. Well, the idea is that you don't need Internet for a restore. Plug in your external drive and run the install files from there. Then restore the data from the drive. (This is tricky because I'd need to include the truecrypt-replacement, compression, and PostgreSQL on the drive. I'd also have to honor the license agreements of those programs. I think it can be done on Windows. I'd have to see how viable it is in the different flavors of Linux.)
    • Ability to give user control to consume more resources for a faster backup or consume less resources so the computer responds better. (I have some ideas on auto-adjusting that so you aren't always fiddling with that setting.)
    • Plug an external drive in and the program asks you for a password. It then gets into the encrypted part and immediately starts backing up. Pressing the start button is not necessary. It just "auto-runs". And if you have different external drives, it will recognize which external drive it is and do the appropriate backup without asking. Of course, in the interest of giving choice to the user, you can turn off the auto-run and do things manually. Or there would be an option to delay startup by a user-specified amount of time so that you can turn off the auto-run and make adjustments to the settings. There's all sorts of little ideas I have at the ground level. The goal of these little details is to get the mundane crap out of the way for those who don't want to bother with the details every time, but give a tremendous amount of control to the user if desired. Set to run the way you want and not the way I else want.
    • A settings file that can be easily copied to other places. This settings file can be modified by the command line program or by the GUI program.
    • There would be tons of configuration things for an advanced user. For instance, the user can set a minimum of how many old versions of files there are to be kept and vary it by folder / file. (The program would normally try to keep as many versions as possible, but sometimes a backup just needs the extra space and it has to delete old versions.) The program would delete old files to clear space, but only up to that setting. Actually, there's more to it. There would actually be two alarms built in. The first alarm simply tells the user that disk space is running low. ("Low" is defined by the user.) The second one actually stops the backup so that old versions of files are not arbitrarily deleted. It throws up a major red flag to notify the user that the backup has stopped and then the user can decide what to do. In other words, it tries problem-prevention first, and reaction-to-problem second.
    • In a server-client mode, gives some control to the client so that if the user has a presentation that day, they can stop the program to get full resources of the computer. If the client prevents the backup from happening for too long a time (again, "too long" is defined by settings), then the admin is notified. Then the admin can have a chat with the sales guy about how important backups of documents are.

    Ok. I'll quit writing. I've spent way too long on writing this stuff. I've talked to other computer people in person, but I haven't found anyone interested in these ideas. I thought I'd throw it to Soylent News and get a reaction from here. Maybe these ideas are past their prime. I dunno.