es
Feedback
igrishaev

igrishaev

Ir al canal en Telegram

Ivan Grishaev on everything // grishaev.me

Mostrar más
686
Suscriptores
Sin datos24 horas
Sin datos7 días
+230 días
Archivo de publicaciones
https://grishaev.me/pg-book-json-ch10/ Вот, книжка готова. Осталось перечитать ее несколько раз, сверстать и издать. Не знаю, как скоро это получится, не дело идет!

Пишут, социальные сети проигрывают иски, связанными с детьми. Где-то соцсети даже признали вызывающими зависимость, то есть приравняли к сигаретам и алкоголю. Представители соцсетей вяло оправдываются и предлагают меры: ограничить доступ при помощи детских аккаунтов, привязанным к родительским. У меня есть несколько мыслей по этому поводу. Во-первых, к соцсетям я испытываю крайнее отвращение. Сидеть в них для меня – примерно как купаться в нечистотах. Понимаю, дело вкуса, но от одного вида VK или Фейсбука меня подташнивает. Так что да, я предвзят. Во-вторых, тезис о зависимости поставлен совершенно верно. Всяких топ-менеджеров и директоров по развитию не интересуют дети. Пусть ваши дети торчат в телефонах до 4 утра, отвлекаются на уведомления, завидуют, ревнуют. Это никого не интересует. Топ-менеджеру важно расширить продукт и получить деньги, поэтому в ход идут все более хитрые инструменты, чтобы удержать ребенка у экрана. Наконец, третье: детский аккаунт – это обман. Формально они будут созданы (где-то уже созданы), но пользоваться ими никто не будет. Почему? А потому, что я пробовал и что это такое. Когда моему сыну еще не было 13 лет, он начал пользоваться смартфоном. Покупал и настраивал его, конечно, я. При входе в аккаунт я всегда указывал возраст старше 13, чтобы система не придиралась. И вот однажды решил проверить: что будет, если указать честно? Гугл говорит: до 13 лет нужен детский аккаунт, который нужно привязать ко взрослому. Я попытался пройти процедуру и не смог. Нужно что-то сделать на детском телефоне, зайти в админку на своем телефоне, ввести пароль, код из смс, что-то подтвердить, взять обратно детский, что-то там нажать, потом еще раз подтвердить на родительском. Пайплайн очевидно не доработан: то ошибка, то бесконечный спиннер, то попробуйте еще раз. Короче, ад. Плюнул и указал возраст 16 лет. Поэтому когда я слышу “детские аккаунты”, то знаю заранее – это обман. Квест пройдет только очень мотивированный родитель, который понимает токены-сессии-подтверждения. Обычный человек не будет разбираться. Ребенок откроет обычный аккаунт, укажет 16 лет, и система его пропустит. В итоге все довольны: у родителя не болит голова с настройкой детского аккаунта, ребенку не нужно долбить родителя, соцсеть собирает данные, топ-менеджер идет на повышение. Я понимаю, что там, где дети, очень строгое законодательство. Должны быть выдержаны все нормы. Но дело в том, что когда они выдержаны буквально, возникает такой порог, что всем участникам проще обойти его. По-хорошему нужно запереть в одной комнате дизайнера, программиста и юриста. Далее не выпускать их до тех пор, пока они не построят удобную регистрацию детского аккаунта — такую, где справится обычный человек. Максимально сократить число экранов, подтверждений, переходов, но так, чтобы удовлетворять закону. Будет ли соцсеть этим заниматься? Нелепый вопрос. Так что детский аккаунт – это подачка суду, чтобы утерлись. Да, сделали детские аккаунты. Да, занимает двадцать экранов. Да, все по закону. Да, никто не пользуется, но это не наша вина: виноваты тупые родители и ушлые дети. Цинизм соцсетей и раньше был запредельным, а теперь просто рвет в небеса.

