Стой под стрелой
10.8K subscribers
17 links
Ведет @nikitonsky. Рекламы нет
Download Telegram
Вот вы все так любите Докер, а у меня с ним все как-то не получается.

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

И что вы думаете? Уже два человека не смогли его запустить с совершенно мистическими ошибками. Причем ошибки не из серии «не запускается», все запускается, просто внутри уже ведет себя как-то по-другому. Что, почему? Да хрен его знает. Казалось бы, единственная фишка — воспроизводимость, и ту просрали.

Пока что из двух подходов оба себя не оправдали. Счет ноль-два не в пользу Докера.

А мораль какая? Упрощать надо софт, а не накручивать поверх сложных систем еще одну мега-сложную. Если бы то что я хочу запускалось, скажем, как Java-программа, никакой Докер никому никогда бы и не понадобился. Или как статически слинкованный бинарник. Но нет, блин, там Питон библиотеки, которые не то что запустить, их установить это целый квест.

Пис.

UPD: Докер предварительно оправдан по второму пункту (воспроизводимость). Оказалось, что в репе Fira Code есть инструкция собирать Dockerfile, а не юзать готовый образ. Поспешил с разоблачениями
Посмотрел на Ютубе видео «Essence — October ’21 Progress». Там чувак пилит операционку с GUI с нуля. Да, даже без Линукса.

Выглядит, конечно, крышесносяще. Например, в инсталляторе он нажимает «Install» и тут же, в следующем кадре уже написано «Installation complete». Не секунду позже. Не полсекунды. Сразу же. Как будто ничего и не произошло.

Сама ОС после этого загружается за 700 мс. Он биоса ждет раз в десять дольше (да, в десять!). Представьте, что ваш компьютер включался нахолодную так же быстро, как ваш телефон просыпается ото сна?

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

Показывает, что флешки можно вытаскивать без «безопасного удаления» (господи боже, наконец-то!). У папок сразу виден размер (о да!)

Показывает, что всякие системные вещи типа темы и скейлинга применяются мгновенно, без всяких «выйдите и зайдите снова». И ничего, блядь, не моргает!

Короче, впечатляет. И освежает. И напоминает, что компьютеры, вообще-то, могут быть быстрыми. Это все вроде бы простые, тривиальные, базовые даже вещи, однако же ни одна современная ОС так не может. Хотя если со стороны посмотреть — ничего, вроде бы, не мешает. Но, как в том меме, «то одно, то другое, блядь».

И видео обязательно посмотрите. Эффект очень сильный. Нам пишут:

«Я не знаю. как это работает, но после просмотра видюшки из твоего твита (Essence) у меня возникло желание прямо сейчас встать и начать кодить, впервые за месяц»

Абсолютно согласен. Пишите маленькие быстрые приложения. А большие не пишите.
Чего я до сих пор не понимаю это истории с контроллерами/геймпадами. Наивному мне казалось, что они должны что-то вроде мышки быть: воткнул — сразу работает. Один фиг там одни и те же кнопки в одних и тех же местах.

Каково же было мое удивление, что:

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

Помню, гуглил как-то, можно ли Xbox контроллер подключить к ПК, и там была какая-то история типа «надо посмотреть на заднюю крышку и если там какая-то крышечка одной формы, то да, а если другой, то нет». При том что во всем остальном они идентичные абсолютно. Не то что кнопки совпадают, а вообще все, даже дизайн.

То есть я все понимаю и про маркетинговые причины, и про сложности договориться, и про стандарты USB/Bluetooth.

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

В какой-то момент мой телефон перестал просыпаться на СМС. Ну, знаете, ждешь там какой-то код подтверждения, он оказывается уже сто лет как пришол, но от телефона ноль намеков. Причем это перенеслось со старого телефона на новый. В настройках, конечно, включены все возможные способы: звук, баннеры, удар током, выстрел в воздух. Do not disturb не включен. У других приложений таких проблем нет.

