Обновить
160
0
Павел Довгалюк@Dovgaluk

Системный программист

Отправить сообщение

Как с помощью нехитрых приспособлений превратить буханку в автомотрису

Уровень сложностиПростой
Время на прочтение4 мин
Охват и читатели9.9K

В 1980х в США активно развивалось увлечение садовыми железными дорогами. Поезда работали на электричестве вместо пара, были доступны аккумуляторы, появилась компактная электроника, чтобы можно было «прикрутить» радиоуправление. И многие любители делали не только модели настоящего подвижного состава, но и ставили на рельсы игрушки марки Stomper.

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

Читать далее

Как научиться программированию разрабатывая игры

Уровень сложностиПростой
Время на прочтение5 мин
Охват и читатели13K

Если вы учились программировать в конце 80x-начале 90х, то наверняка делали это на ZX Spectrum, БК-0010 или MSX. Во всех этих компьютерах был встроенный язык програмирования. Кто-то начинал сразу с машинных кодов Радио-86РК. В любом случае первыми программами скорее всего были игры.

Но любительское программирование началось задолго до 90х. Посмотрим, какие игры предлагались раньше для начинающих программистов и что из этого мы могли бы извлечь для себя сегодня.

Читать далее

Разглядываем CodeScoring с помощью Natch

Уровень сложностиСредний
Время на прочтение12 мин
Охват и читатели1.2K

ГОСТ Р 56939-2024 описывает общие требования к процессам разработки безопасного ПО – от образования, до технической поддержки, от статического, до динамического анализа, однако особое внимание уделяется определению поверхности атаки, то есть поиску множества потенциально уязвимых функций и модулей ПО, занимающихся обработкой пользовательских данных или чувствительной информации, а также интерфейсов, через которые эти данные поступают.

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

Читать далее

Как надёжно стереть секретную информацию из базы данных

Уровень сложностиСредний
Время на прочтение5 мин
Охват и читатели2.8K

Зачем вообще "надёжно" стирать данные? Главное же, чтобы пользователь через интерфейс СУБД не мог их достать. Мало ли, что там за остатки данных в файлах болтаются, это же не проблема. Или нет?

Читать далее

Зачем искать поверхность атаки для своего проекта

Уровень сложностиПростой
Время на прочтение7 мин
Охват и читатели2K

Любые программные системы включают в себя нужные и не очень нужные пакеты. Получается огромный объём кода (для одного несложного сайта npm list -a выдаёт список из 4256 зависимостей). А так как «весь код — это ваш код», то такие зависимости надо тестировать. И регулятор требует, да и просто собственные продукты хочется защитить от вторжений, утечек и других неприятностей.

Читать далее

Криптография и другие вычисления на детских логических машинах

Уровень сложностиПростой
Время на прочтение6 мин
Охват и читатели1.8K

Электрическая игрушка "Детская логическая машина" (ДЛМ) представляет собой устройство, позволяющее решать несложные логические задачи про приведённым в настоящей инструкции рисункам и описаниям программ.

ДЛМ способна отвечать на вопросы, решать поставленные перед ней задачи, быть партнёром в играх и даже экзаменатором.

На коробке предупреждение, что игрушка только для детей 13-15 лет. Читайте статью с осторожностью, если не попадаете в указанный диапазон.

Читать далее

Как найти поверхность атаки незнакомых приложений с помощью Natch

Уровень сложностиСредний
Время на прочтение10 мин
Охват и читатели4K

Поиск ошибок в программах дело творческое и интересное. Чаще всего мы ищем ошибки в своём коде, чтобы его починить. Кто-то может искать ошибки в чужом коде, чтобы его сломать или поучастовать в баунти-программе.

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

Как хоть немного автоматизировать процесс?

Релейный компьютер, телетайп и интересный алгоритм игры в крестики-нолики

Время на прочтение10 мин
Охват и читатели9.2K

Крестики-нолики – классическая игра, которую наверное пытался написать каждый. При этом программы иногда получаются довольно запутанные, несмотря на простоту правил. Электромагнитные реле – классическая элементная база для компьютеров и калькуляторов. Они тёплые, ламповые и прикольно щёлкают. Если добавить к этому телетайп, то получится игровая консоль в стиле 1940х.

Читать далее

Демосцена на релейном компьютере

Время на прочтение3 мин
Охват и читатели5.3K

Какой компьютер без демосцены? Обратимся к классике от @Manwe_SandS@frog:

До моего визита на Assembly'99 я каждый pаз удивлялся pезультатам голосования на заpубежных demo party. Мне было непонятно, как столько людей могут отдавать голоса за pаботы состоящие из тупой (я пpошу пpощения, но это именно так) последовательности эффектов - плазмы, туннеля, огня, вpащающегося куба (тоpа) и пpочих подобных вещей, не объединенных никаким сюжетом, не несущими никакой идеи.

То что нужно! Возьмём первый попавшийся релейный компьютер и понаделаем эффектов.

Читать далее

Игры наших бабушек