Смотрел доклад. Хороший, но рассказчик злоупотреблял одним приемом: задавал вопросы в зал и просил поднять руки. И я вспомнил, что давно хотел об этом написать. Мне неприятно, когда выступающий обращается к залу с просьбой реагировать на выступление. Я считаю это настолько низким приемом, что хочется поскорее выкинуть его из головы как что-то неприятное. За сорок минут доклада автор, наверное, раз пятнадцать обращался к зрителям: поднимите руки те, кто... Разумеется, на ход повествования это не влияло. На кажыдй вопрос докладчик только комментировал: "о, как много" или "о, как мало" и как ни в чем не бывало продолжал. В целом это напоминало игру с иллюзией выбора: в лучшем случае изменится часть кат-сцены, а дальше игра идет как обычно. Начиная с пятого вопроса докладчик всегда поднимал руку сам. Словно дрессировщик перед собакой, он показывал: смотрите, надо сделать вот так (поднимает руку вверх), и я буду доволен. Сидя в зале или перед монитором, я не хочу быть дрессированной собакой. Я считаю, что уважил докладчика уже тем, что пришел. Я здесь, рассказывай, только пожалуйста, не заставляй поднимать руки. По той же причине мне не нравятся номера артистов с людьми из зала. Даже когда я смотрел маленьким КВН, мне не нравилось, когда выступающие обращались к членам жюри или Маслякову. Зачем? Им запрещено взаимодействовать, они смотрят и улыбаются. Так что когда выступающий просит поднять руку, я не делаю этого, даже если тысячу раз подхожу под критерий. Я смотрю и улыбаюсь: давай выступай, а не командуй. Не за этим я сюда пришел, чтобы работать дрессированной собакой. А у вас есть такое? Поднимите руки те, кому тоже не нравится.

К одному из прошлых постов был комментарий, который я бы хотел обсудить отдельно. В какой-то момент обратил внимание, что коллеги на ревью оставляют очень развёрнутые комментарии, написанные без единой орфографической ошибки. Думаю – неужто разработчики резко научились выражать мысли? Потом дошло, что чуваки просто скармливают пуллреквест элэлэмке и постят её ответ (при том что в гитлабе есть кнопка "запросить ревью у ИИ"). И почему-то это очень неприятно (хотя комментарии преимущественно по делу), но я для себя не могу сформулировать, почему именно. Мне тоже неприятно, когда собеседник выступает мясным прокси. Вопрос только – почему? Что с того, что человек пользуется популярной технологией? Ответ в следующем: в общении между людьми все решает этикет. Без него общение будет невежливым как в бумажной переписке, так и в межгалактическом звонке. Собеседники должны уважать друг друга – вот единственный залог нормального общения. Как я уже упоминал, у многих ИИ-ребят плохо с этикетом. Каждый решил, что получил источник безграничных знаний и решение на все случаи жизни. С ним не нужно искать вежливые слова и соблюдать приличия – только копировать выхлоп нейросети, и все диалоги, задачи, дискуссии будут в твою пользу. Если говорить конкретно о комментариях нейросети, которые коллеги выдают за свои, то они напоминает вот что. Каждый из нас совершал такую ошибку: заходил в организацию и пытался попасть в директору. На входе охранник или вахтер спрашивают: вам по какому вопросу? Ты как дурачок выкладываешь свой вопрос. Охранник внимательно слушает и отвечает: по понедельникам директор не принимает, и вообще он на месяц в отпуске. Зачем тогда было спрашивать причину визита? Просто чтобы развлечься: человеку скучно, хочется послушать чужие дела. Такой у него характер, нравятся подобные вещи, что поделаешь. Ребята, которые выдают ревью нейросети за свое, в сущности, такие же. Пройти мимо – скучно, и хочется как-то о себе напомнить, посмотреть на чужую реакцию: как он будет выкручиться? Очевидно, если человек запрашивает мнение нейросети, он не разбирается в вопросе. Нужно ввести это в контекст. Этичный комментарий звучал бы примерно так: "дружище, я не вникал в тему, но нейросеть говорит сделать так. Я вижу, что ты сделал по-другому и поэтому спрашиваю, чтобы лучше понять. Этот коммент на твое усмотрение." Даже если в теле коммента идет выхлоп нейросети, общение остается человечным. Видно, что на том конце не мясной прокси, а нормальный человек. А когда голая копипаста – увы, этого не только не видно, но вы навлекаете на себя подозрения в вахтерстве и проксировании. Так что вот почему машинные комменты так выводят. Будь нейросеть трижды права, вы не этичны. И тут вам нейросеть не поможет.