На том же самом телефоне не синхронизируются контакты. Не все, а некоторые. При том что айклауд включен и всегда был включен и на телефоне, и на компе. Эта «странность» тоже пережила два телефона, контакты между ними мигрировали, а вот на комп ни в какую.

Вчера вот еще буквально собрался спать, поставил ноутбук на рабочий стол и воткнул шнур зарядки. Открылся колор пикер. Как, что, почему? Никогда такого не было, но вот один раз случилось.

Купили домой принтер. Ну, то что он после сна теряет вайфай и требует хард ребута это я могу понять, это уровень современных технологий. Но вот если послать на него документ с айпада, то там не будет диалога «настройки печати». И, соответственно, нельзя выбрать ориентацию листа. Казалось бы, он наверное не дурак, у картинки/документа легко найти большую сторону и поставить ее вдоль большей стороны листа, да? Или хотя бы всегда вести себя консистентно? Но нет, это было бы «not retarded enough», как говорили в великом Generation Kill. Он выбирает сторону (кажется) рандомно, иногда печатает правильно, иногда перпендикулярно, даже один и тот же документ, даже из одного и того же приложения!

AirPods Pro, конечно, хорошие наушники. Но логику их подключения я так и не понял. У меня не самый экзотический сетап в мире — ноутбук и телефон. Так вот, он выбирает, к чему подключиться, абсолютно рандомно. Может быть так, что ты смотрел видос на ноуте, закрыл, перешел за другой стол, открыл — они уже отсоединились. А может быть так, что только что слушал на телефоне, убрал уши, достал — они уже на компе. Никакой логики и закономерности я не заметил, ну, кроме того, что оно это делает, чтобы максимально меня выбесить.

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

И вот буквально сейчас логинился в сайт, он прислал код подтверждения. Я его профукал (телефон не загорелся), запросил повторный. Повторный пришел в точно таком же сообщении, слово в слово, но все пробелы заменены на плюсы. Почему? Как?

Я не знаю. Да и не хочу знать. Я дед, технологии меня не любят, а я их. Мое время прошло, я уже никогда не смогу в этом разобраться.
Одно время в юзабилити были очень популярны так называемые «персоны». Это когда ты придумываешь несколько вымышленных персонажей, которые якобы будут пользоваться твоим продуктом, и дальше дизайнишь для них, а не для абстрактного пользователя в вакууме. Причем придумывали прям целую биографию: имя, возраст, цвет глаз, где учился, как выглядит, кем работает, есть ли девушка, и т.д.

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

Ну и лишних деталей одновременно и слишком много (почему персону зовут Вася? А если назвать Петя, что, другой продукт получится?), и слишком мало, чтобы дотянуть до сложности реального человека.

Тогда дизайнеры поигрались, им надоело и они придумали новую парадигму (да, совсем как в программировании!), называется Jobs to be done. Внезапно свежей оказалась мысль, что независимо от того, зовут человека Глаша или Маша, им обоим нужно посмотреть баланс лицевого счета, и вот вокруг этой задачи и надо проектировать.

Звучит пока что сильно логичнее, хотя, как и с любой методологией, не обходится без перегибов. Например, легко забыть, что за определением Jobs стоит целый этап собственно проектирования: а как эти пятьдесят задач упаковать так, чтобы в приложении вышло всего две кнопки? Вот настоящая задача, а собирать требования, скажем честно, и без всяких методологий всегда умели.

Ладно, это все вступление, а теперь примеры. Есть версия, что тот самый адский дизайн современных микроволновок — ну, когда у нее восемьнадцать кнопок и тридцать четыре режима — это как раз прямое следствие Jobs to be done, примененного буквально.

Механически ты управляешь всего двумя параметрами — мощностью и длительностью. Но если зайти со стороны JTBD, то человеку ведь не нужно «2 минуты на 800 ватт», ему нужен теплый блинчик с ветчиной и сыром.

Моя любимая цитата — «людям не нужна дрель, им нужны дырки», но слава богу, дрели пока еще не превратились в микроволновки. А вот микроволновки — превратились. Всякие вот эти кнопки типа «суп» или «курица» или «завтрак» это в буквальном виде задачи, и под каждую отдельная кнопка.

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

