Обновить

Как Telegram удалил 800 ГБ моих данных и причем тут орфография

Уровень сложностиСредний
Время на прочтение4 мин
Охват и читатели74K
Всего голосов 152: ↑147 и ↓5+180
Комментарии189

Комментарии 189

Коля Дуров уже не тот :D

Дуров, верни C:\custom!

в кастомной папке кастомный дуров! он уже не несет ответственности за программы в кастомных папках - он же не стер ничего в C:\Program Files. А кастомные программы могут удалять друг друга - как показывает практика! так что, кто хочет кастомного дурова - пусть любит и саночки возить:)

Спасибо, порадовал 😄

Коля Дуров уже не тот

Теперь он Николя Дуроф

«Умного человека Дуровым не назовут!» ©

custom без причины, признак дурачины 🫪

Еще одно доказательство, что взаимосвязь старого кода с новым кодом рано или поздно преподнесёт внезапный сюрприз. В любом проекте.

На Linux и macOS именно такую цепочку действий не находили.

Просто в следующий раз пусть называют свои ресурсы не custom, а bin, boot, home, var, etc - красивые же имена.

В линуксе эта поделка тупо отхватила бы Permission Denied при попытке снести рутовые папки без судо

Хотя если запускать телегу из-под рута, то премия Дарвина найдет своего героя

Папка /custom, созданая юзером, получила бы права юзера и телега спокойно бы её снесла на Линуксе.

+

Кто ж юзеру даст писать директории в корень, у которого права 755.

Поэтому создаём папку через sudo mkdir + sudo chown, дальше у нас есть доступная для записи папка в корне…

Если есть права на sudo и вы их бездумно используете.. кто виноват?

А вот это вы зря. Почему юзер на своей машине не может сделать папку для всякого в корне? Это достаточно логичное место вообще.

В концепции многопользовательских ОС, юзер и владелец машины - разные сущности. У юзера уже есть папка для всякого в корне его пространства - хоумдира. Ну и /tmp не забываем.

Никто вам не может запретить на своей машине сидеть под рутом и писать что угодно и куда угодно, игнорируя POSIX и FHS, но тогда уж ССЗБ.

Вообще, я много раз встречал непонимание людей, которые только знакомятся с *nix, почему всё устроено так, а не иначе. Рекомендации всегда сводятся к RTFM. Грубо, но что поделать.

Мы уже давно в мире где машина обычно принадлежит пользователю. И это хорошо. Этот сценарий должен хорошо работать. Этот сценарий должен быть качественно поддержан всеми кто не хочет умереть как какая-то древность.

Я в курсе как это все было придумано в 7х годах. Мир с тех пор изменился.

Не соглашусь. Я наблюдаю стремительное скатывание к положению вещей, в котором пользователю принадлежат только его данные, и то это утверждение под вопросом. Что там под капотом того же андроида, который является самой популярной ОС в мире, зачастую не задумываются даже разработчики, не говоря о пользователях. А ведь концепция разделения прав пользователей ОС перекочевала, если можно так выразиться, и туда, но используется для изоляции уже приложений.

Мир изменился, да, и неоднократно, если считать от Unix Epoch. Концепции рождаются и умирают. Хорошие, годные идеи не выдерживают конкуренции. Легаси никуда не девается и обрастает новыми шкурками.

Андроид это типичная однопользовательская система. И он это делает хорошо. А вот многопользовательский сценарий он делает плохо. Но это нормально, таких кейсов довольно мало.

Изоляция конечно нужна. Но не от пользователя, а от приложений. От пользователя надо изолироваться на уровне "не ломай систему без явного подтверждения". МС это поняли и сделали нормально. Куда улучшать их решение понятно, но даже как сейчас нормально.

А не надо убивать, надо поддержать. Пользователь на своей машине должен удобно работать со своими файликами в /custom. Почему и зачем ему надо мешать в этой юзерстори вообще непонятно. Это его машина, не надо вот этих странностей со ~. Это и так его корень.

Мы уже пошли дальше и даже мои сервера все однопользовательские. Каждая приложенька живет в своем Докере. И она там владелец всего. И как же криво оно работает. Я то привык. Но я точно уверен что можно лучше.

Взгляните глубже. Нафига вам, как пользователю, такие абстракции, как файл, файловая система, иерархия файловой системы, директория, корень и вот это всё? Это понятия, которые вам навязали когда-то как способ организации ваших пользовательских данных, и ваш вопрос про /custom - он целиком в пространстве этих абстракций, хотя может показаться, что этим вопросом вы хотите преодолеть навязывание.

Я искренне не понимаю вас. Вернее, ваше заявление, что пользовательские данные в корне ФС - это логично. Мне все же видится, что это дело привычки, и кажущееся удобство - субъективно. Вы (я тоже) привыкли мыслить в категориях файлов, но это не единственный способ организации данных. Могу ошибаться, но вроде бы на iOS пользователю вообще без разницы, как там у него файлы лежат, он работает с документами/фотографиями/что там еще.

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

