Pull to refresh
54
0

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

Send message

Как на самом деле хранятся изображения?

Reading time29 min
Views12K

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

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

Читать далее

Game++. Patching patterns

Level of difficultyEasy
Reading time46 min
Views3.4K

Книга Design Patterns: Elements of Reusable Object-Oriented Software («Приёмы объектно-ориентированного проектирования. Паттерны проектирования»), также известная под названием "синей книги", по цвету обложки первого издания, или книги "банды четырех/GoF" издана почти тридцать лет назад.

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

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

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

Заходите, великов и граблей хватит на всех.

Читать далее

Как оптимально проектировать печатные платы

Level of difficultyMedium
Reading time16 min
Views13K

Привет, на связи Андрей Шведов, руководитель проектов ГРАН Груп!

Разработчики электроники стремятся сделать свой проект с минимальным количеством вопросов и доработок со стороны производителя. Служба качества всегда хочет получить минимальный уровень брака. Сотрудникам монтажного производства хотелось бы видеть оптимизацию под линию монтажа для достижения максимальной производительности. А вопросы минимизации стоимости печатных плат и сокращения сроков поставки всегда крайне важны для компании в целом. Но как возможно отвечать всем этим требованиям одновременно?

Всего этого можно добиться, соблюдая набор принципов концепции DFM (англ. design for manufacturing) – "проектирование с учетом производства". Она имеет довольно простой смысл: задуманные в проекте решения следует реализовывать, учитывая особенности технологических процессов и возможности производств.

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

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

Читать далее

Звуки музыки Super Nintendo

Level of difficultyEasy
Reading time23 min
Views5.2K


В прошлый раз мы заглядывали под капот 16-битной игровой консоли Sega Mega Drive и смотрели на бобину устройство звуковой системы. Сегодня повернёмся к Сеге задом, к SNES’у передом, и проделаем то же самое: рассмотрим устройство звуковой системы в изделии конкурирующей организации, Super Nintendo.

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

Затолкаем, братцы!!! UART Lite через PCIe прямиком в Linux: драйвер за вечер (почти)

Level of difficultyMedium
Reading time20 min
Views10K

Что если можно было бы подключить своё AXI-устройство на FPGA к Linux через PCIe за вечер? В этой статье рассказываю, как написать драйвер для UARTLite через XDMA, собрать свою TTY и начать работать с GPS прямо из терминала!

Залетай, что смотришь....

Разрабатываем игру для Wii в 2025

Reading time11 min
Views2.2K

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

Чтобы дать вам такой опыт, существуют онлайн фэнтезийные игровые консоли, такие как PICO-8 (небесплатная) и TIC80, которые делают очень доступным создание прототипов и получение минимальных навыков. Также есть аппаратные системы, такие как Playdate (пропиетарная), которые работают с методами ввода и форм-факторами еще больше ограничивая вашу площадку для игр. Наконец, есть процветающие сообщества энтузиастов-любителей вокруг таких консолей как SNES и N64 (посмотрите на этот потрясающий демейк Portal!).

Лично я всегда питал слабость к Wii. Отчасти потому, что я вырос на ее невероятных играх, таких как Super Mario Galaxy 2, но также потому, что моддинг игр для Wii дал мне возможность заглянуть в то, что позже станет моей карьерой: разработку игр. Хотя я и занимался разработкой для Wii в прошлом, я никогда не чувствовал что действительно понимаю что делаю. Пару месяцев назад я решил это исправить. Имея законченное задание по DirectX для университетского курса программирования графики и открытые возможности «вы можете добавлять дополнительные функции, чтобы повысить свои оценки, но они не являются обязательными», я подумал: что, если я приду на экзамены со своим Wii и сделаю презентацию на нем?

Читать далее

Создание видеокарты Бена Итера на FPGA чипе

Level of difficultyEasy
Reading time127 min
Views7.4K

