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
Минутка (само)пиара:
Forwarded from Хекслет
Полезный вебинар в копилку знаний для программиста! 15 марта в 19:00 по МСК на ютуб-канале - "Функциональное программирование как парадигма: цели, способы, применимость". Рассказывает разработчик и преподаватель Hexlet Алексей Пирогов.

Трансляция доступна по ссылке https://youtu.be/0GX4JRAGEzc. Подписывайся на канал и ставь колокольчики, чтобы не пропустить!

💡 БОНУС для слушателей: на вебинаре расскажем, как выиграть билет на SECON'19.
Рубрика "ссылочки от читателей": http://themagicsmoke.ru/courses/stm32/

По ссылке можно найти объемный и всеохватывающий курс по работе с микроконтроллерами STM32. Описывается и работа с самими м/к и взаимодействие с популярной периферией, и внутреннее устройство микроконтроллеров - материала действительно много!

#learning #electronics #stm32
Manning выпустили новую бесплатную книжку: https://www.manning.com/books/exploring-haskell

По сути это несколько глав из книги по основам #haskell и одна глава из книги для продолжающих (от @bravit111). Главы подобраны неплохо, "почувствовать вкус" дают :)

#book
Раз уж так сталось, что я теперь преподаватель на Hexlet и буду поднимать там направление обучению #python, то пропиарю бесплатный дочерний ресурс с курсами по "самым основам": https://code-basics.ru

На CodeBasics есть курс по Python за моим авторством, а ещё начал формироваться курс по #racket (моё участие в его наполнении пока довольно скромное, но то ли ещё будет!). Курс по Racket не совсем новичковый, он в основном расчитан на тех, кто уже с программированием знаком - "второй курс", можно сказать - но и особой сложности не ожидается, "можно давать детям" :)

Приглашаю бетатестить это всё. Можно писать комменты к урокам, а можно и в гитхаб реквестить!

#learning
Ох, и тяжко курс по #racket делать! Даже вводный. А всё потому, что терминологии много необычной! Зато весело :) Перелопатил и причесал базовые уроки, скоро больше "мяса" будет.

----------

Пока же рекомендую посмотреть, как на Racket "делают вебчик":
Continue: Web Applications in Racket

Подход, как водится, интересный. Мягко говоря :) И если генерацию HTML из S-expressions ещё можно себе представить, коли хоть раз видел уже подобное в других лиспоподобных языках, то подход к управлению состоянием абсолютно прелестный и абсолютно "схематичный" - continuations!

Исторически в Scheme (а поэтому и в Racket) машинерия для CPS (Continuation-passing Style) присутствовала из коробки, наряду с оптимизацией хвостовых вызовов. Поэтому библиотек, использующих этот подход, для Racket написано немало.

Вот и web-server-lib такая. Мы описываем разметку страницы в виде функции, а к ссылкам прикрепляем continuations, содержащие рекурсивные вызовы этой функции для всех состояний(!), в которые можно перейти из текущего!

Т.о. состояние не покидает функцию, а продолжает жить между вызовами оной. И более того, для каждой сессии в браузере состояние у "вьюхи" по умлочанию будет своё! Библиотека сама на себя берёт заботу о сессиях и coockies.

Разумеется, можно развить приложение до использования глобального состояния, в т.ч. отказаться от CPS вообще, но с развлекательно-познавательной точки зрения интересен как раз искоробочный подход на базе продолжений.
Вот собственно пример из туториала (я бы на let сделал вместо локальных define, но это такой старый schema style). В остальном - один continuation другим погоняет :) Но для stateful проложения вполне компактно.
Смотрите, какая прелесть!

Это Circuit Playground Express - платка от AdaFruit в их любимом исполнении (круглая). На борту
- неопиксели (куда уж без них?)
- микрофон
- пищалка
- датчик температуры
- датчик освещённости
ну и по мелочи всякое вроде светодиода "на помигать" и пары кнопок.

Мозги - Cortex M0 (атмеловский ATSAMD21) + 2МБ флеша (для CircuitPython, о котором я ещё напишу!)

#electronics #python
https://cdn-learn.adafruit.com/assets/assets/000/054/695/large1024mp4/robotics___cnc_Stumble-hero_v2.mp4?1527705481

А вот проектик на базе этой платы. Схема движения не новая, но этот конкретный образчик ну очень мил!
Так вот, CircuitPython, это форк MicroPython, который AdaFriut отпочковали, чтобы поддержать программно свои образовательные инициативы в виде железок вроде вышеупомянутой Circuit Playground Express.

