brain_dump_etc
Го, я создал! - https://www.twitch.tv/astynax2hs - https://discord.gg/tJvze5y5va На твиче запись с недельку пролежит. Там в основном мои страдания, так что я не стал запись выгружать куда-то. Или стоило?
В 13:00 GMT+4 тут же будет стрим про "hotkey managers и вопроизводимые постустановочные настройки ОС." Надеюсь, что будете в голосовой чат в Discord приходить общаться устно!
1🔥5
Shownotes к сегодняшней трансляции
—
Hotkey managers
1. AutoHotKey
- In Praise of AutoHotKey
- Learn AutoHotKey by stealing my scripts
2. Programmable HID devices - hardware hotkeys
- Modulino three-keys macro keyboard | Arduino Project Hub
- Num Pad Reborn As Stream Deck | Hackaday
- Linux Fu: The Cheap Macropad Conundrum | Hackaday
3. kmonad
4. Karabiner Element
- Complex Modifications
- sxhkd
Post-install OS setup, reproducibility
1. Windows XP Embedded
2. Unattended Setup (generator)
3. Nix
- Nix & NixOS | Declarative builds and deployments
- Nix Pills — a step-by-step tutorial
4. Guix
—
Запись на YouTube
—
Hotkey managers
1. AutoHotKey
- In Praise of AutoHotKey
- Learn AutoHotKey by stealing my scripts
2. Programmable HID devices - hardware hotkeys
- Modulino three-keys macro keyboard | Arduino Project Hub
- Num Pad Reborn As Stream Deck | Hackaday
- Linux Fu: The Cheap Macropad Conundrum | Hackaday
3. kmonad
4. Karabiner Element
- Complex Modifications
- sxhkd
Post-install OS setup, reproducibility
1. Windows XP Embedded
2. Unattended Setup (generator)
3. Nix
- Nix & NixOS | Declarative builds and deployments
- Nix Pills — a step-by-step tutorial
4. Guix
—
Запись на YouTube
🔥3
Завтра в обычное время будет очередной сеанс вещания телепередачи "Нескучная Дичь"!
Планирую рассказать про инструменты для создания развесистых TUI на разных стеках. Есть кое-какие мысли, которые хочется голосом проговорить, в идеале — в диалоге, конечно же 😉 Twitch и Discord те же, если что.
—
Вот запись и ссылки на упомянутые штуки:
- Brick (Haskell)
- Textual (Python)
- Bubble Tea (Golang)
- Ink (JS/TS)
Планирую рассказать про инструменты для создания развесистых TUI на разных стеках. Есть кое-какие мысли, которые хочется голосом проговорить, в идеале — в диалоге, конечно же 😉 Twitch и Discord те же, если что.
—
Вот запись и ссылки на упомянутые штуки:
- Brick (Haskell)
- Textual (Python)
- Bubble Tea (Golang)
- Ink (JS/TS)
🔥8💩2
Сегодня дорабатывал давнюю свою поделку в виде браузерной игры про схлопывание групп фишек с осыпанием остального.
Переделку запросила дочка, мол, вот бы сделать так, чтобы были сердечки моих любимых цветов (изначально были красные, синие и зелёные квадраты).
То, что игра сделана на Elm (тут код), сильно помогло — такой замерший в развитии язык хорош, когда проект надо пересобирать редко, но спустя годы 🌚
И всё же я не могу не пожаловаться на то, что elm-language-server, который теперь, оказывается, нужен не только для авто-дополнения, но даже для проверки типов, не завёлся у меня от слова совсем! Я помучился над тем, чтобы
В итоге плюнул на всё, дёргал
P.S. сердечки склеены из двух кружочков и квадрата, пока сойдёт и так. Как придумаю способ сплайн описать в терминах той библиотеки, которую я использовал в проекте, сделаю что-то покрасивее 😎
Переделку запросила дочка, мол, вот бы сделать так, чтобы были сердечки моих любимых цветов (изначально были красные, синие и зелёные квадраты).
То, что игра сделана на Elm (тут код), сильно помогло — такой замерший в развитии язык хорош, когда проект надо пересобирать редко, но спустя годы 🌚
И всё же я не могу не пожаловаться на то, что elm-language-server, который теперь, оказывается, нужен не только для авто-дополнения, но даже для проверки типов, не завёлся у меня от слова совсем! Я помучился над тем, чтобы
eglot (часть Emacs, отвечающая за LSP) увидел таки elm-language-server, установленный нодой, доставленной на машину через nvm. Но когда сервер завёлся таки, то подсветил мне весь код как "unexpected content" — буквально целый файл разделил на диапазоны в один символ длиной и про каждый ошибку выдал 🙈 Я сходит в issues к eglot и elm-language-server — безуспешно.В итоге плюнул на всё, дёргал
elm make, смотрел на выхлоп, правил. За неимением авто-дополнения читал доки ("как животное" как сказали бы некоторые) 🥴 Но руки-то помнят, так что справился!P.S. сердечки склеены из двух кружочков и квадрата, пока сойдёт и так. Как придумаю способ сплайн описать в терминах той библиотеки, которую я использовал в проекте, сделаю что-то покрасивее 😎
🔥8
Через пару часов постримлю Elm. Буду дальше ковырять свою игру из поста выше. В процессе можно будет пообщаться на вольную тему, если кто-то придёт в голосовой чат :)
🔥7👍1
Вчера получилось вполне неплохо, кажется. С цветами в HSL поигрался, векторы порисовал, явных затыков не было в кои-то веки!
Запись прикладываю. Для тех, кто стрим смотрел: на записи звук я подчистил от артефактов, в следующий раз возьму петличку нормальную.
https://www.youtube.com/watch?v=W5r4K2Uaznw
Запись прикладываю. Для тех, кто стрим смотрел: на записи звук я подчистил от артефактов, в следующий раз возьму петличку нормальную.
https://www.youtube.com/watch?v=W5r4K2Uaznw
YouTube
Сеанс кодирования на Elm: дорабатываю свою браузерную игрушку
Код живёт тут: https://github.com/astynax/elm-samegame
🔥12
Пишу то, что откладываю уже давно, потому что стесняюсь вообще заводить про такое речь. Но и не написать не могу, уже приличное количество людей говорит мне, что давно пора.
Итак. Раз уж вы это читаете, то вас мой контент в известной степени развлекает. Мне тоже приятно и интересно всё то, что я тут делаю. Но, увы, мне нынче сложно быть самодостаточным в силу определённых обстоятельств, поэтому я собираюсь вкатиться в получение добровольных donations (заодно придётся разобраться, как это делается).
Вот тут я накидал форму, где можно отметить, как бы вы стали меня поддерживать (и стали бы вообще). И вообще понаписать ваши мысли, если вдруг захочется.
Спасибо за внимание!
Итак. Раз уж вы это читаете, то вас мой контент в известной степени развлекает. Мне тоже приятно и интересно всё то, что я тут делаю. Но, увы, мне нынче сложно быть самодостаточным в силу определённых обстоятельств, поэтому я собираюсь вкатиться в получение добровольных donations (заодно придётся разобраться, как это делается).
Вот тут я накидал форму, где можно отметить, как бы вы стали меня поддерживать (и стали бы вообще). И вообще понаписать ваши мысли, если вдруг захочется.
Спасибо за внимание!
Google Docs
Копилка для astynax
Готовы ли вы поддержать меня донейшнами за что-то или просто так?
👍5
Такое вот ещё есть, это уже что-то вроде сопроводительного письма:
Ищу парт-тайм удалённо в DevRel / Developer Advocacy / контенте — там, где нужно говорить с разработчиками человеческим языком.
Что умею и делаю регулярно:
- писать длинные тексты, туториалы, курсы — маленькие и не очень
- (со)вести подкасты
- вести вебинары
- выступать с докладами (пока удалённо или в Армении)
Тут меня многие знают — надеюсь, при необходимости сможете подтвердить, что я не только говорю, но и довожу вещи до результата 🙂
Почему парт-тайм: в ближайшее время у меня будут ограничения по поездкам и жёсткому графику — семье я нужен довольно часто. При этом удалённый формат и понятный объём задач мне отлично подходят.
В большие классические DevRel-роли с полной загрузкой я сейчас не вписываюсь, а частичную разработку искать сложнее и, честно говоря, сейчас больше хочется делать именно контент и работать с комьюнити.
Если у вас есть задачи, которые не тянут на фуллтайм DevRel, но которые важно и жалко бросать — буду рад обсудить!
🔥5
Есть мысль завтра на стриме поковырять Rust на предмет создания основы для текстовых игр и демок: есть у меня один проект на уме, хочу сделать его blazingly fast!
Стримить буду днём, вечера у меня пока не годятся для стриминга 🙈 Но запись тоже сделаю и на YouTube выложу, предыдущие серии люди смотрят, оказывается 😉
Хочу завтра научиться "рисовать" в терминале целые экраны за раз, для чего буду осваивать Termwiz — это такая библиотека для быстрой (как уж без этого?) работы с текстовым выводом. Выглядит достаточно низкоуровнево, но зато используется в Wezterm — это который "ужасающе быстрый" ™️ эмулятор терминала! Уж, наверное, оно мне подойдёт для моих скромных нужд 😎
В программе ожидаются:
- чтение документации по-диагонали
- глупые ошибки
- буксование на ровном месте
- моё мнение обо всём этом
Как-то так. Если у вас есть идеи вокруг этой темы, призываю в комментарии! Так, глядишь, и до написания рогалика своего доберусь 🌚
Стримить буду днём, вечера у меня пока не годятся для стриминга 🙈 Но запись тоже сделаю и на YouTube выложу, предыдущие серии люди смотрят, оказывается 😉
Хочу завтра научиться "рисовать" в терминале целые экраны за раз, для чего буду осваивать Termwiz — это такая библиотека для быстрой (как уж без этого?) работы с текстовым выводом. Выглядит достаточно низкоуровнево, но зато используется в Wezterm — это который "ужасающе быстрый" ™️ эмулятор терминала! Уж, наверное, оно мне подойдёт для моих скромных нужд 😎
В программе ожидаются:
- чтение документации по-диагонали
- глупые ошибки
- буксование на ровном месте
- моё мнение обо всём этом
Как-то так. Если у вас есть идеи вокруг этой темы, призываю в комментарии! Так, глядишь, и до написания рогалика своего доберусь 🌚
docs.rs
termwiz - Rust
Terminal Wizardry
🔥12👍2😱2💩1
Вот запись сегодняшнего сеанса приручения Termwiz. Как и ожидалось, в основном я с либой боролся, а не прямо что-то полезное сразу делал. При этом цель-то моя изначальная как раз достигнута: теперь я знаю, как с помощью этой штуки выводить на экран кучу цветных буковок за Rust 😎
Может быть стоит зелёненький текст "как в Матрице" под запись закодировать. Или даже сразу изначальную поделку свою попилю как-нибудь, но на это надо будет заложить сильно больше времени, всё же там и алгоритмы будут и анимация 🌚
Может быть стоит зелёненький текст "как в Матрице" под запись закодировать. Или даже сразу изначальную поделку свою попилю как-нибудь, но на это надо будет заложить сильно больше времени, всё же там и алгоритмы будут и анимация 🌚
YouTube
Кодирование на Rust: первое знакомство с библиотекой Termwiz
Разбирался с основами Termwiz чтобы в будущем мочь реализовывать с её помощью приложения, интенсивно работающие с терминалом.
🔥9
Сегодня хочу потранслировать и записать ролик про сравнение разных штук для построения CLI. Заодно вспомню, как это делается в Haskell и Rust, и сравню с click/typer в Python. Может быть ещё что-то для сравнения возьму, если вспомнится.
Тема перекликается с моим проектом, про который я недавно рассказывал.
Я вообще люблю и CLI, и DSL, а тут разговор будет про применение вторых для описания первых!
UPDATE:
Вот запись, и вот ссылки на либы:
- https://hackage.haskell.org/package/optparse-applicative
- https://hackage.haskell.org/package/optparse-generic
- https://crates.io/crates/clap
- https://docs.python.org/3/library/argparse.html
- https://click.palletsprojects.com/
- https://typer.tiangolo.com
Тема перекликается с моим проектом, про который я недавно рассказывал.
Я вообще люблю и CLI, и DSL, а тут разговор будет про применение вторых для описания первых!
UPDATE:
Вот запись, и вот ссылки на либы:
- https://hackage.haskell.org/package/optparse-applicative
- https://hackage.haskell.org/package/optparse-generic
- https://crates.io/crates/clap
- https://docs.python.org/3/library/argparse.html
- https://click.palletsprojects.com/
- https://typer.tiangolo.com
Telegram
brain_dump_etc
Обычные статейки в процессе, читателей прошу не пугаться! Например, надо уже про Fleet написать, раз его теперь закапывают, а ведь там и мой код есть!
Однако не могу не отметить, что и общение голосом в прошлый раз слушателям понравилось 😎 Во вторник буду…
Однако не могу не отметить, что и общение голосом в прошлый раз слушателям понравилось 😎 Во вторник буду…
1🔥7👍5🤔1
Погода хорошая, я вышел погулять и записал прямо на улице мини-подкаст!
Тема: "Mictonaut sucks, Django is for hacks!" 🌚 и про агентское вибрирование ещё, хе-хе.
Тема: "Mictonaut sucks, Django is for hacks!" 🌚 и про агентское вибрирование ещё, хе-хе.
👍4
Как-то в далёком 2022 я вёл серию сеансов по написанию на Haskell учебного проекта на стыке тематик и сюда про это писал. Проект LHX представляет собой построчный процессор текста на манер awk: вы пишете шаблон, который из набора полей на входе делает какой-то выходной текст.
В рамках серии было написано само ядро и несколько интерфейсов для него: CLI, TUI и аж три штуки на Web-технологиях — синхронная классика, полу-реактивщина на HTMX и реактивщина с FRP 🤓 Ни один из вариантов, кроме CLI, не ушёл дальше демонстрации подхода, но такова была цель всего проекта — посмотреть на Haskell в разных прикладных областях.
Буквально сегодня я обновил зависимости, обрадовался, что за четыре года ничего не сломалось и всё сходу скомпилировалось 😎 Потом немного погрустил по поводу того, что TUI всё ещё не доделан. Зато вспомнил, сколько телодвижений нужно делать при написании TUI на библиотечке brick — да, не катастрофически много, но всё ещё многовато для комфортного написания чего-то "наколеночного" 🙃
Недавно я вещал про всякие движки для TUI, захотелось сегодня повещать про Textual — это библиотечка для Python, позволяющая достаточно богатые визуально штуки делать с известным комфортом, не притаскивая при этом React в терминал (да, я про тебя, Ink, говорю!).
Итак, примерно через час, там же в Twitch, буду смотреть, действительно ли в Textual легко всякие многопанельные и многоэкранные "full-screen" интерфейсы делать. По документации судя, всё должно быть достаточно прямолинейно, но грабли всё равно ожидаются 😉
UPDATE
Думаю, получилось вполне неплохо! Разобрался с системой событий, лайаутами, работой с состоянием — всё очень даже удобно!
- Запись
- Код
В рамках серии было написано само ядро и несколько интерфейсов для него: CLI, TUI и аж три штуки на Web-технологиях — синхронная классика, полу-реактивщина на HTMX и реактивщина с FRP 🤓 Ни один из вариантов, кроме CLI, не ушёл дальше демонстрации подхода, но такова была цель всего проекта — посмотреть на Haskell в разных прикладных областях.
Буквально сегодня я обновил зависимости, обрадовался, что за четыре года ничего не сломалось и всё сходу скомпилировалось 😎 Потом немного погрустил по поводу того, что TUI всё ещё не доделан. Зато вспомнил, сколько телодвижений нужно делать при написании TUI на библиотечке brick — да, не катастрофически много, но всё ещё многовато для комфортного написания чего-то "наколеночного" 🙃
Недавно я вещал про всякие движки для TUI, захотелось сегодня повещать про Textual — это библиотечка для Python, позволяющая достаточно богатые визуально штуки делать с известным комфортом, не притаскивая при этом React в терминал (да, я про тебя, Ink, говорю!).
Итак, примерно через час, там же в Twitch, буду смотреть, действительно ли в Textual легко всякие многопанельные и многоэкранные "full-screen" интерфейсы делать. По документации судя, всё должно быть достаточно прямолинейно, но грабли всё равно ожидаются 😉
UPDATE
Думаю, получилось вполне неплохо! Разобрался с системой событий, лайаутами, работой с состоянием — всё очень даже удобно!
- Запись
- Код
Telegram
brain_dump_etc
Вот уже некоторое время я занят тем, что провожу сеансы live coding с параллельным общением. Собираемся раз в неделю и потихоньку реализуем на #haskell проект LHX (Line Hyper-eXpander) — эдакий упрощённый awk(1) "для людей", перегоняющий один текст в другой…
1
Извините за перепост, случайно удалил тут, хотя собирался удалить из "сохранённых сообщений" — я там сначала пишу, потому что есть время на правки перед публикацией. А то в Telegram всё меньше Markdown-разметки работает, из Org просто так не экспортируешь уже, вот и приходится такие финты делать...
Но зато у меня всегда под рукой копия есть, могу восстановить контент, если понадобится! Вот бы ещё тут Undo был нормальный для таких деструктивных действий, как удаление публикации в канале...
Но зато у меня всегда под рукой копия есть, могу восстановить контент, если понадобится! Вот бы ещё тут Undo был нормальный для таких деструктивных действий, как удаление публикации в канале...
👍8
Гулял вчера по всяким нишевым сайтам от ссылки к ссылке. Маршрут был примерно такой:
Mastodon имени Devine Lu Linvega (одна из дуэта 100rabbits, про проекты которых я тут писал пару раз — смотри Orca, например — и за кем давно наблюдаю)
→ Hometown — форк Mastodon с интересными добавками, которые никогда не попадут в upstream
→ Список инстансов Hometown — тут уже чудесатее
→ Lurk.org — микро-тусовочка "around net- and computational culture and politics, proto- and post-free culture practices", прямо таки очень местечковое!
→ Их страничка со списками рассылок, раздел Eightycolumn про "People teaching/using/writing free software in art/sound/design context". Списки рассылок — это ретро, а тут ещё и FOSS + Art!
→ Подкаст "Safety Nets: Let Me Zine", "Episode 3: Interface, Relation, Connection, and Cloud Workout Done with dianaband". Тут пара междисциплинарных творцов из Кореи рассказывает про всякий self-hosting для новичков как повод собраться и пообщаться — я бы в такое вписался! Да и вообще, подкаст про zines, а я всё ещё лелею надежду сделать своих парочку!
---
Так вот, вот в подкасте прозвучало упоминание Wi-Fi Zine Throwies — и это такая милота! Представьте себе открытую точку доступа в WiFi, которая имеет какое-то нескучное название, а при подключении показывает вместо HTML-страницы для аутентификации маленький Zine!
Да, не каждый станет подключаться к неизвестным сетям, но кто-то таки поинтересуется, пусть и надев "печатки". Но ведь и sneakernet тоже предполагает некоторое доверие хотя бы своим навыкам по обеспечению цифровой гигиены 😜
И коробочки PirateBox, пусть и не просто выставляющие наружу zines, а поднимающие полноценный маленький стихийный Intranet, тоже обычно являются открытыми точками доступа. Экземпляры LibraryBox, как дружественный проект, то же таковы. Вот и выходит, что умение правильно и безопасно использовать открытые точки доступа в WiFi — полезный навык!
--
Без ворчания не получится в этот раз, увы 🙈 Постарался оставить оное напоследок, за сим начинаю.
Меня радует то, что такие "throwies" не настолько дешёвые, чтобы "выбросить и забыть", то есть хозяева их когда-то да подберут. Чего не стоило ожидать, когда народ закидывал LED throwies на всякие общественные металлоконструкции. И вот эти throwies я как электронщик отдельно не люблю уже за то, что светодиоды подключаются без ограничения тока, то есть либо перегреются, либо просто будут гореть совсем недолго. А потом на опоре ЛЭП — или куда вы там закинули своего светлячка — останется висеть редкоземельный магнит, который сам по себе достаточно опасен в плане проглатывания, так ещё рядом с ним останется литиевая батарейка, которую тоже глотать не стоит. Кусочек e-waste в виде светодиода смотрится не так плохо на фоне магнита и батарейки.
Кроме того, если вернуться к теме WiFi-whatever, меня лично печалит невозможность удобно подключаться к неизвестным сетям в режиме "пока только посмотреть", не рискуя тем, что какие-то программы, работающие в фоне, сразу станут стучаться в Интернет через эту саму сеть. Да, VPN частично решает эту проблему, но я бы хотел иметь возможность подключаться ко всяким "WiFi-интерфейсам" не как к источникам Internet, а как провайдерам какого-то локального сервиса. Более того, хотелось бы подключаться к нескольким таким "недосетям" одновременно, не отключаясь от основной сети, доставляющей до меня большой Интернет.
Mastodon имени Devine Lu Linvega (одна из дуэта 100rabbits, про проекты которых я тут писал пару раз — смотри Orca, например — и за кем давно наблюдаю)
→ Hometown — форк Mastodon с интересными добавками, которые никогда не попадут в upstream
→ Список инстансов Hometown — тут уже чудесатее
→ Lurk.org — микро-тусовочка "around net- and computational culture and politics, proto- and post-free culture practices", прямо таки очень местечковое!
→ Их страничка со списками рассылок, раздел Eightycolumn про "People teaching/using/writing free software in art/sound/design context". Списки рассылок — это ретро, а тут ещё и FOSS + Art!
→ Подкаст "Safety Nets: Let Me Zine", "Episode 3: Interface, Relation, Connection, and Cloud Workout Done with dianaband". Тут пара междисциплинарных творцов из Кореи рассказывает про всякий self-hosting для новичков как повод собраться и пообщаться — я бы в такое вписался! Да и вообще, подкаст про zines, а я всё ещё лелею надежду сделать своих парочку!
---
Так вот, вот в подкасте прозвучало упоминание Wi-Fi Zine Throwies — и это такая милота! Представьте себе открытую точку доступа в WiFi, которая имеет какое-то нескучное название, а при подключении показывает вместо HTML-страницы для аутентификации маленький Zine!
Да, не каждый станет подключаться к неизвестным сетям, но кто-то таки поинтересуется, пусть и надев "печатки". Но ведь и sneakernet тоже предполагает некоторое доверие хотя бы своим навыкам по обеспечению цифровой гигиены 😜
И коробочки PirateBox, пусть и не просто выставляющие наружу zines, а поднимающие полноценный маленький стихийный Intranet, тоже обычно являются открытыми точками доступа. Экземпляры LibraryBox, как дружественный проект, то же таковы. Вот и выходит, что умение правильно и безопасно использовать открытые точки доступа в WiFi — полезный навык!
--
Без ворчания не получится в этот раз, увы 🙈 Постарался оставить оное напоследок, за сим начинаю.
Меня радует то, что такие "throwies" не настолько дешёвые, чтобы "выбросить и забыть", то есть хозяева их когда-то да подберут. Чего не стоило ожидать, когда народ закидывал LED throwies на всякие общественные металлоконструкции. И вот эти throwies я как электронщик отдельно не люблю уже за то, что светодиоды подключаются без ограничения тока, то есть либо перегреются, либо просто будут гореть совсем недолго. А потом на опоре ЛЭП — или куда вы там закинули своего светлячка — останется висеть редкоземельный магнит, который сам по себе достаточно опасен в плане проглатывания, так ещё рядом с ним останется литиевая батарейка, которую тоже глотать не стоит. Кусочек e-waste в виде светодиода смотрится не так плохо на фоне магнита и батарейки.
Кроме того, если вернуться к теме WiFi-whatever, меня лично печалит невозможность удобно подключаться к неизвестным сетям в режиме "пока только посмотреть", не рискуя тем, что какие-то программы, работающие в фоне, сразу станут стучаться в Интернет через эту саму сеть. Да, VPN частично решает эту проблему, но я бы хотел иметь возможность подключаться ко всяким "WiFi-интерфейсам" не как к источникам Internet, а как провайдерам какого-то локального сервиса. Более того, хотелось бы подключаться к нескольким таким "недосетям" одновременно, не отключаясь от основной сети, доставляющей до меня большой Интернет.
Merveilles
Devine Lu Linvega (@neauoire@merveilles.town)
78.9K Posts, 1.2K Following, 14.4K Followers · It’s always night under the ultraviolet sun.
👍5🤔5
Завтра под запись буду изучать PyView — это LiveView как в Phoenix для Elixir, или, если вам вдруг такая аналогия больше подойдёт, korolev для Scala (ну и древность я вспомнил, скажут некоторые).
Кратко: это такой способ делать интерактивные Web-приложения с обработкой событий на стороне сервера, тогда как клиент остаётся простым исполнителем задач вида "вставь эту div на место той". При этом, в отличие от использования HTMX, тут не нужно думать о жизненном цикле элементов, поскольку "virtual DOM" (UPD: не прямо vdom, идейный аналог) и вычисление минимальных дельт для отправки в браузер происходят под капотом, в прикладном коде же всё декларативно остаётся.
Я уверен, что в мире JS/TS такое давно носят, но в других экосистемах этот подход встречается довольно редко, вот мне и интересно посмотреть, как Python тут себя покажет. Проект очень молодой, но уже выглядит солидно, как мне показалось. Если вдруг заинтересуетесь, сходите послушать/посмотреть этот подкаст с автором — мне понравилось, например.
---
UPDATE
Вот запись. Пробовал стационарный микрофон, хороший, Blue Snowball (откопал в закромах). Но этот "снежок" умудрился подхватить с фона гул 🙈 Увы, пока что петличка и микрофон проводной гарнитуры выигрывают по качеству. Когда shock mount у меня появится, попробую повещать на снежок ещё раз 😎
Кратко: это такой способ делать интерактивные Web-приложения с обработкой событий на стороне сервера, тогда как клиент остаётся простым исполнителем задач вида "вставь эту div на место той". При этом, в отличие от использования HTMX, тут не нужно думать о жизненном цикле элементов, поскольку "virtual DOM" (UPD: не прямо vdom, идейный аналог) и вычисление минимальных дельт для отправки в браузер происходят под капотом, в прикладном коде же всё декларативно остаётся.
Я уверен, что в мире JS/TS такое давно носят, но в других экосистемах этот подход встречается довольно редко, вот мне и интересно посмотреть, как Python тут себя покажет. Проект очень молодой, но уже выглядит солидно, как мне показалось. Если вдруг заинтересуетесь, сходите послушать/посмотреть этот подкаст с автором — мне понравилось, например.
---
UPDATE
Вот запись. Пробовал стационарный микрофон, хороший, Blue Snowball (откопал в закромах). Но этот "снежок" умудрился подхватить с фона гул 🙈 Увы, пока что петличка и микрофон проводной гарнитуры выигрывают по качеству. Когда shock mount у меня появится, попробую повещать на снежок ещё раз 😎
👍5🔥2
Завёл таки. Подписывайтесь! 😎
https://www.patreon.com/cw/aleksei_astynax_pirogov
Как разберусь с Ko-fi и прочими бусти, будут и они.
https://www.patreon.com/cw/aleksei_astynax_pirogov
Как разберусь с Ko-fi и прочими бусти, будут и они.
Patreon
Aleksei (astynax) Pirogov | Patreon
Рассказываю о нескучных штуках в IT
👍3🔥2
Сегодня еженедельный стрим будет про библиотеку rich. Пройдусь по основным штукам, но в итоге хочу сделать кое-что не совсем (совсем не?) стандартное для TUI в целом и для этой либы в частности 😎
Картинка для привлечения внимания (нашёл на reddit):
Картинка для привлечения внимания (нашёл на reddit):
🔥9
Вот запись сегодняшнего стрима.
Если вдруг кому-то будет интересно потрогать получившийся код "генератора сайтов, выглядящих как Volkov Commander", то я могу его довести до какого-то MVP, а там можно будет допиливать по желанию 😎
Если вдруг кому-то будет интересно потрогать получившийся код "генератора сайтов, выглядящих как Volkov Commander", то я могу его довести до какого-то MVP, а там можно будет допиливать по желанию 😎
YouTube
Puttin' On the Rich: цветные буковки в консоли и не только
Рассказываю про библиотеку rich ( https://rich.readthedocs.io/en/stable/ ) и использую её для генерации... статического HTML для сайта в стиле старой школы 😎
🔥6
В Python недавно стало на один способ склеивания строк больше: PEP-750 aka t-strings.
(пишу этот текст в Emacs, а он пока не умеет раскрашивать содержимое t-строк так же, как он это делает с f-strings 🙈)
У этого нововведения есть одна большая проблема: это не templates, а на выходе получаются не strings 🙃 Скорее это что-то вроде template tags из мира JS/TS. В результате вычисления такого литерала получается последовательность статических строк вперемешку с приведёнными к строке значениями подвыражений внутри фигурных скобок. То есть в одну строку ничего ещё не склеено, хоть все подстановки уже вычислены!
Недавно видел один хороший доклад про этот PEP и про то, куда может развиться экосистема, если правильно отреагирует на эту новинку. Один из докладчиков, будучи в команде PyCharm, показывает, как внутри t-строк работает language injection, подсвечиваются HTML-теги и Python-код, работает автодополнение и проверка типов — люблю такую заботу о DX!
Так вот, если лень видео смотреть, просто думайте об этой штуке, как о способе санировать подстановки перед склеиванием в SQL, HTML или любые другие текстовые форматы, в которых возможна инъекция чего-то не очень хорошего.
А ещё отделение статических фрагментов от динамических позволяет делать всякие оптимизации. В библиотеке PyView, про которую я недавно рассказывал, при генерации HTML используются те самые t-strings, а этой библиотеке как раз важно знать, какие части вёрстки всегда содержат статический текст, чтобы быстрее вычислять изменения с для отправки команд, модифицирующих DOM в браузере. Приятно видеть, что новинка языка уже внедрена и приносит пользу!
За мою карьеру я навидался всяких видов интерполяции строк и форматирования и могу сказать, что концептуально t-строки мне нравятся. Я не очень люблю тот факт, что внутри подстановок есть свой подъязык для управления приведением к строке, но это я и в ранее добавленных f-строках не люблю, тут ничего нового не добавилось 😜
f"Hello, {world}"
# VS
t"Hello, {world}"(пишу этот текст в Emacs, а он пока не умеет раскрашивать содержимое t-строк так же, как он это делает с f-strings 🙈)
У этого нововведения есть одна большая проблема: это не templates, а на выходе получаются не strings 🙃 Скорее это что-то вроде template tags из мира JS/TS. В результате вычисления такого литерала получается последовательность статических строк вперемешку с приведёнными к строке значениями подвыражений внутри фигурных скобок. То есть в одну строку ничего ещё не склеено, хоть все подстановки уже вычислены!
Недавно видел один хороший доклад про этот PEP и про то, куда может развиться экосистема, если правильно отреагирует на эту новинку. Один из докладчиков, будучи в команде PyCharm, показывает, как внутри t-строк работает language injection, подсвечиваются HTML-теги и Python-код, работает автодополнение и проверка типов — люблю такую заботу о DX!
Так вот, если лень видео смотреть, просто думайте об этой штуке, как о способе санировать подстановки перед склеиванием в SQL, HTML или любые другие текстовые форматы, в которых возможна инъекция чего-то не очень хорошего.
А ещё отделение статических фрагментов от динамических позволяет делать всякие оптимизации. В библиотеке PyView, про которую я недавно рассказывал, при генерации HTML используются те самые t-strings, а этой библиотеке как раз важно знать, какие части вёрстки всегда содержат статический текст, чтобы быстрее вычислять изменения с для отправки команд, модифицирующих DOM в браузере. Приятно видеть, что новинка языка уже внедрена и приносит пользу!
За мою карьеру я навидался всяких видов интерполяции строк и форматирования и могу сказать, что концептуально t-строки мне нравятся. Я не очень люблю тот факт, что внутри подстановок есть свой подъязык для управления приведением к строке, но это я и в ранее добавленных f-строках не люблю, тут ничего нового не добавилось 😜
Python Enhancement Proposals (PEPs)
PEP 750 – Template Strings | peps.python.org
This PEP introduces template strings for custom string processing.
👍4