How I fell in love with Erlang 🔥 Горячее 💬 Длинная дискуссия
Автор рассказывает о своем пути к любви к Erlang, начавшегося с непонимания базовых концепций программирования в восемь лет, когда столкнулся с выражением "X = X + 1" в BASIC, показавшимся ему математической ложью. В университете он столкнулся с такими же трудностями при изучении C, но продолжил учиться через практику и эксперименты. Переломный момент наступил, когда партнер по бриджу спросил, как суммировать числа от 1 до 10 без циклов, что привело его к открытию рекурсии в Prolog — математически чистого подхода, где описывалось "что" является, а не "как" вычислять.
Знакомство с Erlang произошло случайно на турнире по бриджу от шведского игрока, который описал его как функциональный язык для распределенных, отказоустойчивых систем. Автор был поражен возможностью простого обмена сообщениями между разными узлами без сложных протоколов, демонстрируя пример ping-pong на Erlang. Этот язык, сочетающий функциональность, распределенность и отказоустойчивость, стал тем, что он искал с детства — способом программирования, где математика говорит правду.
Комментарии (209)
- @az09mugen отмечает полезность функции
> cd ..в конце статьи за простоту и мобильную доступность. - @az09mugen предполагает наличие пасхалки (easter egg) в этой функции.
- @Gleamball выражает благодарность за выступление и обмен информацией.
Completing a BASIC language interpreter in 2025
Разработка BASIC-интерпретатора в 2025 году: реализация строковых переменных и сборка мусора
Проект по созданию BASIC-интерпретатора для платформы Intellivision ECS 1983 года выпуска перешёл на новую стадию — добавление поддержки строковых переменных. Изначально система могла работать лишь с числовыми данными, но теперь добавлена работа со строками (A$, B$, C$), включая операции присваивания, ввода и вывода, а также конкатенацию.
Особенность реализации — использование двух отдельных стеков: один для хранения строковых переменных, другой для временных строк в процессе вычислений. Это позволило избежать излишнего усложнения управления памятью. Для обработки строк введён сборщик мусора, который, не увеличивая нагрузку на систему, эффективно управляет памятью, используя маркер 0xCAFE для обозначения свободных участков.
Реализация включает функции для работы со строками, такие как конкатенация, функции LEFT$, RIGHT$, MID$ и другие. Всё это работает на процессоре CP1610 с тактовой частотой 894 кГц, демонстрируя, что даже на ограниченных системах возможна эффективная работа со строками.
Код написан на ассемблере, но логика применима в высокоуровневых языках. Это пример того, как даже в средах с ограниченными ресурсами можно успешно реализовать сложные функции, используя продуманные алгоритмы и эффективные структуры данных.
Комментарии (13)
- В 1978 году Хэл Финни написал 2-килобайтный интерпретатор BASIC для Intellivision, который стал первым встроенным языком программирования для игровой системы.
- Участники обсуждали, что в те годы размер кода и экономия памяти были критически важны, и как это влияло на дизайн и сообщения об ошибках.
- Обсуждение затронуло вопросы раннего периода персональных компьютеров, включая такие редкие темы, как Oregon Trail и TRS-80.
- Ностальгия по тем временам, когда даже простейшие вещи, такие как строки ошибок, были предметом гордости разработчиков, и как это сравнивалось с современными стандартами.
Tactility: An ESP32 OS
Тактильность — это не просто физическое ощущение, а сложный феномен, влияющий на восприятие, эмоции и взаимодействие с миром. Она играет ключевую роль в пользовательском опыте: от сенсорных экранов до дизайна продуктов, где текстура и вес создают ощущение качества. Исследования показывают, что тактильные сигналы могут усиливать доверие и запоминаемость, например, в розничной торговле или цифровых интерфейсах.
Виртуальная реальность и хаптические технологии активно развиваются, имитируя прикосновения для более immersive-опыта. Интересно, что тактильная обратная свядь иногда перевешивает визуальную — люди чаще доверяют тому, что могут «пощупать». Это подчёркивает её фундаментальное значение в эпоху доминирования цифровых взаимодействий.
Комментарии (54)
- Обсуждение возможностей и ограничений ESP32-устройств, включая поддержку загружаемых нативных приложений (ELF apps) в проекте Tactility.
- Рассмотрение альтернативных языков и сред для ESP32, таких как Toit, Nim, BASIC (Picomite) и Java, а также поддержка RISC-V архитектуры.
- Исследование практических применений: от IoT до портативных менеджеров паролей, клиентов для мессенджеров (IRC) и устройств с сотовой связью.
- Критика и скептицизм относительно ограниченных ресурсов ESP32 (памяти) для выполнения сложных задач, таких как динамическая линковка.
- Сравнение Tactility с другими проектами (Flipper, Zephyr) и обсуждение его статуса как операционной системы.
Meshtastic 64 – A meshtastic radio for the Commodore 64
Разработан модуль Meshtastic 64, превращающий Commodore 64 в узел децентрализованной mesh-сети для текстовой связи. Устройство подключается через User Port и использует плату Heltec LoRa V3 с OLED-экраном, который виден через прозрачное окно картриджа. Для упрощения связи вместо сложных protobuf-команд применён текстовый режим.
Программа для отправки и приёма сообщений написана на BASIC для сохранения ретро-стиля и удобства разработки. Плата спроектирована с учётом размещения аккумулятора и доступного USB-C порта, хотя в первой версии допущена ошибка зеркальной разводки контактов. Проект демонстрирует, как винтажный компьютер может участвовать в современных peer-to-peer сетях.
Комментарии (31)
- Высказана озабоченность отсутствием серьёзных попыток защитить содержимое сообщений на прикладном уровне в Meshtastic.
- Отмечены проблемы с маршрутизацией и доставкой сообщений, а также отсутствие функционала безопасной буферизации (store & forward).
- Упомянуты альтернативные проекты (Reticulum, MeshCore, CellSol) и проведены сравнения с APRS.
- Сообщество критикуется за большее увлечение обсуждением оборудования, чем практическим использованием сети.
- Разработчики проекта обвиняются в токсичности и имитации бизнеса под видом open-source.
Microsoft BASIC for 6502 Microprocessor – Version 1.1 🔥 Горячее 💬 Длинная дискуссия
microsoft/BASIC-M6502 — официальный репозиторий Microsoft BASIC для процессора 6502, версия 1.1.
Расположен исходный код на ассемблере 6502, включая оригинальные комментарии 1978 г. и лицензионные файлы.
Комментарии (169)
- Microsoft выложил исходники MS-BASIC для 6502 с «коммитом 48 лет назад» и пасхалкой WAIT 6502,X, которая выводит «MICROSOFT!».
- Код — один 162-КБ файл без модулей; удивляют старые редакторы и скорость сборки на PDP-10.
- В комментариях всплывают Applesoft BASIC, Commodore, Ohio Scientific и другие наследники этой версии.
- Пользователи делятся ностальгией, просят открыть Z80- и VB6-порты, обсуждают лицензию и «AI-аромат» README.
MS-DOS development resources
DOSDevelResources — подборка инструментов и ссылок для разработки под DOS.
Содержание
-
Языки
- C/C++: Watcom, DJGPP, OpenWatcom, SmallerC, SubC
- Pascal: Free Pascal, Turbo Pascal 5.5
- BASIC: FreeBASIC, QB64, QuickBASIC 4.5
- Сборка: NASM, FASM, WASM, TASM, MASM 6.11
- Прочее: Rust (rustc-dos), Go (gccgo), Lua, Python 2.4
-
Библиотеки и API
- Allegro, SDL, Raylib, GRX, pdcurses, OpenGL (Mesa3D), VESA, SoundBlaster, TCP/IP (Watt-32, mTCP)
-
Утилиты
- Редакторы: RHIDE, FTE, SETEdit, TDE, Vim, Emacs
- Отладчики: GDB, WD, TD, SoftICE
- Упаковка: UPX, LZEXE, PKLite, Diet
- Эмуляция: DOSBox, DOSBox-X, 86Box, PCem, Bochs
- Разное: Git, Make, Doxygen, Valgrind-like (Dr. Memory)
-
Документация
- Ralf Brown’s Interrupt List, PCGPE, Intel/AMD manuals, OSDev Wiki
-
Ссылки
Как пользоваться
Клонируйте репозиторий:
git clone https://github.com/SuperIlu/DOSDevelResources.git
Все файлы/архивы лежат в каталогах по темам.
Лицензия
MIT.
Комментарии (32)
- Участники вспомнили, что DOS-ретросцена жива: анонсирован 3-месячный DOSember game-jam.
- Перечислены доступные инструменты: HX DOS Extender, JWasm, Borland C++ 3.1, Free Pascal, DJGPP, GW-BASIC/PC-BASIC, а также MIT-лицензированный набор Microsoft 1988 года.
- Названы ключевые ресурсы: PC Games Programming Encyclopedia, эмулятор PCjs, книги «Black Book of Graphics Programming», «Programmer’s Guide to the EGA/VGA» и «PC-Intern».
- Отмечены удобные IDE: RHIDE и клон Turbo Vision от Free Pascal, а также ностальгия по быстрым Borland-IDE.
- Обсуждали, что современные ассемблеры (FASM/NASM) удобнее старых MASM/TASM, а DOS-цели можно собирать даже из Win32 PE.