Тогда надо делать как в Андроиде. Выше верно заметили что там интерфейс такой что пофиг.

А вот десктопные интерфейсы такие что не пофиг. И тенденции на изменение не заметно.

И тенденции на изменение не заметно.

Ну вроде как попытки-то были, все эти библиотеки в виндовом проводнике…

И оно все не взлетело.

Для кого как. Просто на десктопах существует толстый слой пользователей, привыкших к прежней парадигме и не желающих залезать на еще один толстый-толстый слой абстракций.

Файлы в корне это когда ты уже знаешь что такое корень, но еще не дозрел до более эффективных вариантов организации папок.

Структура папок линукса конечно "навязана", и там есть свой бардак и легаси, но "не мочиться против ветра" имеет вполне практический смысл.

Нафига вам, как пользователю, такие абстракции, как файл, файловая система, иерархия файловой системы, директория, корень и вот это всё?

Потому что файл - это полезная абстракция, отражающая обычно (тут на каждом слове определения можно найти контрпример) именованный кусок данных определенного типа в локальном постоянном хранилище.

но это не единственный способ организации данных.

С радостью бы послушал способ получше. С iOS много не работал, в Android мем не просто так родился:

Картинка с матом

Почему и зачем ему надо мешать в этой юзерстори вообще непонятно.

А кто вам мешает? В отличие от винды линукс как раз не мешает.

Линукс как раз ничего не навязывает (как винда обновления). "Вот вам система, вот пачка рекомендаций. Дальше делайте с ней что хотите, нам нет до этого дела, последствия тоже полностью ваши."

Еще как мешает. Там куча дефолтов которые не такие.

А обновления это хорошо. Вы так хотите повторения масс заражений необновленных компов?

Кто вам мешает исправить дефолты?

Дефолты это такая штука что то тут то там прорастут. А с учетом что большая часть того что я трогаю это разные контейнеры, то исправлять вообще смысла нет. Проще смириться.

Ну т.е. вам лень, а виноват линух? Чтож...

Вот у меня дома в семье у каждого свой комп. Но по факту всё равно почти у каждого учетка на каждом компе. То надо быстро зайти что-то глянуть, а тащиться через всю комнату к своему компу лень, то еще какая оказия. И не приходится терпеть вырвиглазные настройки чужого рабочего стола.

Можно, но зачем превращать структуру папок в помойку? Для этого есть винда. Хотя и там вам неявно рекомендуют для этого рабочий стол.

Это достаточно логичное место вообще.

Я так понимаю, это паттерн старых виндузятников когда часто надо путь писать в консоли.

Но в линухе с незапамятных времён домашняя папка пользователя задавалась одним символом. Это даже короче чем "C:". Плюс всякие плюшки типа сохраняемой истории консоли, автодополнения, поиска в хистори и т.п.

О, внезапно давно из под неадмина в винде работаю, может и задался бы вопросом чего там такоге тг захотел, что запрос прав выдал

Так автора бы это не спасло. Скорее всего пользователь был владельцем каталога custom, и никакие запросы прав не требовались

Я под юзером тоже не стал бы.

эта поделка тупо отхватила бы Permission Denied при попытке снести рутовые папки без судо

Рекурсивное удаление работает из глубины дерева директорий наверх. При попытке удалить /home юзер останется без своих файлов, но сама директория не пострадает.

А вдруг так и сделают? Какую-нибудь папку да пропустят

Код ожидал, что custom будет файлом. Если вместо файла там находилась папка, код считал это ошибкой и удалял её

Интересно, перед обращением ко всем остальным файлам Телеграм тоже проверяет отцовство папочность?

Может быть, автор кода уже допускал подобный косяк, когда вместо файла custom создавалась папка, и добавил проверку специально для этого случая? Это объясняет и небрежность, с которой папка удаляется: "а, все понятно, это у меня где-то в коде ошибка, лень искать где именно, удалим папку на фиг и продолжим работу".

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

"Telegram удалил 800 ГБ моих данных" - вопрос в том, что Telegram вроде как мессенджер. Почему у Вас 800 ГБ данных хранится в мессенджере?

Статью не читаем, да...)

все по классике "..., но осуждаю!")

Насчёт самого выражения "не читал, но осуждаю" классика немного другая.
Гугля сказала, что
"В реальности советские спикеры на собраниях и в газетах пытались выглядеть логично. Они подчеркивали, что осуждают не художественный текст, а политический поступок Пастернака.
...
А на собраниях интеллигенции лейтмотивом шла мысль: «Я книгу не читал, но сам факт её передачи врагам на Запад осуждаю». То есть советские люди в своей логике не видели изъяна: они судили Пастернака за «предательство Родины» (публикацию за рубежом), а не за литературный слог. "

В реальности советские спикеры на собраниях и в газетах пытались выглядеть логично.