Ну и переносимость, конечно. Ни на каком продукте в жизни не напишут «засуньте в микроволновку и нажмите функцию “Картошка”». Напишут — 2 минуты на 800 ватт. Потому что минуты и ватты универсальны, а функция «картошка» — нет.

У меня в Airbnb сейчас стоит чайник (да, чайник, для кипятка), на котором 11 кнопок, 10 лампочек и 75-компонентная ЖК-панель. Да, там есть функции «Травяной», «Улун», «Крепкий» и т.п. И да, чтобы его включить, мне понадобилось минут пять. И да, прямо сейчас я полез его тестировать, включил кипячение и не смог его выключить. Теперь у меня есть полный кипятка чайник, но чаю я совсем не хочу. Интересно, где в матрице Jobs to be done эта ситуация? Также интересно, вспоминал ли во время проектирования хоть кто-нибудь цитату из Юрского Парка?

Поэтому методология методологией, а этап синтеза никто не отменял. Иногда проще дать людям дрель, а не каталогизировать все возможные ситуации, для которых им могут понадобиться дырки. Думайте головой, а не только книжками.
Обсуждали в Грампи.Чате галочки «запомнить меня» и протухающие сессии. Вообще удивительная технология, мало что в компьютерах так плохо работает (или так сильно тебя обманывает) как «запомнить меня». Потому что я (естественно) всегда и везде ее зажимаю, но при этом логиниться приходится все равно по пять раз на дню.

Так вот, @grishka сформулировал простую концепцию:

> если я где-то залогинился один раз, эта сессия ОБЯЗАНА жить вечно, пока я сам не разлогинюсь, или не завершу её с другого устройства

Просто? Просто. А знаете что еще кайфово? Галочка «запомнить меня» становится не нужна. Интерфейс и ментальная модель становятся радикально проще, потому что не нужно держать в голове и управлять вот этим вот странным процессом «что делать, когда компьютер посчитал, что нужно тебя разлогинить». А поскольку им управлять не нужно, он пропадает из ментальной модели вообще и становится хорошо, просто и предсказуемо.

Похожее откровение было когда-то в блоге у @ilyabirman. Он придумал, что галочки «Open at login» быть тоже не должно. Запустил программу — она работает, пока из нее не выйдешь. Если компьютер решил перезагрузиться, что ж, это не повод закрывать программу!

А если уж ты из программы вышел, и компьютер (скорее всего, по какой-то совершенно другой!) причине перезагрузился, это не повод открывать программу снова. Всем, наверное, знакомо ощущение, когда раз в полгода перезагружаешь ноут и вылазит миллион каких-то чертей, про которые ты те же полгода как забыл и закрыл, а они открылись, потому что «Open at login».

Короче, не надо озадачивать пользователя страными вопросами «а что делать, если произошло рандомное условие X» (перезагрузка, две недели прошло, луна поменяла фазу, кот чихнул). Если я что-то сделал, то пожалуйста выполни и запомни. А если я ничего не сделал, то пожалуйста ничего не трогай и оставь как было.

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

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

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

Поэтому каждый раз, когда в программе больше одной панели для организации чего-то, я сильно напрягаюсь. В iA Writer, программе, которая начиналась с того, что боролась за цифровую чистоту, например, сбоку показывался список файлов, но потом над ним сделали еще один уровень — «Locations». Мало того, что это еще одна панель, которая черт знает сколько места отъедает, она еще и угнетает одним своим присутствием. Мол, неправильно ты, дядя Федор, программу используешь, мы вот панель сделали, а у тебя в ней всего один пункт.

Это я демку Stack Browser посмотрел. Они предлагают табы группировать в карточки, карточки в стеки, а стеки — в пространства. Опять же, это какого размера голова нужна, чтобы в этом ориентрироваться и все правильно разложить? При всей кажущейся непрактичности обычных браузеров я восхищаюсь простотой линейного списка табов и все. Даже окна отдельные это уже оверкилл.

