Computers as I loved them

image



I have been struggling with file sync issue for many years . In the early days, Dropbox was a great service, but in the last few years it has started to grow. I switched to iCloud, but it was even worse. Finally, a few days ago, after iCloud mysteriously broke again , I decided it was time to try something different.



I tried Syncthing , a free open source alternative. And you know what? It became liberating. Reasonableness, simplicity, reliability, various functions. It brings joy to use and makes you believe that the decay of civilization can be slowed down a little.



Synchronization is everything I loved about computers.



It's amazing how great products made for computers can be when their manufacturers don't have to do corporate bullshit, promote a brand, or sell it to users. To be honest, I almost stopped believing that this is still possible. But it is possible.



Installation



You download a single executable binary. You launch it. But there is no third step.



image



No seriously. It's so simple that I thought I was missing something. But no. After you run this binary, you will have a fully working Syncthing node. It is ready to sync with any other Syncthing node, no additional configuration is required. There are no installers, no package management (but there are packages if you will), no registration, no email, no login, no password creation, no 2FA, no consent, no user agreements. Just download and run. Heck, setting up autorun on a Linux server was more difficult than just launching the application itself!



It's even easier with Homebrew:



image



To give you a basic idea, here are all the steps Dropbox takes to install on a new computer:



image



image



image



image



image



image



image



image



image



image



image



Eeeeeeee… that's not all! You also get this annoying notification, which you have to react to in some way:



image



Only at this stage can you start using Dropbox. Luckily I already had an account, otherwise there would be 5 more steps. This is ridiculous!



(These are all different windows, of course. Keep in mind that this does not happen in one predictable area. And you have to go through each of these steps. The Configure Dropbox window is always at the top, so it hides other necessary steps, which also adds fun .)



No artificial restrictions



Since Synthing is free and doesn't depend on server side storage, they don't need to impose weird or unnatural restrictions on you. You can use as much space as there is on the disk. You can sync as many folders as you like. You can sync any folder wherever it is. You can sync with anyone in the world. In fact, you can sync any folder with any number of people. In no case should you think, “but will it work the way I want?”? If your hardware allows it, it will work. It's that simple.



Folders are the most striking example of how other cloud storage constantly spoils the simplest things. Syncthing can sync any folder on your drive, located anywhere. You can sync existing folders. You can sync several different folders. Folders are just folders, nothing special about them. Here I am syncing the "system" folders: ~ / Desktop and ~ Library / Fonts, as well as three custom ones. No problem:



image



This simplicity allows you to use the app as a tool that you can apply, sometimes creatively, to your task, rather than as a service you have to put up with. For example, when syncing ~ / Library / Fonts, if I install a font on one computer, it is automatically installed everywhere.



Compare that to Dropbox, which requires you to put everything in the ~ / Dropbox folder. If you store your projects in ~ / work and want to keep them in sync, well, out of luck. You also cannot sync multiple folders. Well, technically Dropbox can of course sync anything. Files are files. But the corporate identity dictates that there MUST be a Dropbox folder somewhere, even if it's inconvenient for the user.



image



But the worst offender is iCloud. Like Dropbox, it also requires you to put all your data in a folder. But this folder is called ~ / Library / Mobile Documents / com ~ apple ~ CloudDocs !!!



If you are a programmer then this is not possible to use. First, you cannot type THIS in your right mind every time you need cd



... Second, there are gaps here! Which breaks the whole course of things, believe it or not, even in 2020. I cannot store Fira code in iCloud due to python scripts, due to Ruby, I cannot blog Jekyll like this one, I cannot run Bazel, etc. Everything is useless.



image



And if you think that the symlink to ~ / icloud helps, then believe me, it is not.



image



No registration



How to connect two devices if there is no registration, accounts, email, etc.? Simply! Each device has a unique identifier that is generated automatically when the program is first launched. Share this ID with another device, let him share hiss, and you're done.



image



Good news? These identifiers are not even secret. They are more like public keys, so you can exchange them freely. But the scheme only works if both devices know each other's IDs.



