Pull to refresh
3
0
Send message

Клонирование игры Lode Runner с первого ПК в СССР «БК-0010» плюс несколько слов о программировании игр в конце 80-х

Reading time12 min
Views31K

Недавно я оказался в не совсем обычной для себя ситуации вынужденного безделья. Пару недель поваляв дурака, я стал чувствовать, что это не такое уж и веселое занятие, которое к тому же еще и стало переходить в скуку. И мне надо было себя занять чем-нибудь относительно полезным. Раньше мне периодически приходили в голову мысли о том, чтобы вернуть к жизни какую-нибудь старую игру из времен моей юности. Но я всегда гнал такие идеи прочь, так как понимал, что "никому это теперь не надо". Но сейчас у меня было свободное время и, главное, было желание. В результате для клонирования я выбрал один из вариантов игры Lode Runner, в который я когда-то играл на первом персональном компьютере времен позднего СССР, который назывался БК-0010. Не думаю, что многие о нем помнят, так как мир «железа» поменялся с тех времен очень сильно. Однако сам Lode Runner с этого БК-0010 был достаточно уникален своими правилами среди других одноименных Lode Runner-ов. Эта версия игры была моей самой любимой, как мне кажется, по объективным причинам, хотя… может быть тут дело просто в ностальгии. В результате я сумел себя мотивировать тем, что "лично мне", а, возможно, и "всему миру", эта игра может быть интересна, и на её восстановление стоит потратить время (ссылка на полученный результат).

Для начала взглянем на оригинал с БК-0010 (хвала Интернету, в котором можно найти почти всё):

Песочница и шпаргалка по изучению Python

Reading time3 min
Views54K

Изучать Python3 я начал с документации на официальном сайте. Мне понравились примеры кода, но, к сожалению, они были там не интерактивными. Хотелось попробовать выполнить код самостоятельно, с разными входными данными и посмотреть на выводимый результат. Так же мне лично легче запоминаются конструкции языка, если я их набрал несколько раз вручную. Python консоль для этого подходит отлично, но хотелось так же иметь своего рода шпаргалку, к которой можно было бы вернуться при написании программ в дальнейшем, если, например, возникнет вопрос, как в Python-е написать цикл for и т.п. И последней каплей стало желание автоматической проверки стиля написания кода в соответствии с существующими стандартами. Читать и вникать в них было лень, поэтому хотелось чтобы проверка кода была автоматической и подсказывала какие ошибки я делаю и как их исправить.


В итоге все свои эксперименты я вылил на GitHub.


Читать дальше →

Как я существенно облегчил работу с Raspberry Pi («всё новое — хорошо забытое старое»)

Reading time5 min
Views48K



-Как начать работу с Raspberry Pi?
-Залить на SD-карту образ, подключить к питанию и пойти в магазин докупить всё, чего не хватает.


Raspberry Pi в стандартной поставке — не подарок. По крайней мере, если вы собрались подарить Pi кому-то на этот Новый Год, удостоверьтесь, что счастливому получателю будет доступен комплект клавиатура-монитор-мышь, или хотя бы USB-UART адаптер.


Что же делать, если хочется заняться своим проектом, но есть только плата и к ней проблематично подключить хоть что-либо? Я мучался с такого рода проблемами 3 года, пока не разработал pyLCI. О том, как начать использовать pyLCI и что оно даёт, я и расскажу сегодня.

Облегчить работу с Raspberry Pi?

Создавая хтонических чудовищ, документируй

Reading time6 min
Views15K
ioninja

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


Нижележащий текст преследует несколько целей:


  1. Дать краткий обзор (читай — немного погундеть на тему) неудовлетворительного состояния инструментария, применимого к хтоническим чудовищам мира C/C++;
  2. Предложить своё альтернативное решение (бесплатно-без-СМС-и-регистрации — проект некоммерческий и выложен на GitHub под MIT-лицензией);
  3. Призвать сообщество пообщаться на тему и собрать идеи;
  4. Пригласить присоединиться к разработке проекта на GitHub.