Самое страшное, что я видел на эту тему будет, пожалуй, OneNote. Там чтобы до заметки добраться надо четыре уровня пройти: Блокнот → Секция → Страница → Текстовый блок на странице. А ведь всему этому еще и имена надо придумывать!

Короче, простая, плоская организация — да. Иерархия — нет.

UPD: Люди, конечно, хорошо понимают иерархии (дом - улица - город, подчиненный - отдел - компания). Наверное, проблема тут в том, что придумывать иерархии на ровном месте сложно, а уже существующими пользоваться более-менее легко. Особенно когда в них есть смысл (в реальном мире иерархии, как правило, возникают ровно там, где они очень нужны, поэтому въехать в схему всегда легко). Ну и я тут смешал немного рекурсию и иерархию, конечно.
Посмотрел видео, в котором Егор Бугаенко (да) критикует новый Макбук. Среди претензий только сравнение со старым: весит не так, экран не такого же размера, коробка другая, кнопки черные на черном фоне. И вот это его настольно взбесило, что он даже вернул его в магазин и сидел ждал у телефона, что ему позвонят из Купертино и извинятся (вы сейчас думаете, что я преувеличиваю, но нет, ЭТО ЖЕ ЕГОР, такого нарочно не придумаешь).

Это я к чему? Конечно, к вещам легко привыкнуть. Конечно, каждый раз, когда берешь в руки что-то новое, сделанное по-другому, первая мысль: как так можно? Это же отвратительно.

Первый раз, когда я увидел клавиатуру макбука, мне казалось «зачем черные кнопки на белом, это же нелогично?». Потому что подавляющее большинство ноутбуков тогда (да и сейчас) это либо черное на черном, либо белое на белом. Но пожив с макбуками, нелогичным теперь кажутся все остальные. «Как можно делать по-другому?». То же самое при переходе с Андроида на Айфон, с Айфона на Андроид, с маленького телефона на большой, с большого на маленький, с Винды на Мак и с Мака на Винду. (Линукс не вспоминаю, Линукс плох объективно).

«Как такая громадина поместится в карман?». «Как на таком маленьком экране что-то делать?» «Как жить без нотификейшн центра?» «Как жить без счетчиков непрочитанных на иконках?» «Как жить без свайп-клавиатуры?» «Как набирать на свайп-клавиатуре?» Все это абсолютно симметричные вопросы, в которых нет правильной стороны. Можно так, а можно так, никто не умрет, задачи сделаются, все будут довольны.

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

«Встречают по одежке», «только один шанс произвести первое впечатление» — да, это факт человеческой психики, но не ролевая модель. Это когнитивная ловушка, которую надо преодолевать, а не строить на ней свою картину мира. «Я воспринимаю только компьютеры Эппл», «Эппл уже сделала лучший ноутбук, лучше уже не будет» — признак костности мышления и жизни внутри пузыря, а не что-то, чем стоит гордиться.

Пост скриптум. Почему, действительно, у макбуков черные клавиши? Очевидно, потому что надписи должны светиться в темноте, а значит надписи будут белыми (прозрачными). Значит, чтобы они читались контрастно, кнопки должны быть черными.

Почему тогда весь макбук не сделать черным? Потому что черная электроника уже и так выглядит как говно, а белый (ну, светло-серый) радует глаз и легче вписывается в интерьер. Любой черный монитор или системный блок выглядит как бельмо в любой более-менее человеческой комнате. Откуда пошла мода на черный я не знаю, может быть, всех задолбал желтеющий пластик, а может быть, чтобы сматчить вид выключенного экрана, но я рад, что Эппл pushed back.
Попалось в Твиттере:

> Safari doesn’t support fractional font sizes, so we do integer font size and add the fractional size using the scale transform.


el.style.fontSize = `${Math.floor(fontSize)}px`;
el.style.transform = `scale(${fontSize / Math.floor(fontSize)})`