В этот светлый день не помешает вспомнить, как пишутся праздники-даты. Если число пишется прописью, оно принимает на себя заглавную, а месяц пишется со строчной. Пример: Третье сентября. Если число пишется цифрой, заглавная переходит к месяцу: 3 Сентября. Не перепутайте!

Прогресс не стоит на месте, и все чаще я сталкиваюсь с результатом вайб-кодинга. Сначала я хотел написать “с нейрослопом”, но передумал. Кажется, это слово считается обидным: людям неприятно, когда их работу называют помоями, поэтому обойдемся нейтральным термином. Я смотрю на результат вайб-кодинга и не знаю, что с ним делать. Во-первых, объемы: текущий PR, что передо мней, включает 3200 новых строк. Вдумчиво их просмотреть – это сорок минут мозговой деятельности, а если учесть набор комментариев – то весь час. Далее, комментарии. Набирая их, понимаешь, что автор скорее всего не будет их читать. В лучшем случае он скормит их модели и скопирует ответ, но скорее всего просто проигнорирует. Качество сгенерированного кода посредственное. Код раздут, ему не хватает краткости. Я не говорю о стремлении записать все в одну строку; речь о той краткости, при которой код передает идею. Вместо встроенной функции – свой костыль: на момент обучения модель не знала о возможности языка. Вместо одного класса – два: абстракция и транспорт, хотя можно было свести к нескольким функциям. В коде на Питоне везде проверки: это словарь? это строка? это число? И много другого в том же ключе: приемлемо, но лучше исправить. Ощущение, что код писал джуниор с заявкой на мидла. И тут возникает момент: был бы автор человеком, мы бы сели и разобрали все минусы. В следующий раз он напишет код лучше, а через какое-то время ему можно будет доверять. А вот что делать с коммерческой моделью – я не знаю. Автор очевидно не хочет учиться сам. Зачем мне тратить час на объяснение недостатков? С таким же успехом я могу объяснять их уборщице или коту. Насколько я понял, код, написанный моделью, поддерживается одним способом – моделью. Если требуются изменения в логике, править вручную будет тяжело – не найдешь концов. Ожидается, что у разработчика развернуто окружение, плагины и всякие модели, чтобы сказать, что именно поправить в слопе, и модель поправит. Возникает противоречие: как быть, если кто-то (например я) не пользуется моделями. Как править этот код? Разворачивать окружение, переходить на вайб-кодинг? Не знаю. Лично я не собираюсь этого делать и, наверное, пересмотрю место работы, если слопа станет все больше. Уже на этом этапе заметна зависимость от моделей и подписок, в которую впадают разработчики. Чтобы поправить код, произведенной моделью, нужна модель. Нам же известно понятие “вендор-лок” и его последствия, ведь так? Разве эти ваши клоды-копайлоты не вендор-лок? И вы, друзья-элэлэмщики, не только садитесь задницей на иглу моделей все глубже и глубже, но и затягиваете других.

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

