
Tandem – Decentralized, cross-editor, collaborative editing - geoffxy
https://github.com/typeintandem/tandem
======
ocdtrekkie
"Licensed under the "Lightly-Modified Apache License", a variant of the Apache
License, Version 2.0 (the "License"); you may not use this file except in
compliance with the License."

So... the additional term is understandable, and sane. You don't want bad
forks to break your server. Though it could've been largely left out of this:
You could've simply stated that forks are not authorized to use the central
server as terms of the server itself, and left the code under an approved open
source license.

But the weird bit here is that the license file can only be used in accordance
with obeying this software's license... does that mean that the "Lightly-
Modified" Apache license is not, in itself, open source? Like, is this meant
to read as "Nobody else may release their own software under this license"?

~~~
JoshTriplett
This license is most definitely not Open Source.

The right place for this term is in the terms and conditions for using the
hosted server provided by the project, rather than in a software license.

~~~
ocdtrekkie
The particular topic I find interesting is whether or not they are trying to
claim the license they're using can't be used by other software projects,
which would be super weird. As if the license itself was the intellectual
property they felt needed to be protected.

~~~
yorwba
"you may not use this file except in compliance with the license" is part of
the Apache License boilerplate:
[https://www.apache.org/licenses/LICENSE-2.0#apply](https://www.apache.org/licenses/LICENSE-2.0#apply)

~~~
ocdtrekkie
Interesting. Did not know/notice that. ...Now I kinda wonder why that is.

------
jitl
Very cool! It’s awesome to see such a clean design of the separate parts here.
I have high hopes and will try this out tonight.

Similar projects in this space:

\- Floobits, a similar multi-editor plug-in:
[https://floobits.com/](https://floobits.com/)

\- Visual Studio Code Live Share, which also shares all your autocompletion
stuff too: [https://code.visualstudio.com/visual-studio-live-
share](https://code.visualstudio.com/visual-studio-live-share)

------
eeZah7Ux
Libinfinity already does application-independent collaborative editing and
it's not crippled by the license and it's also free from node.js

[https://github.com/gobby/libinfinity](https://github.com/gobby/libinfinity)

~~~
kossmoboleat
Would it be possible to implement a plugin to Intellij which uses this and
achieves sth. similar to Floobits?

------
pmontra
I hope that somebody will build an emacs plugin and that Linux will be
officially supported. Thumb up for self hosting the server. It might be more
difficult to get started but there is no real need to have dozens of third
parties look into our code.

------
amelius
I'm wondering how this works.

At what level does it interact with the editor?

How does it ensure that the state of the editor is eventually consistent
across users?

Does it maintain a copy of the state of the editor?

Is it somehow able to peek into the state of the editor?

------
davidw
It's not in any way a problem for this project, but that name has an
interesting history in computers:

[https://en.wikipedia.org/wiki/Tandem_Computers](https://en.wikipedia.org/wiki/Tandem_Computers)

------
ggg9990
"Decentralized" is always an anti-feature in products like these. It always
ends up as a lot of cost for little user benefit. A centralized server always
works better and is easier to deploy and support.

~~~
bsimpson
Is it peer-to-peer as in a direct connection between me and my colleague, or
is it a mesh that includes strangers? If it can work between just me and my
colleague, that feels more likely to be secure. I have no idea how sniffable
or spoofable their protocol is, but it's a lot harder to man-in-the-middle if
there's no middle.

~~~
ggg9990
It’s a direct connection, but you can have a secure central server on your own
hardware. It may not be secure against the NSA or whatever but it’s a lot more
usable than trying to punch through NAT and whatnot.

------
mrmondo
Looks neat, the only thing putting me off is that it requires nodejs and
there’s no way I’m installing that pig of a thing on my workstation.

~~~
hoophoop
+1

