Git-annex assistant: Like DropBox, but with your own cloud
kickstarter.com
kickstarter.com
Here's a post from his personal blog that hints at how he can afford to work on this project for a year on only $20,000- http://joeyh.name/blog/entry/notes_for_a_caretaker/
Our network was driven by dual US Robotics courier modems bridged until the local phone company gave us DSL (we were located close to the switching facility).
There were 3-4 of us devs living there. We cut our own wood, got our water from a natural spring, drank lots of coffee and local beer, and coded 24/7.
Its there where I started to really grow as a dev because there was little distraction and the enviro was very inspiring.
My goal is to get back to the mountain (move my family) and focus on writing good code.
My family just visited the 'cabin' last month while vacationing in NC. Since then my wife and are are dead set on returning to the mountain.
For me - this life is crazy busy. Constant 'suits' wanting new things built and never fast enough - and never able to understand the amount of work it takes to make 'that magic button'. Seems apetites are insatiable. That's fine as its job security - work is work afterall.
However, it seems that living in a tranquil environment helps run this marathon.
http://joeyh.name/blog/entry/solar_day_2/ http://joeyh.name/blog/entry/solar_year/
What...?
Edit: I have another question/concern, does the implementation in Haskell mean that the end product will have a runtime dependency on GHC or the Haskell Platform?
(Still many weeks more polish and additional functionality, but kickstarter funded me for a whole year!)
Good to hear progress is promising though :)
Edit: Oops, SparkleShare is mentioned on the page. Looks like this will work better with larger files. He does mention that SparkleShare is a GUI and not 'just a folder', although in my experience it is 'just a folder', like Dropbox.
Very interesting space!
Joeyh: "One (git-annex) is a large-ish, serious work, and I have been very pleased with how haskell has made it better, even though there was a learning curve (took me two weeks to write the first prototype, which I could have probably dashed off in perl in two days), and even though I have occasionally been blocked by the type system or something and had to do more work.
One concrete thing I've noticed is that this is the only program where I have listed every single bug I fixed in the changelog -- because there have been so few, it's really a notable change to fix one!"
We're excited about this project.
http://www.owncloud.org/dev/sync-clients/
(That said, git-annex assistant looks very cool.)
[1] https://github.com/bazaarlabs/gitdocs
[edit] It looks like git-annex solves the large binary blob problem with git (which I don't think gitdocs does) so maybe they could be integrated?
It was through Bup that I originally discovered git-annex.
Example: You check in bigencryptedfile.big, which is 100Mb. Then you modify it, and check it in again. Repeat 8 more times.
In git with and without git-annex, you can check out the repository at any time and end up with the local files from that checkout.
In normal git, your local repository is now a gigabyte (the encryption in this hypothetical file prevents git from being able to delta-compress; in reality git would likely be able to compress it somewhat, but it still may be hundreds of megabytes).
With git-annex, all the previous copies are stored on the SERVER, but not in git itself. Even if you don't care about local hard drive space since hard drives are cheap, consider that if I then clone your repository, I would only need to download 100Mb instead of 1Gb. The downside, of course, is that you need to be connected to the server to get historical versions of a particular file.
When you're dealing with, say, a game project with 20Gb of binary data that's been versioned 20x on average, you end up with 400Gb to clone your art repository, which is a non-trivial download size. And if, for some reason, you want your repository cloned to multiple folders on your drive, then again you're using 10Gb each instead of 400Gb each. Even on cheap hard drives, multiple folders of 400Gb each adds up quickly.
EDIT: OH, and one other advantage of doing it this way: If you just use rsync, and you accidentally overwrite a file and don't notice for a day or two, rsync will happily destroy your backup file as well, while git-annex will just store a new revision. Should have thought of that first. ;)
I find it really useful for archiving large files - an entirely different use case than git.
what is? well, I don't really think anything is. it works with svn and dropbox, but that doesn't mean that is a good choice either.
obviously git etc. is mainly designed for text files. i've long thought about what the right way to approach this issue is.
edit: will read more about annex