Читаю Конфуция. Вот какой случай дал повод о нем напомнить. Жил в Америке ультра-мага-патриот. Трамп, все дела. Потом он женился на русской эмигрантке, и пара поехала в отпуск. Супруга как раз продлевала визу, и оказалось, что старый документ уже недействителен, а новый еще не выдали. В аэропорту к паре подошли представители ICE – Immigration and Customs Enforcement (иммиграционная и таможенная служба США). Тут важно понимать контекст. Формально ICE борется с незаконной миграций, однако при Трампе штат расширили на порядок, чтобы проводить облавы. На работу в ICE устраивается отребье: отставные военные, бывшие таксисты и охранники. Мало того, что эти люди озлоблены на всех и вся; государство дает им в руки летальное оружие, чтобы задерживать мигрантов. То, что подобные облавы проходят со всеми возможными нарушениями, нет смысла и говорить. Достаточно не той одежды, головного убора, цвета кожи, чтобы оказаться в приемнике на месяцы. Семьи разделяют. Иногда при задержании гибнут люди. Представителям ICE не понравилось, что у супруги виза еще не выдана. Ее отправили в приемник, и там она провела несколько недель. Ситуация в приемнике ICE местами хуже, чем в тюрьме. Например, свет никогда не выключают, а охранники нарочно громко говорят по рации. Неделя – и от недосыпания едет крыша. Никаких медикаментов достать нельзя, правозащитников не пускают. За грубое слово изобьют и скажут родственникам, что поскользнулся на банановой кожуре. Все это время муж пытался вызволить супругу, навещал ее трижды в неделю. Видел все своими глазам. В итоге женщину отпустили под залог с надетым на ногу браслетом. В обращении к прессе мага-патриот сказал, что разочарован в Трампе и ситуации с преследованием людей. История пары на этом не кончилась: им еще ходить по инстанциям (в браслете) и доказывать правоту. Однако оставим их и подумаем над другим вопросом: при чем же тут Конфуций? При том, что примерно в 680 году ДО нашей эры (то есть 2700 лет назад) Конфуций вывел формулу человеколюбия: не делай другим того, чего не желаешь себе. Разумеется, и до Конфуция эту мысль высказывали в том или ином виде, но он возвел ее в абсолют. На человеколюбии держится все учение Конфуция. Условный мага-патриот уверен: можно устраивать облавы на мигрантов ради высшего блага. Ведь это мигранты: они цветные, глупые, что с них взять. Подумаешь, в приемнике тяжело спать и нет медикаментов? Это ложь правозащитников. Но когда в жернова попадает близкий человек, все меняется. Товарищ Сталин Трамп, произошла чудовищная ошибка… Если бы у мага-патриота был хоть грамм мозгов, он бы понял, насколько справедлива формула Конфуция. Не желай другим гнить в приемнике, если не хочешь, чтобы то же самое случилось с тобой – или близким, что отнюдь не лучше. За последние 2700 лет люди не придумали ничего лучше этой формулы. Остальные религии и учения – просто ее повторы. Например, формула целиком вмещает десять христианских заповедей: почитай родителей, не укради, не убий… В самом деле: хочешь, чтобы дети тебя уважали как родителя? Уважай своих родителей. Не хочешь, чтобы у тебя крали? Не кради сам. Не хочешь быть убитым? Не убий. И так далее. Глядя на историю людей, иной раз поражаешься. Мысль высказали 2700 лет назад и с тех пор повторяют во всех вариациях. Понять ее – это ведь не вырастить плавник или третью руку: тут не нужны тысячелетия. Но судя по текущей обстановке, до понимания формулы осталось еще очень и очень долго.

Когда вы увозите ребенка к бабушке в деревню, скорее всего там нет микроволновой печи, кондиционера, интернет-канала под 4К и других полезных вещей. Но никто не сомневается, что ребенку в деревне полезно: речка, солнце, животные. Отдохнет от гаджетов, помоется в дачном душе и вообще – не развалится. Так и здесь. Да, чего-то не хватает, но не развалитесь. Можно и на Кложе писать хороший софт, зарабатывать и получать удовольствие. Да и не только на Кложе: я бы с удовольствием взялся бы за коммерческий проект на Common Lisp или Cobol — да на чем угодно! Нет тулинга? Не беда: либо обойдусь, либо напишу свой. С таким настроем легко жить и смотреть в будущее.

