1.83K subscribers
3.3K photos
131 videos
15 files
3.57K links
Блог со звёздочкой.

Много репостов, немножко программирования.

Небольшое прикольное комьюнити: @decltype_chat_ptr_t
Автор: @insert_reference_here
Download Telegram
> 1996
> 1988

Стабильность, которой позавидует Microsoft

На фото запечетлён момент, когда менеджмент ставит задачи разработчику по исправлению этих багов.

CVE-2023-43785 - выход за границы буфера в коде libX11, проявляющийся при обработке ответа от X-сервера с числом символов, не соответствующих ранее отправленному запросу XkbGetMap. Уязвимость вызвана ошибкой в X11R6.1, существующей с 1996 года. Уязвимость может быть эксплуатирована при подключении приложения, использующего libX11, к вредоносному X-серверу или промежуточному прокси, контролируемому злоумышленником.

CVE-2023-43786 - исчерпание стека в результате бесконечной рекурсии в функции PutSubImage() в libX11, возникающей при обработке специально оформленных данных в формате XPM. Уязвимость существует с момента выхода X11R2 в феврале 1988 года.

CVE-2023-43787 - целочисленное переполнение в функции XCreateImage() в libX11, приводящее к переполнению кучи из-за ошибки в вычислении размера, не соответствующего фактическому размеру данных. Проблемная функция XCreateImage() вызывается из функции XpmReadFileToPixmap(), что позволяет эксплуатировать уязвимость при обработке специально оформленного файла в формате XPM. Уязвимость также существует со времён X11R2 (1988 год).


Уязвимости в библиотеках X.Org, две из которых присутствуют с 1988 года
https://www.opennet.ru/opennews/art.shtml?num=59906
5😁5🤯1
Кстати, совсем пропустил: вчера день был десять из десяти. То есть 10/10
🤡14🤷4🔥2
#prog #rust #rustlib

loole — MPMC очередь, поддерживающая как синхронную, так и асинхронную посылку и приём значений. Написана целиком на safe коде.

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

Slice&Dice (доступна на PC и на Android) — пошаговая тактическая боёвка, в которой способности всех действующих лиц являются гранями игральных кубиков.

На мой вкус, игра — скрытая жемчужина. Она приятно выглядит, достаточно сложная, чтобы заставить шевелить мозгами, но при это достаточно простая, чтобы в неё можно было играть в перерыве между интеллектуально ёмкими задачами.

Строго говоря, Slice&Dice — платная игра, но и бесплатной версии вполне хватает, чтобы её оценить.

Ниже — разбор игры.
👍3
Практически во всех играх можно выделить несколько геймплейных циклов. В Slice&Dice можно выделить два таких очень явных цикла (а если прищуриться, то и все четыре).

Один из таких циклов — ход в битве. Каждый ход проходит по одной схеме:

1. Враги кидают кубики для своих способностей, принимают выпавшие стороны и выбирают цели среди персонажей игрока.
2. Игрок кидает свои кубики и выбирает выпавшие стороны. В отличие от врагов, он может перебросить часть кубиков (до двух раз по умолчанию).
3. Игрок применяет способности своих персонажей. Эффект от способностей срабатывает немедленно. Если это приводит к уничтожению всех врагов, то битва заканчивается выигрышем.
4. Игрок завершает ход. Враги применяют свои способности. Если после этого под контролем игрока не остаётся живых персонажей, то текущая сессия заканчивается проигрышем.

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

(Собственно, можно считать, что действие "выбрать и применить способность — получить результат" является наименьшим из геймплейных циклов)

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

Наиболее базовые среди способностей:

* Атака. Снижает текущее количество здоровья цели на указанную величину.
* Лечение. Увеличивает текущее количество здоровья на указанную величину.
* Щит. Принимает на себя урон, приходящий по цели. Все щиты сбрасываются между ходами, но щит снижает урон здоровью, насколько хватает его прочности — при удачном стечении обстоятельств может и до нуля.
* Получение маны. Ману можно тратить на заклинания. Мана сохраняется на следующий ход, но не более трёх штук.

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

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

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

С некоторой натяжкой можно считать, что в игре присутствует и метагеймовый геймплейный цикл. В игре есть достижения. Их получение часто разблокировывает новый контент: новые герои, артефакты, монстры и даже игровые режимы.
Скриншот типичной ситуации в Slice&Dice с моими аннотациями. Пояснения по отдельным элементам смотри ниже (из-за ограничения Telegram по количеству знаков я не могу уместить всё в подписи под одной картинкой)
2🤯1
1️⃣ Команда наших героев. Ни один из кубиков пока не выбран.

2️⃣ Противники. Это первая битва в кампании, так что они довольно слабы.

3️⃣ Способности наших геров в виде кубиков. Какой стороной выпал — ту способность и можно использовать.

4️⃣ Кнопка для переброса кубиков. Пока что кубики не перебрасывали вовсе. Если нажать кнопку, то будут переброшены все кубики, которые не были помещены в слоты героев.

5️⃣ Кнопка завершения хода. Один череп означает, что если завершить ход сейчас, то один из героев погибнет. Разумеется, черепов может быть и больше!

6️⃣ Заклинания. Над ними — текущий запас маны. Burst есть всегда, оно накладывает два щита на героя или наносит две единицы урона противнику. Остальные заклинания привязаны к героям. Если герой повержен, его заклинания невозможно использовать.

7️⃣ Жёлтым обозначены очки здоровья, которые будут сняты атаками противника. Initiate рискует лишиться половины здоровья, но смерть ему пока не угрожает...

8️⃣ ...В отличие от Buckle! В него прилетает так много атак, что их суммарный урон на единицу превышает запас здоровья. Нужно или давать щит, или выносить одного из врагов, чтобы убрать атаку. Лечить бесполезно — здоровье и так полное.

9️⃣ Сбоку от каждого врага обозначено, на какого героя он нацелен. Нажатие на врага подсвечивает цели. В данном случае крыса и гоблин целят в серого героя, а лучник — в синего. Враг может целить и в нескольких героев сразу!

🔟 Символ в виде шеврона направо означает, что лучник в заднем ряду: пока в переднем ряду ещё кто-то есть, его можно достать лишь редкими способностями с ключевым словом Ranged.

1️⃣1️⃣ Некоторые стороны кубиков могут быть пустыми. Без применения особых эффектов от них никакого толку — первый кандидат на переброску!
И ещё немного скриншотов
3
Forwarded from shitposting 3.0 [+ dragons]
🤯10👍1😁1😍1
#meme про обнимашки
Forwarded from PUSSY MEMES
😢187🤮1
🌚6😁2
#meme злободневный
Forwarded from shitposting 3.0 [+ dragons]
👍12🌚3😁1😢1
Forwarded from shitposting 3.0 [+ dragons]
😁163