Как любой уважающий себя программист и крепкий хозяйственник, за два дня до Нового года я решил перевезти все мое добро с одного сервера (подороже) на другой (побольше, подешевле и потупее).
А переезд это что? Правильно, свидание с Линуксом! Ну в общем с помощью ДакДакГо и такой-то матери за два дня я переехал. Самое веселое, что так нелюбимая всеми Джава поднялась быстрее, чем Nginx начал раздавать статический контент. Парадокс.
Не, у меня, конечно, все ходы еще с прошлого раза записаны в плейбуках. Но этого мало, потому что пока я их записывал, линуксоиды меняли системные ДЕФОЛТЫ. Была у меня убунта 18-ая, а стала 22-ая, соответственно все теперь лежит не там, настраивается не так, удачи.
Один из самых веселых эпизодов — это как раз про Nginx и статический контент. Настроил я значит кое-как letsencrypt, а это тоже та еще история. Certbot по факту читает, анализирует и правит nginx-конфиги, которые сами по себе тюринг-полный формат. Cоответственно если конфиг чутка нетривиальный или просто написан не в том порядке, certbot его или портит, или фигню пишет. В лучшем случае, даже если все сработает правильно, он его просто уродливо отформатирует — отступы не те, пустые строки пачками тут и там. Спасибо, что живой.
Мне, кстати, жалко в этой ситуации вообще всех — это ад, который мы сами себе создали. Одним неудобно, другие не подумали, что-то серьезно менять никто, конечно, не хочет, а фичу как-то выкатывать надо, https все хотят, не придумывай. Так что сделали как могли.
Ну так вот, настроил я значит nginx, переключил DNS, захожу — 403 Forbidden. Пошел смотреть пермишны. Все есть. rwxr-xr-x. ls работает из-под кого угодно. Файл читается. Откуда 403, сука? Это статический контент, напоминаю. Джава при этом спокойно работает, все отдает, даже с https, хотя казалось бы, что должно быть проще?
Оказалось, что 403 происходит из-за того, что где-то в пути была папка без r-x прав. Не та папка, которую я хотел пошарить, а один из ее родителей, до которого мне, понятно, нет никакого дела. Логично? Логично, сука? Чего заныл?
На старой Убунте при этом все работало. Потому что не сломаешь что-нибудь — не проживешь. Вообще удивительно, конечно, какая фрактальная сложность там разворачивается и как никто не ходит и не кричит: надо что-то по-проще, невозможно уже, давайте упрощать!
Нет, всем норм. Сложность создает кучу рабочих мест, сертификацию, даже если это просто куча идиотских фактов, никак друг с другом не связаных, часто рандомных, которые просто «исторически сложились» и которые с тех пор никто не хочет трогать.
А! Ну историю-то я не закончил. Настроил я, значит, nginx. Файлы отдаются. Я счастлив. Довольный, уже собрался комп закрывать до следующего года, как смотрю — ssh перестал работать. Раньше заходил, а теперь Permission denied (publickey) (я, понятно, по ключам, не по паролю). Ssh я вообще не трогал, я ж не дурак. Authorized keys лежат. Пермишны нормальные. Под рутом заходит. А под отдельных юзеров — нет. WTF?
Короче, long story short, проблема была в том, что у хоум дир проставился пермишн на запись для группы. Не, сами ключи и даже папка .ssh все еще были в безопасности. Но ssh все равно сломался, на всякий случай, причем максимально неочевидно и молчаливо. Проблема, естественно, не гуглится. Как я до причин догадался — одному богу известно. Повезло. Интуиция. Вселенная хочет меня помучать, но аккуратненько, по чуть-чуть, чтобы я совсем ушел в пастухи.
Но предновогодний пост надо закончить на позитивной ноте, поэтому поздравляю вас с наступающим, дорогие мои! Желаю вам в новом году побольше бумажных книг, никотиновых сигарет, механических унитазов, проводных наушников, глупых лампочек, ручных пылесосов, нерегулируемых столов, чайников без вайфая, карандашей без блютуса, а компьютеров — как можно меньше. Обнимаю, люблю!
P.S. Кстати, грампи теперь менеджится systemd. Не понял я хейта, по-моему куда удобнее, чем сраные баш-скрипты. Декларативненько и однообразно, в чем подвох?
В дизайне долгоживущих вещей главное, как мне кажется, вовремя остановиться. Вот были когда-то у окон в Windows/macOS заголовки умеренно-стандартные: три кнопки, название документа/программы.
Потом пришел Хром и сказал: нехорошо что-то, много места пропадает. А давайте туда табы вкорячим! И вкорячил. Люди посмотрели и решили, что им тоже так надо, и стали все поголовно так делать. Дошло до того, что Эплы сами в прошлогоднем МакОС фактически убили понятие «заголовок окна» и пустились во все тяжкие. Сегодня я еще посмотрел свежие скриншоты Gnome 4 и там тоже — четыре окна, четыре варианта расположения кнопок.
Но хуже всех, конечно, Ворд на винде. Там просто не заголовок, а помойка случайных вещей какая-то. Казалось бы — ну вот у тебя двадцатью пикселями ниже нормальный тулбар, ну ты не выиграешь ты ничего особо, что трем специальным иконкам отдельное место придумаешь. Но нет, если место есть, значит на него нужно что-нибудь запихнуть. А окна перетаскивать, ну тут уже сам выкручивайся как-нибудь.
Что я хочу сказать — многим проблемам можно придумать, да, уникальные решения. Но иногда сила как раз в стандартизации — если все окна выглядят одинаково, то этим можно научиться пользоваться и даже предсказать, как поведет себя новая программа. Экспериментировать нужно, но когда выигрыш получается маргинальный, возможно, им стоит пожертвовать ради унификации.
Даешь, короче, однообразие.
Одна из вещей, которые мне непонятны (на самом деле понятны, конечно, но я все равно возмущен) это как на клавиатурах до сих пор не появились очевидно полезные клавиши.
А именно: cut/copy/paste, undo/redo, prev/next tab, back/forward. В том смысле что это настолько универсальные, полезные и часто используемые концепции, что вполне стоят отдельного места на клавиатуре.
Фанаты Раскина добавили бы сюда Search, и я с ними согласился бы, но дело в том что Search на некоторых клавиатурах уже есть. Правда, если я правильно понимаю, он вызывает какую-то общесистемную срань вместо нормального контекстного поиска, так что да, Search нужен тоже, только правильный.
Ну и смена раскладки, проблема, непонятная ни одному американцу, но блин, мир уже какой-никакой глобальный, Юникодом заставили всех пользоваться, давайте теперь язык переключать разрешим большей части мира?
Вы, конечно, скажете, что место-де не резиновое, и дальше одной кнопки отходить от home row зашквар, но, скажем так, далеко не все разделяют эту точку зрения: посмотрите на количество 100+ кнопочных клавиатур в мире и хотя бы попробуйте представить, что иногда проще чуть потянуться одним пальцем, чем зажать комбинацию тремя-четырмя.
Ну и возмущение мое идет, конечно, в первую очередь от того, ЧТО вместо этих очевидно полезных кнопок пихают на клавиатуры сейчас. Вот я открыл сайт Microsoft, нашел свеженькую Ergonomic Keyboard, и что я на ней вижу?
- Двенадцать (!) F-кнопок (они еще используются где-то в Винде? Потому что на Маке их давно выкинули).
- Print, мать его, Screen.
- Scroll Lock/Pause/Num Lock. Я гарантирую вам, никто из тех, кто ставит себе полноразмерные клавиатуры, ни разу в жизни их не нажимал и никогда не нажмет. Особенно Num Lock, вот у нас тут четыре курсорные клавиши, а еще есть переключатель, который ИХ ЖЕ добавляет только чуть правее.
- Caps Lock тоже условно-маргинальная клавиша, которая как будто никому СО ЗДОРОВОЙ И КРЕПКОЙ ПСИХИКОЙ не нужна, про нее, вроде, все уже знают.
- Insert. Insert, блядь! Самая подлая клавиша на свете, включающая невидимый режим, который удаляет твой текст. Вот уж кому нужна лампочка на кнопку, а лучше гудок с сиреной.
- Emoji button... Кстати, ладно, это как раз в тему!
- Кнопка Офиса! Для тех, кому нужно НУ ОЧЕНЬ ЧАСТО открывать новый инстанс Ворда?
- Кнопки вызова калькулятора, скриншотилка (а что, Print Screen же есть, ггг), TaskView и блокировки компа (!). Что вы чаще делаете — блокируете комп или копируете/вставляете/выделяете?
- Ну и в конце концов пробел! Нафига он такой длинный? Никто не знает, просто все привыкли. У меня на кастомной клаве все кнопки 1U, даже пробел, и что вы думаете? А ничего, прекрасно работает. А на освободившееся место можно кнопок десять полезных еще засунуть!
Короче, свободного места очевидно дофига. И это я еще не говорю про то, что цифры присутствуют как минимум два раза (цифровой блок), что Шифт/Альт/Контрол дублируются. Не, что их ИНОГДА используют, я представить могу. Но все равно, если было бы НУЖНО запихнуть что-то полезное, место найти явно можно.
Единственный прогресс, который случился на этом поприще — появление и условно-широкое распространение кнопок play/pause и громкости. Вот это то что надо (еще бы play/pause работали, а не открывали Apple Music). Давайте теперь остальных добавим!
UPD: дописал про переключение раскладки и длину пробела
Блин, как меня бесят сериалы, которые вроде по книге/законченной истории, но ее тянут на 2+ сезонов. Вложился ты значит на первых сериях, потом, как водится, стало скучновато, но думаешь надо бы узнать, чем там все закончится.
Смотришь до конца сезона, и вот на последней серии что-то никто особо не шевелится, маски не срываются, чемодан не находится, злодея все никак не убивают. Думаешь: да ну нафиг! И правда, ничего не заканчивается, жди еще год, а потом терпи еще десять нудных серий.
Ну е-мае! Предупреждать как-то надо, что ли.
Среди преступников в этом году Tokio Vice, Severance и вот теперь The Peripheral. (UPD: The Boys, House of Dragon)
Бесит.
Сериалы по Звездным войнам мне как-то не заходили. Пока все радовались Мандалорцу, я удивленно пожимал плечами. Оби-ван ситуацию не улучшил. Книга Бобы Феты выглядело подозрительно даже в трейлерах.
И вот вышел Андор. Ну ладно, думаю я. Пусть себе идет. Но неожиданно он начал поднимать хайп! Оказывается, это теперь лучший сериал по стар ворсу. Оказывается, новое слово. Оказывается все предыдущие были говно (только все молча их смотрели и нахваливали почему-то).
Ну включил. Дам, думаю, шанс. И что? Такая же точно тягомотина унылая, как и все остальное. Просто невозможно смотреть, а главное, непонятно зачем.
Попробую пояснить. Когда ты смотришь кино (ну, я смотрю), тебе как бы поступает постоянный поток информации. Частично из диалога, частично из мимики, но также из жестов, обстановки, одежды, построения кадра, последовательности кадров, движения камеры, освещения, короче, много всего. И все это несет какой-то смысл, «говорит» с тобой, и в этом собственно кайф.
Так вот, когда смотришь Андор, ощущение, что жуешь энтеросгель. В смысле что вот должна вроде поступать информация, а вместо этого белый лист. Кадры не говорят ничего. Лица не говорят ничего. Диалоги не говорят ничего. Как в ковер смотреть примерно. Я сначала не мог понять, думаю, просто скучно, но там как-то прям по-особенному скучно, там специально так все сделано, чтобы заполнить хронометраж и ничего не сказать и ничего не произошло. То есть формальные признаки соблюдены, конечно — планеты, инопланетяне, повстанцы, империя. Но кроме того, что это «по звездным войнам», он как будто специально старается ничего не говорить.
Отдельно это заслуга Диего Луны, наверное. Чувака с более непроницаемым покерфейсом, наверное, еще поискать. Раньше Стивен Сигал был, блистал эмоциями, теперь вот вместо него наш главный герой.
Оператор тоже странный. Как будто не очень отличает важное от второстепенного и просто вставляет в кадр немножко антуража. Типа, должны на героя смотреть, а вместо этого смотрим на героя и на обстановку в баре. Не, ну а чего добру пропадать?
Актерам почему-то запретили использовать жесты. То есть они все без исключения стоят как вкопанные и читают свои монологи. Ни лоб почесать, ни рукой взмахнуть, ни с ноги на ногу переступить. Зачем так? ХЗ
Ну и еще ебучий The Volume этот, который на Мандалориане придумали. Это когда вместо зеленого экрана риалтайм LED-стена с картинкой из Unreal Engine. Типа, чтоб отражения/освещение было правильное, то-се. Не, выглядит и правдо безупречно.
Проблема в том, что хоть на экране и разворачиваются бескрайние инопланетные просторы, гигантские мегаполисы, бездонные ямы и бесконечные небоскребы, и к отдельным кадрам не подкопаешься, в конце серии все равно остается ощущение, что просидел все это время в каморке пять на пять метров, куда накидали пару камней и железяк «для антуражу».
Масштаб, короче, гигантский, а впечатление как от подводной лодки.
(Кстати, кто-нибудь знает, эта стена потом на посте меняется на нормальную графику? Или так и остается? Неужели UE выдает прям киношного качества фоны в real-time, и цвета прям стыкуются, и лампочек не видно?)
Все это объяснимо, конечно. Как говорил один из директоров Диснея, задача нашей компании не делать искусство, задача нашей компании — делать деньги. Просто так получилось, что мы делаем их через медиа.
Ну и в этом ключе конечно, удешевление производства, растягивание сюжета, выжимание последних капель жизни из всего, что им принадлежит, имеет смысл для компании. Но мы-то зрители, нам-то это зачем? Наверное, Макдональдс выиграл, когда начал делать молочные коктейли из порошка вместо молока, но выиграл ли покупатель?
Так что хотите посмотреть хитовый сериал этой осенью, посмотрите The White Lotus. Он кайфовый.
Смотрел, что занимает место на Плейстешне, и это конечно прелюбопытное чтение. В том смысле, что цифры гигабайт ни разу не пропорциональны фану — понятно, но и ожидания тоже ломают.
Например, любимый Dead Cells, в который я наиграл может 200, а может уже и 300 часов, если на всех платформах, всего 2 гига весит. Lumines, который такой glorified вариант тетриса, два с половиной. Хотя, казалось бы, в одной красоты (пиксельные, ну и что), а в другой цветные квадраты.
Или вот Киберпанк 2077, солидные 60 гигов. Окей, понятно. Но там же рядом Мортал Комбат 11 на 85 — как? В одном целый город и пятьдесят часов истории, а в другом тридцать персонажей и десяток арен. И рядом еще Sekiro, которая всего 17. Понятно, графика попроще, раз в пять так 🙂
ХЗ короче
У Бирмана в канале видео, как делать красивые кнопки. Говорит, забытое искусство, раньше все дизайнеры умели и тень красивую нарисовать, и углы правильно скруглить, и градиенты-блики хорошие нарисовать. А с приходом плоского дизайна все это забыли.
Правда, подвох в том, что делает он их в Фигме, а верстать их потом надо в CSS. Это же ему справедливо замечают в комментариях: что толку от твоих красивых скруглений и нелинейных теней, если они в HTML не переводятся? И это понятное, справедливое замечание.
Но я вот что думаю: если на все это посмотреть издалека, получается, что мы разучились? Разучились делать красивые кнопки, и как дизайнеры, и как верстальщики. Раньше могли, а теперь вот не можем. Понятно, демократизация, упрощение, мода, но тем не менее — раньше могли, а теперь не можем. Не какой-то конкретный человек не может, а индустрия в целом сдалась и сказала: нет, все, не умею. Воля сотен тысяч людей сложилась в направление, которое в итоге привело к тому, где мы сейчас и что можем.
Хотя, казалось бы, прогресс должен быть про уметь больше, а не меньше. Но нет.
В Твиттере все смеются, а я по большей части согласен с Маском.
То есть да, он ворвался как слон в посудную лавку и все сломал, НО. Я не вижу, почему бы Твиттеру не ломаться периодически. Конечно, я бы не хотел такого подхода к автомобилю там или банку, но соцсеть? Ну полежит какое-то время, НУ И ЧТО? Глобально никто не пострадает.
Понятно, что есть инженеры, для которых ДЕЛО ЧЕСТИ восемнадцать девяток и которые самоидентифицируют себя через качество своей работы. Но в глобальном смысле аптайм твиттера важен только перфекционистам-инженерам из самого твиттера.
Да, я тоже считаю, что программистов в Твиттере слишком много (как и Маск). Да, я считаю, что он тормозит (как и Маск, впрочем, причины могут расходиться). Да, я согласен, что микросервисы говно. Ну и этому болоту нужна была какая-то встряска рано или поздно, потому что там уже идеи закончились и пошел какой-то булшит вроде NFT аватаров (что?) и аудикомнат.
Почему бы не поделать фигни и не посмотреть, к чему она приведет? Мы так любим эту философию в стартапах (быстрые прототипы, тестирование на живых людях, поиск product-market fit), но почему-то когда это применяют к Твиттеру это вдруг становится плохой практикой? Опять же — для чего-то важного – конечно, move slow don’t break things, но для Твиттера? Да ломайте сколько угодно.
А вот ЗАЧЕМ это делается, это другой вопрос. Изначально это все продавалось как «вернуть в Твиттер свободу слова», что, конечно, булшит: ее, во-первых, никто не забирал, а во-вторых никто ее не вернет в том смысле, в каком люди любят ее себе представлять.
Был хороший тред от Yishan Wong, бывшего CEO Reddit, который объяснял, что модерация — это вообще не про мнения и цензуру, а только про то, чтобы людям было приятно рядом с тобой находиться. Грубо говоря, банят не за то, что ты думаешь, а за то, что как ты общаешься. Оставил 1000 комментов за час под одним постом — нахуй. И не важно, что в них было. Угрожаешь или оскорбляешь кого-то? Туда же. И не важно, демократа оскорбляешь или республиканца.
Грубо говоря, логика такая: если твой паттерн общения неприятен, то либо тебя забанят и всем остальным станет комфортно, либо уйдут уже нормальные люди. Платформе, конечно, интересно, чтобы нормальные оставались. Пользователям, кстати, тоже. А что именно ты там думаешь всем более или менее пофиг.
Ровно та же логика со спамом: логически в спаме нет ничего нелегального, и нет ни одной политической, юридической или этической причины, почему спам нужно запрещать. Его запрещают только потому, что он бесит. И все как бы согласны. Просто когда ты высказываешься, например, на политическую тему, легко представить, что тебя банят за содержание: так и воя больше можно поднять, и внимания к себе привлечь. А на самом деле все куда банальнее: ты просто всех заебал.
Так вот, про покупку Твиттера. У Пелевина есть хороший старый рассказ, Желтая стрела. Один из персонажей там — self-made бизнесмен из девяностых. В какой-то момент показано, как он работает: он узнал, что где-то можно купить товар за X, а где-то продать за X+Y. Он берет калькулятор, добавляет к X расходы на перевозку, получается меньше и он делает вывод, что этим стоит заниматься.
Я, если честно, всегда представлял, что бизнес это что-то многократно более сложное, а тут чуть ли не на салфетке принимаются ключевые решения. Но чем дальше, тем больше мне кажется, что это и есть самое главное: углядеть профит за шелухой, причем что на масштабах школьной столовой, что государства.
Среди материалов дела Твиттер против Маска есть запись, как они прямо на салфетке считают: $5B прибыли на 8K работников = $625K прибыли на человека, а если оставить всего 3K работников, будет уже $1.66M на работника.
Вот так, похоже, самые большие решения и принимаются. А весь булшит про демократию, справедливость и свободу слова это чисто публику развлечь.
Дальше они обсуждают, что если заставить ходить в офис 2 дня в неделю, 20% сами уволятся. Ну вы поняли. Детали реализации.
Когда я учился в универе, нет-нет да проскакивало от преподов «все это уже было», «все это я уже видел». Я в это особо не верил, потому что «ну как же, это же новое, вот только что сделали, как вы могли это видеть?»
Сейчас, когда я поварился вокруг компьютеров сколько? Лет двадцать уже? Двадцать пять? Я начинаю понимать, что, действительно, это какое-то колесо Сансары. Одни и те же дорожки, одни и те же «решения», случайное метание «туда и обратно» без какого-то направления или видения. Иногда даже не очень понятно, прогресс мы наблюдаем или регресс.
Я не застал CORBA, он к моменту моего обучения практически сдох, остались только истории «про могучую древнюю технологию». Зато я застал Web Services и J2EE. Они сейчас точно так же сдохли, и уже я могу рассказывать такие же истории про них. А энтерпрайз верен себе, продолжает не искать легких путей и придумал в этот раз облака и Kubernetes. Не то чтобы это решало какую-то проблему, а скорее чтобы просто людей чем-то занять.
Если вы по-моложе, то наверное могли застать взлет или падение какого-нибудь JavaScript фреймворка. В наше время это были jQuery, MooTools и Ext JS, сейчас там Angular, React и Vue. Джаваскрипт вообще по ускоренному треку катается на Сансаре, у них возраст технологий в собачьих годах исчисляется (год за семь).
Тач интерфейс придумали, чтобы отказаться от мыши. Круто. И что мы с этим сделали? Попробовали, подумали и приделали к Айпаду клавиатуру и мышь.
Идея, что ты работаешь только с одним приложением на телефоне тоже как-то не зашла, поэтому весь телефонный «прогресс» заключается в том, как бы дать возможность второму/третьему/пятому приложению делать что-то в фоне и не умирать. Ах, если бы только решение для этого существовало где-то еще.
Для Айпада все еще хуже, там «одно приложение на экран» выглядит вообще позорно, так что ему быстренько «переизобрели» управление окнами. Только медленное и хуевое. И вот смотришь ты на айпад и аймак с идентичной начинкой, смотришь, как Аймак круги может нарезать вокруг Айпада и думаешь: а почему, собственно? Вы же сами кузнецы своего несчастья.
Был ли прогрессом плоский дизайн? Эплу был настолько противен скевоморфизм, что его создателя уволили, сделали плоский дизайн и... вернулись к 3Д формам, тенюшкам и градиентам всего-то через семь лет? Это маятник уже какой-то, а не нововведения.
Зум на днях настолько преисполнился, что засунул в себя почту и календарь. А почему нет? Смешно, что эта тенденция существовала как минимум еще в 1995: Zawinski’s Law — любая программа расширяется, пока не научится принимать почту.
Я уж не говорю про недавний скандал в Твиттере, где выяснилось, что галочки и модерация были зачем-то нужны, и спустя всего неделю их в спешном порядке вернули. Это наверное самая быстрая instant karma, которую я видел.
И только C++ как был собой, так и остается. Как писали на нем деды, так и молодняк пишет до сих пор. Живучий, сука. А если кому скучно — можно весь софт начинать потихоньку переписывать на Раст. Будет работать точно так же, только язык другой. И только не говорите мне, что это не циклично!
Да что там, даже дотком бум, похоже, намечается по новой!
Если бы я был по-предприимчивее, наверное, все это можно было бы как-то использовать. Взять какое-нибудь давно забытое змеиное масло, портировать под современные технологии и начать продавать как ни в чем не бывало. Но делать я этого, конечно, не буду.
Нет, я все еще люблю компьютеры. Просто смотреть на это все без попкорна становится скучновато. Скорей бы уже шлем виртуальной реальности, который убивает тебя, когда ты погибаешь в метаверсе. Вот это была бы инновация!
UPD: В комментах напомнили про тонкие/толстые/тонкие клиенты! Сначала компьютеры были большими и клиенты были тонкими. Потом они стали по-компактнее и они стали толстыми. Потом пришел веб и они снова стали тонкими. Потом пришел JavaScript и веб-страницы стали толстым клиентом. Что будет дальше? Программисты, арендующие тачки в облаке и работающие с тонкого клиента. Правда, в этот раз ноутбуки действительно вполне себе тонкие.
UPD2: Реакт-программисты переизобрели SSR!
Короче, анекдот. Айти-контора, задеплоили приложение, оно упало, данные некрасиво покорраптило, в общем, инцидент, на деньги попали.
Сели разбираться. Смотрят — ошибка в коде джуна. Начали распрашивать, что мол и как. Он говорит: «Эх, я молодой, неопытный, думал вот тут ассерт поставлю, вот тут аргументы проверю, и ничего не сломается».
Посмотрели — и правда, проверки на месте, после них сломаться ну никак не могло. Позвали самого синьорного синьора, который был в компании. Он глянул и говорит: «А, ну да, это ж я сломал».
Все глазами хлопают, не понимают. «Как так?» — говорят, — «писал конечно джун, но проверки-то правильные? Ну не может тут баг проскочить ну вообще никак». А синьор им: «Ребятки, я двадцать лет за клавиатурой, я и не такое проскакивал».
Тут в твиттере опять срач за типы (ну конечно). Пишут, что динамическая типизация делает удобно программисту, который пишет код, а не тому, кто его поддерживает.
Я, естественно, возражаю, что поддерживаемость кода никак не связана с типами. Ясность мышления, умение упрощать, конкретность — влияют непосредственно. А типы? Худший код, который я видел в своей жизни, был на Java и C++, оба статически типизированы. Лучший — на Clojure, динамическом. Когда для того, чтобы открыть http-соединение, тебе нужно десять фабрик и адаптеров, тот факт, что у них есть имя и описание, не поможет в этой лапше разобраться.
Но интересно не это. Я вот что понял. Многие приводят в поддержку типов вот какой аргумент: «если мне достанется куча говнокода, я бы предпочел, чтобы он был с типами, а не без них».
Это понятно, но вопрос ведь так не стоит. Ты не выбираешь, на чем тебе достанется говнокод. Ты выбираешь, на чем будешь писать код ты сам. То есть сторонники строгой типизации сразу как бы признают: «окей, я пишу говнокод, поэтому позабочусь-ка я о том, кому он достанется».
С одной стороны, конечно, похвально. С другой, по-моему это признание поражения. Нормально писать не пробовали?
Прочитал где-то мысль, что ни один язык программирования по-хорошему не оптимизировался под объективно важные метрики: скорость разработки и количество багов. Все они — отражение вкусов авторов в первую очередь. Нравится авторам «играть с типами» — вот вам Хаскель и Скала. Нравятся гибкость и свобода — Кложа. Нравится спартанский минимализм – Go, эстетически красивая запись — Python и Ruby.
Так что если у вас были какие-то иллюзии, что компьютер сайнс относится куда-то к точным наукам, то советую расслабиться. Мы все с вами в первую очередь гуманитарии, только спорим не о том, кто глубже заглянул в душу или описал русскую осень, а о том, какие программы нам больше нравятся. Программы при этом — тот же текст на почти что естественном языке.
Прочитал про микрофронтенды и очень расстроен.
Статья начинается с того, что «многие веб-приложения становятся чересчур сложными», а заканчивается тем, что предлагают рендерить хедер и футер на разных машинах, стримить по сети на координатор, там собирать в общий html и его уже отправлять клиенту.
Демо-приложение из семи компонентов выливается в 600 Кб кода, причем JSON-а примерно в 10 раз больше, чем тайпскрипта. npm install
занял минуту и успешно завершился только с третьего раза, поставив 373 зависимости на 420 Мб (!!!). Действительно, проблема налицо. Напоминаю, что это просто текстовая страница со списком из трех десятков картинок без дизайна и фильтром по ним.
В тиктоке есть чувак Khaby Lame, который высмеивает других тиктокеров, умудряющихся решать простые проблемы сложными методами. Типа, как пить воду из стакана, используя руку и рот, как есть пиццу, как оторвать хвостик у вишни без специального устройства.
Вот в программировании тоже такой нужен. Чтобы на каждую такую ересь брал этих умников и тыкал их носом: вот как вызвать функцию, а вот как подключить файл, нечего тут выебываться, лучше все равно не сделаете, а больше вам ничего и не нужно.
Поражает стремление программистов решать давным-давно решенные проблемы, конечно. Равно как и умение делать это сильно хуже.
P.S. Еще и слово «micro» используют, насмехаются
Мое любимое занятие — наблюдать на фотках, как красивые, эстетичные и дорогущие Эпловские мониторы в реальной жизни всегда (всегда!) оказываются ниже, чем удобно практически любому человеку выше 150 см ростом.
Поэтому если они не в магазине, то под ними обязательно будет коробочка, книга, полка — что угодно, чтобы поднять его на приемлимую высоту. Даже если это монитор за 5 косарей, человеческую анатомию-то все равно не изменишь.
Казалось бы — Эпл, намек ясен, может быть какое-то встроенное решение для него предложить? Разве это красиво, когда такая дорогая и красивая вещь подпирается чем-нибудь ужасным вроде книги «С++ за 7 дней» или «JavaScript: the bad parts»? Почему все остальные производители позволяют регулировать высоту, а вы выше этого?
Потому что экран на длинной ноге выглядит некрасиво. Дизайн — это то, как оно выглядит, а не как удобно использовать.
UPD: Зато есть целая индустрия «аккуратных» подставок под iMac-и. Все при деле
Прикыдывал на выходных, как бы по-быстрому засунуть видеоплеер в Humble UI. Посмотрел на библиотеки, и вот что я вам скажу. Там не то чтобы АПИ сложное, там непонятно даже, с какого краю подходить.
В чем вообще засада с видео? Почему с ним всегда все непросто? Начиная с того факта, что расширение файла ничего не говорит о его формате. Зачем так сделано? Нафига тогда вообще расширения, если они ничего не говорят? Почему в jpeg файле лежит jpeg картинка, но в mov может лежать mp4, а в mp4 может лежать H.264, также известный как AVC? Почему у них по два названия вообще? И в чем разница между mp4 и mpeg-4? И где предыдущие 263 эйча?
Плюс сколько себя помню, на винде постоянная ебля была с кодеками. Мне уже тогда было непонятно, почему нельзя как с картинками — нужно открыть файл, ну подключил библиотеку, открыл. Нафига это через систему делать, зачем такой крюк? Худший UX из возможных — покрути что-то в одном месте и тогда, возможно, в другом у тебя заработает то, что тебе нужно (спойлер: не заработает).
Тот случай, когда все выживали репаками от Васяна: скачал с торрентов codec pack, поставил один раз и все кодеки сразу есть. Как выживали «обычные люди» (tm), мне представить очень сложно. Наверное, просто не смотрели видео?
Потом, конечно, появился VLC и стало попроще. Почему, кстати? Он весь этот идиотизм куда-то внутрь себя упаковал, да? Реимплементировав с нуля?
Понятно, что столько сложностей наверняка связано с лицензиями и отчислениями за кодеки, и что просто так их в состав условного Линукса включить нельзя. Но тут возникает другой вопрос: а нафига не-бесплатными кодеками кто-то вообще пользуется? Ну вот сделала там какая-то компания платный кодек, все хмыкнули, пожали плечами и не стали им пользоваться. Не? Пусть бесплатный похуже, jpeg тоже вон, звезд с неба не хватает, и ничего, выживает.
Короче, моя мечта, чтобы с видео работать было так же просто, как с картинками. Доживу ли?
Поскольку я тут обложился всякими Эпл-устройствами, наблюдаю, как они друг с другом интегрируются. Если вы подумали, что я напишу «идеально», то вы плохо меня знаете 🙂
Но конкретно сегодня такое наблюдение, что разблокировать ноут/1password/рутовый пермишн можно либо часами, либо отпечатком пальца, либо паролем. Но не одновременно. То есть надо выбрать что-то одно и ждать, сработает или нет. А могло бы это все происходить параллельно, что быстрее подошло/сработало то и берем. Нет, оно все очень не быстрое. Компьютер должен ждать человека, а не человек компьютера.
Потом тыкнул еще на ютуб-видео, а там чувак рассказывает, как ему тяжело на свифте программировать, потому что АПИ у Эпла уебищные. Чувак, я вообще-то этот жанр придумал, что ты сможешь мне рассказать 🙂 Но в целом он конечно праведен в своем гневе, ему надо было приложение в автозапуск добавить, а вместо этого пришлось делать второе приложение и крутить его в фоне. Я бы тоже психанул и видео записал.
Но хуже всех люди, которые видят такую вот сложность на ровном месте (второе приложение там, где должно быть достаточно одного системного вызова) и начинают ее защищать. Типа, есть рациональные причины, почему оно только так и может быть, а по-другому никак быть не можешь. Когда им показываешь альтернативы, которые существуют и вот прямо то же самое делают, но нормально, люди уходят в отказ.
Очень, конечно, хотелось бы посмотреть на проект новой операционной системы. Чтобы без говно-легаси вот этого всего, и с нормальным отношением к разработчикам, и с поддержкой всяких юзерских штук максимально прямой. Очень хотелось бы жить в мире, где сложность программирования это 90% бизнес-логики и только 10% чтения форумов, борьбы с операционной системой, сборкой и всяким таким не относящимся к делу.
Пока, к сожалению, ситуация обратная.
А я всегда говорил и говорю, что кроссплатформенные приложения — единственная нормальная модель написания софта. Простите, Swift-о-дрочеры. Просто сама мысль, что вам надо один и тот же компьютер, с одним и тем же процессором, убедить три раза тремя разными способами сделать одно и то же, чтобы получить одинаковый результат, она абсурдная же, если подумать.
Не, были времена, когда программистов было мало, и операционные системы реально что-то предоставляли. Когда софт, который с ними шел, был лучше чем что угодно на рынке, или вообще альтернатив не было. Но тогда и операционки стоили денег, а сейчас они почему-то бесплатны, да?
Да потому что на любую встроенную программу есть несколько альтернатив, которые работают лучше. Почта? Есть лучше. Заметки? Есть лучше. Видеоплеер? Есть лучше. Музыка? Лучше. Я уж не говорю про дизайн и браузер. Даже гребаный спотлайт, и тот есть лучше. Тупо по закону больших чисел — в Эппл, может, работает 100 тыщ программистов, но вне Эпла — десять миллионов. И сегодня уже даже Бирман перестал радоваться, когда находит в нативном меню Services какой-нибудь «сделать выжимку текста». Сегодня все похуй, что там предлагает ОС.
Это я к чему? К тому, что нативные программы тупо нет смысла писать. Не то чтобы кросс-платформенные были так уж хороши, но в это направление хотя бы есть смысл вкладываться.
Каждый раз, когда мне приглянется какая-то инди-игрушка, я открываю Стим и вижу, что могу запустить ее только на Винде (несмотря на то, что она выглядит так, что даже 640 Кб для нее оверкилл), я грустно вздыхаю. Во всяких Unity/Unreal/whatnot экспортировать игру под другую платформу — кнопку нажать. Там уже вся работа проделана, стараться вообще не надо! И это игра, она с ОС вообще никак не взаимодействует, кроме большого черного прямоугольника, который надо показать на весь экран.
Но не нажимают. Причина, видимо, в том, что у разработчиков тупо нет Мака, они на нем не сидят, не знают про него, а покупать за полторы штуки баксов машинку и ебаться с совершенно новой экосистемой просто ради того, чтобы иметь возможность нажать кнопку — ну, такое себе.
Кстати, тот факт, что собрать под Мак можно только на Маке, под Линух — на Линухе, а под Винду — на Винде, он тоже, кхм, идиотский. Казалось бы — ну вот тебе нужно байтики в нужном порядке записать, какая разница, из-под какой ОС их писать? Это должно тривиально алгоритмически делаться, из-под любой платформы, без единого системного вызова. Почему же не так?
Ответ на этот вопрос долгий, грустный и скорее всего всех нас разочарует. Да, даже в сборке программ мы умудрились положиться на «сервисы ОС», которые никак нормальным образом из этой ОС не выдираются. А компании и рады — пущай лицензии покупают, не обеднеем.
Когда я вижу новый язык с кросс-компиляцией — я радуюсь. Когда я вижу Докер — плююсь, потому что это шаг назад. В конечном итоге победит простота и дисциплина, а не «it works on my computer — then we’ll ship your computer».
Ну, хотелось бы.
Короче, как скучный айтишник, спросил у ChatGPT напрямую, снятся ли андроидам электроовцы. Она прикинулась, что не поняла вопроса, и начала мне объяснять, откуда взялась эта фраза и что означает название.
И удивила — я думал, что про название все и так понятно, включая двойной смысл dream/dream, а она говорит, что мол в шестидесятых было такое выражение — мечтать об электроовцах. Типа, хотеть себе что-то из будущего или настоящего, но малодоступного. Ну микроволновку там, я не знаю, или телек цветной. И, мол, Дик взял это устойчивое выражение, прилепил к нему андроида, вставил эту самую электроовцу в книгу буквально, ну и на считать овец/видеть сны закольцевал.
Нифига себе! Подумал я. Красиво, интересно. Жене рассказал. В твиттере какому-то мужику объяснил. И только потом пошел гуглить, а не, кхм, пиздит ли наш искусственный разум.
Оказалось, конечно же, пиздит как дышит. Никаких «мечтать об электоовцах» выражений никогда не было (ну или были, но Гугл о них не знает), придумал его Дик специально для названия, короче, все ровно так, скучно и понятно, как я всегда и думал.
Тут у меня счетчик слоев метаиронии начал зашкаливать. Сраный компьютер обманул меня, да еще и на тему книги, которая как раз про компьютеры и что с ними все не так просто!
Воображение тут же придумало сценарий апокалипсиса, в котором компьютеры порабощают человечество, просто слегка изменяя выдачу гугла. Несколько «сумасшедших», конечно, помнят, как мир был устроен на самом деле, но им никто не верит, потому что гугл выдает другие цифры для, скажем, гравитационной постоянной, температуры кипения воды или расположения Пакистана на карте мира. Причем делает незаметно и согласованно, не только в поиске, но и в Википедии, без всяких правок, как будто так оно всегда и было. А книги, что книги? Они теперь тоже все электронные, бугага. А если кто-то захочет бумажную в библиотеке найти, так ему или карточку компьютер не выдаст, или книгу не найдет в каталоге. И все. И пиздец.
Но, главное, никто этого не заметит. И никакая симуляция не нужна.
Короче, я долго сопротивлялся, но попробовал и травить ChatGPT оказалось довольно весело. В отличие от предыдущих соц^W нейросетей, которые были для всяких там нормисов, эта сделана для программистов. В том смысле что умеет писать и объяснять программы на всяких разных языках программирования (да, даже Clojure!).
Более того, можно даже заставить ее прикинуться Линуксовой машиной и повыполнять всякие ls
, id
, pwd
, pip3 install
и даже curl
с lynx
. Ответы выдает неправильные, но очень убедительные. Например, она сумела сходить на tonsky.me и выдать что-то похожее на HTML типичного блога, и даже имя мое откуда-то взяло и подставило (нет, не из запроса).
То есть понимаете, да? Когда вы ей пишите ls
, она не выполняет где-то там ls
. Она просто видела где-то пост (на stackoverflow, например) в котором написано что-то вроде «выполняем команду ls и получаем список файлов, например a, b и c».
Если глубоко не копать, это все довольно убедительно выглядит. Например, можно что-нибудь в файл записать одной командой и следующей прочитать. То есть она рубит, что аргумент в первой команде и вывод во второй не фиксированы, но должны быть одним и тем же.
Обмануть ее тоже несложно. Можно попросить посчитать md5 какого-нибудь значения. Или, вон, сайт скачать. Или сложить больше двух чисел.
Из всего этого напрашиваются выводы, что, во-первых, очень значительная часть того, что мы делаем, не такая уж сложная или высокоинтеллектуальная. И что продвинутый поисковый движок, которым ChatGPT по сути является, может вполне справляться с запросами программистов.
Кто-то решил на ней тестовое задание на мидла! Не, ну а что? Пастит код со стек оверфлоу, подставляет свои названия переменных, может сделать ошибку, сам не проверяет, пока не укажешь ему на косяк. Это почти словарное определение джуна-программиста!
Во-вторых, когда ты получаешь очередной точный, красивый и стройный ответ в десятый раз подряд, пытаясь эту фигню как-то обмануть или поставить в тупик, понимаешь, насколько ты вообще сам не уникален и не так уж и интересен, поскольку на большую часть твоих запросов кто-то уже написал посты с объяснениями, на которых это все работает.
Ну и в-третьих, ради чего я вообще затеял этот пост — что наше с вами айти это кошмарный сон какого-то большого и глупого мозга, и что никаких компьютеров на самом деле не существует, а все эти ls -lah и $0? снятся кому-то в каких-то комбинациях и вообще не важно, что там написано, и очень хочется проснуться от этого кошмара, но не получается...
Чего я не понимаю, так это корзины на Маке.
То есть понимаю, конечно. Идея светлая — удалил файл, а потом хоп и достал!
Пока ты пользуешься своим компом, все вроде бы норм. Комп твой, корзина тоже на нем. Но потом ты подключаешь флешку/диск, удаляешь на ней файлы, а место не освобождается.
Почему? Потому что они попадают в корзину! А где корзина? Правильно, все еще на твоем компе. То есть на самом деле оно создало корзину на внешнем диске, но показывает так, как будто файлы удалились к тебе в корзину.
Разгадка, конечно, в том, что это «умная» папка, а не настоящая. Вытащил флешку — в корзине «на твоем компе» стало меньше мусора. Вставил — стало больше.
Тот самый случай, когда «удобное» представление «ради пользователей» хуже, чем то, что происходит на самом деле. Если бы мне на флешке показали ту самую папку Trash, которую он на самом деле создал, а потом скрыл, вопросов бы не возникло. Сделали больше работы, чтобы стало хуже, удивительная эффективность.
Ну и раз уж мы тут критикуем дизайн корзины, я настаиваю, что все, что там лежит, НЕ должно считаться в «занятое место». Если у меня 50 гигов свободно и 100 гигов лежит в корзине, везде в системе должно показываться 150 свободных гигов. А сейчас покажется только 50.
Ну и почему корзина занимает такое важное место в доке я могу только историческими причинами объяснить (так сложилось). Кажется, что она должна быть чем-то вроде AirDrop или Documents — захотел, нашел в файндере, а не захотел — не отсвечивает и жить не мешает.
А сейчас это единственная из двух неудаляемых иконок, наравне с файндером. Что в ней такого уж важного? Неужели, скажем, документы менее важны, чем трэш?
А расскажите, что вас штырит в айти. Зачем вообще вы тут обитаете?
Меня вот необъяснимо удовлетворяет, когда строчки аутпута по терминалу бегут. Не слишком быстро, не слишком медленно, слегка неравномерно, но стабильно так, как двигатель стучит: тук-тук-тук. Видно, что прогресс совершается, машина работает.
Второе это когда две программы по сети общаются. Когда ты написал что-то, запустил на двух компьютерах, и оно начало коммуницировать — что-то в этом есть, какое-то невысказанное обещание бесконечных возможностей. Причем веб-сервера и прочий клиент-сервер не штырят совсем, вообще весь фан из сетевых взаимодействий забирают.
Еще нативный перформанс люблю, перепишешь бывало что-то на Раст или там Zig/C++/OCaml, запустишь — и оно в 10 или в 100 раз быстрее тебе посчитает. Иногда в кайф даже просто что-то бесполезное позапускать, лишь бы зная, что оно оптимизировано и комп загружает по максимуму на пару секунд.
А у вас?
Есть очень простой способ сделать кое-какой интерфейс лучше. Представьте, что у пользователя в какой-то момент возникает, допустим, равновероятный выбор: пойти налево или пойти направо? И вы, конечно, показываете ему окошко с двумя кнопками: А или Б.
Примеры из жизни это, например, кнопка ретвита понятно где. Можно ретвитнуть без комментария, а можно «квот ретвитнуть». Обе опции в принципе широко востребованы.
Или видеоплеер Infuse, которым я смотрю кино. Когда включаешь фильм, в который ты уже тыкал, он спрашивает: начать сначала или продолжить с <место, где ты был в последний раз>. Иногда ты тыкаешь фильм наугад перед тем, как посмотреть, и хочешь, конечно, начать с начала. А иногда просто не досмотрел и хочешь продолжить. Два вполне полноценных варианта.
Наконец, третий пример: кооперативная игра на плейстейшене. Когда берешь второй джойстик, тебе показывают окно: хотите войти в аккаунт или играть как гость? Иногда ты просто сел помеситься с другом в Мортал Комбат и никакой мета-прогресс тебя не интересует. А иногда зашел вдвоем проходить Диаблу и, конечно, хочешь свой аккаунт и своего персонажа.
(на самом деле, там еще есть третий вариант: зарегистрировать новый аккаунт. С выбором юзернейма, придумыванием и подтверждением пароля, вводом и валидацией почты, вводом текста с геймпада, миллионом шагов и экранов, все как мы любим. Его я не рассмартиваю в виду его очеведнейшей бессмысленности)
Ну короче. Два варианта, оба имеют право на существование, экран с двумя кнопками. Да? Пизда.
Такой интерфейс легко улучшить. Надо сделать один выбор дефолтным вариантом, а второй оставить доп. кнопкой. Ретвит молча, а квот твит через меню. Продолжить воспроизведение молча, а с начала через меню. Начинать играть как гость молча, а логин через меню.
Смотрите: сейчас те, кому нужен вариант А, идут через меню, и те, кому нужен вариант Б, тоже идут через меню. А будет: вариант А без меню, по-умолчанию, а вариант Б все так же через меню. Да, мы сделали удобно не всем и не всегда, но половину случаев мы улучшили, а половину оставили ровно как было.
Круто? Круто. А, главное, просто, и думать почти не надо.
Понятно, что меня программисты в основном читают, и вам, может быть, никогда не придется дизайнить интерфейс. Но если придется, вспомните и сделайте хорошо. А если не придется, то теперь вы будете это везде замечать и оно будет вас бесить так же, как и меня. Бугага!
UPD: Телеграм отправить как картинку/отправить как файл забыл!
Прочитал милый пейпер How to Hack the Simulation? про то, как бы нам выбраться из симуляции. Несмотря на то, что оформлена она как публикация, читается как краткий пересказ десятка НФ книжек.
Как сбежать — ну, варианта, собственно, два: или эксплойтить баги, или сконтачиться с создателями.
Но во всех этих историях про иной разум меня всегда удивляет, конечно, наивное предположение, что на той стороне что-то похожее на нас и что контакт вообще возможен.
Ну вот на земле миллионы видов животных, растения, грибы, бактерии, вирусы, археи — устанавливай контакт не хочу. Но что-то не получается, да? Причем многие ПОЧТИ такие же, как мы, условно обезъяны там или дельфины, но что-то не о чем с ними говорить, да?
У Нила Геймана есть комикс про Eternals, хороший, и там в числе прочего в какой-то момент, условно, Тони Старк просит этих самых супер-богов объяснить ему, мол, что там у вас на вашем уровне происходит, с кем борьба и из-за чего. На что ему отвечают: не поймешь, брат. Вот у тебя кузнечик сидит, попробуй ему дифференциальные уровнения объяснить. Вот у нас с вами, людьми, такая же проблема.
Интересно, что в Хазарском словаре эта невозможность контакта тоже упоминается. Там приходят к выводу, что единственный способ сообщить что-то условной мухе — прихлопнуть ее. По любым другим вопросам контакт невозможен.
Про «сконтачиться с создателями» тоже есть наглядный пример. Представьте, что муравьи в муравейнике вдруг выложили из палочек слово «привет». То есть технически препятствий, конечно, нет, вопрос только в принципиальной возможности.
Побольше хотелось бы почитать про возможные баги и их эксплуатацию. Единственный конкретный совет в пейпере — собраться большой кучей народу, закрыть глаза, начать медитировать. «Сервера», на которых крутится симуляция, в этот момент начнут масштабироваться вниз, так как ресурсов на это нужно немного. В этот момент глаза стоит открыть и начать всем делать что-то предельно ресурсоемкое, одновременно пытаясь наблюдать возможное ослабление проверок: ну там причинно-следственная связь начнет нарушаться, например, или сквозь стену пройти станет можно. Хороший был бы эксперимент, хоть и звучит наивно. А вдруг?
Но самые лулзы начинаются в пейпере, когда в вопрос контакта с иным разумом авторы привносят наши чисто местечковые изобретения типа этики, морали и, прости господи, consent-а. Это все хорошие штуки здесь, для нас, но несколько самонадеянно думать, что они хоть насколько-то универсальны и, кхм, сиюминутны, нет?
Этично ли создавать AI, который будет страдать? Имеем ли мы моральное право бежать из своей симуляции? Мне кажется, в вопросах, которые выходят за пределы человеческого общества, немного другая логика работает, которая больше про физические законы и факты, а не про «что это все значит». Ничего не значит, просто оно так вот есть. Страдает ли камень, когда его пинают? Нет, он просто летит по параболе.
Способы, которые проверенно не работают, чтобы выйти из симуляции: произнести фразу «Я не даю согласия участвовать в симуляции». No shit, Sherlock.
Но в любом случае: увидимся на выходе из пещеры.
Монтировал тут на днях небольшое домашнее видео, которое мы поснимали с женой на выходных (гусары, молчать!). У нее айфон по-старее, 8, у меня по-новее, 13 ( потому что я свой 8-й утопил, а она свой пока только пять раз разбивала). Ну и конечно, восьмерка снимает в SDR, а тринашка в HDR.
Что происходит, когда ты это засовываешь в программу монтажа (DaVinci Resolve в моем случае)? Правильно, полная жопа. Нормально выглядит либо одно, либо другое, и как это в одном ролике совместить — непонятно.
И тут мы опять приходим к проблеме цветовых пространств и «Никита не понимает». Вот смотрите. Есть цвет. Цвет закодирован числами, да? Я про это писал раньше. Эти числа не имеют смысла без «цветового пространства».
Да, иногда цветовое пространство забывают указать или оно как-то теряется и не предусмотрено, и тогда нужна возможность его дополнительно указать. Бывает. Стандарты старые, мониторы из sRGB вышли недавно.
При этом DaVinci вроде как программа как раз для цветокоррекции. То есть там можно настроить вообще все что угодно и как угодно. И тем не менее, почему бы не сделать, чтобы по дефолту все показывалось нормально? Скажем, у вашего монитора есть цветовой профиль. Почему бы не использовать его? Зачем указывать его вручную? В видеофайле написан цветовой профиль (в моем случае, я проверял). Почему бы не использовать, опять же, его по-умолчанию? Наконец, там есть еще менюшка «внутренний формат цвета», и там тоже по-умолчанию стоит НЕ color managed. Почему?
Скажем, если я открою в quick view HDR файл на обычном SDR sRGB мониторе, который нифига не умеет, я увижу тем не менее нормальную картинку, соответствующую возможностям моего монитора. Без всяких вопросов.
Вот почему нельзя везде сразу так же? А цветокоррекцию уже поверх, когда основа нормально сделана?
А то я смотрю видосы всяких цветокорректоров, они наснимают в своем log, а потом показывают, мол, смотрите, картинка какая была серая, а вот тут мы потом выбираем модель нашей камеры и оба-на, цвета вдруг стали нормальными. Но вот эта серая картинка вообще не имеет смысла, это километры, которые без всякого преобразования были использованы как секунды. Этого состояния вообще никто и никогда не должен видеть, оно просто не имеет смысла. Зачем???
Отдельно не понимаю той же фигни, но с телевизором. Там тоже миллион режимов с разной цветокоррекцией, всякими «глубокими черными» и «динамической яркостью». И вот втыкаешь ты в него Эпл ТВ, или плейстейшн, или ноут, и начинается беготня, чтобы выбрать правильный цвет и в приставке, и в телевизоре. А когда устройств несколько, он же, сука, еще и забывает настройки и прыгает туда сюда.
В тебя, сука, воткнут цифровой кабель. По кабелю бегут циферки, в которых ТОЧНО написано, что, куда, где и сколько. Вот почему нельзя просто взять этот сигнал и показать как есть? Пришло 128 по координатам 10,20, ты идешь в панель, находишь пиксель по координатам 10,20 и зажигаешь на половину мощности только его. И ВСЕ. И БОЛЬШЕ НИЧЕГО. Зачем как-то «улучшать» или «настраивать» уже цифровой сигнал???
Вчера воткнул виндовый ноут в телек, смотрю, а у меня половинка иконки «Пуск» отрезана и на часах справа год не видно. Почему? Потому что телек решил, что от HDMI-сигнала надо отрезать по паре сантиметров по краям. Зачем? Почему? Кто это придумал? Кому это полезно??? Я уж не говорю про sharpening, который надо бегать отключать каждый раз, когда отвлекся и телек его вернул назад, как будто он в магазине.
Почему, сука, нельзя сделать просто и прямо? Это же проще, и всем лучше станет, и на разработке сэкономите, и жалоб меньше будет, и поддержки так много не нужно. И, главное, все будет просто работать.
Бесит, что для этого все есть. Телевизор _уже может_ просто работать. Но мы, как человечество, решили, что люди должны страдать, и на пустом месте все усложнили.
Поскольку Маск фигура публичная, все интернет-экспетры™ дружно кинулись изобретать, как именно будет правильно ему распорядиться твиттером. И неизбежно приходят к мыслям, что настоящий твиттер должен быть честным, открытым, доступным всем и децентрализованным. Да и сами Маск с Дорси вроде в эту сторону думали.
И... ну я симпатизирую этим идеям, конечно. Я истово ненавижу корпорации, режу рекламу, не покупаю ничего через аппстор, сбежал почти со всего гуглового, но пока full paranoid mode не включил, то есть де факто где-то посередине. Это хорошие идеи, правильные, для людей. Да и помечтать я не прочь, как могло бы быть в идеальном мире. Ну вы знаете.
Но парадокс именно твиттера и именно его улучшений вот в чем: открытый и распределенный твиттер без рекламы уже существует. Прямо сейчас. Называется Mastodon. Иди, регистрируйся, пиши, читай, вообще ноль препятствий и именно так, как все хотели. Прямо сейчас. Не в теории, буквально. Бесплатно. Без наебок. Ничего изобретать или менять не нужно. Все уже есть.
И что? И ничего. Видели, может быть, видео, где две собаки безумно лают друг на друга через забор, потом забор отъезжает и они мигом успокаиваются и начинают обнюхиваться? Столкновение теории с реальностью.
Вот так и тут. Как мысленный эксперимент распределенный открытый твиттер звучит красиво. Но это не мысленный эксперимент. Это реальность. Не нужно гадать, мечтать и теоретизировать. Эксперимент поставили и вы наблюдаете его результаты прямо сейчас. Изменилось ли что-то? Да не особо.
Такие дела.
P.S. Если что: мне не нравится текущее положение дел и я не топлю за то, что все должно остаться так, как есть. Мастодон нравится, но аккаунта там нет. Может быть, будет, а может и нет. Но поинт в другом: реальность есть реальность, нравится она мне или нет.
Вчера в рамках жаркой дискуссии всплыло сожаление, что формальные методы круто, но люди ими почему-то не пользуются. С сентиментом, мол, что люди неправильные.
Это же часто можно услышать от разработчиков программ и дизайнеров — мол, юзеры не такие, пользуются не так, учиться не хотят, не разбираются, спешат. Вот бы нам «таких» юзеров, вот тогда бы наш бизнес бы взлетел!
В таких рассуждениях важно понимать, что несдвигаемая константа в уравнении это всегда люди. Они такие, какие есть, других нет и никогда не будет. Если они спешат, они будут спешить, если ошибаются, будут ошибаться, если не хотят/не могут чем-то воспользоваться, то не смогут.
И ваша задача — как разработчика, как дизайнера, сделать продукт именно для этих, конкретных, неподходящих, неудобных вам людей. А не искать-ждать других, более правильных.
Потому что других все равно нет. У них не вырастет за ночь третья рука. Пальцы не станут длинее, чтобы дотягиваться до кнопок. Они не станут внимательнее или аккуратнее, потому что структура мозга меняется, может, на горизонте 100 тысяч лет минимум. Они не смогут держать в памяти больше вещей, чем держат сейчас, и не смогут начать разбираться в том, в чем не могут разобраться сейчас. Откуда вы будете ждать других людей? С Марса, что ли?
Поменять программу легко. Поменять продукт, экосистему, железо, бизнес-модель — все это тривиально в сравнении с тем, чтобы поменять человека. Так что сорян, но люди всегда «такие». Если что-то не работает, меняйте продукт.
Хотите расскажу, как оформлять резюме? А то меня часто спрашивают (нет).
Создаешь пустой документ в Ворде. Пишешь имя-фамилию. Емейл, телеграм.
Потом скиллы в виде облака тегов: языки, технологии. Гитхаб, если есть.
Потом перечисляешь места работы. Название — год(ы) — должность — чем занимался, кратко.
Потом где учился.
Справа вверху прикрепляешь фотку. Жмешь Export to PDF.
В общем-то все. Не благодарите.
О чем рассказать в следующий раз?
UPD: Локацию надо, фотку не надо — задискриминируют. Как и возраст. Давно резюме не составлял, отвык
UPD2: Пол лучше укажите женский, повысите свои шансы. Потом при выходе на работу скажете, что поменяли
Илья Бирман недавно скидывал видео про семисегментный дисплей для цифр. Ну такой, знаете, как на калькуляторах или электронных часах. Ну и там чувак рассказывает немного про его историю, показывает разные варианты и пытается это дело как-то улучшить.
И — что бы вы думали — у него не получается! Формат настолько хорош и настолько отполировался со временем, что добавить или улучшать там уже нечего.
Другой пример — дверные ручки на автомобилях. Смотрел обзор нового электрического Кадиллака и там придумали, что на ручку надо нажать пальцем, как на кнопку, а потом тянуть дверь за ухват рядом со стеклом.
Как? Зачем? Почему? Просто чтобы было не как у всех? Тоже тот случай, когда начали переизобретать колесо, но сделали только хуже. Правда, там вопрос к адекватности их дизайнеров вообще, у них бардачок открывается через тачскрин. Спасибо, что не через телефон по блютусу!
Я в принципе бунтарь-идеалист, люблю всякие штуки улучшать и не люблю статус кво. Но надо признать, что некоторые вещи хороши настолько, что просто прийти, сказать, что вы все дураки а я сейчас сделаю лучше, не так-то просто.
Да, иногда можно просто из-за того, что найденный обществом оптимум локальный (например, с клавиатурами — их достаточно легко улучшить, но никому это не нужно), но иногда улучшать уже некуда. В этом случае делать по-другому просто чтобы было не как у всех — преступление.
Господи, дай мне мудрости отличить одну ситуацию от другой, как говорится.
Обожаю людей, которые жалуются на висячие пробелы или присылают патчи, их убирающие.
Алло, это невидимые штуки, которые никому не мешают! Вы сами себе придумали способ, как сделать, чтобы вам их было видно, чтобы они могли вас раздражать, а потом начали на них раздражаться.
Воистину, комикс с чуваком, который сам себе засовывает палку в колесо велосипеда.
UPD: еще опция «не показывать пробелы в diff-е» нравится. Одни, значит, заморочились, чтобы что-то изменить в той части файла, которую никому не видно и которая ни на что не влияет, а другие заморочились, чтобы изменение состоялось, но ты об этом не узнал. Все при деле, прогресса ноль.
Правило простое: не менял код — нечего его форматирование трогать. Поправил две строчки? Вот в них можешь свои пробелы сраные удалить, если очень хочется. Но не по всему файлу! Это же вредительство какое-то: диффы портятся, blame портится, никому проще жить не становится. Я пришел вам лампочку поменять, заодно и весь фасад покрасил. Тебя просили?
UPD2: Замечу, что ситуация несимметричная. Это не спор синего против красного. Тут одни живут спокойно, никого не трогают и никому ничего не навязывают. А другие решили что их волнуют висячие пробелы и теперь навязывают это всем, в том числе и первым. Вот именно это мне и не нравится
Все пытаюсь себе объяснить, почему в The Expanse такие крутые первые три сезона и куда потом делась вся магия.
Пока лучшее, что придумал — текстура. Текстура — это подробности жизни, быта. Что едят, где стригутся, как перемещаются, с кем отдыхают. Чем больше экзотической текстуры, тем интереснее смотреть.
И вот тут парадокс космических опер. Раз космос, кажется, что надо показывать как минимум судьбы галактик, глобальные катаклизмы, драмы уровня греческого театра. Но смотреть на противостояние двух космических адмиралов не сильно интереснее, чем на противостояние двух морских — эмоции-то одни и те же.
Поэтому хочется текстуры. Магнитные ботинки. Воздушные шлюзы. Невесомость. Долгие перелеты. Ускорения. Перемещение по кораблю. Перемещение по станции. Разработка метеоритов. Экономия воздуха. Детали, о которых ты не думал, живя на Земле, но которые интересно представлять — а как оно, там, будет?
И кажется, что в первых трех сезонах текстуры прям не жалели. Включите пилот, там за первые четыре минуты на Кентербери показывают больше любопытных деталей, чем за весь четвертый сезон.
Или вот пример из четвертого эпизода. На корабль нападают неизвестные злодеи. Камеру с героями прошивают дырки от пуль. По направлению воздуха герои определяют, что вакуум со всех сторон. Заделывают дырки, но вентиляция не работает. Находят успокоительное и решают вколоть одному из них, чтобы поменьше дышал. Решают, кто кого после этого понесет.
Это все детали! Причем такие, о которых в обычной жизни особо и не думаешь. Зачем показывать нам секс в невесомости? Да ни за чем, просто прикольно же, будет о чем подумать. Послевкусие, так сказать.
Есть, впрочем, и в пятом сезоне выдающаяся сцена. Герои защищают некий контейнер, за которым охотятся злодеи. Ну там обычная перестрелка в тесной комнате: кто за шкафом от пуль прячется, кто за табуреткой, все друг в друга попадают раз по пять и промахиваются раз по сто. Ну вы знаете, как киношные перестрелки работают.
И вот посреди этой котовасии в комнату заезжает робот-пылесос злодеев. Ну он побольше пылесоса, где-то с тумбочку размером, и весь бронированный. В нормальном кино бы сделали как? На робота повесили бы пушки, герои бы начали придумывать план, как его остановить, все бы друг другу помогали и в итоге превозмогли бы или красиво собой пожертвовали.
Но тогда эта сцена не была бы такой выдающейся. Поэтому робот, зная, что ему никто ничего не сможет сделать (что тебе пули, когда ты из железа?) просто едет спокойно к контейнеру и как ни в чем не бывало начинает его выпиливать из сейфа. Вокруг перестрелка не на жизнь а на смерть, герои по возможности суетятся, пытаются как-то его остановить, но все бесполезно: он железный, что ты ему сделаешь? В конце концов всех злодеев побеждают, остается только робот, который спокойно к тому моменту уже достал контейнер и невозмутимо едет к выходу. Герои пытаются хоть как-то ему помешать, но робот тяжелее и поэтому бесхитростно проезжает по прямой мимо всех и улетает на ракете в закат.
Ощущения — в точности как от терминатора в детстве. Ты точно знаешь, что он сейчас сделает, тебе это не нравится, но помешать тоже никак не можешь. Вот бы весь сериал таким был. Но даже робота этого больше нигде ни разу не упоминают и не показывают. Единичная находка.