И это, мне кажется, максимально концентрированно отражает вообще все программирование:

- Абстракции, которые не делают то, что тебе нужно.
- Объезд абстракций максимально идиотским, но изобретательным способом (смекалочка!)
- Создание техдолга, с которым самому же и придется разбираться.
- Вполне вероятно, потеря качества.
- Вполне вероятно, не самое оптимальное использование ресурсов.
- Из-за одной неудачной платформы страдают все.
- Сомнительная фича in the first place (я не знаю контекста, но зачем вообще нужен дробный размер шрифта?)
- Готовность мириться с неоптимальными посредственными решениями. «И так сойдет»
- Бессилие перед невозможностью сделать нормально.
- Полная бессмысленность происходящего на всех уровнях.
- Высокие зарплаты всех участников^W^W^W^W.

Шутка про «вылить воду из чайника и перейти к шагу 1» это не шутка, это буквально рабочие будни.
Коллега по несчастью Алексей Мигутский пишет в твиттере:

> Ребята, если ГитХаб начнёт ВДРУГ тормозить, то знайте — мы внедрили реакт! Я вас предупредил. Обновляйте макбуки.

И дальше про мотивацию:

> Мотивация — чья-то карьера, строчка в резюме и «я слышал, что реакт — это быстро», пизданутое каким-то топом.

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

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

Отдельно печалит в этой ситуации, конечно, что технические решения диктуются не результатом, который хочется получить (быстрый сайт), а процессом (удобнее разрабатывать). А цена вот:

> [...] просто подключение Реакта + стейт менеджера дает 20-25% агрегированного замедления перфа на всех страницах

Всем хорошего рабочего дня!
Ух, как меня бесит фраза «На любом языке/стеке можно написать плохо». Она настолько пустая и бессмысленная, что хочется сразу из разговора удалиться, когда она всплывает.

Примерно как «Ни один истинный шотландец»:

А: Все шотландцы обожают хаггис.
Б: Мой дядя шотландец, но он не любит хаггис!
А: Ну, вообще-то все истинные шотландцы любят хаггис.

Возьмем Реакт. Я уверен, что на Реакте можно написать быстро. Уверен, что можно медленно. Уверен, в мире есть больше одно примера и того, и другого. Но знаете что? То же самое можно сказать про любой другой фреймворк. И даже про ванильный ЖС. На нем тоже можно написать и быстро, и медленно, и наверняка есть больше одного примера и того, и другого.

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

Важно не то, что можно, а что нельзя. Можно все, вопрос только какими силами. Вам нужна команда принципалов, чтобы сайт не тормозил? У меня для вас плохие новости. Три джуна утром с бодуна не смогут испортить перформанс? Новости хорошие. 90% сайтов на Реакте тормозит? Нет, делать ставку на то, что у вас почему-то получится лучше, что вы не войдете в эти 90% — ну, минимум глупо. У Твиттера не получилось, у Гмейла не получилось, у Ютуба не получилось, а у вас вдруг получится? Сфигали?

И говорить, что фреймворк тут не при чем, а у программистов руки кривые — ну, можно конечно, но немножко глупо. Потому что знаете что? Фреймворк можно выбирать, а вот программисты, к сожалению, будут одни и те же.

Можно ли на C написать программу без утечек памяти, выходов за границы массива и UB? Теоретически можно, конечно, но на практике ни у кого не получалось.

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

«Почему обязательно проститутка, — сказал я. — А может это белошвейка. Которая только вчера приехала из деревни. И влюбилась в водопроводчика, ремонтирующего в публичном доме душ. А водопроводчик взял её с собой на работу, потому что ей временно негде жить. И там у них выдалась свободная минутка.»

Вот на этом невысказанном предположении и держится весь наш хрупкий Айти.
Прикольно еще, как лет десять назад все бегали и советовали брать js-библиотеки и шрифты с какого-то общего CDN, потому что «да все одно и то же используют» и «скорее всего, уже будет закешировано».

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

