Как стать автором
Обновить

Разработка

Сначала показывать
Порог рейтинга
Уровень сложности

Murmulator OS (для пользователя)

Уровень сложностиПростой
Время на прочтение8 мин
Количество просмотров334

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

Murmulator OS (далее MOS) не является исключением. Как намекает название, данная ОС разработана для Murmulator https://github.com/AlexEkb4ever/MURMULATOR_classical_scheme (далее просто Мурмулятор), который основан на ультрабюджетной плате Raspberry Pi Pico (процессор-микроконтроллер RP2040) + специальная плата расширения, подробнее про которую можно почитать на сайте https://murmulator.ru. Таким образом, Murmulator - полноценный ультрадешевый (бюджетная версия которого обходится не дороже $5) микрокомпьютер.

Читать далее
Рейтинг0
Комментарии0

Новости

История POSIX: путь к портируемому ПО

Время на прочтение8 мин
Количество просмотров683

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

Именно так произошло с Unix, который изначально был написан Кеном Томпсоном на языке ассемблера более пятидесяти лет назад. Первые версии Unix писались для платформы PDP-7, а для портирования его на PDP-11 нужно было переписывать код. Когда Дэннис Ритчи создал язык программирования C, и вместе с Томпсоном они переписали на нём основную часть кода Unix, внезапно оказалась возможной портируемость ПО. Тому были две главные причины. Во-первых, код, написанный на языке высокого уровня, не зависит от платформы, потому что компиляторы транслируют его в язык ассемблера целевой архитектуры. Это ещё важнее для целевых платформ на основе процессоров RISC, так как они требуют написания гораздо большего количества ассемблерных команд, чем процессоры CISC. Даже при портировании Unix на другую платформу основная сложность заключалась лишь в адаптации зависящих от архитектуры частей кода. С другой стороны, сама операционная система абстрагирует все особенности оборудования от пользовательской программы.

Программистам не нужно реализовывать многозадачность, управление памятью и драйверы для используемых ими устройств, потому что всё это часть ядра ОС и работает в адресном пространстве ядра. Пользовательские программы работают в пользовательском адресном пространстве и получают доступ ко всем предоставляемым ОС функциям при помощи интерфейса системных вызовов. В ОС реального времени, например, в Zephyr OS ситуация немного отличается, но принцип изоляции и защиты памяти для пользовательских программ сохраняется. Это приводит к двум выводам:

Читать далее
Всего голосов 4: ↑3 и ↓1+3
Комментарии0

3D рендер с редактором карт в Консоли (Часть 2)

Уровень сложностиСредний
Время на прочтение8 мин
Количество просмотров472

Сегодня я собираюсь продолжить рассказ про свой 3D рендер в командной строке Windows и разобрать те темы, которых не коснулся в 1 Части.

На этот раз в статье будет больше кода и меньше математики (а также много скриншотов).

Читать далее
Всего голосов 5: ↑5 и ↓0+6
Комментарии0

Конкурс js13kGames или как написать игру объёмом 13 Кбайт

Время на прочтение6 мин
Количество просмотров594

13 августа стартовал 13-й игровой джем js13kGames (JS13K) для разработчиков веб-игр на JavaScript. За месяц участникам предстоит написать браузерные игры, размер которых не должен превышать 13 килобайт при сжатии до формата ZIP. Темой JS13K этого года выбрали «Трискайдекафобию» — боязнь числа «13».

Читать далее
Всего голосов 3: ↑2 и ↓1+3
Комментарии1

Истории

Построчный разбор determine-basal.js в Android APS

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров163

Давайте разберем файл determine-basal.js в Android APS построчно.

Это основной файл для расчета количества необходимого инсулина.

Читать далее
Рейтинг0
Комментарии0

Заметки по сериализации + System.Text.Json

Уровень сложностиСредний
Время на прочтение31 мин
Количество просмотров523

Сериализация - важнейший механизм любого приложения, от поиска по фильтрам в онлайн магазинах, до сохранения прогресса в играх. Давайте коротко пройдемся по основным форматам сериализации и рассмотрим использование System.Text.Json.

Читать далее
Рейтинг0
Комментарии0

Параметр определяющий в Android APS необходимое количество введения инсулина

Уровень сложностиСредний
Время на прочтение3 мин
Количество просмотров136

Рассмотрим какой параметр отвечает за расчет необходимого объема введения инсулина.
В предыдущей статье мы определили что таким параметром является insulinReq, здесь же рассмотрим его в контексте разных режимов введения инсулина, а именно basal и SMB.