Ключевое "пытались". Хорошая (не очень) попытка, но нет. Если капнуть еще глубже, то это типичное "делать хорошую мину при плохой игре". Так что по сути это именно "не читал, но осуждаю" - т.е. осуждали автора за его политическую позицию и переносили это отношение на произведение.

Почему у Вас 800 ГБ данных хранится в мессенджере?

А тред мы читаем...

Скрытый текст

Вы зря на человека.
Разворачиваю: зачем человек запустил на машине с 800GB личных данных какой-то мессенжер? Без контроля. И без бэкапов.
Розум е? Е! Е!

Demo: тут намедни в интернетах появилось "О! в новой телеге веб-прокси! Качайте телегу 7.1.1!"
Так вот в свежей федоре 44 (релиз) новой телеги не появилось. Сидим на 7.0.6. Пока новую не проверят на вшивость.

Ещё один) Где-то написано, что бекапов не было? Розум е?

А что под мессенджер нужен отдельный комп? Под браузер тоже отдельный, под ворд?

Ну под vim уж точно :)

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

Идея изоляции выглядит довольно здравой. Например что-то наподобие AppArmor, bubblewrap. Под виндовс, жаль, ничего такого нет.

под мессенджер нужен отдельный комп

Максофоны уже среди нас.

Боевую картинку схоронил, спасибо.

Только сейчас дошло.
> 800GB личных данных
> C:\custom\

И не палево ни разу.

PS. где "Материалы для диплома.lnk" на Рабочем столе? Куда мир котиццо?

Натыкался на эту же проблему в феврале/марте 2026. Привело все так же к тг. При этом, среди симптом, был странный нюанс — любой .exe запускался по нескольку минут, чистая переустановка тг помогла.

Натыкался на эту же проблему в феврале/марте 2026.

У вас тоже была папка C:\custom? Просто странное имя для папки в корне системного диска, или может быть это какая-то неизвестная мне традиция?

У вас тоже была папка C:\custom?

У меня тоже. Была. Теперь она пустовата. Нормальное имя, если для хозяина оно значащее. У меня там привычные твики интерфейса лежат, обои-иконки, шрифты-звуки. Баловство конечно, но всё же не ждёшь таких свиней от софта с полумиллиардной пользовательской базой. Автору огромное спасибо за то, что докопался до дна этой ямы и добился фикса.

Каждое решение по отдельности выглядело нормально:

Мне и по отдельности шаги показались безумием. Странная логика поиска, отсутствие проверок, рекурсивное удаление - это прямо треш

Это уже к QТ вопрос...

Да ладно, в любом софте может быть баг. Я помню в Битриксе тоже баг был, терялся путь к кэшу компонента блогов и в итоге периодически сносило сайт начиная с корня. Поднимал из бэкапов, лепил стикибит пока не нашёл глюк и не вставил доппроверку на пустое значение.

Так что custom это ещё по божески, могло бы хард целиком зачищать :)

Э-ээ… ну Битрикс как бы не эталон безглючности…

Но так-то да, в любом софте может быть точно есть, и точно не один.

У меня есть детская травма. В 2000м, предположительно, году я тихонько играл в The Thief предположительно 2, а хдд был 4Гб.

Поиграв вдоволь (пройдя три уровня, больше не смог, деть же), я решил этот шедевр удалить (игра реально офигенная, если вам в 2000м заметно больше 13 лет).

Запустил деинсталлчтор и увидел... Что удалено все в папке уровнем выше (все другие игры), а не в папке Вора......

Штош. Так судьба познакомила с дисками 200 в одном.

Получается The Thief украл все остальные игры 🤔

Аахахаа. В таком ключе я не думал. Может, это фича была :D

Была в былые времена одна широко известная в узких кругах программка "Bonito RadioCom", и у меня на старом ноуте была установлена. Ну и решил я недавно ненужное с ноута снести, чтобы меньше тормозил (2006 года выпуска, не топчик даже по тем временам, но ХР летает). Запустил "установку и удаление программ", выбрал этого Бониту....Удаление что-то долго и упорно не хотело прекращаться, прибил через диспетчер - так оно снесло мне все, до чего добралось, с рабочего стола, все ярлыки из главного меню, с панели быстрого запуска, и аппликэйшондату почистило.

оно снесло мне все, до чего добралось

«Так не достанься ж никому!» ©

В правила быдлокодинга. В любой непонятной ситуации с файлом, просто удаляй его :)

НЛО прилетело и опубликовало эту надпись здесь

Это мой компьютер, мой диск. Где хочу там и создаю. Хоть на рабочем столе держу, хоть в корне диска.

Проблема в софте, а не в пользователе.

Важные данные держите в windows\temp - там никогда ничего не удаляется.

Вы не поверите, один раз видел и такое. Строительная фирма держала там готовые проекты. Когда диск заполнился… Понятно, да?

Самое эпичное, что я видел - это хранение рабочих документов в корзине. Причём выяснено было об этом тогда, когда размер содержимого перевалил за максимальный объём корзины, кто-то из других пользователей решил, что про неё просто забыли, и её опустошил. Пришлось при помощи Recuva восстанавливать утраченное.