Время на прочтение7 мин
Охват и читатели11K

Дейкстра как-то сказал, что студентов, ранее изучавших Бейсик, практически невозможно обучить хорошему программированию. Как потенциальные программисты они умственно изувечены без надежды на восстановление. После такой рекламы нельзя не захотеть поиграть в игры на Бейсике, созданные в 70х годах ещё для больших машин. А запускать мы их будем на Ардуино с подключенным к нему телетайпом, чтобы получилось более-менее аутентично.

Читать далее

Пишущая машинка из телетайпа и Arduino

Время на прочтение4 мин
Охват и читатели8.5K

Consul 254 похож на принтер, но это не принтер. Ещё у него есть клавиатура, но при этом печатающая часть никак не связана со вводом, поэтому так просто получить что-то на бумаге не выйдет. Эту проблему мы и будем сегодня решать с помощью Ардуино и цветных проводочков. Конечно всё уже украдено до нас, и такую вещь уже описывали в журнале Моделист-Конструктор в 1989 году. Правда при этом использовался компьютер "Специалист", а не Ардуино.

Читать далее

Портируем Maniac Mansion (1987) на ZX Spectrum Next (2017)

Время на прочтение11 мин
Охват и читатели5.9K

Maniac Mansion - это классическая приключенческая игра с интерфейсом point and click. Она вышла в конце 80х годов для платформ Commodore 64, Apple II, Atari ST, Amiga, IBM PC и NES. Популярный в наших краях ZX Spectrum этой игры не увидел.

Может быть дело в том, что графический режим ZX Spectrum поддерживает только два цвета на знакоместо. А может, потому что аппаратных спрайтов там не было (хотя в Apple II их не было тоже).

Пришло время исправить эту несправедливость и портировать Maniac Mansion на улучшенный ZX Spectrum - ZX Spectrum Next.

Читать далее

Используем телетайп Consul 254 вместо клавиатуры для Arduino

Время на прочтение4 мин
Охват и читатели5.3K

Из документации:

Электрифицированная пишущая машина Consul 254 предназначена:

а) для ввода алфавитно-цифровой информации в ЭВМ при печатании оператора на клавиатуре машины

б) для вывода алфавитно-цифровой информации в порядке печати на лист или рулон бумаги по сигналам, посылаемым от ЭВМ

в) для применения в устройствах подготовки данных или в других устройствах, параметры которых соответствуют параметрам указанной машины

Сегодня мы займёмся пунктом "а" - будем читать данные с клавиатуры с помощью ЭВМ Arduino Uno.

Читать далее

Карты, фаззинг, OSM: ищем поверхность атаки для сложного приложения

Время на прочтение13 мин
Охват и читатели4.7K

Фаззинг - это такое тестирование, в котором не надо придумывать тесткейсы, потому что умная машина (или настойчивый алгоритм перебора) делает это за вас.

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

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

Читать далее

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

Время на прочтение4 мин
Охват и читатели5.2K

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

Читать далее

Обратная отладка виртуальных машин в QEMU

Время на прочтение7 мин
Охват и читатели7K

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

Читать далее

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

Время на прочтение3 мин
Охват и читатели14K
Что можно сделать с компьютером на электромагнитных реле у которого нет никаких устройств ввода, а из устройств вывода — только дамп восьми регистров?

Поиграть в игры, конечно! Играли же древние люди на калькуляторах МК-61/52, которые лишь немногим нагляднее.


Когда в gcc 16-битные адреса, а памяти внезапно 256к

Время на прочтение3 мин
Охват и читатели6.2K

… или как выстрелить себе в ногу на Arduino




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

Сейчас в нём установлена плата Arduino Mega с процессором ATmega2560, в котором целых 256 килобайт флеш-памяти. Предполагалось, что этого хватит очень надолго, ведь игры получаются простые (экран-то всего лишь 64x64 пикселя). В реальности мы столкнулись с некоторыми проблемами уже по достижении прошивкой размера примерно 128 килобайт.

Мини-бенчмарк домашних релейных компьютеров

Время на прочтение4 мин
Охват и читатели6.4K
Леонард: «Беспредельный Шелдон»?!
Шелдон: «Беспредельный Шелдон» бьёт все остальные карты и не нарушает запрет на изготовление карт в домашних условиях, потому что я сделал эту на работе.

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

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

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

Разработка игр для консоли на Arduino в летнем лагере

Время на прочтение3 мин
Охват и читатели8.2K
В прошлом году мы в летней компьютерной школе проводили кружок по Arduino. Там поучаствовали и преподаватели, в результате чего появилась 8-битная игровая консоль с экраном 64x64.

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


4095 светодиодов и все-все-все
Читать дальше →
1

Информация

В рейтинге
4 665-й
Откуда
Великий Новгород (Новгород), Новгородская обл., Россия
Работает в
Дата рождения
Зарегистрирован
Активность

Специализация

Архитектор программного обеспечения
Ведущий
C++
Системное программирование
Компиляторы
C
Алгоритмы и структуры данных
Qemu