Бессонный кодер
4.84K subscribers
314 photos
61 videos
5 files
126 links
Канал разработчика и поисковика ДПСО LizaAlert

Связь: @sleeplessfeedbackbot или Direct канала (они бесплатные)
По рекламе: @dpp_ads
Купить рекламу: https://telega.in/c/sleeplesscode
Download Telegram
Мы уже много что сказали о смерти в играх, и многие уже упомянули один важный момент, который и мне пора упомянуть.

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

Эта разница кажется технической: «минус одна жизнь» против «конец сессии». Но на самом деле она глубже. Её сформулировал Славой Жижек, когда говорил о двух типах смерти.

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


Это и есть важная граница, её можно сформулировать очень просто. Потеря жизни — часть механики, невозможность продолжить — разрушение системы.

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

Но, если говорить ещё честнее, абсолютная смерть может разделиться на ещё 2 типа. Заслуженная и ошибочная.
Заслуженную мы уже разобрали, так какая же ошибочная?

Ошибочная в этом контексте, это так называемый Kill Screen. Баг, ошибка. Одним из примеров такой ошибки является 256 уровень Pac-Man, где из-за переполнения памяти экран начинал глитчить, счётчик ломался и продолжение игры становилось невозможным. Тут нет вины игрока, но при этом фактически — это смерть.

А в следующем посте мы попробуем рассудить, а почему вообще нам нравится смерть в играх и мы её не бойкотируем.
142🔥4
Иногда боишься трогать что-то ценное, не потому что нельзя, а потому что можешь испортить.

Я опять немного пропал, но всё не просто так — работаем, учимся. Хотел рассказать про обновления ST и чем сейчас занимаюсь, но быстро понял, что это нарушит законы РФ 😁
Поэтому давайте пока о другом: есть процесс, когда нужно перегнать сотни гигабайт данных или пройти таблицу на 13 миллионов записей, проверить каждую строку, и это миграция. А что мы делаем во время миграции? Смотрим.

Так что возвращаем рубрику: что посмотреть во время миграции. 🤩

Сегодня выбор немного нестандартный — это не сериал, не фильм и даже не аниме, это Dream Productions.
Тут надо быть честным, я очень люблю Головоломку, это мой любимый полнометражный мультфильм (настолько, что он у меня стоит на фоне WinLogon), вторую часть я смотрел на релизе в кино, да и моё единственное публичное видео на ютубе из формата видео-эссе про Головоломку, но был один хвост, который я опасался брать — этот спин-офф между первой и второй частью, потому что такие вещи часто ломают канон.

Но в итоге, я наконец посмотрел его, и это неожиданно очень хорошая работа: по сути цельная полнометражная (4 эпизода по 22 минуты) история, снятая в формате «Офиса», причём сохраняя его идеи и визуальные шутки. Мне — зашло невероятно, думаю и вам понравится.
А если вы любите Головоломку — обязательно смотрите, дальше кину пару вырезок, для ознакомления.
❤‍🔥29🔥871
А помните цикл постов про работу AI инфицированных в The Last of Us? Так вот, я подготовил перевод (и добавил оригинал для ценителей) одной из основных статей, которую использовал при написании этих постов. Очень интересное и увлекательное чтение :3

Прочитать и поддержать меня можно тут:
https://boosty.to/redguy/posts/aa2a8498-20d5-46f5-bc09-93b7e13f99e8?share=post_link
25🔥6💋1
Вы когда-нибудь задумывались, в какой момент летсплей превращается в сериал?
Вот прям не «чуть-чуть сюжета добавили», а уже всё — назад дороги нет.

Я наконец нашёл время и возможность вернутся к рубрике про сезоны, закрываем гештальт 😅

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

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


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

Летсплей — это: импровизация, реакция, «что получилось, то получилось»
Сериал — это: контроль, структура, заранее продуманные сцены

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

Вы вроде делаете летсплей, но начинаете добавлять сюжет.
Потом ещё.
Потом ещё.
И в какой-то момент…
там уже, будем честны, пошло уже в сторону именно что сериала

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

Как думаете, где вообще проходит эта граница?
Когда «добавили сюжет» — это ещё ок, а когда — уже всё, вы делаете другой продукт?
46🔥5🥰2❤‍🔥11🕊1
Чуть раньше мы говорили о разных видах смерти в играх, теперь можем поговорить о последней вещи в нашей цепочке обсуждений.
А почему вообще нам нравится смерть и мы живём с ней.

Но чтобы понять, почему она так ощущается, нужно посмотреть на того, кто умирает чаще всего — на аватара.
Аватар — это не просто управляемый объект. Это наш двойник. Он занимает наше место в игровом мире. Он действует там, где мы не можем действовать физически. И он умирает там, где мы не можем умереть по-настоящему. В этом смысле аватар — ты, который умирает вместо тебя.

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