Если я правильно понимаю ты писал (пишешь?) на питоне в том числе. Просто я немного поглядываю что происходит в мире clojure и вижу, люди как-то справляются без linter-ов, typechecker-ов и без такого инструмента, как uv (это менеджер интерпретатора, зависимостей проекта и виртуального окружения) в мире python. Когда работаешь с чужим кодом и погружаешься в него, то такие вещи очень сильно помогают. Возможно, в мире clojure как-то можно обойтись без них, но тогда мне интересно как?
До прихода в Кложу я много писал на Питоне. Сейчас, хоть и меньше, тоже приходится: на работе есть Python-лямбды и скрипты. Питон — популярный язык, и я прибегаю к нему в случаях, если нужно что-то продемонстрировать для широкой аудитории. Если отвечать на вопросы буквально, то да: тулинг Кложи не дотягивает до Питона. Для него созданы десятки линтеров и чекеров, а к каждому — еще столько же плагинов. Есть Jetbrains с Pycharm, которая выводит типы и предлагает автокомплит на любой чих. Программирование на Питоне в Pycharm стало как в Джаве — все типы подхватываются, и возникает ощущение, что в языке строгая типизация. Что касается uv и uvx, то я не застал их, но знаю, что это мощные средства. До этого изобилия Кложе далеко как до Луны. IDE нет, есть только плагины к редакторам. Я пользуюсь связкой Emacs + Cider, но понимаю, что освоить ее новичку трудно. Автокомплит каждый настраивает как может. Проверку синтаксиса в полете и прочие удобства — тоже. Централизованным решением вроде Jetbrains даже не пахнет, и вряд ли оно когда-либо появится. Не все так плохо с линтерами. Есть весьма развитый clj-kondo, который отлавливает много ошибок, например неверное число аргументов, необъявленные переменные и так далее. Суммарно кложурных линтеров наберется с десяток, и если использовать хотя бы пару из них, это решит некоторое число проблем. Также есть форматтеры кода по определенным правилам. Существует кложурный LSP сервер (Language Server Protocol). Во многих редакторах LSP-клиент идет из коробки (VS Code, Emacs), так что здесь наблюдается развитие. С LSP у вас будет автокомплит, переход по коду и остальные базовые вещи LSP. В Кложе есть REPL, который закрывает много проблем. REPL основан на том положении, что единственный способ доказать, что код работает – это запустить его. Бывает, что код на Джаве выглядит корректно, но не работает. Непойманное исключение, ошибка индекса в массиве, NPE и так далее. Все это проверяется на практике, компилятор не поможет. Будет глупо оправдываться тем, что компиляция прошла: какая разница, если прод падает? Зато REPL позволяет выполнить код в редакторе и отловить подобные случаи. Кстати, замечаю вот что: все больше джавистов топят за TDD – разработку от тестов. Парни не понимают, что TDD – это прокисший REPL, своего рода костыль, чтобы поскорее запустить код. В Джаве нет репла, но есть зеленая кнопочка Run, которая появляется в Main- и Test-классах. Нажатие этой кнопочки – просто убогий способ запустить код и ничего больше. REPL не отменяет тестов, и их пишут – юнит-, интеграционные и так далее. Если переходить на Кложу с языков вроде Питона или Джавы, будет неудобно. Там у вас уютный Jetbrains, который по одной клавише угадывает экран кода. Здесь — самосбор: плагины к редактору, запуск линтера из командной строки. Зачем все это? Затем, чтобы выйти из зоны комфорта, увидеть разнообразие, попробовать себя в чем-то другом. IDE и тулинг на все случаи жизни — это здорово, но нельзя на них замыкаться. Не вся работа делается в IDE по подписке. Когда Рич и Кен делали Unix и Си, разве были у них средства, аналогичные нашим? Они сами написали линтеры, парсеры, чекеры и прочие обвязки. А как написали IDE без IDE? Удобства – это хорошо, но плохо, когда зависишь от них. Если точнее, плохо, когда кругозор сужается до той степени, когда жизнь без удобств становится немыслимой. Речь не о том, чтобы полностью от них отказаться. Но полезно быть в состоянии что-то сделать без привлечения мощных средств.

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

