Pull to refresh
4
0

Пользователь

Send message

Как долго во Вселенной сможет существовать жизнь?

Level of difficulty Easy
Reading time 12 min
Views 14K

Один из аспектов нашей Вселенной, с которым приходится смириться — осознание того, что со временем все вещи рано или поздно исчезнут. Формирование новых звёзд и звёздных систем, хотя они и будут продолжать формироваться ещё многие миллиарды или даже триллионы лет, находятся на спаде: нынешняя скорость звёздообразования составляет лишь около 3 % от той, что была на пике около 11 миллиардов лет назад. Планеты вроде Земли вокруг таких звёзд, как Солнце, хотя и встречаются сегодня относительно часто, в далёком будущем будут крайне редки. А самые долгоживущие звёзды, даже если вокруг них есть планеты размером с Землю, могут оказаться плохими кандидатами на поддержание жизни из-за их невероятно активного поведения.

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

Читать далее
Total votes 19: ↑17 and ↓2 +15
Comments 15

Изучаем сетевой стек докера в rootless mode

Level of difficulty Medium
Reading time 16 min
Views 3.1K


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

Читать дальше →
Total votes 16: ↑16.5 and ↓-0.5 +17
Comments 0

Мечтают ли нейроовцы о генеративных трубах? Кратко о процедурной генерации контента (PCG) в контексте игровой индустрии

Level of difficulty Medium
Reading time 16 min
Views 5.9K

Привет, Хабр! Меня зовут Владимир Садовский и я трудоголик (вялые аплодисменты) работаю программистом инструментария в Nau Engine. А ещё — обожаю игры. С детства. Компьютер у меня появился, когда мне было восемь. Предполагалось, что для учебы, но на глаза мне попалась Carmageddon, и дальше всё как в тумане. Потом были Command & Conquer: Generals, Fallout 2, и, кажется, сотни других. Детское увлечение со временем превратилось в карьеру. 

Увлекаться PCG я начал ещё в вузе (ИТМО). Тогда меня интересовало, как процедурная генерация контента помогает создавать игры с открытым миром и влияет на реиграбельность. Когда я стал игровым разработчиком, то заметил, что даже профессионалы часто путают процедурную генерацию и генеративный ИИ. 

Про GAI поговорим как-нибудь в другой раз (потому что эта огромная интересная тема тоже заслуживает отдельного материала), а сегодня разберёмся, с чем едят процедурную генерацию контента, и как не подавиться как она используется в игровой индустрии. А заодно немного окунёмся в историю PCG (а она почти вдвое старше меня), рассмотрим популярные инструменты и обсудим самые перспективные алгоритмы. 

Погнали!

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

Создание CLI-приложений при помощи System.CommandLine в .NET

Level of difficulty Easy
Reading time 5 min
Views 6.9K

В .NET уже несколько лет существует библиотека System.CommandLine, позволяющая быстро создавать CLI-приложения. Несмотря на то, что библиотека ещё в стадии beta, её активно используют и сами разработчики Microsoft, например, в утилите dotnet из пакета .NET SDK. 

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

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

Как Visual Studio могла бы выглядеть с новым меню: делюсь GUI-шаблоном

Reading time 7 min
Views 21K

Доброго времени года, уважаемые хабровчане! Я занимаюсь разработкой десктоп‑приложений с 2008 года. Наша компания делает специализированные продукты из области ЦОС (DSP), и GUI выглядит как нечто среднее между AutoCAD, Total Commander и Visual Studio. Не для домохозяек. Без видеоуроков и прочих туториалов особо не попользуешься.

В какой‑то момент мы пришли к необходимости полностью переработать меню наших приложений. Стало очевидно, что классическое меню в связке с панелью инструментов — это не лучшее решение. Когда количество уникальных функций (команд уровня меню) перевалило за сотню, то количество переросло в качество: пользователям стало все сложнее находить для себя требуемый, минимально достаточный work set. Особенно тяжко было новым пользователям. Хоть мы в исправности поставляли и видео‑уроки, и прочие туториалы, это не сильно помогало, поскольку далеко не каждый пользователь был согласен в них залезать. В общем, мы поставили себе задачу понизить порог входа в мир наших продуктов за счет изменения концепции меню.

И тут оказалось (внезапно), что развитие GUI в мире десктопа фактически стоит на паузе. Никто ничего нового особо не предлагает. Я пытался найти в окружающем мире какие‑то интересные gui‑шаблоны. Искал в литературе, искал в дистрибутивах известных desktop‑продуктов, поглядывал и на мобилки. Но нигде не нашел. Весь мир был слишком занят мобильной и веб‑разработкой. А гиганты десктопа (Adobe, Microsoft) были слишком связаны принципом «не трогай, если работает» (ну, или просто погрязли в собственном спагетти‑коде). Наконец, я перестал кого‑то ждать и сам сел за решение. И я его придумал и внедрил в нашу продуктовую линейку. И теперь хочу поделиться им с вами.