А объяснили такое место хранения тем, что якобы злоумышленник, получивший доступ к компьютеру, не догадается там искать.

Я видел не раз и наверное даже не два.

они что, кино не смотрят? там всегда самое ценное в мусоре находят при обыске.

Классика же, в корзине можно содержать несколько файлов с одинаковыми именами.

у меня коллега в корзине хранила. Вроде неглупая женщина, старший специалист. Но вот концепцию "Корзины" просто не знала, видимо считала просто временной папкой (или даже просто красивой папкой)

Несколько раз сталкивался. С тех пор на всякий случай спрашиваю, есть ли в корзине что-нибудь нужное.

Если у вас что-то старше XP, то компьютер не ваш а этот :)

Моложе тогда уж, и был еще переходный период просто "компьютера"

НЛО прилетело и опубликовало эту надпись здесь

Я вам больше скажу: со времен еще 9х я помню правило: не стоит держать свои документы в том месте, которое MS для них отводит. Меньше проблем будет в случае чего. Лучше еще и физически не на системном диске, но это не всегда возможно.
И нет, все эти закосы под юниксовые /home остаются закосами.

Я как-то ~10 лет на рабочем компьютере хранил все важные файлы в каталоге пользователя. Windows 7. Проблем не было. Не переустанавливал ни разу.

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

Необходимость отпала, но привычка осталась)

Семерка все же прям хорошая, ничего не скажешь. Но старые привычки держатся долго.

НЛО прилетело и опубликовало эту надпись здесь

Забавно, я вас понял исключительно обратным образом. Подозреваю, что и не один я. Ну да ладно, не беда.

Карму поправил, насколько мог )

А что не так то? Терабайты или нет, хочется человеку, удобно так ему, он и создал. Завтра будет другой баг где-то, что затронет другую папку.

У меня в корне на системном папка Games, тоже под терабайт всякой лабуды 🤷

узнаю DOS'овское детство =)

узнаю DOS'овское детство =)

Ох да, есть такое. Одна игра на нескольких дискетках, что записал у друга и волнение, что одна из них в итоге окажется битой и придется все заново копировать 😅 Doom вроде бы 4 дискетки требовал, например 💾 (хотя может быть уже искажения памяти)

Правила матерого компьютерщика. Папки с терабайтом всякой лабуды, создавай в корне системного диска

(Безотносительно того, что это не оправдывает Телеграм). Если бы винда не скурвилась, ещё можно было бы поговорить про папки профиля, в т.ч. расшаренные между юзерами. Но начиная прямо с висты/семёрки (точно уже не помню), т.е. первой же винды после того, как все привыкли к новой схеме, и первой винды без Гейтса, они сошли с ума и началось: My DocumentsDocuments Our Documents, Documents and SettingsUsers, появилась Program Data, такой бордель устроили, что я, читавший на ночь Windows UI Guidelines вместо сказок, запутался вконец. Вдобавок, они сейчас медленно убивают старые приложения (WinAPI .exe) в пользу WinStore (со всеми вытекающими) и исход этой великой битвы неясен.

Так что, матёрые компьютерщики в наши дни держат всё в своих папках в корне и пользуются по возможности портабельными приложениями без инсталлятора. Только вот системный диск лучше, конечно, не использовать, а воткнуть отдельный SSD.

В плане полнейшего бардака и их дизориентации согласен полностью. Но про win32/WinAPI, они ж наоборот улучшают совместимость х86 на arm64 через слой совместимости, а тот же проводник на обычной х64 Windows 11 является всё тем же приложением win32, но с натянутой оболочкой WinUI3. По поводу программ - тот же весьма полезный CrystalDiskInfo присутствует в ms store, в виде инсталлятора, при запуске которого ставится полноценная программа. Ну а лично про себя скажу, на Windows использую Unigram. Он выглядит современно и емнип весит меньше, чем оригинальный Telegram desktop.

А Android — технически Линукс, и что? )) Много это помогает? Если они делают техническую совместимость для себя, чтобы за занавеской было сподручней портировать, это же не значит, что они этой совместимостью поделятся с программистами и юзерами.

Сейчас МС продвигают WinUI3. Скачайте Студию, сгенерируйте приложение на C++/WinUI3, сбилдите, откройте папку Release, и попробуйте запустить .exe как для ортодоксальных (православных) WinAPI-приложений. Вся эта хрень заточена под генерацию .msix¹, которые являются прямыми аналогами .apk: дистрибутив, тесно привязанный к точке раздаче (store).

Да, 1) сейчас у них есть свойство проекта <WindowsAppSDKSelfContained>true</WindowsAppSDKSelfContained>, когда можно сбилдить запускаемое приложение (SelfContained на новоязе). Оно будет весить сто мегабайт, но запустится. Да, 2) сейчас можно .msix проинсталлировать без WinStore (на машине, с физически удалённым WinStore, я проверял). Но посмотрите на Гугл: у них какое-то время можно было запустить .apk самому, не из Play, а в наши дни… конкретно в сентябре, насколько я помню… они начнут раскатывать обновление, навязывающее сертификат разработчика. Короче, побаловались на свободе, и хватит. Все в стойло.

