No, sorry, don't blog and can't mentor you. I just don't have time for either.
1,791 karma · joined March 23, 2010
No, sorry, don't blog and can't mentor you. I just don't have time for either.
Re: animations - yeah, they are all custom, but there's not really much to them. The hardest part was to do flickerless fade-ins and -outs, the code for that just ain't pretty. Window transformations are just DeferWindowPos with the right combination of flags and a bit of painting cooperation from custom controls. Still though... the amount of work required to get these animations working was ungodly compared to $('div').animate({ ... }); :)
In Svpply and Svbtle it simply stands for "u", which is a deferral to how Romans would've written it.
Re: copying changed portions only - yes, http://bvckup2.com/#delta
Re: compare file contents - not for deciding if the file was modified or not, no. There was just no demand for this. That said, it's easy to add and it can be done more efficiently than doing a raw comparison between the original and the backup copies. That's because the delta copier computes file hash as a part of the process, so the app can simply go through the source file, redo the hash and see if it's changed since the last run. But as I said there were zero demand for this, so the comparison is done based on timestamps and the file size. Depending on the file system support the app automatically selects between comparing just the modified time or both the modified and created. HTH.
(Edit) Better now?
Two-week unrestricted trial
Anytime upgrade to paid status[1] http://www.donationcoder.com/forum/index.php?topic=36388.msg...
Aye, I totally hear you.
Every backup has a set of risks that it mitigates. If the goal is to mitigate human errors, then, yes, versioning/archiving is a must. However if someone just needs to have a daily snapshot of their photos and documents to protect them against fire of theft, then you can certainly call it a file sync, but it still is a backup. To each his own. "Backup" is not an exact term, but rather a range of data protection techniques.
All that said, the archiving is coming up.
I know about bup, thanks.
-- 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.
Incidentally, I do own backvp.com.
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.
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