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
Наконец дошли руки поиграться с парой BBC micro:bit.

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

Пользовал MicroPython, потому что альтернативы пока не нашёл, а на JS писать не хочу. Был бы iPad, я бы попробовал Swift: да, теперь можно и такое, так что фанаты яблочных сред и языков - обратите внимание! :)

"IDE" внутрибраузерная, в которой предлагается писать Python-код, простенькая, конечно, но зато и работает без установки чего либо. Даже прошивка сделана очень просто: microbit видится в системе, как storage device без единого файла на нём, и при сохранение .hex-файла на который происходит прошивка и запуск программы! Очень остроумно! А в качестве альтертативы существует CLI-утилитка, позволяющая закидывать файлы на плату вручную - в т.ч. и файлы данных - и читать (и писать!) из питона стандартными средствами (эмулируется файловая система). Места немного, около 30КБ, но всё равно очень удобно. Также данный "ручной режим" приятен тем, что можно закидывать на плату python-модули и импортировать через стандартный же import, скажем, в головной модуль main.py.

Изначально хотел опробовать радиомодуль - у меня две платки как раз и я их связал в "сеть". Как и ожидалось, всё работает сразу и при минимуме усилий! Приятно. Пока ничего сложнее "нажал кнопку на одном модуле, а другой мигнул экраном, и наоборот" не придумал. Но имею план попробовать сделать автоматический выбор ведущего и синхронизацию с оным ведомого (жаль, что микробита у меня талько два!).

Потом откопал в закромах пьезопищалку и опробовал искоробочные либы для воспроизведения музыки и синтеза речи(!). Прямое подключение к порту пищалку не раскачивает как следует, так что надо бы в будущем добавить ключ. Но всё равно результат меня порадовал. Музыку играл встроенную: микробитова stdlib богата на встроенные приятности и music.play(music.NYAN) была вполне узнаваема :) Синтез речи очень условный, но зато можно тонко управлять произношением и выводом. Как миниум, здорово, что он есть из коробки.

Отдельно отмечу документацию - она отличная. В лучших традициях питонопакетов всё лежит на readthedocs, удобно структурировано, приятно читается.

#electronics #microbit #micropython #python
This media is not supported in your browser
VIEW IN TELEGRAM
Звуки взяты из примеров в документации - BBC не смогли не припомнить "Доктора" :)
Эх, я бы посетил...
Последние три года осенью в Сан-Франциско проходит странное событие Roguelike Celebration bit.ly/2MM2qzy. Грубо говоря, это конфа, посвящённая написанию компьютерных игр древнего жанра Roguelike (на русском сленге "рогалики") bit.ly/2zXtAOA. Жанр этот, родственный RPG, назван по одной из первых подобных игр, Rogue 1980 года. Другими известными его преставителями являются NetHack, Moria, ADOM, а в качестве граничных примеров часто называют Dwarf Fortress и, внезапно, Diablo. Среди жанрообразующих аспектов рогаликов значатся хардкорность, процедурная генерация контента и тяга к ASCII-графике, что делает весь жанр крайне нёрдовским.

Так вот, на этом самом Roguelike Celebration попадаются довольно дельные доклады, которые они выкладывают онлайн. В качестве затравки поделюсь ссылкой на доклад двух профессоров факультета компьютерных искусств канадского Concordia University "Chess + Rogue = Chogue" bit.ly/2B7uk5K, авторы довольно системно подходят к вопросу о том, как можно построить органичный гибрид из двух совсем разных систем игровых правил.
В сообществе хаскелистов сильно движение "IDE не нужны". И если с дидактической точки зрения абсолютному новичку полезно работать с кодом вручную - при наличии нормального тулинга за пределами написания кода, замечу(!) - то после "набивания руки" правильно и законно хотеть получать от среды столько помощи, сколько вообще возможно получить.

Увы, часто говорят, что "достаточно REPL и редактора" или "автодополнение по словарю есть, что ещё нужно?".

"Не достаточно", "нужно больше".

Я сам лично худо-бедно настроил окружение, которе в целом позволяет жить с рабочими проектами на #haskell, но не стану говорить, что большего и не желаю.

А написал текст выше я, чтобы дать вводную для интересного, как мне кажется, доклада: https://www.youtube.com/watch?v=baxtyeFVn3w
Докладчик (хаскелист, кстати) сразу же отмечает, что доклад - не про #smalltalk. Так что можете не пугаться.
Вот "Амперка" и анонсировала наконец свой XOD. Ознакомиться настоятельно рекомендую. Только комментарии к видео не читайте - там сплошь жалобы на отсутствие русского языка. В комментариях же сравнивали с FLProg, мол "тоже бесплатно, ещё и на русском". С этой штукой тоже можно познакомиться, но сравнивать не стоит - XOD и FLProg разные концептуально, хоть и решают обе одну задачу (визуальное программирование микроконтроллеров).

XOD, это "что-то типа FRP" (Functional Reactive Programming) с проталкиванием событий (как в push-FRP). Программа выглядит, как data flow схема, в которой источники событий (кнопка, потенциометр, таймер) через цепочки преобразований управляют "стоками" (светодиод, сервопривод, ЖКИ). Реализовано описание схем довольно удобно, есть возможность описывать свои блочки (и визуально, и на текстовом ЯП), делиться наработками с сообществом - натоящий современный продукт. Работает и в браузере, и в десктопных приложениях (на базе electron).

FLProg предоставляет для описания программ язык описания Ladder Diagrams - язык релейной логики. Заметно (мне), что FLProg пытается быть средой визуального описания автоматики, похожей на больших братьев - срез программирования ПЛК. И от этого дружественность страдает, как мне кажется, очень сильно. Ну не могу я представить, как новички (а конкретнее - дети) будут с удовольствием пользоваться интерфейсом из нулевых, который ещё и не особо упрощает жизнь - одну лишь некрасивость можно было бы и потерпеть.

