brain_dump_etc
637 subscribers
99 photos
4 videos
3 files
383 links
Дампы мыслей, свалка ссылок, программизмы, вот это всё (ВНИМАНИЕ: много вкусовщины!)

Автор надампленых мыслей: @astynax

Чат к каналу: https://t.me/brain_dump_chat
Плейлист трансляций: https://youtube.com/playlist?list=PLUFoWyWge7mrg4GqHLMZV62gGC912PCGq
Download Telegram
Вот ещё интересный образчик (правда, прошлогодний) - на этот раз в стиле code golf.

По заданию нужно написать функцию, которая принимает число и выводит календарь в виде панели с ячейками, пронумерованными в заданном порядке. Указанное при вызове функции число должно "открывать" нужную ячейку и показывать в оной одну из заданных ASCII-картинок.

В "ответах" авторы меряются кол-вом байт, составляющих решение (на то и гольф). Многие используют "мелок", специальный "язык" для описывания #ascii_art - забавная штука сама по себе :)

Есть решение на BeFunge. Оно меня отдельно порадовало (люблю этот язык) :)
Вспоминал тут своё велодетство. Вспомнил и по вело-моддинге того времени.

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

Причём сам я подобным не занимался, разве что электрификацию делал. Но увлечение это было очень популярно среди моих сверстников. Японцы же и в этом деле ушли очень далеко - по стопам моддинга грузовиков пошло движение dekochari. Если бы я такое увидел в середине 90х, то возможно и своего железного коня бы подобным образом "прокачал" - это вам не "три фары разных цветов", совсем другой уровень!
А уж на современной-то элементной базе можно такое понаделать, что о-го-го! Вы только посмотрите! (потом почитайте статейку)
На hackaday заканчивается очередной конкурс по созданию устройств пространственным методом - навесной монтаж, объемные платы, вот это всё. Работ прислано уже очень много и все отличные!

Помню, мы в радиокружке на первых занятиях "роботов" паяли:
- "Ставим ступни и ноги, руки и тело", говорили резисторы,
- "Я же буду головой", продолжал транзистор серии МП!
Отличное занятие для тех, кто ещё паять не умеет - как раз практика нарабатывается. Правда наши "схемы" не работали с точки зрения электроники, в отличие от схем, присланных на конкурс :)

Среди работ часто можно встретить поделки на базе таймера 555 - всё же сообщество любителей этой микросхемы ещё очень велико! Есть поделки и "попроще" - на микроконтроллерах и даже готовых платах типа #arduino micro и nano, но всё равно обвес делается творчески :) Есть и вполне профессионально сделанные экземпляры: платы промышленного качества с шелкографией, отличный вид итогового изделия - хоть на полку ставь!
Я как то писал про электронные бейджи для конференций. Вот ещё один образчик: Lisp Badge

QWERTY клавиатура, графический дисплей, в роли процессора ATMega 1284. Загружается устройство прямо в REPL mLisp и позволяет прямо из кода рисовать графику, а также общаться с периферией через выведенные UART+I2C и читать из четырёх каналов АЦП. Красивая штучка, короче говоря :)

#diy #programmable #lisp
И раз уж написал про носимый компьютер с Lisp, то ещё про одну железку напишу: встречайте, Digirule2

Digirule2, это не бейдж, это линейка :) Да не простая, а с 8-битным компьютером на борту! Является одновременно
- набором для самостоятельной сборки (и практики пайки SMD-компонент),
- сувениром (скажем, для ценителей старого железа - не зря железка похожа на переднюю панель Altair 8800),
- настоящим самодостаточным вычислительным устройством.

Последний пункт я поясню: никакого дисплея и алфавитно-цифровой клавиатуры вы на Digirule2 не найдёте! Но зато найдёте средства для ввода/вывода бит текущего адреса и бит данных по этому адресу, а так же служебные клавиши для запуска программ.

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

На мой взгляд Digirule2, это отличная штука, если нужно занять себя в дороге или хочется почувствовать на своей шкуре, как работалось за первыми персональными ЭВМ :)

#diy #programmable
Рубрика: "железки, опять!?"

Tinusaur - образовательная платформа в области электроники. Суть: простая платка на "тиньке" (ATTiny85) и модули к ней, а также всё необходимое окружение для разработки под железку.

Плата (и модули к ней) предполагает "монтаж в отверстия", поэтому может быть собрана (да, это DIY-kit) даже новичком. Так как контроллер является представителем семейства tiny, то железка отлично себя чувствует при питании от "таблетки" CR2032. Сопрягаемые модули - сплошь датчики да индикаторы.

Образовательный процесс предполагает три ступени:
1. Сборка платы и модулей.
2. Эксперименты с модулями через визуальное программирование блоками (среда сделана на Google Blockly) с генерацией кода на Си.
3. Изучение языка Си применительно к программированию собранных железок.

Авторы периодически выпускают новые модули, такие как этот OLED-экран.

Как мне кажется, отличный проект!

#diy #electronics
Завтра стартует курс по #clojurescript и re-frame: https://www.learnreframe.com/

re-frame, это такой framework поверх reagent - в свою очередь, обёртки над React :)

На первый взгляд курс выглядит интересно. Будет затронута и работа с состоянием и эффекты, и всё остальное нужное для создания современного SPA. На выходе ученики напишут это самое SPA на изученном стеке, так что даже "дипломный проект" присутствует :)

#mooc #webdev
Многие ещё помнят ролик про матч по настольному теннису между человеком и роборукой от KUKA. С тех пор роборуки в рекламе и вообще массмедиа применяются периодически и уже не так удивляют.

