Forwarded from Хекслет
12 апреля в 19:00 по МСК на youtube-канале Hexlet пройдёт интервью с тимлидом и ФП-адвокатом в Evrone Павлом Аргентовым. Тема интервью - FP||!FP на работе.
Обсудим, что из практик функционального программирования стоит (и стоит ли) тащить в код на мейнстримовых ООП языках.
Ведущий интервью - Алексей Пирогов, Hexlet.
Трансляция доступна по ссылке: https://youtu.be/P1YWeLJCarI. Подписывайтесь на канал и ставьте колокольчик, чтобы не пропустить.
Обсудим, что из практик функционального программирования стоит (и стоит ли) тащить в код на мейнстримовых ООП языках.
Ведущий интервью - Алексей Пирогов, Hexlet.
Трансляция доступна по ссылке: https://youtu.be/P1YWeLJCarI. Подписывайтесь на канал и ставьте колокольчик, чтобы не пропустить.
Опять буду вебинарить. На этот раз - в режиме диалога! Заодно новый микрофон опробую
Forwarded from Хекслет
18 апреля в 19:00 на канале Hexlet стартует стрим с преподавателем профессии "Python-разработчик" Алексеем Пироговым. Что будет - код в прямом эфире и рассказ про Elm.
Ссылка на стрим: https://youtu.be/M-iZOAnlTBM.
Подписывайтесь на канал и ставьте колокольчик.
Ссылка на стрим: https://youtu.be/M-iZOAnlTBM.
Подписывайтесь на канал и ставьте колокольчик.
Антон Холомьёв (@anton_kho) поделился свежим видео: https://www.youtube.com/watch?v=0np4mOkfDgE
Антон - автор "Учебника по Haskell" и хаскельной же обёртки для CSound (CSound - это такой движок для программного синтеза звука), а по ссылке можно как раз понаблюдать работу CSound Expressions под управлением MIDI-контроллера.
Как мне кажется, demo получилось очень показательное. Надеюсь, что кого-то оно сподвигнет таки попрограммировать музычку на Haskell.
#haskell #procedural_generation #music
Антон - автор "Учебника по Haskell" и хаскельной же обёртки для CSound (CSound - это такой движок для программного синтеза звука), а по ссылке можно как раз понаблюдать работу CSound Expressions под управлением MIDI-контроллера.
Как мне кажется, demo получилось очень показательное. Надеюсь, что кого-то оно сподвигнет таки попрограммировать музычку на Haskell.
#haskell #procedural_generation #music
YouTube
Clock shuffle (csound-expression live demo)
The video is a live demo of midi-synthesizer that was made with haskell library csound-expression and synth Csound.
The synthesyzer is a continuous sound object that is controlled with novation controller. All transitions are made with knobs. So it creates…
The synthesyzer is a continuous sound object that is controlled with novation controller. All transitions are made with knobs. So it creates…
Принёс немного прелестной дичи: язык legit (спасибо за наводку, дорогой некто).
Legit - эзотерический язык программирования, программа на котором кодируется структурой git-репозитория!
Язык, как водится, стековый, активно пользует гитовы теги как именованные метки, умеет простой ввод-вывод. А ещё - компилируется в LLVM! Да, помимо интерпретатора есть ещё и транслятор в LLVM IR, так что можно даже исполняемый бинарник получить
Позабавило одно интересное свойство программ на Legit, цитирую:
A fun consequence of programs defined by a Git history is that you can’t properly track versions, because they already are Git repositories. All you can do is force-push a new version to GitHub.
На мой взгляд, это прекрасно!
#programming #fun
Legit - эзотерический язык программирования, программа на котором кодируется структурой git-репозитория!
Язык, как водится, стековый, активно пользует гитовы теги как именованные метки, умеет простой ввод-вывод. А ещё - компилируется в LLVM! Да, помимо интерпретатора есть ещё и транслятор в LLVM IR, так что можно даже исполняемый бинарник получить
:)Позабавило одно интересное свойство программ на Legit, цитирую:
A fun consequence of programs defined by a Git history is that you can’t properly track versions, because they already are Git repositories. All you can do is force-push a new version to GitHub.
На мой взгляд, это прекрасно!
#programming #fun
blinry.org
legit
Git commits as an esoteric programming language
🤔1
Forwarded from Хекслет
24-25 мая в Казани пройдёт конференция по функциональному программированию FPURE. 25 докладов, 2 воркшопа, и среди докладчиков преподаватель Hexlet Алексей Пирогов. Тема его доклада: "Функциональный дизайн и паттерны ФП".
Регистрируйся для участия здесь: http://amp.gs/U9Yn
Регистрируйся для участия здесь: http://amp.gs/U9Yn
Фух, перевёл-таки свой пакетик tea-combine на elm-0.19!
Увы, без инфиксных операторов eDSL стал похуже выглядеть, но тут уже ничего не попишешь, как говорится.
#elm #library
Увы, без инфиксных операторов eDSL стал похуже выглядеть, но тут уже ничего не попишешь, как говорится.
#elm #library
Хороший доклад про внедрение #elm, а следом и #haskell в рабочий процесс: https://www.youtube.com/watch?v=5CYeZ2kEiOI
Описаны цели и профиты от внедрения, но доклад не останавливается на этом. Говорится и про проблемы найма сотрудников, и про сложность обучения — и самое главное — про то, как преодолевать такие трудности.
Отдельно можно отметить подход к внедрению новой технологии, который в NoRedInk использовали при рассмотрении Elm и Haskell (в качестве замены для React и RoR соответственно):
- взять некритичную но реальную задачу и переписать с использованием новой штуки,
- довести до production,
- взвесить плюсы и минусы смены инструментария.
Кмк, вполне адекватно и масштабируемо на любые "внедрятельные" мероприятия!
Описаны цели и профиты от внедрения, но доклад не останавливается на этом. Говорится и про проблемы найма сотрудников, и про сложность обучения — и самое главное — про то, как преодолевать такие трудности.
Отдельно можно отметить подход к внедрению новой технологии, который в NoRedInk использовали при рассмотрении Elm и Haskell (в качестве замены для React и RoR соответственно):
- взять некритичную но реальную задачу и переписать с использованием новой штуки,
- довести до production,
- взвесить плюсы и минусы смены инструментария.
Кмк, вполне адекватно и масштабируемо на любые "внедрятельные" мероприятия!
YouTube
From Rails to Elm and Haskell - Richard Feldman
When I joined NoRedInk in 2013, we had a typical Ruby on Rails web application. In 2015 we introduced Elm, a pure functional programming language for building Web UIs, and it spread like wildfire to become our primary tool for front-end programming. In 2019…
Добрался наконец до Wasmer/WAPM/Rust и накидал учебный проектик.
О чем это всё? Итак, есть такая штука — WASI, интерфейс для взаимодействия WebAssembly-кода с системой без участия браузера. У WASI есть не несколько реализаций, одну из которых я и решил попробовать. Wasmer — это универсальный рантайм WebAssembly, совместимый со спецификацией WASI и имеющий свой пакетный менеджер WAPM.
Wasmer позволяет запускать
Rust же, в свою очередь, в своей nigtly-ипостаси умеет собирать
Это я и решил проверить и получил в итоге упомянутый в начале проектик. Отмечу, что весь инструментарий поставился и заработал сразу без каких-либо проблем — очень неплохо!
Программка реализована простейшая, но использует внешнюю библиотеку из Crates для вывода цветного текста, так что будет интересно проверить работоспособность бинарника на Windows.
#wasm
О чем это всё? Итак, есть такая штука — WASI, интерфейс для взаимодействия WebAssembly-кода с системой без участия браузера. У WASI есть не несколько реализаций, одну из которых я и решил попробовать. Wasmer — это универсальный рантайм WebAssembly, совместимый со спецификацией WASI и имеющий свой пакетный менеджер WAPM.
Wasmer позволяет запускать
.wasm-бинарники на различных ОС — Linux, Windows, macOS — без перекомпиляции и потенциально может быть хорошим вариантом для "ультрапереносимых" программ. Написан на #rust, что отдельно радует.Rust же, в свою очередь, в своей nigtly-ипостаси умеет собирать
.wasm-бинарники. Которые затем можно опакетить WAPM и/или запустить на Wasmer.Это я и решил проверить и получил в итоге упомянутый в начале проектик. Отмечу, что весь инструментарий поставился и заработал сразу без каких-либо проблем — очень неплохо!
Программка реализована простейшая, но использует внешнюю библиотеку из Crates для вывода цветного текста, так что будет интересно проверить работоспособность бинарника на Windows.
#wasm
GitHub
GitHub - astynax/hello-wasi: Wasmer/Rust example
Wasmer/Rust example. Contribute to astynax/hello-wasi development by creating an account on GitHub.
Записали с Никитой Соболевым подкаст про всякое околопитоновое: пакеты и пакетирование, безопасность этого всего.
В этой ипостаси (со мной в роли ведущего и с уклоном в IT таки) подкаст ещё только возрождается, так что нужно будет и над звуком поработать и над "отбивками". Но первый блин, хоть и комковат, но на оладушек потянет!
#podcast #python
В этой ипостаси (со мной в роли ведущего и с уклоном в IT таки) подкаст ещё только возрождается, так что нужно будет и над звуком поработать и над "отбивками". Но первый блин, хоть и комковат, но на оладушек потянет!
:)
P.S. Помучились с настройкой записи и вообще общения изрядно. Mumble на мною поднятом сервере на DigitalOcean позволил сконнектиться, но услышать друг друга нам так и не удалось. В итоге записали беседу силами бота в Discord — модно, молодёжно :)#podcast #python
ru.hexlet.io
#Hexlet Podcast: Пакеты, репозитории, безопасность
Представляем вам новый формат подкаста Hexlet. Ведущий подкаста - Алексей Пирогов. В гостях Никита Соболев.
👍1
Анонсировали тут play.date — портативную консоль интересного дизайна.
Что же это за железка? Портативная игровая консоль, само собой, но не "очередная", к счастью. Экран монохромный, кнопок мало, рукоятка как у шарманки сбоку! Вот в этой рукоятке и заключается вся инаковость — вращение оной управляет самим игровым процессом (да, игры у
P.S. Я, как увидел первую картинку в интернете, сразу пошел на сайт и уже на первом экране подумал, "что-то уж больно знакомо всё — цвета, углы, кнопки, крутилка". Так и вышло (с):
> By the way, the crank came from our friends at Teenage Engineering. They were our partners for Playdate’s design. Isn’t it nice?
Nice, indeed! Ждём продолжения!
#gaming #console
Что же это за железка? Портативная игровая консоль, само собой, но не "очередная", к счастью. Экран монохромный, кнопок мало, рукоятка как у шарманки сбоку! Вот в этой рукоятке и заключается вся инаковость — вращение оной управляет самим игровым процессом (да, игры у
play.date будут свои, ориентированные именно на такое управление). Советую пройти на страницу и посмотреть анимацию, демонстрирующую (увы, очень поверхностно) этот самый игровой процесс — смотрится хорошо и необычно.P.S. Я, как увидел первую картинку в интернете, сразу пошел на сайт и уже на первом экране подумал, "что-то уж больно знакомо всё — цвета, углы, кнопки, крутилка". Так и вышло (с):
> By the way, the crank came from our friends at Teenage Engineering. They were our partners for Playdate’s design. Isn’t it nice?
Nice, indeed! Ждём продолжения!
#gaming #console
play.date
Playdate. Order now!
It’s yellow. It fits in your pocket. There’s a crank. It comes with 24 free games to get you started. Say hi to Playdate from Panic.
Forwarded from Хекслет
Преподаватель Хекслета Алексей Пирогов выступил на конференции FPURE в Казани. О том, как прошла конференция: http://amp.gs/dLph
Провёл второй выпуск подкаста. В этот раз про железки поговорили: #arduino, #raspberrypi, #fpga — обо всём понемногу.
Ничего нового для тех, кто "в теме", не прозвучало, т.к. цель была — познакомить с электроникой желающих приобщиться, но не знающих, как. Надеюсь, кого-то да заинтересуем!
Гость подкаста, Айнур, представлял компанию iArduino, про железки которой я уже рассказывал. У ник и канальчик есть.
Ничего нового для тех, кто "в теме", не прозвучало, т.к. цель была — познакомить с электроникой желающих приобщиться, но не знающих, как. Надеюсь, кого-то да заинтересуем!
Гость подкаста, Айнур, представлял компанию iArduino, про железки которой я уже рассказывал. У ник и канальчик есть.
ru.hexlet.io
#Hexlet Podcast: Arduino, Raspberry Pi, FPGA и прочие "железки" - Блог - Hexlet
Вместе с Айнуром Сулеймановым, инженером из iArduino обсуждаем любительскую электронику, говорим об экосистеме Arduino и Raspberry Pi, немного касаемся ПЛИС(FPGA).
Рассказываем, что электроника — это не страшно, с чего стоит начинать и куда двигаться дальше…
Рассказываем, что электроника — это не страшно, с чего стоит начинать и куда двигаться дальше…
Есть для #python такая библиотека, prompt_toolkit (я вроде как писал уже про неё?). Она позволяет создавать свои интерактивные командные оболочки с автодополнением, всплывающими меню, статусной строкой, богатыми средствами редактирования командной строки.
На базе toolkit создан отличный Python REPL, ptpython. IPython тоже перешёл на использование PT в какой-то момент — и это отлично, ибо унификация!
Но не #repl едиными жив PT. На нём сделаны
- pgcli, популярная командная оболочка к PostgreSQL,
- wharfee, оболочка для docker CLI (да, с автодополнением контейнеров, процессов, тегов!),
- Kube-shell, оболочка для Kubernetes.
Питонистам может быть интересен проект click-repl, который превращает любое приложение с CLI на базе замечательной click в интерактивную программу (добавляет команду
Есть даже shell полноценный: xonsh. Умеет и команды запускать и автодополнять всё, от ключей командной строки и путей до страниц в man. По совместительству является ещё и Python REPL — позволяет сделать
Из интересных и курьёзных проектов PT используют
- pymux, terminal multiplexer (с интересными отличиями от tmux),
- pyvim, "pure Python vim clone" (!)
P.S. На страничке библиотеки (первая ссылка) вы можете найти длинный список других проектов, использующих PT. Советую посмотреть!
На базе toolkit создан отличный Python REPL, ptpython. IPython тоже перешёл на использование PT в какой-то момент — и это отлично, ибо унификация!
Но не #repl едиными жив PT. На нём сделаны
- pgcli, популярная командная оболочка к PostgreSQL,
- wharfee, оболочка для docker CLI (да, с автодополнением контейнеров, процессов, тегов!),
- Kube-shell, оболочка для Kubernetes.
Питонистам может быть интересен проект click-repl, который превращает любое приложение с CLI на базе замечательной click в интерактивную программу (добавляет команду
repl, с очевидным поведением).Есть даже shell полноценный: xonsh. Умеет и команды запускать и автодополнять всё, от ключей командной строки и путей до страниц в man. По совместительству является ещё и Python REPL — позволяет сделать
ls, а результат вызова прямо в list comprehension обработать!Из интересных и курьёзных проектов PT используют
- pymux, terminal multiplexer (с интересными отличиями от tmux),
- pyvim, "pure Python vim clone" (!)
P.S. На страничке библиотеки (первая ссылка) вы можете найти длинный список других проектов, использующих PT. Советую посмотреть!
В блоге проекта Jupyter недавно написали о voilà — инструменте, превращающем .ipynb-блокнот в самостоятельное web-приложение.
Для запуска приложения нужно всего лишь "скормить" файл программе
Помимо отображения блокнотов, voilà предоставляет средства настройки этого отображения через встроенный механизм шаблонов. Например, можно вывести dashboards с "живыми" графиками (см gif-ку), и даже Vue'фицировать его и получить rich GUI на стороне клиента!
Поддерживаются любые Jupyter kernels, поэтому программировать можно не только на #python, но и на #haskell (IHaskell) — красота!
Сейчас авторы ведут работу над интеграцией voilà с JupyterHub/JupyterLab. Так что скоро можно будет опубликовать блокнот в hub, и вуаля, интерактивное приложение готово!
Для запуска приложения нужно всего лишь "скормить" файл программе
voila и приложение откроется в браузере. На странице будут отображены текстовые блоки с разметкой, виджеты, графики. Код же по-умолчанию будет скрыт. Пользователь приложения не сможет изменять код и выполнять свой, но виджеты, подразумевающие интерактивность, продолжат работать интерактивно!Помимо отображения блокнотов, voilà предоставляет средства настройки этого отображения через встроенный механизм шаблонов. Например, можно вывести dashboards с "живыми" графиками (см gif-ку), и даже Vue'фицировать его и получить rich GUI на стороне клиента!
Поддерживаются любые Jupyter kernels, поэтому программировать можно не только на #python, но и на #haskell (IHaskell) — красота!
Сейчас авторы ведут работу над интеграцией voilà с JupyterHub/JupyterLab. Так что скоро можно будет опубликовать блокнот в hub, и вуаля, интерактивное приложение готово!
👍1
Напишу-ка я про креативность в условиях ограничений того или иного толка.
В детстве у меня было всегда плоховато с компьютерным железом — оно у меня всегда было "видавшее виды" и "почти отжившее своё". Но именно из-за того, что я не мог использовать свою технику, чтобы, подобно моим сверстниками, заниматься современными цифровыми развлечениями, я развлекал себя сам с помощью BASIC, Pascal, Delphi — так я и стал программистом
Так что тема творчества в "стеснённых обстоятельствах". Поэтому и здесь я пишу про микроконтроллеры вместо больших железок и про всякие #pico8. И почитать про такое я тоже люблю.
Поделюсь парой статей от одного автора, которого почитываю. Первая статья рассказывает про 8-bit демосцену: кратко описаны классические представители соответствующего "железа" и приведены записи демок для каждого экспоната — отличный материал для тех, кто хочет познакомиться с демосценой! Ещё одна статья рассказывает о демосцене применительно к опыту автора в использовании PICO-8 (ну как же я мог о таком не написать?
А вот страничка с прекраснейшей презентацией к докладу, в котором автор рассказывает о своём опыте создания проектов во время поездок в автобусах (без интернета, мощного компьютера, отвлекающих факторов и т.п.)
В детстве у меня было всегда плоховато с компьютерным железом — оно у меня всегда было "видавшее виды" и "почти отжившее своё". Но именно из-за того, что я не мог использовать свою технику, чтобы, подобно моим сверстниками, заниматься современными цифровыми развлечениями, я развлекал себя сам с помощью BASIC, Pascal, Delphi — так я и стал программистом
:).Так что тема творчества в "стеснённых обстоятельствах". Поэтому и здесь я пишу про микроконтроллеры вместо больших железок и про всякие #pico8. И почитать про такое я тоже люблю.
Поделюсь парой статей от одного автора, которого почитываю. Первая статья рассказывает про 8-bit демосцену: кратко описаны классические представители соответствующего "железа" и приведены записи демок для каждого экспоната — отличный материал для тех, кто хочет познакомиться с демосценой! Ещё одна статья рассказывает о демосцене применительно к опыту автора в использовании PICO-8 (ну как же я мог о таком не написать?
;)) — есть и примеры кода парочки интересных визуальных эффектов ("демосценерских", как водится).А вот страничка с прекраснейшей презентацией к докладу, в котором автор рассказывает о своём опыте создания проектов во время поездок в автобусах (без интернета, мощного компьютера, отвлекающих факторов и т.п.)
:). Доклад очень понравился и вдохновил — прямо таки жажду подобного опыта. Хочу поехать в деревню с олдскульным ноутом и творить! Не поеду, конечно же, ибо ленив, но мечтать о таком хочется :^D.Я уже писал про конструктор "собери себе телефон" — MAKERphone. Вот ещё один телефон для самодельщиков: ZeroPhone.
Эта машинка уже посерьёзнее: работает #RaspberryPi Zero вместо ESP32, да и прочего обвеса побольше имеет на борту. Собрано всё в виде бутерброда, все модули взаимозаменяемы — скажем, модем 2G можно заменить на модем 3G. Красивого корпуса как у MAKERphone пока нет, но напечатают, думаю, скоро
Вольно перескажу идеи, заложенные в основу проекта:
- максимальная открытость (насколько это возможно),
- высокая ремонтопригодность,
- простота модификации как железа, так и ПО,
- возможность писать софт на #python (автор даже вынес это в отдельный пункт).
Это всё подчёркнуто ставится в противовес современным телефонам для широкого рынка, которые закрыты для изучения и модификации, да и о самостоятельном ремонте предлагают забыть.
Ну что же, посыл интересный, будем посмотреть!
Меня позабавил выбор устройств ввода и вывод: это мембранная цифровая клавиатура и графический OLED-экран низкого разрешения (128x64). Ведь Pi Zero может и полноценный рабочий стол показывать, а тут такое ретроградство! Зато так сильно более гиково, это уж точно
Эта машинка уже посерьёзнее: работает #RaspberryPi Zero вместо ESP32, да и прочего обвеса побольше имеет на борту. Собрано всё в виде бутерброда, все модули взаимозаменяемы — скажем, модем 2G можно заменить на модем 3G. Красивого корпуса как у MAKERphone пока нет, но напечатают, думаю, скоро
:)Вольно перескажу идеи, заложенные в основу проекта:
- максимальная открытость (насколько это возможно),
- высокая ремонтопригодность,
- простота модификации как железа, так и ПО,
- возможность писать софт на #python (автор даже вынес это в отдельный пункт).
Это всё подчёркнуто ставится в противовес современным телефонам для широкого рынка, которые закрыты для изучения и модификации, да и о самостоятельном ремонте предлагают забыть.
Ну что же, посыл интересный, будем посмотреть!
Меня позабавил выбор устройств ввода и вывод: это мембранная цифровая клавиатура и графический OLED-экран низкого разрешения (128x64). Ведь Pi Zero может и полноценный рабочий стол показывать, а тут такое ретроградство! Зато так сильно более гиково, это уж точно
:) UI реализован на ZPUI — форке библиотеки pyLCI, которую как раз и используют для создания пользовательских интерфейсов для Linux-машинок с такими вот экранами.