Заметьте, я не пытаюсь принизить заслуги авторов - FLProg, это опрелённо достойное уважения творение - но конкуренцию с XOD оно проиграет. Потому что новичку гужно, чтобы было удобно, просто - и, чего уж там, красиво. XOD про это. А неновичку уже не будут нужны среды для графического программирования, если уж возникнет желание плотно погрузиться "в железки".

P.S. А хорошо, что тут нет комментариев. Никто не прибежит ругать меня за то, что я ругаю FLProg (на всякий случай: а не "ругаю" - я просто "не хвалю").

#diy #electronics #learning #lang
Очень меня позабавил сий образчик рекламы (это страница журнала BYTE за август 1980). Нынче такое себе не позволяют :)
Журнальчик, кстати, примечательный - почти весь номер посвящён языку Forth (затем я его ирешил полистать).

#forth
Да уж, тогда Forth был на коне! Третий по популярности после BASIC и Pascal среди пользователей персональных ЭВМ. На этом фото как раз такая ЭВМ с Forth "искаробки", как ныече бы сказали :)
Вот, кстати, ссылка на номер. Можно полистать даже просто из интереса к истории - например, окунуться в море рекламы вида "компилятор COBOL-80 от Microsoft" :)

И уж точно стоит взлянуть всем, кто хочет познакомиться с Forth: в журнале есть и статьи про архитектуру и просто вводная с примерами программ, блоксхемами, видуализацией стека - отличный материал!

#forth
В этом же номере есть #electronics #diy статейка: "A Build-It-Yourself Modem for Under $50"

Модем классический для того времени - коробка с двумя углублениями, на которую клалась телефонная трубка :) В статье присутствует и схема электрическая принципиальная и фото, показывающие, как замоддить динамик и микрофон.
Вот так "подключался" модем к телефону :)
А вот так выглядел типичный серийный модем. Так что самодельный не сильно бросался в глаза кустарщиной :)
В поездки всегда беру ремонтный набор: булавки, иголки, нитки. А также проволоку, термоусадку и нейлоновые стяжки :)

И ведь пригождаются! Проволока+термоусадка как-то дали зонту второй шанс.

В этот раз стяжками продлил старость ремешку от моих Pebble Steel. В условиях повышенной влажности кожа быстро деградировала и ремешок "ушел в отрыв", а без часов я чувствую себя некомфортно. И если раньше я считал, что форма крепления ремешка у часов странная, то в этот раз я этой форме даже порадовался - отлично "сочлась" со стяжками!
🔥1
Жаль только, что чёрных стяжек не было в данном типоразмере
https://www.dwitter.net/ - площадка для делёжки 140-символьными демками на JS. Свежо (относительно, ибо проект с 2016г существует), красиво, процедурно!

Судя по кускам кода, таки некий набор примитивов присутствует таки, так что 140-символьные программки не самодостаточны. Но всё равно отлично (хоть и на JS ;))

#procedural #art
Посмотрел, таки всё сделано на обычной канве. Просто область видимости, в которой исполняется код каждой программки, уже преднаполнена некоторым кол-вом сокращений:

function u(t) {
/* Will be called 60 times per second.
* t: Elapsed time in seconds.
* S: Shorthand for Math.sin.
* C: Shorthand for Math.cos.
* T: Shorthand for Math.tan.
* R: Function that generates rgba-strings, usage ex.: R(255, 255, 255, 0.5)
* c: A 1920x1080 canvas.
* x: A 2D context for that canvas. */
// ---- code is here ----
}
Говорят, что на этой площадке уязвимости находили, так что не удивляйтесь, если вдруг какая демка вам браузер подвесит :)
Попиарю проектик Метро.Базовый (видео).
Это опять #diy-конструктор из #arduino и кучки модулей. В данном случае набор "для только-только начинающих".

Из интересностей именно этого конструктра мне хочется отметить подход, который применён для помощи "пользователям" в самых первых экспериментах: модуль с микроконтроллером (локомотив) при соединении с вагонами в определённые конфигурации сам понимает, какое поведение от него требуется! Отличная идея!

Создатели набора приходили на наш митап, где я лично пощупал и железки и сопутствующую полиграфию - всё отличное!

P.S. Конструктор хоть и выглядит, как вещь-в-себе, но никакой проприетарщины в плане ПО и интерфейсов не содержит. Так что даже тем, кто со временем перерастёт "паровозик", модули пригодятся в будущих экспериментах, благо подключаются по I2C.

P.P.S. У создателей есть канальчик: https://t.me/iarduinoru
Отмечу здесь: iArdiuno (авторы "Метро" по ссылке выше), это не Амперка и не её дочка! Да, схожесть в ассортименте продуктов есть, но это следствие работы с открытыми спецификациями, а не копирование друг-друга. Именно в силу следования открытому первоисточнику (спецификация - амперковская) ПВХ-конструкторы от iArduino "похожи" на "Структор" от Амперки. А общая спека здесь обозначает совместимость - отлично же! Мне, как потребителю, удобно и приятно иметь больший выбор, а уж делают свою работу обе конторы отлично :)
Интересная подборка: https://staticsitegenerators.net/ На любой вкус, как говорится (например на Fortran).

Кажется, что процент генераторов, написанных просто потому что NIH, довольно высок ;)

С другой стороны, написание генератора статических сайтов, это неплохое упражнение для изучения нового ЯП - задача обозримая и не слишком сложная/простая, а результат может быть даже полезен :)