И если подумать, то действительно, если я один раз в жизни когда-то по какой-то причине скачал react-16.0.1.min.js с хэшем abdef12345, то нет никакой причины в мире качать его еще раз для всех остальных сайтов.

Но нет, к сожалению, хорошие, красивые и логичные решения не про современный мир.
В ПК-гейминге меня всегда раздражало, что какой бы комп у тебя ни был, ты все равно постоянно чувствуешь неудовлетворение: всегда есть настройка, которую можно еще задрать, разрешение, которое можно прибавить, ФПС-ы все равно проседают и ты постоянно грызешь себя: а в ту ли я версию играю? Может быть надо еще покрутить, потюнить, поиграться с настройками?

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

Каково же было мое разочарование влиться в консольный гейминг в самый неприятный переходный период: консоли нынешнего поколения оказались в странном лимбо между 4k и 60 fps. Они не могут и то и другое, поэтому впервые в жизни пользователь должен выбирать, как он хочет играть: медленно или некрасиво. И самое обидное, что бы ты ни выбрал, ты всегда будешь знать, что ты _гарантированно_ что-то упускаешь.

Два стула пришли откуда не ждали.
Был у меня когда-то прекрасный телефон: Lumia 1520. Здоровый как лопата, OLED экран, Windows 8, интерфейс стильный, приложений нет, красота короче.

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

Прошло восемь лет и я купил себе лопату-айфон. Размеры практически такие же (160x80 mm), но в кармане лежит прекрасно, никакого дискомфорта, нигде не упирается и не отдавливает.

Что случилось? Я вырос? Мода на джинсы поменялась? Нет. Все очень просто: у Lumia углы были прямые, как логотип Виндоус, а у айФона — скругленные.

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

А мораль простая: иногда для успеха достаточно спилить углы.
Вчера шутил шутки про размер телефона, а сегодня война. Очень плохо 🙁 Хуй войне, сил украинцам.
Я никогда не интересовался историей и слова из учебников ничего для меня не значили. «Германия считала, что условия, продиктованные в Версале, были несправедливы юридически и невыполнимы экономически. Всё это создавало международную напряжённость» — не откликается вообще никак.

То же самое касалось описания жизни в СССР, диссидентов, занавеса, дефицита, компартии — ну да, умом я понимал, что это какие-то осложнения, но всерьез переживать не получалось. Всегда казалось, что люди там не по-настоящему плохо жили, а жили нормально, просто описывали это плохо. Нагнетали.

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

Ну вот теперь и мне выпала возможность ощутить на шкуре, как жилось в 39-м в Германии и в СССР одновременно. Как постепенно варить лягушку, чтобы она не заметила дефицита продуктов или запрета путешествовать. Почему люди вообще эмигрируют, когда начинается война — раз они живут в стране, разве они не все вместе дружат? Даже фраза про «Гитлер планировал блицкриг» очень некстати развиртуализировалась. И ебаные часы судного дня из Хранителей — вот уж точно без чего можно было бы обойтись. Мысль, что где-то сейчас новый Алан Мур пишет очередной великий антивоенный роман забавная, но греет слабо.

Сажать за плакат «Нет войне» — это было сложно объяснить, зато теперь легко в это поверить.

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

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

Как и зачем работает пропаганда — мои родители, например, до сих пор верят, что Россия поступает правильно и надо «вернуться домой, пока чего страшного не случилось». Они не могут объяснить, как именно она поступает, но уверены, что их опытом им понятно больше.

Удивляет, как люди, большую часть жизни прожившие в Союзе и выросшие на его культуре, где весь этот опыт перерабатывался, как они могут не увидеть совок, когда он стучится к ним в дверь топором? Все эти антивоенные фильмы, «лишь бы не было войны» — они их смотрели и что думали? Что это какая-то фигура речи?

Удивительна механика войны, которую я не понимал даже в школе. «Это считается военным преступлением», «запрещенное оружие» и так далее. Типа есть такие суровые правила, что страны их придерживаются, даже когда начинают буквально убивать. Но почему бы тогда не внести в них запрет на убийства? Зачем вообще разрешать воевать?

