Search
Write a publication
Pull to refresh
-2
1.9

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

Send message

Обратная разработка форматов файлов

Level of difficultyEasy
Reading time4 min
Views3.3K

Статья расскажет о том, какие инструменты существуют для анализа форматов файлов и на практике продемонстрирует как можно анализировать данные, которые помещены в какой‑то формат.

Читать далее

3D видеокарта-«декселератор» из 90-х. Как работала S3 ViRGE «под капотом»?

Level of difficultyMedium
Reading time13 min
Views18K
image

Друзья! Многие ли из вас застали такую легендарную видеокарту, как S3 ViRGE? Когда-то этот GPU стоял чуть ли не в каждом втором офисном компьютере: благодаря дешевизне и заявленной поддержке 3D-ускорения, эту видеокарту просто сметали с полок магазинов. Далеко не все могли себе позволить ATI Rage, Riva TNT и уж тем более 3dfx Voodoo и очень разочаровывались в свежекупленной видеокарте, когда пытались поиграть в новомодные игры тех лет. На момент написания статьи, в сети слишком мало материала о том, как работали видеокарты 90-х «под капотом», однако мне удалось найти даташит на видеочип, SDK для программирования 3D-графики специально под него и некоторую документацию. Я решил исправить это недоразумение и начать развивать отдельную рубрику о работе старых видеочипов: начиная от S3 ViRGE и заканчивая GPU PS2 и PSP. Сегодня мы с вами: вспомним о S3 ViRGE, узнаем о том, как работали видеокарты в 90-х годах, затронем 2D и 3D режим и почему они тесно связаны между собой, посмотрим на проприетарное графическое API S3 ViRGE и раскроем причину, почему же этот GPU был таким медленным!
Читать дальше →

Байт-код — это просто! Как сделать DI по-настоящему быстрым

Level of difficultyMedium
Reading time10 min
Views15K

Привет! Меня зовут Григорий Юрков, и я уже несколько лет работаю в инфраструктурной команде Яндекс Маркета. Два года назад мы начали разрабатывать свой легковесный DI-фреймворк Scout, который предоставляет выразительный Kotlin DSL. Он не генерирует код, а делает всю работу в рантайме.

Недавний переход с compile-time-библиотеки Dagger 2 на нашу привёл к замедлению старта приложения. В этой статье мы будем подробно рассматривать то, как применение байт-кода помогло сохранить скорость на том же уровне и спасти проект по миграции на Scout.

Ускоримся!

Дуров планирует собирать деньги на Телеграм, а вокруг карт VISA для россиян развернулся хайп-скандал

Reading time5 min
Views37K

Все самые важные и интересные финансовые новости в России и мире за неделю: ЦБ поднял ставку до 15% на радость текущим (но не будущим) ипотечникам, новые рублевые купюры не получили одобрение «свыше», на Мосбирже возникла мода на IPO, юаневые переводы стали популярнее евровых, а в Аргентине ключевая ставка 133% и выборы президента.

Читать далее

Подробный разбор 64b nano game: snake64

Level of difficultyHard
Reading time12 min
Views3.6K

Всем салют!

Очень приятно, что многим зашёл недавний разбор моего 64b intro: radar. Я рад, что у меня, наконец, дошли до этого руки. Лёд тронулся, господа присяжные заседатели.

На сей раз предлагаю вашему вниманию 64-байтовую игру «змейка», того же автора. Да, друзья, это самая компактная по размеру бинарного кода змейка из существующих (у меня даже есть 45-байтовая версия, но не такая симпатичная). И это именно та самая любимая многими вечно голодная змейка со старых мобильников, которая бегает по экрану и постоянно что‑то жуёт, увеличиваясь в длине.

Если вам не терпится поиграть прямо здесь и сейчас, только сегодня и только для вас я подготовил онлайн-версию, играйте на здоровье! Важно: для игры нужно использовать стрелки на цифровой клавиатуре.

Посмотреть что там...

Проклятые Земли. Изменяем движок игры! Подробности + ПРИМЕР реверсинга движка

Reading time21 min
Views16K

Статья о том, как реверс-инжиниринг и разбор форматов могут не только расширить старую любимую игрушку, но и сделать из неё абсолютный шедевр, который будет смотреться уже в новом свете. Обзор уникальных фишек игры Проклятые Земли, исправление её лёгких недостатков и разбор форматов.

Наверняка многие играли в Проклятые Земли и аддоны к ним лет 15, а то и все 23 года назад. При всех достоинствах этой игры, её графика считается устаревшей, а некоторые моменты уж очень спорно реализованы. Я покажу на своём примере как можно сделать любимую игру лучше.

Читать далее

