September 24th, 2019

Облака и коробки

Я с Дропбоксом чуть ли не с самого открытия. Посмотрите какую милоту они рассылали в 2009:

Вышло приложение под айфон 3! Уииии!

Великая вещь, революция, без него не было бы ни Google Drive, ни iCloud Drive, ни OneDrive, ни Yandex Drive, ой, простите, Yandex Disk.

Сейчас он, конечно, не то что незаменим, но очень уж удобен, плюс привычка. У меня там лежат все документы и все билеты на поездки — все доступно сразу с любого утюга, и доступ есть и у меня, и у жены. Было несколько случаев, когда приходилось логиниться прям с компов в посольствах или отелях, чтобы достать какую-то очень важную, но забытую бумажку.

Потом пошли звоночки. В 2016 Дропбокс выпустил Paper — свой редактор документов, типа Google Docs (на самом деле hackpad, конечно). Ну окей. При чем тут Дропбокс, синхронизация файлов? А ни при чем, просто сделали вот. Ладно. Не помогает, но вроде как и не мешает.

Ага-ага, как-то так и проходят все наши рабочие совещания. Собираемся вокруг стола и коллаборативно редактируем документ, каждый со своего телефона/планшета/ноута. Разговаривать тоже не разговариваем, прям в комментах переписываемся. Зачем покидать интерфейс, если он такой секси? (выглядел он и правда не так старперски, как Google Docs)

И вот в 2017 Дропбокс делает редизайн. Прикольно, свежо, но... При чем тут Дропбокс, опять же?

Поясню. Гений дизайна Дропбокса в том, что это абсолютно утилитарная штука, которая очень-очень нужна и которой почему-то не было. Тот редкий случай, когда вещь продает ТОЛЬКО ее функция. Ну типа как соль, или картошка — сколько ее не рекламируй, купят ее ровно столько, сколько нужно дома. Поэтому хороший дизайн облачного диска — максимально невидимый дизайн. У него не должно быть интерфейса, иконки, сплеш-скрина, емейл-рассылок, попапов, нотификаций. Ты не должен про него вспоминать в принципе. Пока он выполняет свою фунцкию, это просто часть компьютера, чем невидимее, тем лучше.

Ну и стало понятно, что надо валить. Дропбокс собирается превращаться из невидимой штуки в громкий, назойливый, кричащий ПРОДУКТ, наворачивать продажи, растить юзер базу всеми правдами и неправдами, короче, всячески о себе напоминать. А мы этого не хотим.

Обратите внимание на текст — наша миссия теперь не сделать синхронизацию, а новые фичи, партнерства, рост. Исходная концепция не была высосана из пальца, новые фичи же высасывают именно оттуда. Организовать и приоритезировать файлы я могу и сам, спасибо пожалуста, не надо мне помогать.

А вот и линеечка продуктов на 2019. Скупай-поглощай!
А вот и линеечка продуктов на 2019. Скупай-поглощай!

И вот в начале года покупаю я себе новенький телефон. Ставлю привычно Dropbox. И что вижу? Дропбокс теперь может работать только на 3-х устройствах!!! А у меня УЖЕ девять, и это я не особо старался. По мелочи в основном.

Тут надо упомянуть про бизнес-модель того самого Дропбокса. Я, при всей моей гигантской к нему любви денег ни разу не заносил. Потому что у них совсем дебильная сегментация — либо сиди на бесплатных 2 Gb, что конечно преступно мало, либо покупай сразу 2 Tb за 120 Eur/year, что как бы чуть больше чашки кофе. А посередине ничего нет. Так что я сидел с бесплатным.

Помню, в какой-то момент я даже табличку составлял, в которой считал, какой хостинг эффективнее. Кроме Google Drive, конечно, им в принципе нельзя пользоваться, его как будто студенты писали. Сейчас не знаю, но пару лет назад у него на Маке иконка была кривая и не-ретиновая!

Это на 2015 год
Это на 2015 год

Короче, надо мемуар этот сворачивать. Выбрал Эппл. Типа, у меня и так все устройства Эппл, последним как раз новый телефон стал, плюс у них 50 Gb всего за 59 руб./мес, типа, в 10 раз дешевле. Я, как человек, десять лет умещавшийся в 7 Gb Дропбокса, больше и не прошу!

Это был stupidly good deal, и план был безупречен. Уж Эппл-то не будет пихать фичи в синхронизатор файлов! Уж Эппл-то сделает его настолько ненавязчивым, насколько это возможно.

Сделал. Блин. Я в него все перенес. Рабочие проекты, документы, поездки — все, как я привык, тока теперь в Эппле. И что?

Во-первых, если Дропбокс находился в ~/Dropbox, то где находится iCloud Drive? Конечно же в ~/Library/Mobile Documents/com~apple~CloudDocs. Мало того что это хрен напечатаешь, хрен изменишь, мало того что это чисто эстетически некрасиво, в пути есть еще и пробелы! А что у нас происходит, если какой-нибудь bash-скрипт обнаруживает себя в папке с пробелами? Правильно, он обсирается! Что предсказуемо со мной и случилось.

Ладно, но мы же умные. Хардлинков в APFS нет, но есть Soft links. Линкуем ~/Library/Mobile Documents/com~apple~CloudDocs в ~/iCloud и вуаля! Теперь это можно хотя бы набрать в терминале. Но! Особо умные скрипты делают что? Сначала резолвят себя до канонического пути, а потом уже обсираются!

