top | item 8027405

Show HN: Bvckup 2 – Simple Fast Backup for Windows

145 points| latitude | 11 years ago |bvckup2.com

102 comments

order
[+] latitude|11 years ago|reply
Author's here. A bit of a background on the project if I may.

I wrote the original version several years ago. It was purely for myself, to automate the way I was doing the backups at the time. I also threw together a website and put it online, just because and with no hope that something this simple would be in demand. Then went on doing other things like having kids and what not. Fast forward to 2012 and there's a couple of thousand people on the mailing list and a trickle of emails asking when an update would come out. So I sat down and did a proper rewrite. I thought it would take 2-3 months, but it took almost a year. And a half. The breadcrumbs of the process are over on the /wip page [1]. You might've seen it as it was on HN some time ago.

The app is notable for three things - (1) it has a single, simple purpose (2) it is light and very fast and (3) it has an excellent UI.

Also of some interest - I ran a 12-month long beta. Started with just 100 people testing private builds for 6 months and then moved on to a public beta for another 6, altogether yielding about 15,000 installs. If there's a single takeaway from the project so far - a beta this long is incredible. It helps shaping the feature set like nothing else and it flushes the most obscure bugs that no formal QA could ever find.

  ---
By the way of introduction - I come from the system programming background. I spent several years writing firmware for network appliances, I wrote a P2P VPN system from scratch and I generally prefer C to Java if you know what I mean. I also get a major kick from doing visual design for my projects and got 2000 followers on Dribbble to prove it :)

  ---
In any case, there you have it - my take on simple backup software. Let me know what you think. Thanks!

  ---
[1] http://bvckup2.com/wip
[+] Sukotto|11 years ago|reply
Consider adding a Corporate tier to your pricing plan

  Corporate
  $499 per year
  
  - priority support email address
  - early access to new releases
The features don't really matter that much. There are companies that will happily buy the more expensive plan simply because it has the word "corporate" in the title.

That's just an initial guess at a price. For a corporate plan it could likely go much higher without you having to provide any real extra service beyond "I will give you the corporate plan email address and promise I always read those emails before the emails of the other plans".

To take that a step further, you could rename the other plans to "Hobbyist", and "Small business".

You could do these things without changing anything else about the app (everyone still gets the same app). You don't even have to worry about the annual fee beyond setting up a little system to track when a company's year is up and auto-emailing the buyer's address asking for more money. If the address no longer works or if they don't respond it doesn't cost you anything and you've already profited from the larger upfront charge.

[+] locusm|11 years ago|reply
Ive been using bvckup2 since its release and also its predecessor, personally I backup to a Synology NAS then that pushes everything up to S3. This app has never let me down, it is also very lightweight and wont suck system resources.
[+] gavanwoolery|11 years ago|reply
Question: if I select my Google Drive or MS Cloud Drive as a backup folder, will that work? (too lazy to test) I suspect it would since both of these have hooks into the default filesystem, but I am unsure.
[+] norswap|11 years ago|reply
What would the advantages over a tool like FreeFileSync be if I don't care about real-time backups?

(Note that I understand that it's designed to be very simple and usable, and there's real value in that, but I'm specifically asking about the features.)

[+] hnriot|11 years ago|reply
not sure why you claim it has an excellent UI, it's a very simple UI with the usual toolbar (who has those anymore? I guess that's a Windows thing.) To me, it looks like one of the basic autogenerated MFC apps with a toolbar and list view that I made dozens of in the 90s. I guess I'm spoiled on a Mac and don't need additional tools (or UIs) on Linux.
[+] dufferzafar|11 years ago|reply
This is probably the nicest looking Windows application I have seen in a while. The website is pretty slick too. This is the kind of detail that you usually get to see for Mac applications. Great Job. Seriously.

Right after I saw the animated details (you know, the one that pops up when you click "Change") I wanted to see its source code :/

Can you please tell us what language? and/or 3rd party controls are you using? Please?

I'm guessing it might be on the work in progress page but the page looks too detailed, so I have bookmarked it for when I have more time than I currently do.