Этот переход — очень быстрый, но принципиальный. Он демонстрирует, что контроль в игре всегда условен. Он даётся и отбирается в мгновение пули. Это то, что называют flux of agency — колебание между «я делаю» и «со мной это делают». И смерть — крайняя точка этого колебания.

Важно, что для этого не нужен мрачный хоррор или насилие. Даже в «милых» играх с тканевыми куклами или мультяшными героями персонаж может распасться, исчезнуть, быть отброшенным в начало уровня. Сеттинг может быть светлым, но структура остаётся той же: двойник умирает, чтобы процесс продолжился, а мы пережили колебание между состояниями.

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

А дополнительные материалы по этому циклу постов, как всегда доступны на бусти: https://boosty.to/redguy/posts/3896ca37-ae86-4fdd-9662-1f2f885161ae
24👍3❤‍🔥2🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Как говорится, я, конечно, не тестер, но могу немного рассказать про них.

Очень много людей, когда спрашивают о вакансиях в ST, уверены, что две самые лёгкие должности — это сценарист и тестировщик (далее буду использовать более привычное мне слово — QA). Но это вообще не так. За сценаристов говорить не буду — думаю, они сами расскажут. А давайте поговорим про QA.

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

Первое — нужна достаточно мощная рабочая станция, чтобы запускать полную сборку. А поверьте, она ест ресурсы очень даже бодро :3
Логично. А что дальше?

Хорошее знание русского языка.
Этот пункт многих сбивает с толку, но важно понимать: QA — это Quality Assurance, человек, который отвечает за качество продукта. А я думаю, вам самим будет неприятно, если тут и там будут вылезать опечатки и ошибки. Мы, например, использовали длинное тире по правилам русского языка ещё до того, как это стало мейнстримом с ИИ.

Внимание.
И нет, это я сейчас не вас отвлекаю — это реально ключевой навык. Умение следить за всем происходящим и ловить даже самые мелкие косяки. Вот вы, например, сможете найти косяк, который запечатлён в приложенном видео?

Умение управлять своим временем.
И это тоже критично. Если вы учитесь и вас вечером отправляют спать — вам будет сложно работать в потоке дедлайнов. Кстати, это одна из причин, почему у нас ограничение 18+ на приём.

Ну и бонусом — знание нашей любимой Java. Это не обязательно, но сильно помогает: когда QA понимает, как работает сцена изнутри, он может находить гораздо более сложные и интересные баги.

Вот как-то так. Догадывались о всех этих моментах или что-то стало для вас открытием?
(почему-то этот пост выглядит как вакансия на HH)
🔥54❤‍🔥86💊2
Бессонный кодер
Никогда такого не было — и вот опять: в npm снова обнаружена supply-chain атака. В этот раз атака достаточно крупная и могла задеть большое количество рабочих станций и серверов. Вредонос работает как червь, заражая пакеты пострадавшего разработчика. Но самое…
Никогда такого не было — и вот опять: в npm обнаружена supply-chain атака. В этот раз её удалось достаточно быстро обнаружить и устранить (4 часа).
————————————————————————
Сначала важное:
Заражённые пакеты: `axios@1.14.1`, `axios@0.30.4`, `plain-crypto-js@4.2.1`
Артефакты малвари:
macOS: /Library/Caches/com.apple.act.mond
Windows (постоянный): %PROGRAMDATA%\wt.exe
Windows (временный, само-удаляется): %TEMP%\6202033.vbs
Windows (временный, само-удаляется): %TEMP%\6202033.ps1
Linux: /tmp/ld.py

————————————————————————
Что и как происходило (в UTC):
2026-03-30 05:57
Опубликован пакет plain-crypto-js@4.2.0 пользователем nrwise@proton.me. Это "чистый" (безопасный) пакет, содержащий копию оригинального кода crypto-js. Он был создан для того, чтобы создать видимость нормальной истории публикаций пакета, чтобы он не выглядел подозрительно при последующем анализе.

2026-03-30 23:59
Опубликован пакет plain-crypto-js@4.2.1 пользователем nrwise@proton.me. В этот пакет добавлен вредоносный код. В него добавлен хук postinstall, который запускает скрипт setup.js, содержащий замаскированный (обфусцированный) вредоносный компонент.

2026-03-31 00:21
Пакет axios@1.14.1 опубликован скомпрометированной учетной записью jasonsaayman (адрес электронной почты: ifstap@proton.me). Этот пакет добавляет plain-crypto-js@4.2.1 в качестве зависимости во время выполнения, нацеливаясь на пользователей современной версии axios (1.x).

2026-03-31 01:00
Опубликован пакет axios@0.30.4 с той же скомпрометированной учетной записи. В этот пакет также внедрен plain-crypto-js@4.2.1 в качестве зависимости, но он предназначен для более старой версии axios (0.x). Это сделано для охвата большего числа пользователей.

