Pull to refresh
20
0.2

https://steamclub.net

Send message

О шейдерах в Game Maker Studio 2

Level of difficultyEasy
Reading time5 min
Views674

Как работают шейдеры в GMS2? Как их писать и использовать? Что означают термины attributevarying и uniform? Какой тип шейдера выбрать? Почему шейдер всегда состоит из двух файлов? Чем отличается вершинный шейдер от фрагментного? И причём здесь треугольники?

Читать далее
Total votes 3: ↑3 and ↓0+5
Comments0

Имя enum'a C++ в рантайме

Reading time10 min
Views6.4K

Получение имени типа, не важно это структура или перечисление, в C++ — проблема. То, что тривиально известно компилятору на этапе парсинга исходников, не получится перевести в человеко-читаемый вид в рантайме. Можно использовать std::type_info::name, который не является переносимым решением, потому что зависит от реализации манглинга в компиляторе. Некоторые компиляторы (например, MSVC, IBM, Oracle) создают "удобное" имя типа, а вот gcc и clang, возвращают искаженное имя, котороe можно преобразовать в удобочитаемую форму с помощью дополнительных функций, например abi::__cxa_demangle. Чтобы вся эта магия работала нужно подключить RTTI, который тоже не всегда доступен, а иногда и вообще-то вреден, потому что сжирает драгоценную производительность, но можно сделать по другому.

follow the white rabbit
Total votes 7: ↑7 and ↓0+7
Comments11

История ошибки 2000 года

Reading time13 min
Views27K
В конце девяностых мир переживал за компьютерные системы, которые обещали вот-вот отказать. Эксперты запугивали, что при наступлении 2000 года софт не сможет корректно обработать дату, и мир погрузится в хаос: отключатся платёжные системы, биржи встанут, откажет любая электроника. В реальности новый век наступил без каких-либо проблем, переживания оказались напрасны.

Именно так ошибку 2000 года восприняло общественное сознание. К примеру, британский политик-брекзитёр заявил, что опасения о влиянии роли Брекзита на экономику похожи на панику бага Y2K.

Об ошибке тысячелетия забыли почти сразу после наступления 2000 года. Даже в непрофильных изданиях месяцами обсуждали баг Y2K, но уже в первые дни нового года внимание к теме угасло. Завораживающая смена числа с 1999 на 2000 не создала катастроф, которыми так пугали. Скептики объявили, что деньги на устранение бага потратили впустую.

Происходящее за кулисами важнее представлений неспециалистов. Градус общественной паники действительно ушёл выше уровня, которого заслуживала ситуация. Реальная опасность компьютерных сбоев по всему миру 1 января 2000 года существовала и требовала вмешательства разработчиков ПО. Целые отделы программистов годами устраняли проблему Y2K.
Total votes 35: ↑34 and ↓1+51
Comments27

Чем опасен чистый RSA? Разбираем подводные камни

Level of difficultyHard
Reading time9 min
Views11K

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

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

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

Читать далее
Total votes 41: ↑41 and ↓0+56
Comments7

Надежный алгоритм поиска корней полиномиальных уравнений

Reading time24 min
Views4.9K

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

Читать далее
Total votes 17: ↑17 and ↓0+23
Comments17

Судьба предателя, угнавшего новейший МиГ-25 в Японию

Reading time9 min
Views1.5M

Сегодня в воздушном пространстве США летают около пятидесяти истребителей российского производства — от устаревших МИГ-15 и до современных МИГ-29. Большая их часть приобретена на открытом рынке после распада Советского Союза и расторжения Варшавского Договора. В советское время у американцев не было шансов приобрести наши боевые машины, хотя Штаты ради этого были готовы на все.

6 сентября 1976 года произошло ЧП: во время учебного полета на одном из дальневосточных аэродромов в Приморье, старший лейтенант Виктор Беленко поднялся в воздух на суперсовременном МИГ-25, и не вернулся на базу.

Сегодня в воздушном пространстве США
Total votes 262: ↑153 and ↓109+100
Comments2916

Использование численного метода Монте-Карло для вычисления многомерных интегралов

Level of difficultyMedium
Reading time10 min
Views4.8K

Еще в 1940-х годах, Джон фон Нейман и Станислав Улам изобрели моделирование Монте-Карло или численный метод Монте-Карло. Они назвали его в честь известного места азартных игр в Монако, поскольку этот метод имеет те же случайные характеристики, что и игра в рулетку.

Методы Монте-Карло представляют собой широкий класс вычислительных алгоритмов, которые полагаются на повторяющуюся случайную выборку для получения численных результатов. Основная концепция заключается в использовании случайности для решения проблем, которые в принципе могут быть детерминированными. Численный метод Монте-Карло использует три класса задач, такие как оптимизация, численное интегрирование и генерация результатов на основе распределения вероятностей.

Метод Монте-Карло используется в реальной жизни, например, в задачах, связанных с физикой, создании искусственного интеллекта, прогнозировании погоды и так далее, а также имеет огромное применение в финансах, где числовой метод Монте-Карло используется для расчёта стоимости акций, прогнозировании продаж, управления проектами и многого другого.[1]

