Ubuntu One file syncing code Open Sourced
insights.ubuntu.com
insights.ubuntu.com
Stand up a dedicated server running syncthing and poof!, you have a centralized syncthing.
Here's the bug report that was closed without any fix:
https://github.com/syncthing/syncthing/issues/468
And user reports of this show up pretty often:
https://github.com/syncthing/syncthing/issues/1841
https://forum.syncthing.net/t/arm-linux-cpu-usage-99-for-man...
https://github.com/syncthing/syncthing/issues/1841
A sync tool that uses on the order 2MB of RAM per GB of files or 4kB per file isn't really usable. A cheap NAS these days can easily have 6TB of RAID6 storage but it won't have 12GB of RAM. Clearly something in syncthing is keeping way too much stuff pinned in memory and the developers so far haven't focused on that. There's no apparent need for this memory usage either as there's already an on-disk database with the state of the sync folder.
I've never noticed performance issues with syncthing, excepting my old original Nexus 7 tablet which does seem to suffer a bit due to its poor hardware. I keep my photos volume (~250GB) synchronized between three desktop systems and it's never presented a problem with those.
Given that the grandparent mentions issues with larger volumes, there may be some sort of "tipping point" beyond which performance degrades, and I just have not encountered it.
Regardless I'd encourage people to give Syncthing a try. The project is under very active development and the issue the grandparent mentions may be resovled by now, and of course that issue might be environment specific and not generally applicable.
Actually it doesn't. There are some add-ons to do it but the base tool does periodic full scans.
> I've never noticed performance issues with syncthing, excepting my old original Nexus 7 tablet which does seem to suffer a bit due to its poor hardware. I keep my photos volume (~250GB) synchronized between three desktop systems and it's never presented a problem with those.
250GB between desktops with multiple GB of RAM probably works. It will soak up plenty of resources though.
>Regardless I'd encourage people to give Syncthing a try. The project is under very active development and the issue the grandparent mentions may be resovled by now, and of course that issue might be environment specific and not generally applicable.
The issue is pervasive and apparently quite deeply rooted in the way syncthing is built as it's indeed under very active development but this hasn't improved.
> When a file has been modified on two devices
> simultaneously, one of the files will be renamed to
> <filename>.sync- conflict-<date>-<time>.<ext>.Conveniently, it has a built-in backup system you can enable that keeps the last 'n' copies of files. I've got mine set to 5 so even if something goes horribly wrong, I can fetch from the backup.
I think it's just that the software is not yet mature and production-ready, and perhaps I was throwing too much data at it at once. Seeing the project progress, I'm confident that when it becomes more stable it will be a very nice piece of software, but it's not there yet.
[1] Okay, this is true for BitTorrent Sync versions < 1.4 -- more recent versions have been less reliable, particularly with regards to cross-platform syncing.
We haven't experienced any bugs so long as we both keep our versions in sync. Once one has a later version than the other, all bets are off. That's a problem that's tricky to solve correctly though.
Aside from that, we were disappointed by the constant needs to restart SyncThing when saving configuration changes, some lack of UX features (e.g. being able to move where your sync share is stored -- I made an issue on Github and was told to edit the config file manually and restart SyncThing -- I asked if a pull request would be accepted if I added the feature myself, and got a vague response.)
Overall though, SyncThing has worked excellently for us.
I was trying to sync seven machines in three different physical locations, some with slow internet connectivity; only one machine in each location had its syncthing ports open to the internet through NAT. I'm not sure it's a supported use case: syncing in the same LAN generally worked fine, but changes often didn't propagate correctly to other locations; for instance a folder name change sometimes was not propagated to the remote locations, and after some time the machine in which the rename had happened detected that the rest of the machines in the syncthing group had a folder which didn't exist locally (the folder with the old name), and downloaded it from its peers. The result was that the folder was duplicated everywhere, with both the old and the new name.
The same happened sometimes with deletions: sometimes they didn't propagate over LAN boundaries, and this resulted in the deleted files reappearing after some time.
A machine staying "syncing..." forever also happened sometimes, requiring a manual restart of the service. I couldn't reliably reproduce it though.
I like the project and I'm sure if I reported the issues in github they'd have given support. I wish I had the time for properly reporting and investigating, but I really needed a syncing solution I could trust for a small business and I needed it ASAP, so I settled for owncloud (which for the moment has not given me any surprises). I will try to find some time to reproduce the bugs in my personal machines and report them, but I really didn't have the time when I found them.
maybe the active spideroak project with nimbus is something for you
https://github.com/SpiderOak https://github.com/SpiderOak/nimbus.io
There were a few posts on the Syncthing forums requesting it as a feature but they didn't really get anywhere:
https://forum.syncthing.net/t/possibility-to-sync-local-fold...
In the mean time, I'm using GoodSync for sync'ing locally:
http://www.goodsync.com/download
It works quite well for that purpose, but since it's proprietary I'm not comfortable with blindly trusting it to sync my important files over the internet.
Still waiting for that perfect open-source p2p sync app that can also do local sync'ing.
I personally use duplicity to make versioned backups of my homedir (on OSX, debian and Arch machines) and keep versioned dropbox-like backups via owncloud. My homedir backups are GPG encrypted automatically.
1: https://git-annex.branchable.com/
"It will continue to be maintained and supported for the foreseeable future, and we occasionally release new versions with bug fixes, improvements (sometimes large ones), and contributed patches."
Seriously ? How about Rsync?
By the way, as say one of the comment, it is strange they didn't mirror it on the git new launchpad system.
I would assume they're using bazaar as that's probably what they've always been using for this repository. Then again, only they know.
They don't. This is a code dump for a dead project. From the FAQ:
"Will you take patches?"
In general, no.
We won’t have anybody assigned to reviewing and accepting code.
We’d encourage interested maintainers to fork the code [...]It's also worth noting that this is a centralized, server-based file sync, unlike the peer-to-peer Syncthing and BTSync. It's more like Dropbox.
Why did it take so long to release?
Our engineering team was tasked with supporting
the release of the phone and then the now
announced Snappy project. The team cared deeply
about open sourcing this code and spent time
wherever they could spare in moving it forward,
cleaning up the code so it would work enough
outside of the very specific production
environment and untangle it of some commercial
code that was used at some point.On the other hand, Syncthing is a clear demonstration where deploying Go code is dead easy, although I really don't like Go's packaging all that much.
The one thing I still want from Syncthing is a way to have client-side encryption, e.g. have remote storage with zero knowledge of the actual data I'm storing.
I understand the setup was crappy (you have to leverage their script), but I believe Debian is looking at packaging it so maybe in the future that flow will be better.
I'd love to run a ZFS-backed Ubuntu One server for all my family's portable devices.
------------
Do I have to sign a contributor agreement to modify the code?
No. This is no longer an active project, we are providing the code for public to read and use on their own. Will you take patches?
In general, no. We won’t have anybody assigned to reviewing and accepting code. We’d encourage interested maintainers to fork the code and build out a community around it.------------
So, I mean, er, thanks for open sourcing a dead project. But still under an AGPLv3 license.... meh.
A project gets released as free software, and not only do you make a sarcastic thanks, but you moan about how it's using a license that ensures you pass on the same freedom to other users. Talk about entitlement.
Anyone using the code is forced to "pass on the same freedom" to original code that's infected by the AGPL license.
Talk about entitlement.
Freedom ain't free. There is a price you have to pay. That price is to pass on the same freedoms to others, the freedoms which you explicitly benefited from in your use of the software. To me that sounds like an exceptionally reasonable requirement, but evidently the one not being a grubby freeloader is somehow entitled in your worldview. Interesting how that works.
This reflects the fundamental schism between free software and open source, at least philosophically rather than in terms of what licenses fall under their definitions. Free software implies an ethical responsibility to give back to the community, open source is a way to conveniently reappropriate other people's labor with no obligation to contribute, while hiding behind the cloak of "technical superiority" and "code quality" (which is bullshit).
None of these are abandonware. All three are VC-backed companies. An AGPLv3 license is extremely restrictive for what amounts to a code dump.
In my world view, there's nothing ethical about laying claim to all future work output of my own in exchange for incorporating any amount of copyleft code.
This situation favors the original author in the extreme, which is why it's not surprising to see that this works for maintained projects owned by a single author/organization, such as Neo4j, MongoDB, ownCloud, "and some others".
However, the answer for people other than the original author is, unsurprisingly, to generally avoid copyleft code.
The proof is in the pudding; the majority of usable successful projects are licensed in a way that grant the author(s) the ability to benefit from their work outside the straightjacket confines of copyleft.
It actually doesn't favor the original author that much. Permissive licensing is more adapt at massive propagation, hence why it's preferred for some low-level or utility libraries like zlib where you would rather not have those be poorly reinvented.
The proof is in the pudding; the majority of usable successful projects are licensed in a way that grant the author(s) the ability to benefit from their work outside the straightjacket confines of copyleft.
Ignoring the stupidity of defining copyleft as a "straitjacket" when it's clearly beneficial for continuing free terms, most of the popular free software is in fact copyleft, be it GPL, LGPL or MPL. FileZilla, GIMP, Notepad++, Blender, VLC, Wordpress, etc. Then for development, the GNU system is all copyleft and ubiquitous, just to list the most obvious example.
It's notable that your popular examples had to be qualified to be limited to "free" (as in open-source) software. The majority of popular software isn't open source at all. Your examples also include software that is 1) maintained by copyright-holding commercial organizations who 2) rely on the asymmetric relationship created by copyleft to build a sustainable business in which they can actually sell IP rights beyond copyleft for profit.
The copyleft ideal of "user freedom" is founded on the premise of a software industry barter economy in which the only tradable resource is not even software, since that's freely copied by anyone, but rather, actual time spent writing software.
This is insane, not least of all because the vast majority of humanity can not and does not want to write software, and even if that wasn't the case, time spent writing software is literally worthless outside of social standing.
You can't use bartered time to pay rent or buy food, which means you cannot actually build a sustainable economy around purely copyleft software ideals in which anyone is able to recoup the real-world costs of spending time writing software in the first place.
Um... you asked for free software copyleft examples, so obviously. Why is "free" in scare quotes again? Open source hijacked free, not the other way around.
The majority of popular software isn't open source at all.
Irrelevant to the point at hand.
maintained by copyright-holding commercial organizations
Completely irrelevant. There is nothing about free software that is opposed to business. It is perfectly fine that commercial organizations work on free software.
The copyleft ideal of "user freedom" is founded on the premise of a software industry barter economy in which the only tradable resource is not even software, since that's freely copied by anyone, but rather, actual time spent writing software.
No, that's open source. Free software makes ethical arguments for the Four Freedoms, largely based on determining one's destiny, being in control of one's computing and privacy concerns.
This is insane, not least of all because the vast majority of humanity can not and does not want to write software
False premise aside, that's the great thing about software. You don't need an extremely large force of programmers to satisfy most needs. This is because software is a non-rivalrous, non-scarce good.
time spent writing software is literally worthless outside of social standing
Not factoring in the end product?
You can't use bartered time to pay rent or buy food, which means you cannot actually build a sustainable economy around purely copyleft software ideals in which anyone is able to recoup the real-world costs of spending time writing software in the first place.
You don't make money off free software from bartering time. You've set a ludicrous straw man through and through.
As I mentioned earlier, software is non-rivalrous (or even anti-rivalrous, with utility increasing along with use) and non-scarce. You simply cannot sustainably sell it on a per-unit basis like it's a shrink wrapped box, not without maintaining artificial scarcity through IP law, creating a deadweight loss.
In light of this reality, one must rethink their business models. Possibilities then emerge from dual licensing, consulting work, selling merchandise, etc. etc. A common approach is also SaaS, but that poses ethical dilemmas of its own.
You set up a false premise as to the motivations of free software beg the question by assuming that non-rivalrous, non-scarce goods can be marketed sustainably using traditional business models based on information asymmetry.
> False premise aside, that's the great thing about software. You don't need an extremely large force of programmers to satisfy most needs. This is because software is a non-rivalrous, non-scarce good.
Someone has to write the software. If the only software that's worth writing is the software you yourself need, then the only software that gets written will be designed for people who write software.
What about all the people who can't write software?
The market meets their needs by allowing them to exchange money for software. This allows programmers to solve their needs (food, shelter, clothing) while doing work includes meeting the needs of others -- this includes hiring people in non-development roles -- such as artists and UX designers -- that are necessary to produce software usable by more than other software developers.
If software is freely distributable without restriction, this ancient human economic model fails, and what you're left with are "free software" business models that work for only a very narrow set of problems in which developer and capitalist interests align.
So you're saying that you don't believe someone can ethically sell their own work at a price they choose?
If you constantly burn the companies and people who actually work on open source for not meeting the purity standard then you make it a hard environment. Honestly, there are way more fully proprietary software companies out there, or companies using but not contributing anything to open source to have a go at.