Еще не понимаю, когда гражданские жертвы считают отдельно от военных. Да, страшнее — гражданские значит это могли быть мы с вами. Но военные-то тоже люди, и когда они убивают друг друга — это же тоже не нормально?

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

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

Извините за сумбурные мысли, понятно, рефлексия берлинского айтишника с дивана сейчас никому не нужна и никому не поможет. Но это, наверно, самое умное, что я могу сказать тут, а помощь переместилась в реальную плоскость — протестуйте, донатье, селите, опровергайте, свергайте, любите и поддерживайте друг друга. Комментов нет еще с прошлого поста, потому что я не успевал чистить ботов и хейт, но есть личка. За Украину!
Че, как вы вообще? Держитесь?
Решил я, значится, писю свою (пэка, то бишь) к продаже подготовить. Загружаюсь, а там AMD драйвер забыл настройки integer scaling. Не впервой, открыл, вернул. И цвета какие-то не такие. Тут пришлось побегать, потеребить всякие контролы (реально практичный способ — поменять какое-то значение, а потом вернуть как было), и в конце концов все стало как нужно. Почему? Хз.

Ладно, гуглю, значит, как загрузочную флешку создать. Майкрософт говорит: вот, скачай утилиту. Ну окей. Десять гигов говна вы, значит, в дистрибутив положили, сканер с попапом, проверяющие на Windows 11, тоже положили, рекламу Candy Crush положили, а на утилитку весмо 200 килобайт места не нашлось. Чтош.

Утилитка говорит: непонятная у тебя какая-то флешка. Открываю в Disk Management и реально какая-то странная: прямо посередине какой-то раздел на 200 мегабайт, неудаляемый. Очень неудобно. Пришлось брать мак и форматировать там. Винда не хотела, да.

Дальше утилитка пошла качать ISO-образ. Заняло это примерно час. Ну да, час, хотя на 50 Mbit должно было около 15 минут.

Дай, думаю, запущу Divinity 3 ^W^W Baldurs Gate 3 в последний раз, пока она качает. Запускаю — уровень грузится, моделек нет. Можно из этого сделать аргумент, что у разработчиков руки кривые, но для меня это все-таки ПК экспириенс в первую очередь: все настолько плохо организовано экосистемно, что никто не может делать нормальные приложения, независимо от количества денег или желания. Баг чинится только переустановкой драйверов, кстати.

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

Почему для этого нет кнопки? Что, люди компьютеры никогда не продают, что ли? Меня всегда это удивляло — административные интерфейсы винды никогда не были особо продуманными, зато всегда развесистыми. Но какие-то операции делаются только через командную строку. Казалось бы — раз у вас уже и так мегатонны говна, соберите тогда уж совсем все туда. Но нет.

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

Тем временем сделалась флешка. Перезагружаюсь. Грузится с флешки. Давай ставить винду, говорит. Давай! говорю.

Вот, говорит, какие у тебя разделы. И список в семь штук показывает. На два диска!

Интересно, думаю. Нажимаю на самый большой. Не, говорит. Не буду. Нажми, чтобы узнать, почему. Че бы сразу не показать? Нажимаю. И она выдает, внимание, фразу:

«На этот раздел установка Windows не представляется возможной. Это MBR раздел, а чтобы EFI, надо GPT».

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

И тут, возможно, если вы знаете, что такое MBR/EFI/GPT, вы удивитесь: все же понятно? Я не знал. И вот для того, кто не знает, это максимально идиотская формулировка, просто чистая тарабарщина. Знаете, как в фильмах про хакеров те несут полную ахинею, которая типа «звучит компьютерно»? Вот это в точности такая же ахинея. У вас же XYZ, но чтобы ABC, вам нужен SPQR. ЧТО, БЛЯДЬ? Я даже хрюкнул, насколько по-программистски это звучит.

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

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

1/2
2/2