Так вот, проблема именно в том, что Android не даёт просто запустить программу. Если бы давал, какие бы сертификаты-шмертификаты они могли требовать? Как бы они это провернули? Никак. Вот и Майкрософт, очевидно, идёт той же дорожкой. Поэтому не ставьте ничего из WinStore, а лучше удаляйте его физически. И не ставьте ничего из .msix, ищите portable-аналоги. Добро пожаловать в цифровое сопротивление, так сказать.

¹ Или .msixbundle. Или .appx. Когда я понял, что это такое по сути, то в технических деталях (чем они между собой различаются) разбираться уже не стал.

Столкнулся с потребностью в установке чего-то из WinStore с драйверами Nvidia впервые. Панель, мать её, управления настройками графики устанавливаться отказалась, ссылка вела в удалённый магазин.

Но меня поразило не это. А сам подход: драйвер у нас идёт в установщике, а пульт управления от него - ставьте через магазин, отдельно.

А разве на ведро будут вводить какие-либо ограничения?

То о чем говорят про сентябрь, это разовая акция подождать 24 часа а потом НИКАКИХ ОГРАНИЧЕНИЙ НЕТ.

Хочешь раньше - бери в руки локальный ADB. Кому нужно будет, разберётся. Но с виндой согласен, там вообще никак)

Если ограничения действуют только 24 часа, то это не ограничения что ли?

Понятно, что обойти можно, но когда 20 лет ограничений не было, а теперь есть, позиция «а что такого» мне представляется несколько недальновидной.

Эти 24 часа нужно ждать только один раз, дальше всё как раньше

И причина есть. Защита от мошенников. Ну я реально не понимаю, ну изменили, и что дальше? Подождёшь или скачаешь приложение local ADB и все

То, что это может быть просто первый шаг к полному запрету установки apk не из маркета.

Да никогда такого не будет. Тот кто пишет приложения под Андроид прекрасно понимают это. Если запретят установку, отладывать приложения будет не возможно и гуглу это не выгодно. С каждым годом наоборот гугл упрощает это. Так что можно спать спокойно

И что ты мне скинул? Ты вообще сообщения мои читал?

Этот сайт был создан для хайпа не совсем разумными людьми, которые сделали из мухи слона, и думают, что корпорациям на них не плевать.

Ссылка на этот сайт стоит например на https://f-droid.org/

Кто такие F-Droid и кто такой какой-то Andrey4ik?

Ну это я так, к читающей сейчас общественности риторический вопрос.

Так ф дроид буквально не имеет никакого влияния на гугл. Это отдельное от всего опен сорс сообщество со своими репозиториями. Смысл не меняется.

Ну в отличии от какого-то Andrey4ik они что-то понимают в вопросе и вряд ли будут истерить по пустякам.

У вас на мой ник встает, или почему вы его так часто упоминаете?

Кто что понимает в вопросе? Челы, которые просто взяли сайт и вставили его в хедер на сайте? Ну то есть они буквально ничего не сделали, они просто ссылку вставили. Чё они там решают или что понимают? Ты походу не понимаешь суть вопроса.

Ну то есть они буквально ничего не сделали, они просто ссылку вставили.

А что они должны были сделать?

Ты походу не понимаешь суть вопрос.

А ты?

Так это к тебе вопрос, а не ко мне. Ты сам упомянул ф дроид и теперь пытаешься мне объяснить непонятно что.

Ну давай я на своём сайте вставлю эту ссылку , что дальше?

Ну давай я на своём сайте вставлю эту ссылку , что дальше?

Вставь. Только кто ты такой чтобы твоё мнение было авторитетным?

На Русторе кстати тоже предупреждают разрабов идите получайте верификацию сами - мы (Рустор) не при делах и ничем помочь не можем когда ваши приложухи перестанут устанавливаться с нашего Рустора.

подождать 24 часа а потом НИКАКИХ ОГРАНИЧЕНИЙ НЕТ.

Пока нет.

Что нет?

Пока нет никаких ограничений.

Они постепенно вводятся

Да, именно.

Я думаю, жизнь — не комикс xkcd про экстраполяцию количества мужей, и это начало закручивания гаек.

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

Корабль Тесея.

Насколько сильно нужно изменить линукс, чтобы он перестал им быть?

Нет, корабль Тесея - это BSD (если не знаете, посмотрите, как они последовательно выкидывали код AT&T, там интересная история). А здесь взяли Тесея и посадили в какую-то хрень: вроде тоже по смыслу деревянная коробка для передвижения, но вместо киля колеса, вместо гребцов и паруса откуда-то взялись лошади, вместо рулевого весла поводья. Сам Тесей на месте, только в глубокой задумчивости, стоит ли это называть кораблем.