Основное преимущество использования Монте-Карло заключается в том, что этот метод обеспечивает множество возможных результатов и вероятность каждого из большого пула случайных выборок данных, однако, метод зависит от предположений, и это иногда может быть сложной задачей. Некоторые другие преимущества Монте‑Карло: он изучает поведение системы без её построения, обеспечивает в целом точные результаты, по сравнению с аналитическими моделями, помогает обнаружить неожиданное явление и поведение системы, а также выполнить анализ «что, если». [2]

Читать далее
Total votes 7: ↑5 and ↓2+5
Comments50

Kademlia DHT: Основы

Reading time7 min
Views38K
Здравствуйте!
В этой статье, как и, надеюсь, в последующих, я хочу рассказать об одной из современных структурированных пиринговых сетей. Данный материал включает в себя мою переработку документаций, описаний и статей, найденных по теме. В качестве введения представлена общая краткая теория p2p-сетей, DHT, а уж затем следует основная часть, которой посвящена заметка.

Читать дальше...
Total votes 54: ↑52 and ↓2+50
Comments35

Печать гобелена «Игры престолов» на фискальном принтере с использованием Python

Reading time11 min
Views11K
Однажды в одном из проектов в мои руки попал фискальный принтер. Мы каждый день сталкиваемся с этими устройствами, когда совершаем платежи в магазинах, но мало кто догадывается что на самом деле они из себя представляют. Не буду вдаваться в подробности их работы, просто скажу, что это такие штучки, которые печатают чеки с данными о покупке на специальной термобумаге (да-да, почти во всех фискальных принтерах нет чернил!).

Я должен был разобраться как получить состояние функционирования фискального принтера и его внутренние параметры настройки. Задача давно выполнена, а фискальный принтер был надолго заброшен в дальний угол… Пока в мою голову не пришла идея немного покреативить :D

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

На выходе получился вот такой ролик:


Подробные действия для печати гобелена на языке python под катом ниже.
Total votes 36: ↑36 and ↓0+36
Comments27

Как отключить цензуру в ChatGPT?

Level of difficultyEasy
Reading time3 min
Views39K

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

Читать далее
Total votes 45: ↑41 and ↓4+46
Comments43

Микрочиповое граффити, или Чип-арт

Level of difficultyEasy
Reading time5 min
Views2.8K

Привет, Хабр! 

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

Читать далее
Total votes 21: ↑21 and ↓0+25
Comments6

Пишем за неделю 3D-редактор на C

Level of difficultyMedium
Reading time6 min
Views9.3K
Прошлой осенью я участвовал в недельном мероприятии по программированию Wheel Reinvention Jam. Смысл этого джема заключается в том, чтобы взглянуть по-новому на уже существующие программные системы. Я написал для него 3D-редактор под названием ShapeUp. Пост будет понятнее, если вы сначала посмотрите видео-демо ShapeUp. Можно попробовать ShapeUp в браузере.

Вот, как он выглядит:

Майк Вазовски!

3D-редактор


Я ненавижу тормознутость компилятора Typescript (поверьте, это относится к теме статьи). Джем показался мне подходящей возможностью реализовать более быстрое подмножество Typescript, обгоняющее по скорости tsc. Мне показалось, что проект можно реализовать, если начать с парсера Typescript esbuild or Bun. Но потом ко мне пришло понимание, что успешный результат будет выглядеть как команда терминала, выполняющая работу быстрее другой. Не особо впечатляюще в качестве демо. Мне хотелось создать крутое демо, поэтому я выбрал 3D.
Читать дальше →
Total votes 51: ↑46 and ↓5+61
Comments7

Задача трёх тел (не китайская нефантастика)

Level of difficultyMedium
Reading time21 min
Views41K

Однажды, выполнив в Гугле запрос "Three body problem" ("Задача трёх тел"), я был просто поражен - первая страница результатов состояла только из ссылок на роман китайского писателя-фантаста Лю Цысиня с соответствующим названием, а также на телесериал, снятый по этому роману, т.е. ссылок на собственно задачу трёх тел не было вообще! Мне это показалось удивительным и несправедливым, поскольку сама по себе задача трёх тел тоже может выглядеть увлекательной в популярном изложении. В этой публикации я постарался привести некоторые доказательства этого утверждения.

Читать далее
Total votes 184: ↑182 and ↓2+234
Comments150

Два слова о процедурной графике

Reading time5 min
Views6.8K

Среди многочисленных демосценерских конкурсов, которые традиционно входят в программу различных demo party, незаслуженно недооценённым, на мой взгляд, является конкурс процедурной графики (procedural graphics). Смысл этого специфического вида компьютерного творчества — формирование статичного изображения при помощи короткой программы. Стандартные ограничения на размер — 4кб, 1кб, 256 байт.