Сразу оговорюсь, что хотя проект создавался в первую очередь как альтернатива, а точнее, дополнение Doxygen для сишных и плюсовых API, архитектурно он в равной степени пригоден и для других языков. Это позволяет создавать порталы документации разноплановых библиотек — сами библиотеки могут быть написаны на разных языках, а в документации будет единство стиля во внешнем виде и поведении.



Читать дальше →

GitLab Flow

Reading time15 min
Views116K

Это перевод достаточно важной статьи про GitLab Flow, альтернативе Git flow и GitHub flow. Статья была написана в 2014, так что скриншоты успели устареть. Тем не менее сама статья более чем актуальна:




Ветвление и слияние веток в git устроено гораздо проще, чем в более ранних системах контроля версий, таких как SVN. Поэтому есть много способов организации командной работы над кодом, и большинство из них достаточно хороши. По крайней мере, они дают много преимуществ по сравнению с тем, что было до git. Но сам по себе git — не серебряная пуля, и во многих командах организация рабочего процесса с git имеет ряд проблем:


  • Не описан точным образом весь рабочий процесс,
  • Вносится ненужная сложность,
  • Нет связи с трекером задач (issue tracker).

Мы хотим представить вам GitLab flow — чётко определённый набор практик, решающий эти проблемы. Он объединяет в одну систему:



Читать дальше →

Использование шаблонного метапрограммирования для микроконтроллеров AVR

Reading time21 min
Views27K

AVR


Микроконтроллеры AVR фирмы Atmel хорошо знакомы разработчикам и не нуждаются в особом представлении. Эти устройства используют модифицированную гарвардскую архитектуру и демонстрируют приличную производительность при низком энергопотреблении. Видимо не будет преувеличением сказать, что сегодняшней популярностью AVR во многом обязан проекту Arduino.
Читать дальше →

Как перестать бояться и полюбить mbed [Часть 1]

Reading time9 min
Views24K
Мы занимаемся поставками электронных компонентов. Чтобы делать нашу работу хорошо, недостаточно просто уметь привозить и продавать электронные компоненты — ещё важно уметь демонстрировать их преимущества. Именно поэтому мы не только пишем обзорные статьи, но и создаем руководства по применению разных «железок» и разрабатываем небольшие демонстрационные проекты.



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

Особенный интерес представляет подход к написанию встроенного ПО — софт полностью написан в онлайн IDE от mbed. То есть программа для микроконтроллера была создана на единственной вкладке гугл-хрома и одинаково работает на отладочных платах от разных производителей.

Содержание цикла публикаций:

Первая часть под катом.

STM32F405: прошить 400кб за 10 секунд или быстрый UART-загрузчик заточенный под USB-UART, размером менее 4 килобайт

Reading time19 min
Views36K

C утилитой для ПК и платой — программатором,
с использованием SPL,
с полноценной системой команд и проверкой CRC32,
с гарантией доставки и переотправки сбойной или потерянной команды,
с проверками ошибок, отладочными сообщениями и урезанным printf'ом.
Оптимизирован под современные USB-UART преобразователи и потоковую передачу.



Читать дальше →

Автоматизированный орхидариум

Reading time6 min
Views22K
image


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

Работаем с бюджетным учреждением. Часть 1

Reading time23 min
Views17K
Если вы работаете или только собираетесь поработать с бюджетным учреждением, эта статья (как и весь цикл) может оказаться для вас небесполезной. К вам обратился заказчик с предложением разработать для него некое программное обеспечение (продать/собрать компьютеры, взять на обслуживание офисную технику). И этот заказчик — бюджетное учреждение. На что следует обратить внимание? Чего следует опасаться? Возможно ли как-то минимизировать риски такого сотрудничества? Что такое обещание денег и почему его недостаточно? И причем здесь открытые данные? Если это вас заинтересовало — прошу под кат.
Читать дальше →