Согласен

То есть если корабль перестроить в хрень постепенно - он останется кораблем, да?

Извините, я не понял вашей мысли.

Ну парадокс корабля Тесея же. В нем постепенно меняют доску за доской на то что попалось под руку. Через какое то время в нем нет ни одной детали от оригинального корабля. Можно ли то что получилось называть кораблем Тессея? А если построить такую штуку сразу?

Через какое то время в нем нет ни одной детали от оригинального корабля

Важный момент: при этом он продолжает выглядеть, как оригинальный корабль (ну ок, плюс-минус), и продолжает работать, как оригинальный корабль.
В вышележащей дискуссии как раз обсуждалось, насколько то, что получилось, можно вообще называть кораблем.

А если построить такую штуку сразу?

Скорее всего, опять же в контексте вышележащей дискуссии, это будет колесница Тесея ;)

Важный момент: при этом он продолжает выглядеть, как оригинальный корабль (ну ок, плюс-минус),

Вот тут и есть нюанс. Если корабль постепенно перестраивают в колесницу - в какой момент он точно перестает быть кораблем? Колесница не корабль, тут бесспорно ;)

Кораблем он перестает быть в тот момент, когда перестает исполнять функции корабля. Или хотя бы мочь исполнять. Точно-точно.

А вот кораблем Тесея он может перестать быть, даже продолжая исполнять функции корабля. Достаточно перестроить его из условной (чтоб я помнил точные названия греческих кораблей гомеровского периода!) галеры в какую-нибудь бригантину. Тесей его, по крайней мере, после этого не узнает. Хотя в истории кораблестроения есть обратные примеры; наиболее известен, пожалуй, пример “Катти Сарк”.

Но это, конечно, глубоко философический вопрос со множеством вариантов ответа. Например, от Москвы Долгорукого не сохранилось ничего. От Москвы Грозного - ну может, десяток зданий наскребется. Тем не менее по прежнему Москва, хотя связана с более старыми вариантами Москвы исключительно географически.

Андроид наверное даже не самый экзотический дистр линуха.

Вот какая-нибудь астра это уже не линух, т.к. лицензия не соблюдена. Хотя соблюдение лицензии вендорами тоже под большим вопросом, но с AOSP с этим вроде нет проблем.

Чтобы быть линуксом нужно обязательно соблюдать лицензию? Ну, наверное

это я грубо очень процесс описываю, но чтобы вам понятно было примерно

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

То, что ядро там есть (и технически это Линукс), не означает, к сожалению, что к нему дадут доступ и вы сможете из консольки поднять FTP, поднять ему приоритет, повесить вочдог в крон и т.п., как на десктопном Линуксе. Равным образом, хотя Microsoft делает там что-то с совместимостью под ARM, это их совместимость, и наивно ждать, что будет как раньше, во времена Windows CE, когда можно было в Студии просто поменять целевую платформу на ARM, сбилдить и запускать полученный .exe на телефоне.

и пользуются по возможности портабельными приложениями без инсталлятора.

Чтобы вирусы размножались лучше?

Я бы многое мог написать. Спросить для начала, видели ли вы хоть раз живой вирус. Я уже лет тридцать не видел. Последний раз видел во времена aidstest’а, когда под стол пешком ходил. Тут, может быть, можно говорить о malware payload, но употребление слова «вирус» в этом контексте многое говорит о матёрости компьютерщика.

Ещё мог бы спросить, чем в плане malware отличается скачивание дистрибутива через браузер по SSL с сайта разработчика (для параноиков — со сверкой хешей, которые все публикуют) и скачивание этого же дистрибутива с сайта Microsoft через приложение WinStore. Браузер-то побезопаснее будет.

Но лучше перейду сразу к сути: ХРАНИ МЕНЯ ГОСПОДЬ ОТ ТАКИХ ДРУЗЕЙ, КАК MS, Google или Apple, а с «вирусами» я как-нибудь сам справлюсь.

Что то на непонятном. Несколько гигабайт компилированных бинарников от МС на компе - нормально. Запустить инсталятор еще одного - фу, зашквар. Запустить бинарник, смастренный Васяном и выложенный на торрентах - нормально.

Начните еще оправдывать баг, ага))

А в чем проблема, мой комп, мой диск, как хочу, так и храню.

У меня в корне тоже есть папочки под разное и в некоторых дохрена чего храниться.

Как хранить терабайт лабуды, чтобы не в корне диска?

НЛО прилетело и опубликовало эту надпись здесь

Вот за это я и обожаю плюсовые фреймворки типа Qt. Чуть пропустил инициализацию переменной, и либа заботливо резолвит пустую строку в корень системного диска, чтобы тебе было веселее дебажить

Потому что на линуксе это именно так

А как это должно работать?

Потому что документацию никто не читает. В qt есть специальные классы для работы с путями. Но выклеить путь из строк с разделителями никто не мешает.