Чтобы точно ответить на вопрос поисследуем основной файл - determine-basal.js

Читать далее
Рейтинг0
Комментарии0

Как убить единорога или попытка навести порядок с инициализацией переменных в языке C++

Уровень сложностиСредний
Время на прочтение14 мин
Количество просмотров1.4K

Знаете, я никогда не задумывался, насколько плоха или хороша инициализация переменных в языке C++. Я просто использовал ее. И не имел никаких проблем. Но недавно я посмотрел пару видео, пролистал несколько статей и да, я должен признать… она действительно ужасна. Один очень серьезный человек даже сказал, что мы, как сообщество программистов, виновны в том, что C++ не настолько хорош, насколько он мог бы быть.

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

Читать далее
Всего голосов 5: ↑2 и ↓30
Комментарии12

Конспект книги «Построенные навечно. Успех компаний, обладающих видением»

Уровень сложностиСредний
Время на прочтение51 мин
Количество просмотров610

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

В последние 5 лет я сосредоточил свои усилия в области геймдева. Вместе с выпускниками программы Менеджмент игровых проектов мы уже несколько лет делаем для души инди-игру Saturated Outer Space в свое удовольствие. А в 2020 году мы с партнерами создали и развиваем студию разработки и издания мобильных игр Geeky House. Внутри этих команд у нас есть раздел "База знаний", куда разные специалисты выкладывают свои наработки для внутреннего использования и рецензирования коллегами. Так и я - опубликовал этот конспект сначала внутри команды, а теперь выкладываю его для общего обозрения. Если этот формат зайдет и будет популярен, то я буду выкладывать и другие книги, по менеджерским фишкам и приемам.

Читать далее
Всего голосов 11: ↑10 и ↓1+10
Комментарии1

Очистка таблицы-очереди Истории данных 1С средствами SQL

Время на прочтение13 мин
Количество просмотров450

На связи Никита Скирдин, программист 1С компании «Белый код».

Одна из проблем механизма Истории данных в 1С – это значительное увеличение объема базы данных. При этом старые версии истории данных, даже если настроено хранение истории данных в течение 3 месяцев, могут оставаться в базе и занимать место. В статье рассказываю пошагово алгоритм действий.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии2

Мотивацию надо поднять

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров1.6K

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

Читать далее
Всего голосов 2: ↑1 и ↓10
Комментарии2

Воспроизводим гитарные табулатуры на Rust

Время на прочтение11 мин
Количество просмотров994

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

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

Например, вот первые четыре такта песни Smoke on the Water группы Deep Purple:

e|-----------------|-----------------|-----------------|-----------------|
B|-----------------|-----------------|-----------------|-----------------|
G|-----3---5-------|---3---6-5-------|-----3---5-----3-|-----------------|
D|-5---3---5-----5-|---3---6-5-------|-5---3---5-----3-|---5-------------|
A|-5-------------5-|-----------------|-5---------------|---5-------------|
E|-----------------|-----------------|-----------------|-----------------| <- верх

Эту песню играют в стандартном строе (EADGBe), обозначенном буквами слева, указывающими строй каждой струны. Цифры же означают, куда нужно ставить пальцы на грифе.

Кроме текстового описания стандартом де-факто стал формат, используемый в ПО Guitar Pro для рендеринга и синтезирования звука табулатуры.

Такие двоичные файлы в зависимости от версии ПО имеют расширение .gp3, .gp4, .gp5 или .gp6, их легко можно найти в Интернете на таких веб-сайтах, как Ultimate Guitar.

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

Вероятно, лучший опенсорсный плейер табулатур — это TuxGuitar, у него очень много функций, это потрясающий инструмент для обучения гитаре.

Так как TuxGuitar уже не поддерживается и написан на Java, я решил, что будет интересно написать собственный плейер табулатур на Rust.
Читать дальше →
Всего голосов 8: ↑8 и ↓0+12
Комментарии1

Из истории технологий: откуда взялся Unix

Уровень сложностиСредний
Время на прочтение9 мин
Количество просмотров2.5K

Сегодня многие полагают, что «Unix» и «Linux» — это одно и то же. Но по состоянию на 2024 год с большинством дистрибутивов, которые мы причисляем к «Unix» и «Linux» ситуация почти так и обстоит.

Но у Unix долгая история. Если у вас в распоряжении только известные сейчас системы Linux, то сложно размышлять о том «какова была ситуация на заре Unix», поскольку так много с тех пор изменилось.