RDS, как это работает? Опускаемся на самый нижний уровень модели OSI

Reading time6 min
Views122K
С системой RDS (Radio Data System) сталкивался хоть раз каждый, кто видел в автомагнитоле название станции вроде «Дорожное радио». Помимо названия, могут отображаться дополнительные данные — название воспроизводимой песни, температура, частота вещания и т.д.


Но как это работает? Т.к. моим хобби является радио и цифровая обработка сигналов, разобраться было интересно. Как оказалось, полной информации о RDS в рунете практически нет (да и в англоязычном тоже негусто), надеюсь, эта публикация восполнит этот пробел.

Продолжение под катом (осторожно много картинок).
Читать дальше →

Лекция «Небесная механика без единой формулы»

Reading time1 min
Views23K
Физика орбитальных полетов — штука не интуитивная. Иногда надо затормозить, чтобы догнать, или тратить топливо, разгоняясь, чтобы зависнуть. То, как летают спутники или пилотируемые корабли, не всегда понятно, а, чтобы виртуально попробовать, нужно решиться преодолеть довольно высокий порог вхождения. Моя новая лекция — «Небесная механика без единой формулы» пытается решить две задачи — просто и понятно объяснить, как летают космические аппараты, и сделать более легким процесс превращения в виртуального космического пилота.



Дополнительные материалы

RS232 устройство 3-в-1 для домашнего Linux сервера: Часть 2 (Серверная)

Reading time11 min
Views19K

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


В этой части статьи будет рассмотрено как взаимодействовать с последовательным портом из пространства ядра (kernel space) и как организовать работу с несколькими подсистемами устройства через RS232 в Linux.


Устройство включает в себя следующие подсистемы:


  • Аппаратный сторожевой таймер, работающий с watchdog демоном;
  • Генератор истинно случайных чисел;
  • Радиомодуль nRF24L01+ для сбора данных с автономных датчиков.

WRN устройство

Читать дальше →

Программирование и отладка микроконтроллеров ARM Cortex-M4 фирмы Atmel в среде операционной системы Linux. Часть 1

Reading time10 min
Views31K
Представляем электронную версию статьи из номера №2 за 2016 год журнала Компоненты и технологии. Автор Курниц Андрей.

В статье описан процесс развертывания экосистемы разработки приложений для микроконтроллеров Atmel серии SAM4S в среде операционной системы Linux. Читатель познакомится также с оценочной платой SAM4S-EK и семейством ARM Cortex-M4 микроконтроллеров фирмы Atmel. Приведены рекомендации по работе с адаптером отладки SAM-ICE (он же J-LINK) и программой OpenOCD.

Введение


Выбор операционной системы Linux в качестве среды для программирования микроконтроллеров ARM Cortex-M4 фирмы Atmel сложно назвать общепринятой практикой. Напротив, для разработки под свои микроконтроллеры Atmel свободно распространяет среду Atmel Studio 7, предназначенную исключительно для операционных систем Windows. Не будет секретом и тот факт, что разворачивание и настройка среды Atmel Studio 7 для новичка окажется куда проще, чем выбранный автором путь.
Автор предлагает использовать среду разработки Qt Creator в связке с инструментарием для кросс-компиляции GCC и с пакетом OpenOCD для отладки. В качестве операционной системы автор выбрал Linux Lubuntu 14.04 LTS (выполняющуюся на виртуальной машине, но это не существенно). Такой подход позволяет с легкостью переходить на другие ARM (и не только) микроконтроллеры, не меняя при этом привычный комплект инструментов. Например, в [1] приводится пример разработки для микроконтроллеров STM32F4 фирмы ST microelectronics с применением такого же комплекта инструментов.
Несколько слов об используемой терминологии. Аппаратное устройство, которое подключается к целевому микроконтроллеру и к рабочей станции, далее называется отладочным адаптером. Отладчиком же будет называться компьютерная программа, служащая для пошагового выполнения программы, просмотра значений ячеек памяти и т.д.