Вспомнил еще один малоизвестное поведение некоторых программ, с которым столкнулся давным-давно (по собственной глупости). Если по ошибке установить такую программу не в отдельную папку, а, к примеру, в корень папки “C:\Program files” или в корень дискового раздела, то в будущем при штатной деинсталляции этой программы встроенный uninstaller рекурсивно - медленно и методично - снесет всё, до чего дотянется, если его вовремя не прибить. :(

Ну так то логично для программы под Windows, что ее создатель рассчитывает на то, что она установлена в своей отдельной папке. Вот программа при деинсталяции эту свою папку и удаляет. В одной папке обычно только какие-то наборы утилит от одного поставщика располагаются.

Автор в статье перечислил все ошибки других разработчиков, которые привели к такому багу у него, кроме одной, в которой он сам виноват. Он сам создал папку C:\Custom и разместил в ней 800 Гб файлов и программ.

Ну так то логично для программы под Windows, […]

У пользователей, особенно малоопытных, может быть другая логика. :) Насколько я помню, сразу после ошибочной установки программы в общую папку я заметил свою оплошность и решил ее исправить, а именно деинсталлировать программу с последующей установкой уже в отдельную папку. Каково же было мое удивление, когда деинсталлятор стал тупо удалять всё подряд…

P.S. В своем первом сообщении я сначала написал “малоизвестный баг”, а потом исправил на “малоизвестное поведение”. Согласен, что это вполне себе логичное поведение деинсталлятора, которое надо учитывать.

Это прям victim blaming какой-то

нет, это нормальная реакция усталого человека.
Стабильная ситуация, например, когда собираешь комп родственникам/знакомым: выделяешь логический диск (или ставишь отдельный физический) С: под систему/повседневные проги и здоровенный раздел (отдельный хард) под файлопомойку/игры/нужное дописать самому. Строго предупреждаешь, как именно этим пользоваться. Через полгода - "у меня комп чего-то тормозит". Приходишь, смотришь - диск С забит под завязку, файлопомойка пустая.
Такая же ситуация на работе: говоришь чётко и ясно - никогда не ставить прикладные проги на системный диск, тем более в програмфилес, потому что потом вы упаритесь с раздачей прав. Тем более никогда, никогда (слышите - никогда!) не размещайте рабочую базу, если она есть, в той же папке, что и прога. Угадайте, что происходит в 90% случаев, если ты программу ставил не собственноручно? :))

Ну все же современные проги не пишут уже в program files. Ну и как бы можно сменить в реестре путь до program files

При смене пути до Program Files начинают лезть разные косяки. Сидел так. Не понравилось.

Тут есть один нюанс, он же "проклятие легаси". Компании, занимающиеся разработкой ДЕЙСТВИТЕЛЬНО давно, а не в рамках "импортозамещения"(с), как правило имеют в анамнезе тот или иной статус "партнёра Microsoft", а микрософт годами учил их плохому (зачёркнуто) ставить проги исключительно в програмфилес, потому что так "правильно" и "сохранение в облако" и прочее, прочее, прочее шаманство. Сейчас это, конечно, общепризнанный сатанизм, но инсталляторы, как правило, переделываются в последнюю очередь :))

Дело давнее, если что. Я даже не помню, в какой версии Windows всё это происходило. Возможно, в XP или 2000.

К слову уже достаточно давно диски вообще не разбиваю. Делаю просто: один физический диск - одна буква. Вот как раз что бы плясок было поменьше с границами.

На последнюю треть на хардах пишет очень медленно, только для бэкапов/хранения раньше оставлял. Ну а ссд ещё веселее, там как через две трети объема перевалит - начинает притормаживать. Так что ссд бью только на две трети, последнюю треть даже не создаю том. А харды по нынешним временам тормозные, только для бэкапов и хранения годятся.

Коллега, в приснопамятные (практически легендарные нынче) времена пришёл к той же схеме:
- один диск (sata) - для (эльфов) ОС и связанных прикладух;
- второй диск (М.2) - (для гномов) для быстрых прикладных программ (игор):
- третий диск (sata) - (для царей земных) файлопомойка на медленном харде для всего, что не нужно срочно;
- четвёртый диск - (чтоб править всеми - зачёркнуто) физически отдельный для еженедельного бэкапа системы и ключевых папок;
Ни разу не подводило за последние 20 лет.
И да, если выбирать название для ЛИЧНОЙ папки, не нужно выпендриваться и писать всякое умное - /custom, /system, /centralcore и прочее. С чем проблем не было - за всё время практики ни разу не сталкивался с бедами при названии папки :/anime
Вот вообще ни разу :))

Вот программа при деинсталяции эту свою папку и удаляет.

Грамотные инсталляторы создавали список созданных файлов, и только по этому списку удаляли. Ибо всё остальное что там потом могло появиться - не твоё, и ты не вправе это удалять. Но тогда софт писали инженеры, а не вчерашние продавцы пылесосов.

тут, кажется, разморозили фидошников из святых 90-х с их "винда сакс, линукс рулез!"
собрание школоты какой-то в комментах