Здравствуйте. Меня зовут Дмитрий. Данная статья является продолжением статьи Сборка компьютера sap-1 (компьютер Бена Итера) в игре Turing Complete (если вы её не читали то очень советую). Сегодня мы продолжим исследовать блог Бена Итера, но вместо компьютерной игры мы соберем простейшую видеокарту на FPGA чипе.

Итак почему я выбрал FPGA? Конечно в игре Turing Complete можно собрать видеокарту, но её нельзя подключить к монитору что-бы проверить работу, поэтому мне пришлось перейти на что-то более осязаемое. Поэтому сегодня мы изучим язык Verilog предназначенный для описания микросхем.

Читать далее

Бобер который смог: бекпорт Golang на Windows 7

Level of difficultyHard
Reading time13 min
Views2K

После того как нам удалось сделать это с Node.js, занялись поиском следующей жертвы, которой после недолгих раздумий стал компилятор Go.

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

Читать далее

Устройство «музыкалки» AY-3-8910 и эмулятор на Arduino

Level of difficultyMedium
Reading time25 min
Views13K

Астрологи объявили месяц статей про ZX Spectrum, звук и Arduino. Количество публикаций увеличилось вдвое!

В прошлый раз я показывал, как можно перенести однобитные, они же «биперные», музыкальные «движки» с ZX Spectrum на Arduino. Но всё-таки это была максимально нишевая тема внутри нишевой темы, весьма узкоспециализированный проект.

Сегодня сделаю шаг ближе к народу. Расскажу, как работает легендарный звуковой чип AY-3-8910, как написать его простой эмулятор полностью с нуля, и как проиграть им музыкальный файл формата PT3 на обычной Arduino Nano.
Читать дальше →

Как malloc() и free() управляют памятью в C

Level of difficultyEasy
Reading time8 min
Views18K

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

Сегодня рассмотрим, почему free() не всегда освобождает память, как работает malloc(), когда glibc действительно возвращает память в ОС, и как избежать фрагментации хипа. А так же напишем кастомный аллокатор.

Читать далее

В чём причина высокой скорости fastDOOM

Level of difficultyEasy
Reading time11 min
Views15K

Зимой 2024 года я восстанавливал IBM PS/1 486-DX2 66Mhz, «Mini-Tower», model 2168. В подростковом возрасте я мечтал о таком компьютере, но не мог себе его позволить. Не могу выразить словами, насколько меня радовала работа над этой машиной.

Как только мне удалось его запустить, я сразу же провёл бенчмарк одного ПО.

Читать далее

Syscall и cgo в Go

Level of difficultyEasy
Reading time5 min
Views2.9K

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

В этой статье рассмотрим работу с системными утилитами в Go. Будем напрямую общаться с ядром, дергать системные вызовы и писать код на C, чтобы Go не чувствовал себя одиноким.

Читать далее

Скользящая средняя – полное руководство по использованию

Reading time15 min
Views13K

Скользящая средняя (Moving Average или сокращенно MA) – это один из самых универсальных и популярных индикаторов на рынке, который может быть использован для торговли по тренду.

Скользящая средняя показывает среднюю цену за указанный период времени (это могут быть 15 дней или 15 минут) и является запаздывающим индикатором.

Существует два основных типа скользящих средних — простая скользящая средняя (SMA) и экспоненциальная скользящая средняя (EMA). Как следует из названия, простая скользящая средняя — это просто средняя цена торгового инструмента за определенный период времени. С другой стороны, экспоненциальная скользящая средняя придает больший вес более поздним значениям цены.

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

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

Читать далее

Разработка и производство современных ASIC/SoC глазами тополога

Level of difficultyEasy
Reading time10 min
Views13K