Смешно? Мне не очень. Раньше я хранил Fira Code (которая билдится через venv) и tonsky.me (bundler) в ~/Dropbox/ws, с iCloud я теперь так не могу. И ничего, ничегошеньки сука с этим не сделаешь!!! Как бы мне ни хотелось сказать, что фиксить эти проблемы должны разработчики тех скриптов, а не Эппл, какого-то конкретно виноватого здесь нет, а до всех не достучишься. Увы, это уже просто факт жизни — папки с пробелами в шелле не работают. Привет изобретателям shell command language. Текст победит!

Но и Эппл тоже молодцы. Что мешало положить iCloud Drive в нормальное место? Да ничего не мешало! Но мы же умные, думаем outside of the box. Поэтому положим его хрен знает куда, чтобы ты не мог найти свой диск ни в каком файндере или терминале, а потом, осознав что людям может все-таки понадобиться в него заходить, потому что нахрена мне диск в который я ничего не могу положить/достать, накодим еще миллион строк кода чтобы в файндере была специальная иконка, в диалогах iCloud рисовался тоже отдельно, типа это что-то специальное. Ау, это просто папка!

Кстати, знаете, что будет, если попросить macOS синкать содержимое вашего рабочего стола через iCloud? Нет, она не начнет его синхронизировать. Как говорили в великом Generation Kill, “That would be not retarded enough”. Она ваш десктоп тоже спрячет в свой говнопуть так, что никак кроме опять же специально обученного файндера вы его не найдете. То есть это ломает все, абсолютно все альтернативные способы навигации по ФС, начиная от терминала, конечно, продолжая альтернативными файл-менеджерами, не-нативными диалогами, кросс-платформенным софтом. Просто потому что fuck you, that’s why.

Ладно. Во-вторых. У него реально нет интерфейса. Ну то есть прикольно, конечно, все максимально прозрачно, но если например сейчас не очень подходящий момент для синхронизации (слабый wifi или раздаешь с мобилы), то нет кнопки, чтобы поставить iCloud на паузу. Положил гигабайт на другом компе неделю назад — будь добр выкачать! На слабых ноутах это еще и ставит систему раком. Терпи.

В третьих, я же тут не один живу! С Дропбоксом у нас в семье выработалась система, когда мы шарим все документы и билеты через общие папки. Удобно, всегда под рукой, всегда знаешь где смотреть.

Ну и с iCloud хотелось бы устроить так же. Иду я значит шарить папки. Низя. Не желает ли милорд проапгрейдиться до Семейного плана за жалкие 200 rub/month. Ну ладно, не совсем то что я хотел, но уже как бы ввязался до определенной степени. Че уж, раскошелимся. Раскошелился. Создал семью. Стал организатором.

Иду в Files. Жму Share (потому что у Эппл традиционно все функции прячутся в Share, это типа More). Ну как бы ничего не вижу. Ладно. Читаю. Пишут, а Share-то и нет! Вселенский фейспалм. Не сделали. Эппл. Не сделали. Ололо. Вся моя схема разом рухнула. Два iCloud Drive-а не подключишь. Под одним аккаунтом не зайдешь, потому что: ИНТЕГРАЦИЯ! ЭКОСИСТЕМА! Если ты не хочешь одновременно с этим также читать чужие сообщения и пароли, лучше все-таки логиниться каждому под своим аккаунтом.

И вот о чудо. В какой-то статье читаю, что это ПОКА нет шаринга. Но типа будет. В iOS 13. Которая как раз выходит через неделю! Это конечно идеальный тайминг, потому что если бы я этого не прочитал, я бы точно что-нибудь разбил поблизости.

Ладно. Жду iOS 13. Выходит. Обновляю в тот же вечер. Иду в Share наутро. Не вижу никакого общего доступа. Но можно поделиться папкой через iMessage. Ладно, думаю, это же Эппл. Наверняка они как-то хитро это интегрировали, что все настолько самоочевидно и simply works (tm) что пока не загуглишь не поймешь. Шарю папку по iMessage. И что получаю?

ZIP, блядь, архив. Охуеть синхронизация, так я тоже могу. Спасибо что не письмом.

Пора идти в Гугл для тупых. Оказывается. Оказывается. Оказалось, что планы на фичу были. Даже в бетах она вроде как была. Но Эппл передумал и убрал. До iOS 13.1. А я сижу у разбитого корыта. От Дропбокса ушел, а в Эппл не пришел.

Самое обидное знаете что? Что для шаринга папок и делать-то ничего не нужно. Точнее, все уже сделано. У вас уже полноценная синхронизация между N устройствами. Добавить еще одно, независимо от того, кому оно принадлежит, ТЕХНИЧЕСКИ не представляет никакой проблемы. Технически это просто еще один клиент, точно такой же, как все остальные.

Но мне кажется я знаю почему эта фича так долго откладывается. Дело в том, что инженеры—наберите сейчас праведного гнева в грудь—инженеры Эппла решают, куда бы еще хитрее запрятать шареные папки. А то ~/Library/Mobile Documents/com~apple~CloudDocs слишком уж быстро вычислили.

UPD: 13.1 вышел, шаринг не добавили, отправку папок zip-архивом отключили обратно. Удивляться не приходится :(

UPD2: С момента написания поста iCloud отказался в критически важный момент загружать документы на телефоне (при прекрасном LTE коннекте). Просто крутил ползунок как дебил битый час и все. Apple Photos, как оказалось, не умеют шарить фотки. Так что моя логика «все равно за iCloud платить, т.к. там фотки с айфона хранятся» разлетелась в щепки. Ну что же, пора снова составлять табличку и выбирать провайдера, походу.