Чтобы мое решение было проще понять, я не буду его описывать на примере наших, узкоспециализированных программных продуктов ЦОС. Я просто покажу, как будет выглядеть всем известная среда разработки Microsoft Visual Studio, если применить к ней мой принцип формирования меню приложения.

Читать далее
Total votes 26: ↑24 and ↓2 +22
Comments 31

Неполадки в отладке: как уязвимость в WinDbg позволяет атаковать разработчиков

Level of difficulty Medium
Reading time 6 min
Views 3.1K

Привет, Хабр! Меня зовут Александр Калинин, я занимаюсь разработкой средств обеспечения безопасности контейнерных сред в МТС RED, дочерней компании МТС в сфере кибербезопасности. Сегодня расскажу о том, как я обнаружил в отладчике WinDbg уязвимость, которая позволяет запускать произвольный вредоносный код на хосте разработчика и подменять библиотеки. Также поговорим о реакции Microsoft на мой репорт.

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

Параллакс: если бы звёзды были ближе

Reading time 1 min
Views 3.1K

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

Можно наглядно увидеть, как менялись бы очертания созвездий в течение года, если бы звёзды были в 100 тысяч раз ближе к Солнцу. Чтобы при этом видимая яркость звёзд не изменилась, истинная светимость звёзд должна быть уменьшена в 10 миллиардов раз (100 тысяч в квадрате).

Если расстояние между Солнцем и звёздами уменьшится в 100 тысяч раз, то некоторые ближайшие звёзды, такие как Сириус, Процион, Вега, Альтаир, система α Центавра окажутся в пределах внутренней Солнечной системы. Например, Альфа Центавра в этом случае оказалась бы чуть дальше Марса от Солнца, Сириус – чуть дальше Юпитера, Вега – между Сатурном и Ураном.

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

Это видео рекомендуется смотреть на большом экране (желательно в темноте) с максимальным разрешением и частотой 60 кадров в секунду, чтобы в полной мере оценить эффект звёздного параллакса. Параллакс увеличивается в 100 тысяч раз с 01:30. Пояснения к видео идут в виде субтитров, поэтому их необходимо включить в настройках.

Перейти к просмотру видео
Total votes 20: ↑19 and ↓1 +18
Comments 5

Визуальное RPG с долговременной памятью, генерируемое из 3 нейросетей и LLamы

Level of difficulty Easy
Reading time 17 min
Views 11K

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

Важно только понимать, что движущей силой сюжета в их сессиях является лишь один из игроков, называемый Dungeon Master. Когда только начали появляться первые GPT-модели, одной из первых хотелок гиков оказалось желание сварить из нейросетей автоматического Dungeon Masterа.

Так и появился AIDungeon — уникальная для своего времени (2019 год) вещь, которая не сильно потеряла в популярности и по сей день. Однако, если вы любите смотреть глубже, то играть в него вам быстро надоест. Я же в своей серии из нескольких статей (посвящённых GPT) стараюсь показать простому обывателю механизм безболезненного использования нейросетевых моделей в простых проектах при помощи Python и Hugging Face Transformers.
Приступим
Total votes 64: ↑64 and ↓0 +64
Comments 11

Стреляем в будущее

Level of difficulty Medium
Reading time 11 min
Views 7.7K

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

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

Читать далее
Total votes 34: ↑34 and ↓0 +34
Comments 8

Дампер картриджей для Денди/Famicom

Level of difficulty Hard
Reading time 20 min
Views 20K
Восемь лет назад я уже писал статью о том, как я делал простенький дампер (устройство для чтения картриджей) для Денди/Famicom. Думаю, пора рассказать о том, как этот проект преобразился спустя эти годы вместе с ростом моих скиллов.


Читать дальше →
Total votes 166: ↑166 and ↓0 +166
Comments 15

Стохастический язык программирования на основе алгоритмов Маркова

Reading time 13 min
Views 26K

MarkovJunior — это вероятностный язык программирования, в котором программы являются сочетаниями правил перезаписи, а инференс выполняется при помощи распространения ограничений. MarkovJunior назван в честь математика Андрея Андреевича Маркова, придумавшего и исследовавшего то, что сейчас называется алгоритмами Маркова.
Читать дальше →
Total votes 139: ↑139 and ↓0 +139
Comments 24

Мало картинок, много лута: эмулятор Сферы, часть 4

Reading time 11 min
Views 3.2K

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

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

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

Разбираемся с алгоритмом коллапса волновой функции

Reading time 10 min
Views 15K