Почти на всех сайтах я замечаю повторный рендер. Это когда контент нарисовался, а потом Реакт решил, что виртуальное дерево устарело. Поэтому вжух – и контент рисуется еще раз. То же самое во многих мобильных и настольных приложениях вроде Slack или Teams — которые только называются "приложениями", а на самом деле оболочка Хрома или WebView. Никто не считает это проблемой. Подумаешь, мигнул контент! В нулевые скорость была низкая, верстали таблицами, и сайт собирался по 30 секунд. Бывало, уже давно читаешь текст, и раз – что-то подгрузилось, подпрыгнуло, перестроилось. А тут – всего-то мигнуло. Забавно, что современный фронтенд по-прежнему в ситуации эпохи нулевых – не может победить технические трудности. Должен быть улучшенный алгоритм рендера, который бы не срабатывал дважды. Еще лучше – дать над этим контроль разработчику. Ну и фронтендеры хороши: никого не парит, что экран мерцает. Я вот заметил недавно, что на каждый клик огромная таблица повторно рендерится. А мне отвечают – не приоритетная задача. Спасибо, починим через никогда. Давайте договоримся: не важно что у вас под капотом, Реакт-Вуй или что угодно. Контент не должен перерисовываться только потому, что ему так показалось. А если эти ваши Реакты-Вуи не починить, то верстайте так, чтобы не провоцировать повторный рендер.

Коротенькая заметка о ребятах, которые на все отвечают выхлопом нейросети: Don't be a meat proxy. Хороша уже тем, что метко вводит новый термин: meat proxy. Мясной посредник между человеком и нейросетью. Замечаю, что все больше людей скатываются к роли посредника. Задаешь коллеге вопрос – он подвисает на пять минут и кидает md-выхлоп. Разумеется, он его не читал: тебе надо – ты и разбирайся. Попадаются ребята, которые открыто пишут: Иван, я передал твои замечания по ревью нейросети, и вот что она сказала… Далее идет md-выхлоп, который, конечно же, заботливый коллега даже не читал. Некоторое время я не знал, что делать с такими людьми – по каким углом смотреть и как взаимодействовать. На мой взгляд, человек, который проксирует каждое обращение к нейросети – словно проблемный родственник. Лучше его не провоцировать и не подкидывать горячих тем, и тогда, может быть, все обойдется. Со временем я понял, что, похоже, некоторые люди плохо улавливают этикет. Каждая технология требует своего этикета, но не все это понимают – в инструкции не написано. Скажем, когда появились мобильные телефоны, считалось нормальным обсуждать бытовые дела на всю маршрутку. Когда появились планшеты и мобильный интернет, каждый решил, что можно включить сериал или игру без наушников. Сейчас так поступают разве что дети и пенсионеры. С нейросетями та же история. Есть те, кто по какой-то причине не понимает: людям нравится нормальное, живое общение. Взаимодействие с машиной – это один протокол, с коллегой – другой. Если коллега отвечает макрдаун-выхлопом, с ним просто не хочется общаться – каким бы лапочкой и хорошим человеком он ни был. Верю, что когда-то это поймут. Я подожду.