Связана недооценка, думаю, с тем, что конкурс одновременно не вполне понятен как тем, кто любит демки (поскольку процедурная графика статична), так и тем, кто любит картинки (т.к. процедурная графика не позволяет нарисовать что хочешь). И всё же, его популярность хоть и медленно, но растёт.

Первые работы во многом были вызваны интересом к теме трассировки лучей (raytracing). Сам по себе алгоритм довольно простой, но требует много вычислений, поэтому работы стали возможны, когда распространились компьютеры с, во‑первых, достаточно высокой производительностью и, во‑вторых, с достаточным количеством отображаемых цветов (или, хотя бы, градаций серого). Я порылся на pouet и нашёл одну из первых работ в категории «procedural graphics» — Digital Phantasy by EG:

Читать далее
Total votes 50: ↑50 and ↓0+69
Comments21

FreeRTOS: введение

Reading time5 min
Views202K

Здравствуйте. В короткой серии постов я постараюсь описать возможности, и подходы работы с одной из наиболее популярной и развивающейся РТОС для микроконтроллеров – FreeRTOS. Я предпологаю базовое знакомство читателя с теорией многозадачности, о которой можно почитать в одном из соседних постов на Хабре или ещё где-то.
Ссылки на остальные части:
FreeRTOS: межпроцессное взаимодействие.
FreeRTOS: мьютексы и критические секции.
Читать дальше →
Total votes 53: ↑53 and ↓0+53
Comments36

Автомашинист. Intel Atom водит поезда

Level of difficultyMedium
Reading time9 min
Views8.1K
Приветствую всех!

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



Итак, в сегодняшней статье поговорим про устройства автоведения ещё более поздних версий, нежели я показывал ранее. Узнаем, что у них внутри и на какой операционной системе они работают. Традиционно будет много интересного.
Читать дальше →
Total votes 46: ↑46 and ↓0+60
Comments49

Как американская коррупция превратила физика-ядерщика в быдло-кодера

Level of difficultyEasy
Reading time17 min
Views121K

Это история из цикла «как войти в IT», написанная старпером, ветераном броуновского движения, который помнит динозавров. Поэтому его опыт вхождения в ИТ никому не пригодится, но представляет интерес с точки зрения истории.  

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

К написанию данного текста меня подтолкнула беседа с одним из крутых разрабов из «жирной» конторы, с которым мы пересеклись на яхте в Средиземном море. Узнав, что я тоже из Бауманки, и у меня свой бизнес, он заинтересовался и выспрашивал. Как я смог начать бизнес на софте, почему не пошел в большую контору, типа Yandex, Сбер и прочие. У него тоже знакомство с софтом началось как создание собственной разработки по анализу результатов металлургических испытаний в лаборатории, но закончилось работой прогером по найму. Попивая вино на яхте где-то между Турцией и Грецией в 2023 году, он предположил, что, возможно, если бы он продолжал писать софт для металлургических исследований, то, наверное, сейчас мог плавать на своей яхте, а не арендованной, и не около Турции, а на Карибах (но это не точно). А поскольку фарш невозможно провернуть назад, я решил описать свою историю успеха, так как она забавна и поучительна.

Читать далее
Total votes 382: ↑367 and ↓15+417
Comments279

Самое бессмысленное обучение: почему благодаря школе и вузу вы «застряли» в болоте

Level of difficultyEasy
Reading time8 min
Views49K

Я просыпался. Открывал глаза и с тоской думал, что опять надо ехать на работу. Она казалось мне бессмысленной, выматывающей, но, увы, безальтернативной. Как сменить ее на что-то еще — я не знал. Чем хочу заниматься — не знал. Я жил с чувством, что влип в нелюбимую работу навсегда. Чувствовал, что застрял, но не подозревал, что выход из болота находится совсем не там, где я предполагал.

Читать далее
Total votes 130: ↑48 and ↓82-26
Comments251

Как рос мой доход в IT: от 17к до $21000 в месяц

Level of difficultyEasy
Reading time10 min
Views118K

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

Читать далее
Total votes 233: ↑120 and ↓113+24
Comments148

Физический смысл метрического тензора

Level of difficultyEasy
Reading time5 min
Views12K

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

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

Цель, ради которой метрику и метрический тензор ввели в научный оборот, -- желание описать любое пространство с помощью математических формул. Как это можно сделать? Для начала представим две бесконечно близкие точки 1 и 2 в обычном евклидовом пространстве. Будем считать, что мы перемещаемся из точки 1 в точку 2 по кратчайшему пути. В таком случае расстояние между точками определяется длиной вектора ds, проведённого из точки 1 в точку 2.

В частном случае прямоугольной декартовой системы на плоскости квадрат длины вектора ds2 рассчитывается по теореме Пифагора по значениям координат dx1 и dx2:

Читать далее
Total votes 5: ↑3 and ↓2+3
Comments36
1
23 ...

Information

Rating
2,627-th
Registered
Activity

Specialization

Project Director, Software Architect
From 700,000 $
Project management
Building a team
Startup management
Development management