Читать далее
Всего голосов 12: ↑8 и ↓4+7
Комментарии4

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
11 сентября
Митап по BigData от Честного ЗНАКа
Санкт-ПетербургОнлайн
14 сентября
Конференция Practical ML Conf
МоскваОнлайн
19 сентября
CDI Conf 2024
Москва
24 сентября
Конференция Fin.Bot 2024
МоскваОнлайн
25 сентября
Конференция Yandex Scale 2024
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн

ZX Murmulator OS

Уровень сложностиСредний
Время на прочтение6 мин
Количество просмотров2.7K

ZX Murmulator - одноплатный ультрадешевый микрокомпьютер на основе платы Raspberry Pi Pico (далее "пика"), которая, в свою очередь, основана на микроконтроллере - RP2040.

RP2040 - одна из наиболее известных двухъядерных реализаций ARM Cortex-M0+ с 264 КБ встроенной SRAM памяти и от 2-ух до 16-ти МБ flash-памяти подключаемых по QSPI интерфейсу, распаянной на плате пики. Данный микроконтроллер легко гонится до 400 МГц без какого либо радиатора, не смотря на свои штатные 133. Что позволяет запускать на нём достаточно прожорливые задачи.

Читать далее
Всего голосов 17: ↑17 и ↓0+24
Комментарии13

Решаем судоку на pytorch

Время на прочтение7 мин
Количество просмотров927

Решаем судоку на pytorch. Можно ли делать нейросети без обучения? Без кучи тестовых примеров? Попробую ответить на этот вопрос.

Читать далее
Рейтинг0
Комментарии1

Мурмулятор — ультрабюджетный микрокомпьютер

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров8.9K

Как я познакомился с Мурмулятором? Я искал какой-то недорогой одноплатный компьютер для запуска эмуляторов ретро-компов.Чем меня не устраивало использование эмуляторов на "настоящем" компьютере? Ничем. Просто хотелось отдельное устройство. Я рассматривал вариант покупки старого ноута специально под эту задачу, потом смотрел на Raspberry Pi 400, Orange Pi и на прочие одноплатники. В процессе поисков я наткнулся на видео самостоятельной сборки оригинального одноплатника с бюджетом в $5. Понятно, что впоследствии я в эту сумму и близко не вложился, но данное изделие меня всё-таки зацепило. Вот так у меня и появился первый ZX Murmulator.

Читать далее
Всего голосов 30: ↑30 и ↓0+40
Комментарии3

Игрострой. С чего начинать

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

Привет всем! Меня зовут Ш. Сергей!

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

В этой статье я постараюсь затронуть тему для всех ЯП и в своём большинстве для начинающих программистов. Так как именно они зачастую будут стоять перед выбором: "с чего же начинать?"

ознакомиться
Всего голосов 18: ↑10 и ↓8+5
Комментарии11

Быстрое введение в сеть Hidden Lake

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

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

Читать далее
Всего голосов 7: ↑7 и ↓0+10
Комментарии6

Мой опыт создания телеграм-бота на NodeJS/grammY

Уровень сложностиСложный
Время на прочтение13 мин
Количество просмотров1K

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

Так как я предпочитаю использовать JavaScript и на фронте, и на бэке, то среда существования для бота была определена сразу же - nodejs. Осталось определиться с библиотекой - Telegraf или grammY? Так как у второй в примере использовался кошерный import, а у первой - старомодный require, я выбрал grammY.

Под катом - пример телеграм-бота в виде nodejs-приложения с использованием библиотеки grammY, который запускается как в режиме long pooling, так и в режиме webhook, созданный с применением моей любимой технологии - внедрения зависимостей через конструктор (TL;DR).

Читать далее
Всего голосов 3: ↑3 и ↓0+5
Комментарии3

Близкий родственник эльфа – программер

Уровень сложностиСложный
Время на прочтение11 мин
Количество просмотров1.1K

Многие знакомы с ELF-файлами и их структурой. Поговорим о программерах. Программер – это файл в формате ELF (расширение может быть BIN, MBN или ELF), который предназначен для  работы с памятью смартфонов на Android с процессорами от Qualcomm в режиме аварийной загрузки (EDL mode – emergency download, 9008). Также его некоторые называют «пожарный шланг» (от английского firehose) или просто «шланг». Файл представляет из себя контейнер с набором команд для базовой работы с памятью, которые подписаны цепочкой сертификатов. Иногда возникает необходимость подобрать для своего устройства подходящий программер. Вот и попробуем разобраться в этом.

Читать далее
Всего голосов 2: ↑2 и ↓0+4
Комментарии0
1
23 ...