После появления DeBroglie и Tessera меня много раз просили объяснить, как они работают. Генерирование может выглядеть как волшебство, но лежащие в его основе правила на самом деле просты.
Total votes 47: ↑47 and ↓0 +47
Comments 2

Kubernetes в Hetzner при помощи Rancher (с картинками)

Reading time 5 min
Views 11K

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

Читать далее
Total votes 10: ↑10 and ↓0 +10
Comments 4

Рендеринг двунаправленного текста с поддержкой диакритиков

Reading time 4 min
Views 11K

Введение


В этой статье я поделюсь опытом как в собственный TextBox была добавлена поддержка двунаправленного текста с правильным отображением диакритиков с использованием FriBidi и HarfBuzz. Это вторая статья на эту тему, а первой была Добавление поддержки двунаправленного текста в собственный TextBox. В ней я описывал особенности добавления арабского в собственный текст с использованием FriBidi.

Пример арабского текста

Читать дальше →
Total votes 20: ↑19 and ↓1 +18
Comments 9

Диздок-десятистраничник — шаблон по книге Скота Роджерса с примером на игру от Pixonic

Reading time 16 min
Views 65K
В данной статье я приведу пример составления дизайн-документа для разработки игры в формате десятистраничника. В начале будет приведён общий шаблон документа, предлагаемый Скотом Роджерсом в его книге «Level up. The guid to great video game design» [1].

Затем будет выложен мой пример этого документа на игру War Robots от компании Pixonic, публикующейся на Хабре [2]. (тут требуется оговорка, что данная статья и диздок не связаны с Pixonic: не выражает их мнения и взглядов; не оплачивалась ими; и они даже не знали о написании данного материала)

Шаблон с примером составления диздока-десятистраничника по книге Скота Роджерса

Это тот самый десятистраничник в миниатюре. Удобочитаемый формат в самой статье
Читать дальше →
Total votes 11: ↑10 and ↓1 +9
Comments 2

Как работал параллакс-скроллинг в Duke Nukem II

Reading time 17 min
Views 4.8K
image

Параллакс-скроллинг (создание иллюзии глубины в 2D-сцене перемещением фона и переднего плана с разной скоростью) стал сегодня стандартным элементом платформеров и других 2D-игр. Этот эффект, популяризированный аркадной игрой Moon Patrol 1982 года, к началу 90-х уже был довольно распространённым на аркадных автоматах и домашних консолях. Игры для PC — это совсем другая история. Из сайдскроллеров для DOS, выпущенных в 1990-1993 годах, параллакс-скроллинг имелся у немногих (к 1993 году он стал более популярным, но всё равно встречался редко). Были и очень ранние примеры применения параллакс-скроллинга, например, в порте 1983 года вышеупомянутой Moon Patrol для PC, но в нём присутствовал только контур фона, а не графическое изображение. Поэтому благодаря наличию этой особенности Duke Nukem II выделялся на фоне каталога платформеров Apogee, вместе со своим предшественником Duke Nukem 1991 года и игры Cosmo’s Cosmic Adventure 1992 года (в которой большая часть кода и форматов файлов были такими же, как в Duke 2).
Читать дальше →
Total votes 19: ↑19 and ↓0 +19
Comments 11

Feature freeze С++23. Итоги летней встречи комитета

Reading time 8 min
Views 23K

На недавней встрече комитет C++ «прорвало», и в черновую версию C++23 добавили:

  • std::mdspan
  • std::flat_map
  • std::flat_set
  • freestanding
  • std::print("Hello {}", "world")
  • форматированный вывод ranges
  • constexpr для bitset, to_chars/from_chars
  • std::string::substr() &&
  • import std;
  • std::start_lifetime_as
  • static operator()
  • [[assume(x > 0)]];
  • 16- и 128-битные float
  • std::generator
  • и очень много другого
Подробности
Total votes 82: ↑81 and ↓1 +80
Comments 225

Механическая видеостена с ядерным Ambilight на 2300 зон

Level of difficulty Easy
Reading time 8 min
Views 50K

Однажды я подбирал себе новый монитор и немного увлёкся — получилось чудище во всю стену из трёх телевизоров с ядерной 2318-зональной подсветкой 40 000 люмен на STM32.

Читaть далее
Total votes 139: ↑136 and ↓3 +133
Comments 136

Fuchsia OS глазами атакующего

Reading time 34 min
Views 31K

Fuchsia — это операционная система общего назначения с открытым исходным кодом, разрабатываемая компанией Google. Эта операционная система построена на базе микроядра Zircon, код которого написан на C++. При проектировании Fuchsia приоритет был отдан безопасности, обновляемости и быстродействию.

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

Читать далее
Total votes 148: ↑148 and ↓0 +148
Comments 18

Information

Rating
3,828-th
Location
Санкт-Петербург, Санкт-Петербург и область, Россия
Date of birth
Registered
Activity