Иногда русская озвучка бывает, мягко говоря, спорной. Актеры кричат в тех местах, где персонаж шепчет; интонация странная, пропадают акценты, идиомы, игра слов. Так что если вам позволяют условия (знаете язык, партнер(ша) не возражает), лучше потреблять фильмы и игры в оригинале (или позже пересмотреть ключевые сцены). У этого правила, однако, есть исключение: иногда в оригинале звучит русская речь. Сделано это так, что хочется не слышать ее ни за какие деньги. Имеем американского персонажа. Всем он хорош: и силен, и умен, и женщину спас. Одна беда – русского происхождения. И вот на середине фильма всплывает русская мафия, дядюшка или бывшая, с которыми герой изъясняется по-русски. То есть как по-русски: в Гугл-транслейт набивается текст на английском, тот выдает русский транслит. Актер учит его наизусть как абракадабру: “Татиана, как дафно ты юже десь?” Татьяна: “Пивет Джон, две ньидели ка пиехаля”. Разумеется, у меня нет претензий к американскому зрителю. Им без разницы – русский, бурятский, венгерский – все это диалекты каких-то варваров. Но куда смотрят создатели фильма? Разные факт-чекеры и прочие специалисты, которые отвечают за реалистичность сцен. Неужели нельзя найти русскоговорящего актера с похожим голосом и озвучить пару фраз? В чем сложность? Когда русский бандит обращается к американцам, проблемы с акцентом не возникает. Тут даже переигрывают: “лэт мы спык энглиш фр-р-ром май хар-р-рт”. Плохой персонаж всегда будет с рокочущим “р”. Как обезьянничать, так все мастера. А как насчет нормальной речи? Много лет назад со мной был случай. Я играл в одну игру, и там на хороших парней (американцев) напали плохие (конечно, русские). Атаку отбили, и одного молодого бандита взяли в плен. А он оплакивает убитую шальной пулей сестру: Наташа, очнись, солнышко, пойдем… и все это – на чистом русском. Ощущение, словно за спиной кто-то говорит. Я аж подскочил на стуле. Из Википедии и всяких ссылок я узнал, что этот фрагмент – инициатива русскоязычного сотрудника студии. Изначально дорожку записали как есть – транслитом. Вообразите, как бы звучали слова скорби из уст человека, который не знает языка? Картавые “встаувай, Натаща, ти живуа? Нье умиай!” Все это – в момент смерти? Это даже не кринж, а пиздец, и так делать нельзя. Разработчик прекрасно это понимал, и сделал вот что. Когда все ушли, он записал дорожку на нормальном русском и подменил в ассетах. Никто не заметил, и русская речь ушла в релиз. Позже игру хвалили в том числе и за это: впервые за вечность в игре адекватная реалистичная речь, а не транслит. Выходит, что инди-студия смогла, а Голливуд не может? Слабо верится. Интересно, что в локализации фильмов мы не сталкиваемся с подобным кринжем: герой говорит с родными на нормальном языке, в то время как в оригинале звучит тарабарщина. Оригинал, увы, нет-нет да подкинет подобный сюрприз. Длятся подобные сцены недолго, но даже их хватает, чтобы свалится на пол от отчаяния и стыда.

Как-то давно, аж в 2023 году, я жаловался на куко-баннеры. Проблема вот в чем: сегодня почти любой сайт выстреливает плашкой о том, что выставляет куки. Десятилетиями мы с этим жили, но пришли европейские бюрократы и сказали: непорядок. Надо не только уведомлять, но и предлагать пользователю выбор. Все куки, только обязательные, необязательные и обязательные, свой выбор. Дополнительно прилагается простыня о том, как эти куки. За европейскими бюрократами подтянулись другие по всему миру. Вместе с тем нам не повезло с дизайнерами: никто не стал договариваться, каждый кто в лес, кто по дрова. Один сайт показывает выпадашку, другой две, третий – полоску, четвертый прячет контент и так далее. Мечта еврочиновника сбылась: все сайты уведомляют. Стало ли конечному пользователю удобней и безопасней? Нелепый вопрос. Пользователю ничего не остается как ставить плагины вроде "I don't care about cookies". Одновременно схожую функциональность добавили в блокировщики рекламы. Последнее особенно забавно: между блокировкой рекламы и куко-баннера нет разницы. Не все ли равно, что там в выпадашке? То и другое одинаково мешает увидеть контент, поэтому выход — резать. На мой взгляд, совершенно очевиден следующий факт. Если каждый сайт спрашивает о какой-то ерунде, эту ерунду выносят в настройки браузера. Должен быть особый раздел, где я жму галочку "пофиг на куки". Это свойство доступно в JavaScript; сайт читает его и определяет, показывать окно или нет. Другой способ без JavaScript – браузер отправляет заголовок вида X-Cookie-Policy-Preferences=pofig Бэкенд проверяет значение на множество all, none, essential-only и другие и определяет, показывать окно или нет. Можно написать спецификацию, которая определяет важность кук, признак их передачи сторонним фирмам и так далее. Все это технические детали, но важно одно: когда есть соглашение, под него можно сделать интерфейс. Повторюсь, текущая ситуация, когда каждый сайт кукарекает о куках, никуда не годится. Чиновник доволен, а нам-то с вами этим пользоваться. Вспомните, что было, когда в браузеры добавили уведомления. Каждый сайт при открытии долбил: включи нотификации, включи нотификации, че ты как лох, включи-включи-включи. А еще дай доступ к геолокации и трекингу, чтобы два раза не вставать. Позже нотификации и прочие разрешение вынести в настройки: можно задать глобальное умолчание и исключения. (В скобках: удивляюсь, почему нет глобального запрета на перевод страницы. Открыл сайт на английском – перевести на русский? Открыл на русском – перевести на английский? Чинится системной опцией в Firefox, а настройки "никогда ничего не переводить" до сих пор нет). Так вот, к чему это все. Появилась инициатива под названием Kill the cookie banner! От каждой страны набираются волонтеры, которые будут сражаться за то, чтобы кук-обаннер настраивался в опциях браузера. Проект полезен уже тем, что показывает: есть люди, которым не все равно. Не хомяки вроде меня с плагином-банерорезкой, а те, кто хотят что-то изменить. Искренне желаю им успехов, пусть даже локальных, например на территории каких-то стран. Напоследок напомню, что в интернете все еще есть сайты, которые прекрасно работают без кук. Например, мой: https://grishaev.me/

