Внезапно через цать минут тут будет около часа разглагольствований на языковые темы. Достоверность фактов не гарантирую, потому что не готовился, как обычно, и вещать буду исключительно по памяти. Или не вещать, а на вопросы отвечать, как пойдёт уж.
https://youtube.com/live/Bck72bhEbgE?feature=share
Кстати, там на канале в streams ещё есть часик про ООП со мной же. Тоже на любителя зрелище :Р
https://youtube.com/live/Bck72bhEbgE?feature=share
Кстати, там на канале в streams ещё есть часик про ООП со мной же. Тоже на любителя зрелище :Р
YouTube
ITism Tech Talks Podcast | Разбираемся в языках программирования с Алексеем Пироговым
ITism - Инженерный Клуб
👍10
В комментариях к сегодняшней заметке в побочный канал прозвучало, что таки некоторым прям неудобно читать положение часовой стрелки. Интересный инсайт, правда-правда!
Что ещё интересно, так это то, что криптических часов любят понаделать ардуинщики начинающие. Обычно это банальные бинарные часы. Так вот читать таковые страшно неудобно! Я тоже как-то думал сделать свои, чтобы в матовой полупрозрачной коробке были на гибких кабелях "свалены в кучу" светодиоды трёх цветов — единицы часов, десятки минут, единицы минут. Коробку предполагалось встряхивать, а потом считать в уме просвечивающие через корпус точки — чисто арт-объект, а не на каждый день хронометр
У часостроительной компании Tokyo Watch тоже всегда в ассортименте полно часов подобного толка — нечитаемых, но нескучно выглядящих. Но легендарные (в моих кругах, по крайней мере) Heko были как раз вполне читаемые — а всё потому, то что светодиоды хоть и выглядели необычно в комбинациях, но по сути стрелки "рисовали"! Я всё ещё без проблем читаю свою реализацию (софтовую, к хардовой доступа сейчас нет), потому что это всё те же стрелки!
Что ещё интересно, так это то, что криптических часов любят понаделать ардуинщики начинающие. Обычно это банальные бинарные часы. Так вот читать таковые страшно неудобно! Я тоже как-то думал сделать свои, чтобы в матовой полупрозрачной коробке были на гибких кабелях "свалены в кучу" светодиоды трёх цветов — единицы часов, десятки минут, единицы минут. Коробку предполагалось встряхивать, а потом считать в уме просвечивающие через корпус точки — чисто арт-объект, а не на каждый день хронометр
:)У часостроительной компании Tokyo Watch тоже всегда в ассортименте полно часов подобного толка — нечитаемых, но нескучно выглядящих. Но легендарные (в моих кругах, по крайней мере) Heko были как раз вполне читаемые — а всё потому, то что светодиоды хоть и выглядели необычно в комбинациях, но по сути стрелки "рисовали"! Я всё ещё без проблем читаю свою реализацию (софтовую, к хардовой доступа сейчас нет), потому что это всё те же стрелки!
😱1
На днях вернулся со своей второй поездки в Черногорию. Перелёты опять были с приключениями, но в меру волнительными, так что впечатления по итогам от поездки очень положительные!
В этот раз CodeRetreat был сильно более практическим, чем прошлый: мы практически всё время коллективно писали код! Нам не помешали ни отключения электричества, ни проектор из позапрошлого десятилетия, позволяющий оценить качество сглаживания шрифтов максимально наглядно при помощи пикселей с плотностью "три штуки на сантиметр"
В рамках практики мы писали parameter injection для обработчиков запросов в aiohttp: хотелось научиться подсовывать обработчикам кусочки Request Object, если функция-обработчик декларирует формальные аргументы с известными именами и типами. А ещё организовали простенький Dependency Injection, пробрасывающий элементы из глобального хранилища состояния приложения в обработчик — так же через декларирование параметров со специальной аннотацией.
Python взяли версии 3.12, потрогали новый синтаксис для type variables. Паттерны поматчили ещё и даже отдельно поигрались с этой возможностью Python в образовательных целях: оказалось, что не все в принципе с ней знакомы. А потом на митапе Monte Python был доклад про Pattern Matching — интересное совпадение — но у нас пример получился покруче тех, что в докладе мелькали
В процессе игры в "откопай аннотации типов в рантайме" пришлось повозиться с тем, что aiohttp использует свой вариант
Когда инжектировали зависимости, надизайнили type aliases красивые, чтобы скрыть оборачивание в
А потом… мечта разбилась о быт: нету в Python способа указать, что в качестве параметра типа должен выступать строковый литерал! Да, я понимаю, что это уже "значение как тип", то есть хотелка из области зависимых типов. Но попробовать стоило!
В итоге успели не всё, но Proof of Concept вполне удался. Может быть ребята захотят доделать наш прототип до стоящего публикации состояния!
P.S. Осенью есть мысль сделать трек про "Kotlin для людей со стороны", в рамках которого попробовать и Web, и GUI, и мобильщину — по верхам, но широко.
В этот раз CodeRetreat был сильно более практическим, чем прошлый: мы практически всё время коллективно писали код! Нам не помешали ни отключения электричества, ни проектор из позапрошлого десятилетия, позволяющий оценить качество сглаживания шрифтов максимально наглядно при помощи пикселей с плотностью "три штуки на сантиметр"
:) И похайкали мы отлично, конечно же — локация к этому очень располагала. Если подытожить ощущения, то мы и отдохнули хорошо, и мозги перезагрузили и подзарядили! Будем повторять!В рамках практики мы писали parameter injection для обработчиков запросов в aiohttp: хотелось научиться подсовывать обработчикам кусочки Request Object, если функция-обработчик декларирует формальные аргументы с известными именами и типами. А ещё организовали простенький Dependency Injection, пробрасывающий элементы из глобального хранилища состояния приложения в обработчик — так же через декларирование параметров со специальной аннотацией.
Python взяли версии 3.12, потрогали новый синтаксис для type variables. Паттерны поматчили ещё и даже отдельно поигрались с этой возможностью Python в образовательных целях: оказалось, что не все в принципе с ней знакомы. А потом на митапе Monte Python был доклад про Pattern Matching — интересное совпадение — но у нас пример получился покруче тех, что в докладе мелькали
:PВ процессе игры в "откопай аннотации типов в рантайме" пришлось повозиться с тем, что aiohttp использует свой вариант
@property, только мемоизирующий да ещё и в виде C-extension, содержимое которого поинтроспектить во время исполнения не выйдет. Пришлось вместо изучения класса Request на предмет пригодных для инжекции свойств захардкодить доступные свойства вместе с типами значений — да, не так красиво, "зато работает".Когда инжектировали зависимости, надизайнили type aliases красивые, чтобы скрыть оборачивание в
Annotated. В процессе пришлось научиться матчить с учётом всех этих слоёв: в Python типы — это значения, и с ними приходится повозиться. Наткнулись на то, что классы, которые реализуют эти самые аннотации и псевдонимы типов — приватные, а значит для нужд pattern matching придётся импортировать эти классы с приглушением линтера.А потом… мечта разбилась о быт: нету в Python способа указать, что в качестве параметра типа должен выступать строковый литерал! Да, я понимаю, что это уже "значение как тип", то есть хотелка из области зависимых типов. Но попробовать стоило!
В итоге успели не всё, но Proof of Concept вполне удался. Может быть ребята захотят доделать наш прототип до стоящего публикации состояния!
P.S. Осенью есть мысль сделать трек про "Kotlin для людей со стороны", в рамках которого попробовать и Web, и GUI, и мобильщину — по верхам, но широко.
🔥13👍4
СЯУ, что есть такой диалект ClojureScript, как Squint. Компилируется в JS, своих коллекций не имеет, а вместо этого использует имеющиеся в JS структуры, но стандартные функции вроде
А ещё, пока тыкался в примеры этого всего, узнал ещё и про Lit, Mithril и прочие штуки из мира JS, про которые я и слыхать не слыхивал. Продолжу и дальше не слышать, хотя Lit как средство подготовки Web Components смотрится неплохо на первый взгляд.
Меня всё ещё во всём этом напрягает необходимость что-то компилировать и вообще пакетами какими-то рулить через npm. Но если уж обмазываться ClojureScript, то Squint и Cherry точно не такие развесистые, как Shadow ClJS. Собственно, одна из особенностей HTMX, которая меня радует, это как раз возможность просто подключить .js-файл из CDN или сервером раздать и ничего не собирать (да, как способ не возиться с сетевой частью и вообще всю логику на сервере держать, HTMX ценен в первую очередь, но и простота подключения важна для меня лично).
А вообще сейчас бы хоть что-то для Web делать, а то я что-то никак не придумаю, на что бы в принципе время потратить… Только на канальчики сил и хватает
P.S. из лиспиков для браузера есть ещё Biwa — эта вообще не требует никакой подготовки кода, вы прямо в теге
assoc делают shallow copy — прям как в JS нынче носят (я про сплайсинг вместо деструктивных апдейтов). А для тех, кому прям семантики ClJS хочется, есть Cherry от тех же авторов — компиляторная часть у обоих диалектов общая, отличия в стандартной библиотеке в основном. Google Closure Compiler не использует ни один из диалектов, так что "бинарники" на выходе компактные получаются. Надо будет со Squint поиграться в связке с HTMX: Web Components сделать и через HTMX оными поуправлять.А ещё, пока тыкался в примеры этого всего, узнал ещё и про Lit, Mithril и прочие штуки из мира JS, про которые я и слыхать не слыхивал. Продолжу и дальше не слышать, хотя Lit как средство подготовки Web Components смотрится неплохо на первый взгляд.
Меня всё ещё во всём этом напрягает необходимость что-то компилировать и вообще пакетами какими-то рулить через npm. Но если уж обмазываться ClojureScript, то Squint и Cherry точно не такие развесистые, как Shadow ClJS. Собственно, одна из особенностей HTMX, которая меня радует, это как раз возможность просто подключить .js-файл из CDN или сервером раздать и ничего не собирать (да, как способ не возиться с сетевой частью и вообще всю логику на сервере держать, HTMX ценен в первую очередь, но и простота подключения важна для меня лично).
А вообще сейчас бы хоть что-то для Web делать, а то я что-то никак не придумаю, на что бы в принципе время потратить… Только на канальчики сил и хватает
:РP.S. из лиспиков для браузера есть ещё Biwa — эта вообще не требует никакой подготовки кода, вы прямо в теге
<script> на Sсheme пишете. Это, как минимум, красиво!👍9🔥6
Montenegro IT Events
https://www.youtube.com/watch?v=drx9ec0aU3w Вот и запись подъехала, правда только в виде скринкаста под мою болтовню.
Так что кривляний моихне видно — я руками машу интенсивно обычно 🌚 — эта часть развлекательности останется только в памяти тех, кто лично поприсутствовал 😎 UPD: меня становится видно, когда заканчиваются слайды и начинаются вопросики!
Так или иначе, запись иметь всё равно приятно!
Так что кривляний моих
Так или иначе, запись иметь всё равно приятно!
YouTube
Алексей Пирогов | Быстрое создание GUI для браузера. Python в связке с FastUI, hyperdiv, Flet.
🐍 В экосистеме Python всегда было достаточно инструментов, позволяющих разрабатывать графические интерфейсы разной сложности. Достаточно назвать Tkinter, PyQT, Kivy.
В наше время самой популярной средой для "запуска" графических приложений является браузер.…
В наше время самой популярной средой для "запуска" графических приложений является браузер.…
👍8
Опять в ЧГ поеду в октябре. На этот раз погружать людей в MicroPython и Micro:bit — железки, это интересно, но некоторых пугает порог входа, а я буду пробовать высоту этого порога снизить!
Сам-то я с BBC Micro:bit игрался давно уже, ещё во времена первой версии. А у V2, которую мы будем трогать (а потом каждый свою домой заберёт) уже и динамик есть на борту свой, и микрофон. Можно будет попробовать коммуникацию пересвистом сделать! Планирую ещё в беспроводную сеть попробовать девайсы объединить, чтобы те приветствовали друг-друга, слали "визитки" — так делают иной раз умные бейджи как на DEFCON (это три ссылки на разные посты :Р)!
Сам-то я с BBC Micro:bit игрался давно уже, ещё во времена первой версии. А у V2, которую мы будем трогать (а потом каждый свою домой заберёт) уже и динамик есть на борту свой, и микрофон. Можно будет попробовать коммуникацию пересвистом сделать! Планирую ещё в беспроводную сеть попробовать девайсы объединить, чтобы те приветствовали друг-друга, слали "визитки" — так делают иной раз умные бейджи как на DEFCON (это три ссылки на разные посты :Р)!
🔥3
Forwarded from Montenegro IT Events
CodeRetreat — выездной кэмп для разработчиков в Старом Баре, идеальный микс отдыха в горах, атмосферы летнего лагеря, интересных воркшопов и полезного нетворкинга. Приглашаем на новые смены:
Golang Camp: Go gophers!
13—16 октября. Ведущие Артемий Рябинков, Андрей Солдатенко и Искандер Шарипов.
Три воркшопа: Kubernetes операторы, работа с ML-моделями и разработка игр.
Data Engineering Сamp
16—19 октября. Ведущий Николай Марков.
Качаем набор навыков по выстраиванию инфраструктуры и процессов вокруг жизненного цикла данных в компаниях.
Micro:bit Retreat. Cобираем и программируем железяки
19—22 октября. Ведущий Алексей Пирогов.
Давно присматриваетесь к Arduino, Raspberry pi, умным домам, но не знаете с чего начать — вот легкий старт в новое хобби.
Будет душевно! Уедете не только с новыми знаниями, но и новыми друзьями и тележкой впечатлений. Все подробности на сайте.
Golang Camp: Go gophers!
13—16 октября. Ведущие Артемий Рябинков, Андрей Солдатенко и Искандер Шарипов.
Три воркшопа: Kubernetes операторы, работа с ML-моделями и разработка игр.
Data Engineering Сamp
16—19 октября. Ведущий Николай Марков.
Качаем набор навыков по выстраиванию инфраструктуры и процессов вокруг жизненного цикла данных в компаниях.
Micro:bit Retreat. Cобираем и программируем железяки
19—22 октября. Ведущий Алексей Пирогов.
Давно присматриваетесь к Arduino, Raspberry pi, умным домам, но не знаете с чего начать — вот легкий старт в новое хобби.
Будет душевно! Уедете не только с новыми знаниями, но и новыми друзьями и тележкой впечатлений. Все подробности на сайте.
🔥5
Когда я недавно делал доклад в Черногории по поводу того, как на пайтоне можно делать пользовательский интерфейсы, я рассмотрел несколько самых разных по сути своей вариантов, но упустил из виду один очень интересный — FastHTML.
FastHTML позиционирует себя как платформу, которая позволяет создавать пользовательские интерфейсы преимущественно на Python. GUI при этом отображается в браузере, работает отзывчиво и реактивно.
Особенности:
- JavaScript чаще всего писать не придётся, потому что платформа использует HTMX в качестве средства доставки обновлений интерфейса. Вы можете дописывать кусочки интерактивности на JS, это не возбраняется, мол, "для того JS и создавался" 🌚
- На серверной стороне не используется никакой шаблонизатор, вместо этого вся вёрстка делается с использованием так называемых "компонент" — это по сути просто функции, генерирующие вёрстку. Сетевая же часть использует платформу ASGI, а именно uvicorn и Starlett.
- О стилях тоже предлагается особо не думать, а вместо этого полагаться на библиотеки тех самых компонент, которые скрывают всю стилизацию в простых случаях.
- В принципе всё приложение можно описать в одном Python-файле, мол, настолько мало boilerplate требуется для начала работы.
Вообще рекомендую сходить почитать видение проекта — текста там немного. Почувствуете, насколько у автора наболело по поводу состояния Web-разработки на Python "до этого момента". Люблю почитать такое! 😎
Ещё из интересного стоит отметить один моментик касательно самого автора: Jeremy Howard много работает в области data science и прочего ML и работает давно — и всё это время варится в собственном соку. Творчеством занимается в собственной компании Fast.AI (компания до нынешнего хайпа была основана, если что). Так вот, у Джереми весь Open Source написан с применением Literate Programming на базе Jupyter Notebooks и авторской надстройки над оным под названием nbdev. Описанный выше FastHTML написан в стиле LP, библиотеки полезняшек, которые в FastHTML использованы — тоже. Само по себе такое увлечения меня, давнишнего фаната LP, впечатляет. Но код генерируемый выглядит страшненько, хотя тут во многом ещё и авторский вкус влияет на читаемость: у Джереми очень плотный код, обычно питонисты так не пишут, зато пишут data scientists! К счастью, когда Джереми показывает примеры кода публике, он может переключиться на чуть более популярный стиль 😅
P.S. Если вдруг кому интересно, могу ещё написать про то, как автор FastHTML предлагает работать с SQLite. Можно даже попробовать постримить разработку какого-нибудь классического проектика вроде Pet Clinic на FastHTML и использовать в процессе nbdev — будет максимально нишево, но не факт, что очень Fast 🙃
FastHTML позиционирует себя как платформу, которая позволяет создавать пользовательские интерфейсы преимущественно на Python. GUI при этом отображается в браузере, работает отзывчиво и реактивно.
Особенности:
- JavaScript чаще всего писать не придётся, потому что платформа использует HTMX в качестве средства доставки обновлений интерфейса. Вы можете дописывать кусочки интерактивности на JS, это не возбраняется, мол, "для того JS и создавался" 🌚
- На серверной стороне не используется никакой шаблонизатор, вместо этого вся вёрстка делается с использованием так называемых "компонент" — это по сути просто функции, генерирующие вёрстку. Сетевая же часть использует платформу ASGI, а именно uvicorn и Starlett.
- О стилях тоже предлагается особо не думать, а вместо этого полагаться на библиотеки тех самых компонент, которые скрывают всю стилизацию в простых случаях.
- В принципе всё приложение можно описать в одном Python-файле, мол, настолько мало boilerplate требуется для начала работы.
Вообще рекомендую сходить почитать видение проекта — текста там немного. Почувствуете, насколько у автора наболело по поводу состояния Web-разработки на Python "до этого момента". Люблю почитать такое! 😎
Ещё из интересного стоит отметить один моментик касательно самого автора: Jeremy Howard много работает в области data science и прочего ML и работает давно — и всё это время варится в собственном соку. Творчеством занимается в собственной компании Fast.AI (компания до нынешнего хайпа была основана, если что). Так вот, у Джереми весь Open Source написан с применением Literate Programming на базе Jupyter Notebooks и авторской надстройки над оным под названием nbdev. Описанный выше FastHTML написан в стиле LP, библиотеки полезняшек, которые в FastHTML использованы — тоже. Само по себе такое увлечения меня, давнишнего фаната LP, впечатляет. Но код генерируемый выглядит страшненько, хотя тут во многом ещё и авторский вкус влияет на читаемость: у Джереми очень плотный код, обычно питонисты так не пишут, зато пишут data scientists! К счастью, когда Джереми показывает примеры кода публике, он может переключиться на чуть более популярный стиль 😅
P.S. Если вдруг кому интересно, могу ещё написать про то, как автор FastHTML предлагает работать с SQLite. Можно даже попробовать постримить разработку какого-нибудь классического проектика вроде Pet Clinic на FastHTML и использовать в процессе nbdev — будет максимально нишево, но не факт, что очень Fast 🙃
👍10🤔2
Вёл вчера открытый урок для курса по Clojure. Как обычно, рассказал про историю языка, поотвечал на дежурные вопросы про то, зачем он вообще нужен и есть ли вообще работа для кложуристов (местами нужен, работа находится 😎). Где-то с час транслировал окно Emacs и показывал, как же на этой нашей Clojure пишут.
В рамках демо решил всё показывать на Babashka, как на более легковесной версии интерпретатора. А ещё хотел показать нечто, что было бы легко запустить локально. И тут babashka выигрывает безоговорочно: что может быть проще скачивания одного исполняемого файла, в котором находится и сам интерпретатор и приличная пачка библиотек, полезных при скриптовании (к слову о всяких тулкитах)?
Показал я синтаксис в одном большом файле со сворачиваемым аутлайном (люблю outshine, даже презентации с его помощью показывал 💅), поотвечал на вопросы. А потом запустил Web-приложение на базе встроенного в Babashka сервера (HttpKit), а HTML сгенерировал силами встроенного же Data DSL (Hiccup) — приятный набор батареек, осмелюсь сказать! Разве что, compojure или другого роутера не хватает слегка, но в принципе жить можно и так, пока проект небольшой — а там уже и большая Clojure JVM запросится на замену 😜
Страничку-то я отдал, но статическая страница — это скучно! Вот только и обременять зрителей настройкой инструментария для сборки ClojureScript тоже не хотелось. Посему Squint и Cherry (см выше) я отбросил и вооружился Scittle — это интерпретатор всё тот SCI, интерпратор подмножества Clojure, который используется и в Babashka. Только Skittle интерпретирует ClojureScript прямо из тегов
Мне самому подход No Build очень импонирует, вот и в демо я просто в строковом литерале отгрузил кусочек ClJS — хотелось уложиться именно в один файл. Тем более что в Emacs можно выделить регион и открыть в отдельном буфере как код на заданном языке (да, не только в IDEA так можно, хоть в последней и прямо по месту код подсвечивается). Скрипт мой оживил часики на страничке и progress bar в такт секундам начал двигать (виджет взял из Pico.CSS, потому что не умею верстать). А заодно получилось показать, как обращение с объектами хостовой платформы делается.
Результат я положил в Gist вместе с краткой инструкцией по запуску, можете поиграться. На мой вкус возможность делать интерактивные микро-приложения, минимально заботясь о всяких сборщиках и зависимостях — это здорово!
В рамках демо решил всё показывать на Babashka, как на более легковесной версии интерпретатора. А ещё хотел показать нечто, что было бы легко запустить локально. И тут babashka выигрывает безоговорочно: что может быть проще скачивания одного исполняемого файла, в котором находится и сам интерпретатор и приличная пачка библиотек, полезных при скриптовании (к слову о всяких тулкитах)?
Показал я синтаксис в одном большом файле со сворачиваемым аутлайном (люблю outshine, даже презентации с его помощью показывал 💅), поотвечал на вопросы. А потом запустил Web-приложение на базе встроенного в Babashka сервера (HttpKit), а HTML сгенерировал силами встроенного же Data DSL (Hiccup) — приятный набор батареек, осмелюсь сказать! Разве что, compojure или другого роутера не хватает слегка, но в принципе жить можно и так, пока проект небольшой — а там уже и большая Clojure JVM запросится на замену 😜
Страничку-то я отдал, но статическая страница — это скучно! Вот только и обременять зрителей настройкой инструментария для сборки ClojureScript тоже не хотелось. Посему Squint и Cherry (см выше) я отбросил и вооружился Scittle — это интерпретатор всё тот SCI, интерпратор подмножества Clojure, который используется и в Babashka. Только Skittle интерпретирует ClojureScript прямо из тегов
<script>! Это же настоящий No Build, про который любит говорить DHH 😆Мне самому подход No Build очень импонирует, вот и в демо я просто в строковом литерале отгрузил кусочек ClJS — хотелось уложиться именно в один файл. Тем более что в Emacs можно выделить регион и открыть в отдельном буфере как код на заданном языке (да, не только в IDEA так можно, хоть в последней и прямо по месту код подсвечивается). Скрипт мой оживил часики на страничке и progress bar в такт секундам начал двигать (виджет взял из Pico.CSS, потому что не умею верстать). А заодно получилось показать, как обращение с объектами хостовой платформы делается.
Результат я положил в Gist вместе с краткой инструкцией по запуску, можете поиграться. На мой вкус возможность делать интерактивные микро-приложения, минимально заботясь о всяких сборщиках и зависимостях — это здорово!
👍14🔥9
Через часик запущу трансляцию тут. Попробую постримить какой-то простой проектик на FastHTML, БД на пару сущностей, CRUD для них. Проверю, настолько ли оно Fast, как заявлено :)
Приходите пообщаться, если что. А запись попробую сделать и выложу потом.
Приходите пообщаться, если что. А запись попробую сделать и выложу потом.
👍12
Вот запись. Смело можно пропускать минут сорок (прям 40 ровно и пропускайте, я проверил), потому что я там возился с тем, чтобы завести fastlite, но оказалось, что я так и не понял, как с этой штукой работать 🤦🏻♂️
https://github.com/astynax/fh-todos а вот код, если что. Я сделал там таки, чтобы добавление тудушки не затрагивало остальную таблицу.
https://github.com/astynax/fh-todos а вот код, если что. Я сделал там таки, чтобы добавление тудушки не затрагивало остальную таблицу.
👍3🔥3
Я понял, почему у меня сходу SQLite вчера не завелся 🌚!
Я зря fastlite стал ковырять. Надо было сразу в sqlite-utils нырнуть — это библиотека, которая в основе fastlite лежит, но не обёрнута странненькой вкусовщинкой. В sqlite-utils всё очень динамично и на словариках, но при этом хотя бы логично. А я, когда начал летом в FastHTML копаться, как-то незаметно перешёл от fastlite к sqlite-utils и в памяти отложилось, что "там всё просто", вот только "там" я залинковал с fastlite 🙈
Вообще sqlite-utils делают авторы datasette — песочницы для интерактивной игры с данными и выуживания "сути" посредством натягиваниясовы на глобус данных на карты, графики, таблички. И под капотом у datasette всё тот же SQLite, так что вполне можно понять, что ребята постарались сделать работу оным удобной!
Datasette я, как водится, потыкал, но для себя пока применение не придумал — как-то не особо приходится с данными работать. Забавы ради можно было бы стянуть всё с PokeAPI и поанализировать околопокемоновые штуки, но пока желанием не горю. Вам же советую хотя бы демку потыкать — интересно, как там динамически накладываются фильтры всякие.
Я зря fastlite стал ковырять. Надо было сразу в sqlite-utils нырнуть — это библиотека, которая в основе fastlite лежит, но не обёрнута странненькой вкусовщинкой. В sqlite-utils всё очень динамично и на словариках, но при этом хотя бы логично. А я, когда начал летом в FastHTML копаться, как-то незаметно перешёл от fastlite к sqlite-utils и в памяти отложилось, что "там всё просто", вот только "там" я залинковал с fastlite 🙈
Вообще sqlite-utils делают авторы datasette — песочницы для интерактивной игры с данными и выуживания "сути" посредством натягивания
Datasette я, как водится, потыкал, но для себя пока применение не придумал — как-то не особо приходится с данными работать. Забавы ради можно было бы стянуть всё с PokeAPI и поанализировать околопокемоновые штуки, но пока желанием не горю. Вам же советую хотя бы демку потыкать — интересно, как там динамически накладываются фильтры всякие.
datasette.io
Datasette is a tool for exploring and publishing data. It helps people take data of any shape, analyze and explore it, and publish it as an interactive website and accompanying API.
👍3
Дочитал таки сегодня статейки из блога Firefly Zero — одну про fantasy consoles, другую про WASM на микроконтроллерах.
Про #fantasy_consoles и про #pico8 я уже писал. Вот и в первой статье есть краткая история явления и упоминается тот самый fun от творчества в условиях ограничений — и про такое у меня есть!
Про #wasm тоже всякое тут можно найти, ведь это тоже один из моих "фоновых" интересов. Но именно в разрезе #gaming и маленьких железок я пока на него не смотрел и упомянутый в статьях выше WASM-4 звучит интересно — я не очень-то вижу, что я бы делал на WASM для Web, а вот реальную железку попрограммировал бы, в том числе и на "сыром" WebAssembly потенциально.
Так вот Firefly Zero — как раз та самая железка, программируемая на WASM. Да, ей ещё только предстоит быть выпущенной в массы. Но за проектом следить уже интересно, а игры уже можно начинать писать и запускать в браузере и на эмуляторе
P.S. Недавно с подачи читателя почитал про написание Web-приложений на Scheme с компиляцией во всё тот же WASM. Статье уже год, а там Wasm-GC уже используется, так что работа с DOM вполне уже доступна коду в WASM. Да, приходится пробрасывать API-функции из JS в WASM app явно, но такое разделение мне даже импонирует, ведь WASM всегда был про песочницы.
Про #fantasy_consoles и про #pico8 я уже писал. Вот и в первой статье есть краткая история явления и упоминается тот самый fun от творчества в условиях ограничений — и про такое у меня есть!
Про #wasm тоже всякое тут можно найти, ведь это тоже один из моих "фоновых" интересов. Но именно в разрезе #gaming и маленьких железок я пока на него не смотрел и упомянутый в статьях выше WASM-4 звучит интересно — я не очень-то вижу, что я бы делал на WASM для Web, а вот реальную железку попрограммировал бы, в том числе и на "сыром" WebAssembly потенциально.
Так вот Firefly Zero — как раз та самая железка, программируемая на WASM. Да, ей ещё только предстоит быть выпущенной в массы. Но за проектом следить уже интересно, а игры уже можно начинать писать и запускать в браузере и на эмуляторе
:) Очень жду железку, а пока попробую найти силы на осваивание платформы. Если что-то получится, то напишу сюда, как водится.P.S. Недавно с подачи читателя почитал про написание Web-приложений на Scheme с компиляцией во всё тот же WASM. Статье уже год, а там Wasm-GC уже используется, так что работа с DOM вполне уже доступна коду в WASM. Да, приходится пробрасывать API-функции из JS в WASM app явно, но такое разделение мне даже импонирует, ведь WASM всегда был про песочницы.
🔥6
Буду завтра докладывать про то, как Clojure можно в браузере запускать — не только про ClojureScript, но и про Scittle со товарищи. Трансляция тоже должна быть и я сам скринкаст запишу на всякий случай (если не забуду 🙈). Само мероприятие в Тбилиси будет проходить, я в этот раз не выбрался лично, но в виде говорящей головы выступлю!
Остальные доклады тоже обещают быть нескучными, хоть и с сильным уклоном в лиспы. Так что будет, что посмотреть :)
https://t.me/f0rthsp4ce/408 — тут подробности.
Остальные доклады тоже обещают быть нескучными, хоть и с сильным уклоном в лиспы. Так что будет, что посмотреть :)
https://t.me/f0rthsp4ce/408 — тут подробности.
Telegram
F0RTHSP4CE
* Fprog Tbilisi Meetup
* Программа мероприятия:
*** Воркшоп: формальная верификация программ с состоянием на Lean4 (@GabrielFallen)
(sic!) Воркшоп стартует в 12:00, хронометраж ~3 часа. Это практическое занятие, берите с собой компьютеры. После воркшопа…
* Программа мероприятия:
*** Воркшоп: формальная верификация программ с состоянием на Lean4 (@GabrielFallen)
(sic!) Воркшоп стартует в 12:00, хронометраж ~3 часа. Это практическое занятие, берите с собой компьютеры. После воркшопа…
🔥19👍1
https://www.youtube.com/watch?v=5T-XONZCptc трансляция тут
UPDATE: а вот и запись моего доклада (ссылка откроет весь плейлист, доклады все отличные были!)
UPDATE: а вот и запись моего доклада (ссылка откроет весь плейлист, доклады все отличные были!)
YouTube
Fprog Tbilisi Meetup (01.12.2024)
Fprog Tbilisi Meetup
* Программа мероприятия:
*** Воркшоп: формальная верификация программ с состоянием на Lean4 (@GabrielFallen)
(sic!) Воркшоп стартует в 12:00, хронометраж ~3 часа. Это практическое занятие, берите с собой компьютеры. После воркшопа…
* Программа мероприятия:
*** Воркшоп: формальная верификация программ с состоянием на Lean4 (@GabrielFallen)
(sic!) Воркшоп стартует в 12:00, хронометраж ~3 часа. Это практическое занятие, берите с собой компьютеры. После воркшопа…
👍4🔥1