Не Линукс, а OS/2!

Я бы мог создать папку custom вне системного диска и она также бы удалилась. Путь резолвится от корня установки программы

мой /home смотрит на вас с осуждением

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

Хотя про то, что программы под Windows редко бывают нормальными... тут возражать не стану.

Это если инсталлятор. А если софт сам насоздавал файлов то отследить их сложнее

Ну так то логично для программы под Windows, что ее создатель рассчитывает на то, что она установлена в своей отдельной папке

Если он так серьезно на это рассчитывает, пусть обеспечит проверку и невозможность иных вариантов.

При установке виндовых программ есть разночтение - указываешь папку назначения C:\dir и некоторые инсталлируют прямо в неё,а некоторые в C:\dir\ProgName

Инсталляторы обычно не удаляют файлы, которые они не создавали. Похоже на кривой инсталлятор.

Похоже на кривой инсталлятор.

Вполне возможно. Если что, эта неназванная программа была и остается бесплатной, и даже с открытыми исходниками (проверил, теперь лежат на Github, а давным-давно вроде были на SourceForge или что-то вроде того). Вполне возможно, что разработчик с тех пор внес изменения в поведение деинсталлятора.

Вспомнилось: давным-давно, ещё во времена WinXP в EVE online в папке с игрой был файл boot.ini. И когда в очередном обновлении разрабы решили его удалить, тех, у кого игра была установлена на диске C, ждал сюрприз

Непонятно почему удалилась папка с диска С, если рабочая директория была C:\custom\Telegram. Может все-таки 800 Гб, чтобы удалиться, должны были хранились в более экзотическом месте: C:\custom\Telegram\custom ?

Потому что в процессе обрезания строки пусть стал C:/Custom

Пишут что опасный баг присутствовал только в версиях 7.1.0 и 7.1.1 (они продержались в открытом доступе около 66 часов). Да неприятно. Как вариант, данные (файлы) можно попробовать восстановить с помощью специальных утилит.

Вспомнился Bumblebee, вроде бы, под Linux. В котором пробел случайно добавили в rm -rf / usr/bin/... и он сносил всё :)

Безотносительно от того где и что хранить, это недостаточное тестирование. Ну и по-хорошему неплохо было бы перед удалением файла проверять, является ли он собственно файлом.

Пользовался когда-то сетевым медиаплеером WDTV Live, при работе с сетью всё было ок. Но с локально подключенным (по USB) диском творилась дичь: файл мог пропасть, а на его месте появлялась папка с таким же именем. Выяснилось, что это происходит, если не досмотреть фильм до конца, поставить на паузу и выключить плеер. Особенно это было неприятно, если затирались серии мультфильмов, которые тогда смотрел ребёнок. Я так понял, это был сбой системы, которая записывает историю для возможности продолжить просмотр фильма - такая вот ирония. Потом подключил диск к компьютеру с Windows и эти созданные папки не смог удалить.

Ну и по-хорошему неплохо было бы перед удалением файла проверять, является ли он собственно файлом.

Так они и проверяют - если не файл, то сносят рекурсивно для верности же :facepalm.jpg:

Там же удаление рекурсивно, значит подразумевается что это папка может быть

Вот не должна пользовательская программа иметь доступ ко всему диску. Только в свои (программы, а не пользователя!) директории.

Android например.

И iOS.

Flatpak.

В последней версии зачем-то просить доступ к system bus. не стал обновлять потом разберусь.

То бишь мораль за 30 лет не изменилась: работает - не трожь.

Никаких обновлений до момента когда уж реально приперает.

Потому что не надо использовать обычные строки для работы с путями. Меня это всегда удивляло - ну есть же строгая типизация, ну используйте её. Сделайте класс обёртку и там проблема пустой строки сразу выйдет ещё на этапе проектирования.

А в подобном случае, для большого проекта, лучше ещё использовать обёртку над файловой системой, которая будет сама добавлять базовый путь (аля vfs) - так хоть площадь для ошибки меньше.

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

Со времён регулярных переустановок системы с форматированием диска есть привычка - не хранить никакие данные, которые жалко потерять, на системном диске. И не играться со стандартными путями установки и переназначения всяких там My Documents на диск D:, потому что мало ли что эти криворукие там навертели. А так просто форматнул C: и забыл как страшный сон весь набор багов, а данные на месте.

Оказывается, актуально до сих пор.

Ну поставил бы он телегу на d и папку там создал бы - что поменялось бы?

Ну поставил бы он телегу на d

Э нет

не играться со стандартными путями установки

Телеге, как и любому софту, место на C:, куда он по автомату и ставится. Система и весь софт - на одном диске, пользовательские данные - на другом.

Классика, rm -rf /{{ path }} в системе управления конфигурациями с препроцессором Jinja, когда path внезапно оказывается не определённой переменной.

C:\custom = Дурик

Зарегистрируйтесь на Хабре, чтобы оставить комментарий

Публикации