Окей, разделы. Разделы же можно удалять? Можно. Я в общем-то все равно их форматировать собирался. Удаляю все. О, теперь можно ставить! Куда подевались проблемы с MBR, интересно?

Ладно, жму. Еще сообщение. «Винда может создать один или несколько разделов, которые нужны для правильного функционирования системы». Ну епт.

Во-первых, что за неопределенность? Определитесь, создаст или не создаст. Что значит «может»? По настроению, что ли?

А во-вторых, эта информация мне нахер не нужна. Ну создаст, мне-то что? Пусть делает что нужно.

Короче, винда поставилась. Довольно быстро, кстати. Перезагружаюсь. «Давай ставить винду, говорит».

ВСМЫСЛИ?

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

Бился я, бился, и пошел от бессилия в BIOS ковыряться.

Нашел там порядком интересных опций, названия которых включали слово «Windows» и даже специфичные версии (7, 8.1, 10). В BIOS-е! Как там, ребят, с потолка не капает? Абстракции не протекают?

И тут на глаза мне попались знакомые буквы. UEFI. Это как почти как EFI в том сообщении раньше! А значит, теоретически, может на что-то повлиять. Стояло «Legacy or UEFI», но можно выбрать просто «UEFI», без Legacy. Казалось бы, если с двумя типами загрузки он не может загрузиться, с чего бы ему грузиться только с одним из двух?

Но было бы большой ошибкой применить тут логику. Опытные пользователи компьюьтеров знают: компьютеры не устроены логически.

Конечно, выбор UEFI сработал и все починил. Ну как починил? В меню boot loaders у меня до сих пор порядка десяти пунктов с записями типа дисков (понятно), разделов (кажется??) и какого-то старого хлама типа Ubuntu и macOS, которых давным-давно нет. Интересно, на что они указывают?

И не говорите мне, что установщик про UEFI ничего не знает, поэтому и не показывает. Он явно куда-то в ту же таблицу смотрит: в нем были, например, опции типа «перезагрузиться в винду» и три варианта (видимо, ubuntu/macos он как-то отмел):

1. Windows 10 disk 5
2. Windows 10 disk 3
3. Windows 10 disk 3

Да, именно так. Сначала пять, потом два раза три. Где остальные цифры — хз. Что это все значит — я даже узнавать не хочу. А, и ни один из них не работал, конечно.

What have we learned, Palmer?

С компьютерами так тяжело не потому, что они что-то сложное делают. Проблема в том, что они не показывают то, что нужно, и показывают то, что не нужно. Бесполезная информация афишируется (сколько разделов нужно для функционирования винды), а критически важная, от которой на самом деле зависит поведение системы (boot loaders), спрятана до полной невидимости.

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

Не покупайте ПК, короче. Играйте в приставки, прогайте на ноутах, смотрите кино на умном тв. И ни за что, ни под каким предлогом не интересуйтесь, что там под капотом. Вам это не понравится.
Смотрел сейчас Random Jonathan Blow Moments 2, и там есть видео, где он копирует через проводник файл с моделью, модель подхватывается движком и перерисовывается в реальном времени, а винда к этому моменту только начинает рисовать диалог «Идет копирование». И потом еще секунды четыре рисует фейковый прогресс-бар. Хотя само копирование завершилось, наверное, за миллисекунду.

Тут же вспомнил видео с Essence OS, где у чувака ОС ставится за один кадр:

> Например, в инсталляторе он нажимает «Install» и тут же, в следующем кадре уже написано «Installation complete». Не секунду позже. Не полсекунды. Сразу же. Как будто ничего и не произошло.

Помогает, что дистрибутив весит 17 мегабайт всего. Мне тогда, помню, в комментариях разоблачители писали:

> А ничего и не произошло. Он использует следующий экран, где спрашивается логин, чтобы спрятать время на копирование 17 Mb самой ОС.

На что я отвечал:

> Ну вот в самом слабом макбучном SSD запись 4500 Mb/s. То есть на запись 17 Мб нужно 17/4500 = 0,004 секунды

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

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

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

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