Графика древности: легендарный Mode 7

Level of difficultyEasy
Reading time22 min
Views10K

Технологический переход в индустрии видеоигр, случившийся в середине 1990-х годов — от пиксельной графики игр прошлых лет к полигональной графике игр чуть менее прошлых лет — произошёл не одномоментно. Ему предшествовала эпоха экспериментов, когда разработчики придумывали разнообразные способы убедительной имитации трёхмерного изображения в рамках скромных вычислительных ресурсов. Изометрический движок Filmation и силуэтная графика в Tau Ceti на ZX Spectrum, технология масштабирования спрайтов Super Scaler компании Sega, рейкастинг в Wolfenstein 3D, BSP-дерево в Doom, воксельный ландшафт в игре Comanche — эти времена породили множество любопытнейших технологий, каждая из которых достойна отдельного рассказа.

В до сих пор звучащих отголосках так называемых консольных войн той эпохи (что круче — Sega Genesis или Super Nintendo?) часто можно услышать ещё одно название, которым уместно дополнить список выше — Mode 7. Мы не знаем, что это такое, если бы мы знали, что это такое, но обычно под этим подразумевается какое-то вращение или масштабирование объектов в играх, или же уходящая вдаль дорога, как в гоночных играх F-Zero и Super Mario Kart, или же карта мира, как во многих играх жанра JRPG. В реальности всё интереснее, сложнее, и как водится, требовало от разработчиков недюжинной креативности. Сегодня поговорим об этой технологии.
Читать дальше →

Windows 11 спустя два года все еще безнадежно проигрывает «десятке». Почему?

Reading time4 min
Views120K
image

Никогда такого не было и вот опять. Этой фразой можно охарактеризовать медленную популяризацию Windows 11 — многие пользователи, которые покупают ноутбуки или десктопы с 11 версией ОС, возвращаются на Windows 10. Ну а кто сидит на «десятке», крайне неохотно переходят на новую версию операционной системы. Новую согласно порядковому номеру, так-то она уже новинкой вряд ли может считаться. О причинах происходящего — под катом.
Читать дальше →

Полосы прокрутки становятся проблемой

Level of difficultyEasy
Reading time7 min
Views36K

Полосы прокрутки. Слышали когда-нибудь о них? Довольно крутая штука. Достаточно зажать и перетаскивать полосу прокрутки, чтобы перемещаться по контенту панели со скроллингом. Я это просто обожаю. Ежедневно целыми днями сижу за компьютером и тягаю полосу прокрутки. Но полосы прокрутки становятся мельче, и это оказывается всё более серьёзной проблемой. В статье я покажу скриншоты, но они настолько малы, что даже делать их было сложно. А разработчики продолжают делать их всё мельче, как будто не хотят, чтобы вы скроллили! Они говорят: «для этого ведь колесо прокрутки и существует». Друг мой, не у каждого есть колесо прокрутки и не каждый может свайпать по сенсорному экрану. И даже я, счастливый обладатель колеса прокрутки, хотел бы перемещаться по контенту быстро.

Читать далее

far2l в Ubuntu 23.10

Level of difficultyEasy
Reading time4 min
Views28K

Ура! В новой версии Ubuntu, наконец-то, можно установить Far Manager (far2l) самым обычным sudo apt install far2l — прямо из коробки, без всяких ppa и кастомных сборок! Под катом — немного подробностей, а также обычный дайджест новостей проекта за прошедшее время.

Читать далее

Теория относительности 21

Level of difficultyMedium
Reading time5 min
Views2.8K

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

Не так давно, в июле 2023 года, совершенно случайно я обратил внимание на мимолетную реплику относительно парадокса близнецов. Это известная история про то что если взять две блондинки и одну из них отправить в недельный круиз на космическом корабле с околосветовой скоростью, то к моменту ее возвращения, оставшаяся на Земле подруга уже проживет долгую и счастливую жизнь, и будет получать пенсию. Этому парадоксу, который следует из Теории относительности Эйнштейна сто-лет-в-обед и использовать его можно даже маркетологам в косметологии. Крем «Космическое путешествие» - и пусть все вокруг постареют!

черная дыра как сверхсветовой ускоритель

Получаем JTAG на iPhone 15

Level of difficultyEasy
Reading time6 min
Views15K

Месяц назад Apple выпустила iPhone 15 — свой первый смартфон с разъёмом USB-C. Предыдущие полтора года я занимался аппаратным хакингом iPhone, например, мы выпустили опенсорсный последовательный JTAG-адаптер для iPhone под названием Tamarin Cable. Компания Apple наконец-то перешла на USB-C, поэтому мне стало любопытно, можно ли сделать что-то подобное с iPhone 15. Я купил по предзаказу этот телефон, пару печатных плат и набор электронных компонентов.