[+] latitude|11 years ago|reply
It's in C++, but closer to the C than to ++. The UI is done in a thin wrapper framework that runs directly over Win32 API. Custom controls, animations, etc. - all's from scratch. It's all much easier than it looks, just need to let MFC/ATL/XYZ go :)
[+] sciurus|11 years ago|reply
This may sound strange, but I don't understand how I'd use this for backups. It seems like all it does is sync one folder to another, potentially in realtime. That's essentially RAID1 at the filesytem level, but RAID isn't a backup! What if I accidentally overwrite the contents of a file; how would I recover the previous version?
[+] latitude|11 years ago|reply
There are backups and there are backups.

For some people, like yourself, archiving backup is the one true backup, while others make do with rolling hourly/daily/weekly backups or even something as rudimentary as copy-pasting folders by hand. Ideally, yes, everyone should be doing versioned backups to a zfs storage cluster. In practice, no, lots of people have just enough motivation to get an external drive and start making copies onto it.

That said, I am planning to add versioning and I am looking at adopting git's packfiles for that purpose. The idea basically is to use an open format for storing archived versions, so not to lock in the users. This is in its early stages, so it may or may not work out.

[+] egeozcan|11 years ago|reply
I'd use it to backup my folder on a ZFS volume through the network (which btw syncs itself to a remote computer) instead of doing this manually. So I'd say this is a tool, which helps a lot with your backups. Only if it supported the rsync protocol...

Anyone know of a good rsync implementation for Windows?