2026-03-31 ~03:15
Пакеты axios@1.14.1 и axios@0.30.4 удалены из реестра npm. Версия 1.14.1 была доступна примерно 2 часа 53 минуты, а версия 0.30.4 - примерно 2 часа 15 минут. Точное время удаления определено по информации из реестра npm, так как npm не предоставляет отдельный API для получения времени удаления конкретной версии.

2026-03-31 03:25
npm начинает процесс блокировки для пакета plain-crypto-js, чтобы заменить вредоносный пакет на безопасный "заглушку" (stub).

2026-03-31 04:26
Опубликован безопасная "заглушка" plain-crypto-js@0.0.1-security.0 от имени учетной записи npm@npmjs.com. Это окончательно заменяет вредоносный пакет в реестре. Пакет plain-crypto-js@4.2.1 был активен примерно 4 часа 27 минут. Теперь при попытке установить любую версию plain-crypto-js отображается предупреждение о безопасности.
————————————————————————
А что вообще это такое и что случилось?

При разработке на Node.js, для управления библиотеками используется пакетный менеджер npm, он позволяет в одну команду установить нужную зависимость и все нужные для неё зависимости. Именно на этот алгоритм и пришла атака.
Некоторым пакетам после скачивания нужно выполнять дополнительные действия, для этого существует механизм postinstall, обычно его используют для вызова компиляции или патчинга текущего/соседних модулей.
Теперь перейдём к axios, это одна из самых популярных библиотек для работы с HTTP(S) протоколом. Что у нас получилось? Разработчик обновляет/устанавливает axios до заражённой версии, он автоматически как зависимость скачивает plain-crypto-js, а тот в своём postinstall запускает скрипт, который устанавливает RCE вирус на рабочую станцию, при этом всё это происходит полностью незаметно для разработчика.

Вот как-то так.

Подробнее: https://www.stepsecurity.io/blog/axios-compromised-on-npm-malicious-versions-drop-remote-access-trojan
12🔥2💘2
Хотите изучать английский регулярно, интересно и без заморочек? 🤓
Тогда мой канал для Вас! 🤗
🔥 Объясняю даже самые сложные грамматические правила просто и понятно 😌
🔥 Разбираем популярные сленговые выражения 😎
🔥 Лексика на самые разные темы 😊
🔥 Разбор заданий для ОГЭ, ЕГЭ, ВПР 🤓 
🔥 Рассказываю про культуру и праздники англоговорящих стран 🇬🇧🇦🇺🇺🇲
🔥 Переводим популярные песни 🎶
Подписывайтесь! 🫶 Буду рада всем и каждому ❤️
https://click.wowblogger.ru/xnmk2p754k2q18j?erid=2VSb5y7CWNM

Реклама. Сафиулина Ольга Васильевна, ИНН 230405252674, ЕРИД: 2VSb5y7CWNM
7
Раз в год и я делаю постик про сеть и позицию с ней в стране. Давайте поговорим о новостях насущных.
Взимание платы за VPN и запрет аккредитованным IT компаниям работать через VPN.

Для начала давайте определимся, как вообще понять что человек сидит с VPN, обычно на это указывают совокупности признаков, такие как:
— различие регионального и пользовательского языка (человек с Испанским VPN использует русский интерфейс)
— различие часового пояса (сайты и приложения имеют доступ к вашему часовому поясу, и видят различие если вы сидите UTC+3, а ваша страна в UTC-1)
— протечки WebRTC (протокол p2p связи, отдельная история)

Но какие признаки обычно используются государством для определения использования VPN:
— зарубежный IP
— всё, вы правда думали что будет ещё что-то?

А что тогда это всё обозначает?
1) ВСЕ сетевые запросы на сервера вне РФ облагаются дополнительной тарификацией. А это не только VPN, ваш любимый ютубчик, это сотни и десятки тысяч доменов:
— Скачиваете обновление Windows? Зарубежный трафик, платите за VPN
— Пользуетесь Android или IOS? Платите за зарубежный трафик, ведь сервера уведомлений не стоят в РФ
— Пользуетесь Boosty (или любым другим сервисом использующим иностранные CDN)? Вы уже знаете за что платить

2) И если первое от части понятно, так как законы придумывают те, кто не знает как оно всё работает, то второе уже напрягает сильнее, ведь государство прямым текстом запрещает аккредитованным IT компаниям как либо работать с зарубежными клиентами. А это обозначит что ВСЕ кто аккредитован должны перестать обслуживать всех людей вне РФ. Пока-пока иностранный трафик Яндекса, пока-пока пользователи ВК из Республики Беларусь или Республики Казахстан. И такое касается не только тех кто работает при белых списках, А ВСЕХ КТО АКРЕДИТОВАН, а это тысячи IT компаний.

Когда мы думали что мы идём по сценарию Китая, мы ошибались, мы идём по сценарию КНДР, ведь вы можете зайти на китайский сайт и пользоваться китайским мессенджером, а вот пользоваться Российскими сервисами вне РФ уже запрещают...
38😢12💔3🔥1💋1💊1