Я много лет боролся проблемой синхронизации файлов. В самом начале Dropbox был отличным сервисом, но в последние несколько лет они начали разрастаться. Я перешел на iCloud, но это было еще хуже. Наконец, несколько дней назад, после того, как iCloud снова загадочно сломался, я решил, что пора попробовать что-то другое.
Я попробовал Syncthing, бесплатную альтернативу с открытым исходным кодом. И знаете, что? Это стало освобождением. Разумность, простота, надежность, различные функции. Это приносит радость от использования и заставляет поверить в то, что распад цивилизации можно немного замедлить.
Синхронизация — это все, что я любил в компьютерах.
Удивительно, насколько замечательными могут быть продукты, созданные для компьютеров продукты, когда их производителям не нужно заниматься корпоративной ерундой, не нужно продвигать бренд или продавать его пользователям. Честно говоря, я почти перестал верить, что это все еще возможно. Но это возможно.
Установка
Вы загружаете один исполняемый двоичный файл. Вы запускаете его. А вот третьего шага нет.
Нет, серьезно. Это настолько просто, что я решил, будто бы что что-то упустил. Но нет. После того, как вы запустите этот двоичный файл, у вас будет полностью рабочий узел Syncthing. Он готов к синхронизации с любым другим узлом Syncthing, никаких дополнительных настроек не требуется. Нет ни установщиков, ни управления пакетами (но есть пакеты, если хотите), ни регистрации, ни электронной почты, ни входа в систему, ни создания пароля, ни 2FA, ни согласия, ни пользовательских соглашений. Просто скачивате и запускаете. Черт возьми, настроить автозапуск на сервере Linux было сложнее, чем просто запустить само приложение!
С Homebrew это еще проще:
Чтобы дать вам общее представление, вот все шаги, которые Dropbox проводит при установке на новый компьютер:
Иииииии… это еще не все! Вы также получаете это раздражающее уведомление, на которое придется как-то реагировать:
И вот только на этом этапе вы сможете начать использовать Dropbox. К счастью, у меня уже была учетная запись, иначе было бы еще 5 шагов. Это смешно!
(Разумеется, все это разные окна. Имейте в виду, что это не происходит в одной предсказуемой области. И вы должны проходить через каждый из этих шагов. Окно «Настроить Dropbox» всегда вверху, поэтому оно скрывает другие необходимые шаги, что также добавляет веселья.)
Никаких искусственных ограничений
Поскольку Synthing является бесплатным и не зависит от хранилища на стороне сервера, им не нужно вводить для вас странные или неестественные ограничения. Вы можете использовать столько места, сколько есть на диске. Вы можете синхронизировать столько папок, сколько захотите. Вы можете синхронизировать любую папку, где бы она ни находилась. Вы можете синхронизироваться с кем угодно в мире. Фактически, вы можете синхронизировать любую папку с любым количеством людей. Ни в коем случае не нужно задумываться, «а сработает ли это так, как я захочу?»? Если ваше оборудование позволяет, оно будет работать. Настолько все просто.
Папки — самый яркий пример того, как другие облачные хранилища постоянно портят самые простые вещи. Syncthing может синхронизировать любую папку на вашем диске, расположенную где угодно. Вы можете синхронизировать существующие папки. Вы можете синхронизировать несколько разных папок. Папки — это просто папки, ничего особенного в них нет. Здесь я синхронизирую «системные» папки: ~/Desktop и ~ Library/Fonts, а также три пользовательских. Никаких проблем:
Эта простота позволяет вам использовать приложение как инструмент, который можно применить, иногда творчески, к вашей задаче, а не как услугу, с которой вы должны мириться. Например, при синхронизации ~/Library/Fonts, если я устанавливаю шрифт на одном компьютере, он автоматически устанавливается везде.
Сравните это с Dropbox, который требует, чтобы вы поместили все в папку ~/Dropbox. Если вы храните свои проекты в ~/work и хотите их синхронизировать, ну, не повезло. Вы также не можете синхронизировать несколько папок. Ну, технически Dropbox, конечно, может синхронизировать все, что угодно. Файлы есть файлы. Но фирменный стиль диктует, что где-то ДОЛЖНА быть папка Dropbox, даже если это неудобно для пользователя.
Но самый злостный преступник — это iCloud. Как и Dropbox, он также требует, чтобы вы поместили все свои данные в папку. Но эта папка называется ~/Library/Mobile Documents/com~ apple~CloudDocs!!!
Если вы программист, то это невозможно использовать. Во-первых, вы не можете в здравом уме набирать ЭТО каждый раз, когда вам нужно cd
. Во-вторых, здесь есть пробелы! Что ломает весь ход вещей, поверите вы или нет, даже в 2020 году. Я не могу хранить код Fira в iCloud из-за скриптов python, из-за Ruby я не могу вести блог Jekyll, как этот, я не могу запускать Bazel и т.д. Все бесполезно.
И если вы думаете, что символическая ссылка на ~/icloud помогает, то поверьте, это не так.
Никакой регистрации
Как подключить два устройства, если нет регистрации, аккаунтов, электронной почты и т.д.? Просто! У каждого устройства есть уникальный идентификатор, который создается автоматически при первом запуске программы. Поделитесь этим идентификатором с другим устройством, позвольте ему поделиться своим, и все готово.
Хорошие новости? Эти идентификаторы даже не секрет. Они больше похожи на открытые ключи, поэтому вы можете свободно обмениваться ими. Но схема работает, только если оба устройства знают идентификаторы друг друга.
Что мне нравится в этой схеме, так это ее простота и то насколько она необходима. Это чистая математика. Но при этом пользоваться очень удобно. Здесь нет электронных писем, форм, не отвечающих веб-страниц, приглашений, просроченных токенов, сбойных/устаревших/перегруженных API, управления паролями, нечего удерживать или нечем «управлять».
Power mode
Есть режим опытного пользователя! Если вам все равно, всегда есть пользовательский интерфейс, и большинство вещей, которые вы можете настроить там. Но если вы программист и вам нужно больше, вы можете:
- Установить Synthing на Headless Linux-сервер,
- Управлять им, редактируя конфигурацию XML,
- Управлять через REST API,
- Настроить игнорирование папок с помощью регулярных выражений.
Все API и конфигурации хорошо документированы:
Например, это моя папка .stignore для работы:
Сконфигурируйте это один раз и забудьте о сгенерированных классах, внедренных зависимостях и других кешах, которые, будучи лишними, синхронизируются навсегда.
В отличие от этого, в iCloud есть функция исключения файлов * .nosync из синхронизации, но знаете что? Обычно у меня нет файлов с именами * .nosync, вот в чем проблема:
А Dropbox? Что ж… Мне до сих пор снятся кошмары об этом пользовательском интерфейсе Dropbox:
Забавно, что в коммерческих приложениях много функций, но нет режима питания. Вы можете делать больше разных вещей, но не можете настраивать их по своему вкусу.
Никакой допродажи
Разработчики коммерческих приложений заинтересованы в том, чтобы пользователи были ограничены в действиях, и в том, чтобы постоянно предлагать им дополнительные функции. В результате вы получаете уведомления, функции, всплывающие окна. Например, на этом снимке экрана после того, как я только что установил Dropbox на новое устройство:
Сверху вниз:
- У меня уже есть раздражающая красная точка в строке меню,
- Ссылка на другой продукт (Paper), даже если это не имеет отношения к синхронизации файлов,
- Настоятельная рекомендация включить уведомления,
- Уведомление о том, что мое настольное приложение готово к использованию?!
- Но я ведь и так вижу уведомления именно из этого настольного приложения!
- Dropbox рекламирует какую-то пробную версию,
- Dropbox продает мне больше места (хотя это было 2 года назад, и у меня более 50% свободного места),
- Большая кнопка «Обновить»,
В мистической вкладке «Для тебя»:
Также мы видим:
- Помеченные элементы? Что это, школьный блокнот? Если бы я действительно хотел, я мог бы пометить файлы в ОС, но спасибо.
- Синхронизация календаря? С какой стати приложению СИНХРОНИЗАЦИЯ ФАЙЛОВ требуется доступ к моему календарю?
Подождите, еще кое-что:
Больше “возможностей”:
- Синхронизация рабочего стола,
- Синхронизация фотографий,
- Синхронизация скриншотов.
Это все хоть в формате файлов? Я не понимаю, почему они должны быть «специальными функциями», если у вас уже есть приложение, основная задача которого — синхронизировать файлы. Оно уже делает это. Почему одни файлы более особенные, чем другие?
Ответ прост: единственный способ выжить Dropbox — это создавать и продавать больше функций. С ним ты никогда не будешь спокоен.
iCloud намного моложе и еще не имеет дополнительных функций, но они все еще заинтересованы в продаже большего количества компьютеров Mac и iPhone. Поэтому они всегда будут пытаться изолировать вас от остального мира. Ожидайте странных ограничений и больших неудобств, таких как расположение папки iCloud или перемещение папки рабочего стола при включении/отключении для нее синхронизации.
С другой стороны, выживание Syncthing не зависит от создания дополнительных функций. Они делают одно, но делают это хорошо. Обратите внимание, их menu1 выглядит именно так, как раньше выглядел Dropbox, когда он был еще хорош в 2012 году:
Никакой блокировки
Еще одна неприятная вещь, которую обычно делают iCloud и Dropbox, — это запугать вас, чтобы вы не ушли. Они появляются каждый раз, когда вы перемещаете более одного файла за пределы папки iCloud:
А это способы Dropbox:
Может показаться, что они пытаются что-то объяснить, но это не так. Они боятся, что вы сбежите, и пытаются напугать вас. Тактика проста: подвергайте сомнению каждое ваше действие, даже тривиальные операции, такие как перемещение или удаление файлов, отображайте огромные предупреждающие знаки даже для безопасных операций, длинные запутанные формулировки («документы, хранящиеся в iCloud, будут удалены с Mac»), чтобы вы никогда не знали, что случится. Это какое-то теневое дерьмо.
С другой стороны, Syncthing все равно. Они не получают от вас денег, поэтому они не заинтересованы в создании потребности или постоянном напоминании о себе. Если вы ищете душевного спокойствия, вы не сможете получить его с коммерческими предложениями.
В заключении
Syncthing напомнил мне, какими замечательными могут быть компьютеры, если они не производятся корпорациями. Это просто, предсказуемо, разумно, действует без излишеств. Вы можете настроить его так, как вам нравится, и он всегда держит вас под контролем. Это чистая функция, и она хороша в этом. Это бесплатно и с открытым исходным кодом, но я гораздо более счастлив жертвовать им 10 евро в месяц, чем, например, Dropbox. Я был бы намного счастливее, если бы хотя бы половина программ на моем Mac/iPhone была такой.