[+] nodata|11 years ago|reply
You do snapshots on your target.
[+] tobias3|11 years ago|reply
I'm most interested in the delta copying. After a little bit of research in the forums I'm guessing you save block hashes of full copies and then compare the source blocks to the block hashes and copy only if they differ. Or does the app install a driver to get the changed blocks in files without rereading the whole file?
[+] latitude|11 years ago|reply
It's former. It splits files into blocks (defaulting to 32KB, but that's configurable), computes hashes (two separate hashes per block) and stores them in a file in the backup config directory. These are used to detect modified blocks. It also computes a hash of an entire file and stores it in the same hash file. This is used to hedge against false negatives with modified block detection. The original version (from '09) didn't use the full-file hash, so it resorted to re-copying files in full after several incremental updates.
[+] windowsworkstoo|11 years ago|reply
VSS in Windows handles this natively, you just have to access the appropriate providers
[+] donniezazen|11 years ago|reply
I have been thinking about my own backups for some time. Do you guys prefer rolling your own setup for full system backup or use services like CrashPlan? Do you guys trust services like S3/Glacier? When backing up your system do you bar specific files from being backed up like GPG/SSH keys, etc.?
[+] balladeer|11 years ago|reply
I'm in the same situation. I use CrashPlan but I've heard CrashPlan has failed in the past so I just wanted another layer of security. I was thinking of finding some app like Tarsnap (and it should work with Glacier) that handles de-duplication really well.

I had read that Cyberduck can be used to backup to S3 and in-turn we can make a "rule" in S3 that after "N hrs" data in S3 should be sent to Glacier. But I don't how much price difference does it cause or whether we can directly back up to Glacier at all.

Duplicity is another thing I might want to explore. But absence of even a minimal GUI makes me a little uncomfortable.

[+] steven2012|11 years ago|reply
Do you do byte-by-byte comparisons between the original and backups to makes sure nothing was copied over incorrectly? This is my biggest worry is that I back something up and the backup has bit errors and it's essentially ruined but I won't know until I try to recover it.
[+] latitude|11 years ago|reply
This - backup verification - is one of few outstanding features that I will be adding shortly.
[+] czam|11 years ago|reply
How does it compare to http://freefilesync.sourceforge.net/ ? Apart from the delta copying the feature list sounds similar. I find the FreeFileSync UI quite usable.
[+] latitude|11 years ago|reply
Faster bulk copying, lighter build, lighter on resource usage, removable device tracking, much better UI (it's subjective, of course, but just try it out and see for yourself). Formal backup planner, dry runs, native support for running as a service with separate engine and UI processes.

  -- edit --
Let me give an example of what I mean by "much better UI".

Bvckup 2 has a hierarchical log viewer [1] and this thing does an absolute wonder for usability. Essentially you can go from a backup run summary to the specifics of a failure in a matter of 2-3 clicks without being overwhelmed in the process.

The issue however is that it was a total bitch to implement so that it wouldn't require keeping an entire log in memory at all times. See, if the log is flat, it's easy to display its relevant part by looking at the scroll position and then rendering respective chunk from the log file in a window. But once you have a tree, determining which item is visible becomes a hard problem, because random nodes can be opened and closed. Consider the case when you have a million-item log and, say, 15% of the nodes are closed. Moreover, the visibility look-up needs to have a real-time performance, because the window needs to respond in real-time to user dragging scroll button up and down. So, behind the scenes, this hierarchical log viewer is backed by a double-indexed b-tree index file - a construct that that has no prior art and that took me several weeks to converge to and to implement [2]. It could very well pass for a modest PhD thesis in a smaller university :)

So, I mean, there are smaller simple-looking differences between bvckup's UI and other apps, but the thing is that they are sometimes really hard to implement. They do however improve the overall UI experience quite a bit.

[1] http://bvckup2.com/img/r8/screenshot-3-log-viewer-2.png

[2] http://bvckup2.com/wip/#27012014

[+] tempestn|11 years ago|reply
I, too, have found freefilesync to be the best option so far for windows. Changed everything over from Synctoy recently. (I mirror everything I want to backup to a home server, then do cloud backups from there using crashplan.)

I may have to give this a try, although it would be nice to see some figures on just how much faster it is, to see whether it would be worth it.

[+] Ecio78|11 years ago|reply
What about Cobian Backup, Duplicity, Duplicati, rsync.net ?
[+] highace|11 years ago|reply
A simple product with a great looking UI and marketing site. You're gonna crush it.
[+] laacz|11 years ago|reply
It would be nice if you'd specify on pricing page [1] what is the price for in sense of time - a month? a year?

[1] https://bvckup2.com/purchase/

[+] latitude|11 years ago|reply
Erm ... it's an installable standalone program. The price is for lifetime. I thought it was obvious.
[+] titraxx|11 years ago|reply
Great application ! It's functional and beautiful.

As a little experienced developer (still a student), I find you Work in progress page very interesting and full of useful tips and information ! Moreover it shows all the work done on this app (especially concerning the UI).

You have a lot of concerns about the UI design, do you have any books or online resources concerning application UI that you really like you'd want to share ?

Thanks

[+] latitude|11 years ago|reply
Thanks, and, no, I don't, sorry. It's just a matter of observing how other people do it and then improving upon it by good old trial and error.
[+] bithush|11 years ago|reply
Lovely looking application. The animations are super smooth. Would you mind sharing what technologies and tools you use? Also, and this is a strange request but this is HN! but what editor theme and font are you using in this screenshot? http://bvckup2.com/wip/tree-db.png
[+] latitude|11 years ago|reply
It's C++ on top of raw Win32 API with very light use of actual ++ features and no external dependencies except for Windows SDK. About 75KLoC in libraries (UI, RPC, event loop, tasklets, etc) and 90KLoC in the app itself. The IDE font is one and only Dina - https://www.donationcoder.com/Software/Jibz/Dina/.
[+] nmussy|11 years ago|reply
I know this isn't the main purpose of the software, but has there been experiments with a bvckup being restored on a different piece of hardware? I'm not talking completely, changed the CPU and architecture, but more like different drive sizes and such.
[+] latitude|11 years ago|reply
It's a file-level replicator, it is just not meant for system/image backups, because those need to be aware of MBRs, partition tables and other non-FS elements.
[+] StavrosK|11 years ago|reply
Shouldn't it be "backvp"?
[+] yRetsyM|11 years ago|reply
This website is inspiringly simple
[+] thisjepisje|11 years ago|reply
What (if any) is the difference between the free download and the 20 dollar version?
[+] latitude|11 years ago|reply
If you are referring to the "last beta", then it's just what it says on the tin - it's the last of beta releases, meaning that it's unsupported and it's the end of the line, feature-frozen since mid May, no updates. The exact list of differences is over at [1]. The reason the last beta exists is that the beta period was quite long and there were people who got used to using the app for free, so that version is for them (though all beta users got 50% the production version).

[1] http://www.donationcoder.com/forum/index.php?topic=36388.msg...

[+] heyimwill|11 years ago|reply
What a great looking website!
[+] zo1|11 years ago|reply
What exactly do you mean? It looks quite similar to all the numerous bootstrap.js websites out there. Not that I'm saying it's bad, or anything...