Прежде всего нужно сказать, что это не уязвимость и не jailbreak, я просто исследую USB-C в iPhone 15 и развлекаюсь со взломом оборудования.
Читать дальше →

Рег.ру объяснил обещание дать п***ы технической ошибкой

Level of difficultyEasy
Reading time3 min
Views41K

В рамках проекта «Монитор госсайтов» мы изучаем сайты, обозначенные как сайты госорганов (кстати, очередной доклад по региональным госсайтам – уже через неделю), и регулярно проверяем, кто на самом деле является администратором соответствующих доменных имен. Например, администратором доменного имени сайта МВД мвд.рф еще в прошлом году было ФКУ «ГЦСиЗИ МВД РФ», а не просто МВД РФ, поэтому с точки зрения закона у Министерства внутренних дел Российской Федерации до недавнего времени просто не было официального сайта.
Читать дальше →

За деньги — нет

Level of difficultyEasy
Reading time3 min
Views25K

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

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

Читать далее

HAL в 4000 байт

Level of difficultyEasy
Reading time9 min
Views23K

«HAL 4000» – исполняемая программа для Windows размером ровно 4000 байт. Лучшая работа в номинации 4 kb intro фестиваля Chaos Constructions 2017, второе место в чартах портала pouet.net. «HAL 4000» попала в плейлист Best of Demoscene 2017 наряду с работами Farbrausch, Fairlight, Conspiracy, Alcatraz, Byterapers, обсуждалась на вебинаре анимационной студии, демонстрировалась на различных фестивалях.

Необычная история создания этой работы изложена ниже.

Читать далее

Как я разбирал нестандартный формат 3D-моделей, чтобы показывать Лего у себя на сайте

Level of difficultyMedium
Reading time7 min
Views8.4K

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

Я перепробовал несколько редакторов 3D-моделей Лего (моим главным условием была работа на Linux, либо в вебе), и остановился на онлайн-редакторе Mecabricks. Но, уже перенеся туда несколько из моих творений, понял, что с задачей «показывать всем друзьям» всё будет сложнее: у Mecabricks довольно скудные возможности экспорта, а его собственный формат с расширением .zmbx понимает только он и его плагин для Blender.

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

В этой статье я расскажу, как постепенно разбирал этот непонятный .zmbx, про устройство и преимущества glTF как формата передачи 3D-ассетов между разными инструментами, и про то, какие проблемы я решал, конвертируя одно в другое.
Читать дальше →

Вышла Java 21

Level of difficultyMedium
Reading time18 min
Views81K
Вышла общедоступная версия Java 21. В этот релиз попало около 2500 закрытых задач и 15 JEP'ов. Release Notes можно посмотреть здесь. Изменения API – здесь.

Java 21 является LTS-релизом, а значит у него будут выходить обновления как минимум 5 лет с момента выхода.
Читать дальше →

Завершён проект воссоздания человеческого мозга в компьютере стоимостью €600 млн. Что в итоге?

Reading time9 min
Views37K

Потребовалось 10 лет, около 500 учёных и около 600 млн евро, и вот проект "Человеческий мозг" - одно из самых масштабных исследований, когда-либо финансировавшихся Европейским союзом, - подходит к концу. Его дерзкая цель заключалась в том, чтобы понять человеческий мозг, смоделировав его на компьютере.

За время существования проекта учёные из проекта Human Brain Project (HBP) опубликовали тысячи работ и добились значительных успехов в нейронауке, таких как создание подробных 3D-карт не менее 200 областей мозга, разработка мозговых имплантатов для лечения слепоты, использование суперкомпьютеров для моделирования таких функций, как память и сознание, а также для разработки методов лечения различных заболеваний мозга.

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

Читать далее

Перестаём бояться генерировать байт-код

Level of difficultyMedium
Reading time15 min
Views15K

Многие, возможно, думают, что работа с байт-кодом Java (будь то чтение или, тем более, генерация) — это какая-то особенная магия, доступная только продвинутым разработчикам с особенно крутым опытом. На самом деле, я считаю такую точку зрения ошибочной. JVM устроена гораздо проще, чем CPU; она оперирует такими высокоуровневыми понятиями как классы, интерфейсы, методы, а не просто лопатит байты в памяти. В отличие от CPU, который легко уронить криво сгенерированным машинным кодом, JVM заботливо отверифицирует любой байт-код и в общем не даст выстрелить в ногу.

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

Весь приведённый код доступен в моём репозитории.

Читать далее

Information

Rating
1,895-th
Registered
Activity