Привет, Хабр! Меня зовут Илья, я работаю в команде физического дизайна в дивизионе полупроводников YADRO. Проектирую цифровые микросхемы, помогаю с образовательными программами и привлекаю студентов в наше дело. В этой статье я расскажу про разработку современных микросхем с фокусом на этап проектирования топологии, объясню, что такое SoC (System-on-Chip, cистема на кристалле) и как мы проектируем их в нашей команде. А напоследок покажу, где об этом всем можно узнать на собственном опыте.

Читать далее

Экспериментальный ретробрайт: отбеливаем в двух десятках вариантов

Level of difficultyEasy
Reading time3 min
Views2.1K

Как известно, ABS пластик со временем желтеет, но его можно отбелить с помощью перекиси водорода — процесс отбеливания называется ретробрайтом. Если вас интересует химическая сторона вопроса, то можете прочитать её тут. А вот тут просто пример отбеливания.

Вкратце: моё мнение — отбеливайте в парах или растворе 40% перекиси водорода, лучше подогретой. И будет вам счастье.

Для эстетов: осторожно! Содержит кадры без евроремонта!

Читать далее

Scorched Earth — мама всех игр. Интервью с создателем

Reading time10 min
Views11K

Привет, Хабр! Представляю вашему вниманию перевод статьи "An interview with the creator of Scorched Earth" автора Wendell T. Hicken.



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


Привет, читатели Хабра! Меня зовут Игорь и мне нравятся олдскульные компьютерные игры. Помню, в середине 90-х, когда я учился в последних классах средней школы, мы с друзьями частенько засиживались после уроков в кабинете информатики, где на учительском IBM PC 486/DX2 с увлечением «рубились» в игрушку под названием «Scorched Earth» (в переводе на русский – «Выжженная земля»). Между собой мы её называли просто «скорч», или «танчики».


Недавно мне стало интересно больше разузнать об авторе и истории создания этой замечательной игры. Как это часто бывало с играми в 90-е, «Scorched Earth» разработал один человек — американский программист Венделл Т. Хикен (Wendell T. Hicken).


Предлагаю вниманию читателей Хабра перевод интервью с автором игры, опубликованный в 2005 году в интернет-издании «Ars Technica». Беседовал основатель и главный редактор ресурса Кен Фишер (Ken Fisher).

Ещё одна самодельная GPS антенна

Level of difficultyMedium
Reading time4 min
Views26K

Привет Хабр! Меня зовут Александр, я инженер-электроник. Около пяти лет назад я разрабатывал с нуля GPS приемник. Когда более-менее ожил первый макетный образец, оказалось, что в офисе на окне спутники почти не ловятся - ни телефоны ни контрольный приемник в виде модуля U-blox даже не захватывали хотя бы пару спутников в слежение.

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

Читать далее

PAL видеоадаптер на FPGA с буфером кадра

Level of difficultyMedium
Reading time18 min
Views6.6K

Наверное, каждый второй разработчик на ПЛИС в начале своего пути пытался визуализировать работу своих схем. Кто-то подключал TFT-дисплей, кто-то — VGA монитор. А у меня под рукой оказался только телевизор с композитным входом. Ну что ж, работаем с тем, что есть!

Читать далее

Магия полупроводниковых диодов: начало

Level of difficultyMedium
Reading time13 min
Views13K

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

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

Читать далее

Исследование и восстановление блока SRS Audi A4: особенности работы с закрытым процессором и glitch-технологией

Level of difficultyMedium
Reading time8 min
Views6.8K

В новой статье мы расскажем о необычном случае восстановления блока SRS от Audi A4, который был "сломан" после неудачного обновления прошивки. Вы узнаете:

Как внутренняя ошибка B2000 блокирует работу ЭБУ и почему её невозможно устранить стандартными методами.

Что такое технология voltage glitching и как она позволяет обойти защиту закрытых процессоров.

Какие инструменты и методы используются для восстановления автомобильных блоков управления.

Практические шаги по работе с процессором V850E2 и восстановлению флеш-памяти.

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

Читать далее

Information

Rating
Does not participate
Date of birth
Registered
Activity