Меня же в своё время робот-теннисист не так впечатлил, как впечатлили танцующие роботы (опять KUKA?) в шоу Timeless 2013 от Mylène Farmer. У Милен вообще каждое шоу, это праздник для ушей и глаз (да, я фанат), а тут получилось ещё и технологичненько: в 2013 промышленные роботы для массового зрителя были в новинку, да и подача не подкачала!

Так это выглядело, когда роботы подтанцовывали, а вот танец роботов без человеческой подтанцовки :)

Кстати, коллекционное издание записи концерта выглядело, как 40-сантиметровая фигурка такого робота! Увы, не функциональная...

P.S. концерт нужно целиком смотреть, конечно - он отличный, как обычно ;)

#robot #music
Я тут на днях спонтанно попроцедурил на #racket. Можно смотреть тут.

Суть: процедурная графика на Racket в среде DrRacket, пара рекурсивных картинок, немножко анимации.

#procedural_generation
Интересный проектик, реализованный целиком на #elm: Kite, довольно продвинутый редактор направленных графов с группами вершин, метками, цветами, автоматическим и ручным "выравниванием" конфигурации - удобная штука для своих задач.

В интерфейсе есть заглушки для будущих улучшений: визуализации алгоритмов, выборок и запросов по графу, игр на графах и т.п. - есть за чем последить!
Как-то резко всплыли на моём горизонте сразу несколько вещей, связанных с ПЛИС (#fpga), и как ни странно... с #python :)

Во-первых, Pynq - инструментарий для Xilinx Zinq.

Zinq, это такие SoC (System on Chip) c ARM ядром рядом с FPGA и даже GPU в некоторых моделях - отличные штуки для машинного зрения, самоуправляемых автомобилей, вот этого всего. Pynq позволяет всё это богатство мощностей программировать прямо из Jupyter Notebook! Для исследований на стыке железок и datascience - "самое то"!

Платы на старших "цинках" довольно дорогие, что не удивляет. Но есть и решения "для дома", например платы вроде Pynq-Z2 (на картинке к посту) - розовенькие, что характерно :)

Если приглядеться к картинке, то можно увидеть шину расширения от Raspberry Pi и посадочное место для #arduino sheilds, помимо USB host, пары HDMI, Ethernet и прочих mini jack. Идельная плата для хоббиста-электронщика! Ещё и цена подъемная.
Второй проект - MyHDL, инструментарий, позволяющий использовать #python как HDL (язык для описания железа).

MyHDL транслирует код на Python в Verilog и VHDL, после чего разработчик может использовать стандартные для нужной #fpga инструменты. Помимо того, что в Python доступна работа с периферией, заявлена возможность трансляции практически любых функций, реализованных на Python, в функциональные аналоги на HDL!

Вот и статейка по данной теме (да, habr-не-торт, но это не перевод, а оригинальный материал, так что можно потерпеть).
Раз уж я пишу про #fpga и генерацию HDL, не могу не упопянуть про ClASH - основанный на #haskell функциональный HDL, транслируемый в VHDL/Verilog/SystemVerilog.

Тут вам и система типов выразительная и REPL для "поиграться вживую". И очевидный выигрыш от декларативщины. Например, вот так выглядит реализация FIR-фильтра (украл с офсайта):

fir coeffs x = dotp coeffs (window x)
where
dotp as bs = sum (zipWith (*) as bs)

Декларативно!

А ещё у проекта есть блог с отлично оформленными статьями. Про систолические массивы, например ;)
Широко известный в узких кругах The 8-Bit Guy рассказал о новом проекте - 8/16-битном компьтере с BASIC на борту.

Железка будет совместимой с современной периферией (в первую очередь - с дисплеями) и реализована будет на настоящем 65816 (использован будет реальный чип, а не эмулятор на ПЛИС).

Назначение Commander 16 (так проект называется сейчас) - быть наглядным пособием по архитектуре компьютера. Такой компьютер должен быть обозрим своим пользователем целиком, от железа и до ПО. Поэтому и предполагаются простой процессор, BASIC в ПЗУ, отсутствие ОС.

Лично я очень рад появлению этого проекта и идеи авторов мне очень близки!

P.S. В ролике мелькают похожие - и уже существующие - проекты, что вызывает отдельный интерес.
Наткнулся на интересный бложик, где автор пишет про #racket, макросы и... программирование Commodore64 (#c64) - на Racket и макросах!

Обязательно почитайте эту и эту статьи - это прекрасно! Специальный диалект для Racket, позволяющий с комфортом писать на ассемблере для C64 (или для эмулятора VISE), это сильно!
Я продолжаю поглядывать, как там у эльмеров. Недавно вот попробовал перевести на пробу один из своих проектиков на #elm 0.19 - смог :) А ещё я послушиваю выборочно подкастик elmtown - порой приходят очень интересные гости.

Так вот, в выпуске №43 гостями выступили авторы расширения для IntelliJ IDEA, реализующего поддержку Elm для этой IDE. Оказывается, разрабатывается этот плагин внутри и на деньги MicroSoft(!), написан на Kotlin (не то чтобы удивительно, но тоже приятно!) и востребован внутри компании - у MS есть даже продукт с фронтом на Elm! Эльмерам на заметку: если спросят, "и где этот ваш Elm используется?", можете смело говорить - "в MicroSoft!" :)

Отмечу, что и в целом выпуск у подкаста получился интересный. Гости рассказали и про проблемы, с которыми столкнулись при разработке упомянутого расширения, и про саму "кухню" плагиностроения для IDEA:
- почему нужно переносить "половину компилятора" в IDE,
- насколько сложно поддерживать функционирование инструментов в условиях частично невалидного и/или синтаксически некорректного кода,
- как непросто сделать поддержку нескольких версия языка одновременно (такое может потребоваться в рамках даже одного проекта - во время поэтапного перевода частей оного на свежую версию).
Если вам интересна тематика средств разработки, настоятельно рекомендую послушать!