What I love about this circuit is its simplicity and how much it is needed. This is pure mathematics. But it is very convenient to use. There are no emails, forms, unresponsive web pages, invitations, expired tokens, broken / outdated / overloaded APIs, password management, nothing to hold or "manage".



Power mode



There is an experienced user mode! If you don't care, there is always a user interface and most of the things you can customize there. But if you are a programmer and need more, you can:



  • Install Synthing on a Headless Linux server,
  • Manage it by editing the XML configuration,
  • Manage via REST API,
  • Configure ignore folders using regular expressions.




All APIs and configurations are well documented:



image



For example, this is my .stignore folder to work with:



image



Configure this once and forget about generated classes, injected dependencies and other caches that, if redundant, stay in sync forever.



In contrast, iCloud has a feature to exclude * .nosync files from syncing, but you know what? Usually I don't have files named * .nosync, here's the problem:



image



What about Dropbox? Well ... I still have nightmares about this Dropbox user interface:



image



It's funny that commercial apps have a lot of features, but no power mode. You can do more different things, but you cannot customize them to your liking.



No upselling



Developers of commercial applications have a stake in keeping users limited in their actions and in continually offering them additional features. As a result, you get notifications, functions, pop-ups. For example, in this screenshot after I just installed Dropbox on a new device:



image



From top to bottom:



  • I already have an annoying red dot on the menu bar,
  • Link to another product (Paper), even if it has nothing to do with file syncing,
  • Strong recommendation to enable notifications,
  • A notification that my desktop app is ready to use ?!
  • But I already see notifications from this desktop application!
  • Dropbox advertises some kind of trial,
  • Dropbox is selling me more space (even though it was 2 years ago and I have over 50% free space),
  • Large "Refresh" button,


In the mystical tab "For you":



image



We also see:



  • Checked items? What is this, a school notebook? If I really wanted to, I could tag the files in the OS, but thanks.
  • Calendar sync? Why on earth would SYNCHRONIZE FILES need access to my calendar?


Wait, one more thing:



image



More “features”:



  • Desktop sync,
  • Synchronization of photos,
  • Synchronization of screenshots.




Is it all in file format? I don't understand why they should be "special functions" if you already have an application whose main task is to sync files. It already does it. Why are some files more special than others?



The answer is simple: the only way Dropbox can survive is to build and sell more features. With him you will never be calm.



iCloud is much younger and doesn't have additional features yet, but they are still interested in selling more Macs and iPhones. Therefore, they will always try to isolate you from the rest of the world. Expect strange restrictions and big inconveniences, such as iCloud folder location or moving the desktop folder when you enable / disable sync for it.



Syncthing, on the other hand, does not depend on creating additional features for its survival. They do one thing, but they do it well. Note that their menu1 looks exactly what Dropbox used to look like when it was still good in 2012:



image



No blocking



Another nasty thing that iCloud and Dropbox usually do is to intimidate you into not leaving. They appear every time you move more than one file outside the iCloud folder:



image



image



And these are the Dropbox ways:



image



image



They might seem like they are trying to explain something, but they are not. They are afraid that you will run away and are trying to scare you. The tactic is simple: question your every action, even trivial operations like moving or deleting files, display huge warning signs even for safe operations, long confusing wording ( “documents stored in iCloud will be deleted from Mac” ) so that you never didn't know what would happen. This is some kind of shady shit.



image



On the other hand, Syncthing doesn't care. They don't get money from you, so they are not interested in creating a need or a constant reminder of themselves. If you are looking for peace of mind, you may not be able to get it with commercial offers.



Finally



Syncthing reminded me of how great computers can be if they aren't made by corporations. It's simple, predictable, reasonable, no-nonsense. You can customize it however you like and it always keeps you in control. This is a pure function and is good at it. It's free and open source, but I'm much more happy to donate € 10 a month to it than, for example, Dropbox. I would be much happier if at least half of the programs on my Mac / iPhone were like this.



All Articles