photo content
+1

Долгое время в Телеграме нельзя было постить текст с картинками. То есть было можно, но со скрипом. К обычному тексту нельзя добавить картинку, а если это сделать, то сообщение становится типом "медиа", и его текстовая часть сильно меньше. Премиум закрывает этот недостаток, но появляется другая беда: текст выравнивается по ширине картинки. Если картинка маленькая, текст превращается в мышиный хвост. В результате народ постит текст и картинки отдельно, чтобы не страдало ни то, ни другое. Но получается два сообщения, и если хочешь поделиться ими, приходится пересылать пару. Словом, бред. Со временем Телеграм стал полноценной медиаплощадкой; есть даже проекты, у которых единственный канал – месаджеры. При публикации картинок каждый извращался как умел: выносил их в галереи, объединял в коллажи и так далее. И вот в Телеграм завезли полноценный визивиг-редактор. Это когда картинки и текст чередуются, и нет смысла делить публикацию на текстовый блок и медиа. Также сделали заголовки, списки и редактор таблиц – этакий Ворд. Что ж, на словах все прекрасно, а вот на деле… ради интереса я сверстал небольшую статью: три абзаца, а между ними картинки. Сбросил в сохраненные сообщения и проверил на ноутбуке и телефоне. Оказалось, что шрифт статьи на один-два пункта меньше, чем обычный текст (см. картинку). Получается, тот, кто читает с ноута, будет напрягать глаза. Проверил настройки: шрифт выкручен на максимум, отдельной опции для шрифтов статьи нет. На телефоне оба шрифта – обычной публикации и статьи – одинаковы, и это хорошо. Но блок статьи срезан слева на один сантиметр. Почему? Зачем его срезать? Для чего пустота слева? Там ни одной кнопки, просто щель шириной в сантиметр, и через нее сквозит фон. На обоих устройствах клиенты последних версий. Надеюсь, что в будущем шрифты подтянут. Увы, пока что я не готов оформлять текст с картинками в виде статей: щурить глаза ради чередования картинок – так себе удовольствие.

a.set(b.get() + c.get()) Или, если речь идет об x = x + 1: x.set(x.get() + 1) Другой дело, что на тот момент, когда на доске впервые записано x = x + 1, ученик еще не знает об объектах. Поэтому в ход идут коробочки, из которых достали сто рублей, добавили и положили обратно. Повторюсь: кому-то сказанное покажется банальным, но я считаю, о присваивании говорят мало – а тема очень интересная и сложная.