Проект CPy (это официальный акроним, есто что) нацелен на ещё большее упрощение и понижений порога входа для новичков в области разработки встраиваемых систем. Работает с платами на базе "мозжечков" M0 и M4, т.к. именно они стоят на адафрутовых платках. Также поддерживаются ESP8266, а вот другие камушки пока в пролёте, поэтому не факт, что я смогу завести BBC:MicroBit в связке с CPy (была мысль такое провернуть).

Насколько я понял, новичкам предлагается использовать в качестве визуальной части среды разработки редактор Mu (это ещё одна интересная штука, которую я планирую попробовать). Выбор разумный, одобряю. И у меня есть смутное подозрение, что редактор для MicroPython на сайте BBC:MicroBit, это всё тот же Mu :) Заявлено, что Mu работает с MicroBit "из коробки", поэтому хотя бы тут проблем у меня быть не должно, надеюсь.

P.S. Как потыкаю Mu, напишу об этом.

#diy #electronics #python #micropython #microbit #esp8266
Кинтайская инженерная мысль частенько удивляет. На это раз этим!

На одной плате форм-фактора #arduino сразу и привычная AVR'ка стоит и #esp8266. И более того, вторая здень не только в роли "WiFi over UART" может выступать, как это часто бывает - ESP может быть главной в связке SOC+MCU! На платке есть блок переключателей, которым можно коммутировать эти два мозга друг с другом и с программатором (USB-UART на CH340). Т.о. можно и на #nodemcu эту железку попрограммировать и на #micropython, и по-старинке на Wiring, конечно же :)

P.S. Давно думаю, чем бы мне мою старушку UNO заменить (не то чтобы она плохая, но хочется чего-то пофичастее), а тут такая красота!

P.P.S. Вот бы они ещё "Мегу" выпустили с ESP на борту - это ж какая прорва GPIO получилась бы!

#electronics
Я тут сижу и облизываюсь на железки на сайте TIndie - там, правда, есть на что посмотреть, если ты железячник - и вдруг вижу такое (см. первую картинку). Думаю, "размер как у #arduino Nano!". И название соответствующее - Interface Nanoshield (ага, "nano" в названии).

Проверил - "так и вышло". Это таки shield для плат в форм-факторе Nano. Я и раньше натыкался на подобные штуки на AliExpress, но мне всегда казалось, что мезонинная архитектура не очень удобна при таких размерах (особенно пугают торчащие разъёмы RJ45 на Ethernet Shield). Однако производитель платки на фото использует другой подход - все модули располагаются на плоскости бок-в-бок! Причём бывают как Base Boards (второе фото), предназначенные для установки в один из слотов той самой Arduino Nano, так и Base Boarduino (третье фото) - та же "база", но прямо с ATmega328 на борту, т.е. самостоятельная Arduino.

И, надо сказать, в таком виде форм-фактор - вполне привлекательный!

#electronics
Ну вот, похоже, напугал читателей железками :) Надо бы что-то программистское написать...
Я тут на PythonConf++ обретаюсь (увы, с докладом не срослось, поэтому просто посещаю). Если вдруг кто тоже тут будет - пингуйте!
Я люблю синтез музычки, а уж если оный сочетается с программирование в каких-то проектах - я просто счастлив!
Поэтому делюсь прекрасным - языком/средой Orca.

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

Выдавать музыку Orca умеет как в виде MIDI-сообщений, так и в виде сообщений по UDP-сокету. Вторым способом она может и сама управляться извне. И вообще по UDP касатку можно связать с другими интересными штуками, например с DotGrid или с SonicPi.

P.S. Orca открытая и кроссплатформенная.

#procedural_generation #music
🔥1
В дополнение к Orca (см.выше) существует синтезатор Pilot - простой 16-голосый синтезатор, управляемый по UDP. По UDP можно и играть ноты и менять параметры отдельных синтезаторов, а также управлять глобальными фильтрами вроде дисторшна и ревера. Звучит синтезатор довольно приятно и по-хорошему олдскульно - вот демонстрация.

P.S. Тоже открытая кроссплатформа.

#music
Forwarded from Хекслет
12 апреля в 19:00 по МСК на youtube-канале Hexlet пройдёт интервью с тимлидом и ФП-адвокатом в Evrone Павлом Аргентовым. Тема интервью - FP||!FP на работе.

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

Ведущий интервью - Алексей Пирогов, Hexlet.

Трансляция доступна по ссылке: https://youtu.be/P1YWeLJCarI. Подписывайтесь на канал и ставьте колокольчик, чтобы не пропустить.