Аппаратная платформа



Рис. 1. Внешний вид платы SAM4S-EK с подключенным отладочным адаптером.
Читать дальше →

Ардуино С++11 библиотека для управления светодиодными матрицами

Reading time2 min
Views13K
led matrix cascade 8x8 Сегодня я хотел бы выступить в необычном для хаба Arduino качестве и рассказать не об устройстве, а о библиотеке.
Речь пойдет о библиотеке LedMatrix (русскоязычное описание), которая умеет управлять светодиодными матрицами 8x8 на чипах MAX7219 и MAX7221.

Читать дальше →

STM32 и LCD, быстрая заливка экрана

Reading time12 min
Views76K
В настоящее время получили распространение различные жидкокристаллические дисплеи, которые отлично подключаются к контроллерам семейства STM32. В данной статье речь пойдет об одном из распространенных контроллеров STM32F103C8T6 и дисплее 7" на контроллере SSD1963. Оба в виде законченных узлов легко доступны на Aliexpress и относительно недорого стоят. Конечно, все рассмотренное ниже справедливо и для других дисплеев с параллельным интерфейсом и большинства контроллеров STM32.
Читать дальше →

Лучшие бесплатные коллекции векторных иконок

Reading time2 min
Views348K
Привет, Хабр! Сегодня я хочу представить вам огромную коллекцию из 51 набора бесплатных векторных иконок. Да, есть потрясающие ресурсы Flaticon или Iconfinder, но бывают случаи, когда необходима именно группа иконок в едином стилистическом оформлении. Определиться с выбором, вам поможет эта подборка. Я старался собрать не как можно больше, а действительно самое лучшее.

Среди веб-разработчиков существует много споров о том, что лучше: иконочный шрифт или SVG спрайты? Четкого ответа на этот вопрос нет. Каждый выбирает свое. Данные наборы иконок вас неограничиывают в выборе, поскольку представлены в различных форматах: @font-face, SVG, EPS, AI, PSD, Sketch.

В целом данная подборка содержит более 10 000 иконок, охватывающих множество категорий: интерфейсы, технологии, наука, спорт, маркетинг, среда, транспорт и тд. Полые, заполненные, цветные, во Flat, Material, Elegant, Cartoon, Hand drawing стилях.

Responsive Icons (100 иконок, PSD, AI, EPS, SVG)


Responsive Icons

Читать дальше →

Машина времени в git

Reading time5 min
Views196K
В последнее время мои коллеги начинают знакомство с git'ом. И один из интересующих их вопросов — как откатиться до определённой ревизии. В интернете можно найти набор команд, но хочется, чтобы было понимание каждой из них. Баловство с комадами git'а без понимания может привести к потере истории разработки.

В этой статье я хочу рассказать о командах git checkout и git reset с ключами --soft и --hard.
Читать дальше →

Консольное управление DLNA-сервером Mediatomb

Reading time5 min
Views13K
Уже давно в качестве домашнего DLNA-сервера использую Mediatomb. Это очень надежный и легкий сервер, который позволяет получить доступ к своему видео-аудио-фото архиву с любого устройства, поддерживающего DLNA.
Mediatomb обладает интерактивным WEB-интерфейсом, посредством которого можно добавлять под контроль указанного сервера каталоги с медиа-данными. Однако, мне понадобилась возможность не интерактивного, а консольного управления этим сервером, в частности появилась необходимость добавлять и удалять папки с медиа-информацией. К сожалению, никаких штатных средств для этих операций системой не предусмотрено, поэтому был создан небольшой скрипт, на основе CURL, который, понятно, имитирует работу пользователя с браузером и собственно позволил мне достичь нужного результата.

Возможно, проделанная работа может потребоваться кому-нибудь еще, поэтому решил воспроизвести ее на Хабре.
Читать дальше →

Стиль именования коммитов

Reading time4 min
Views129K
the Octobi Wan Catnobi

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

Information

Rating
Does not participate
Registered
Activity