Ого! Игра на
Заметьте, движок у игры свой, самописный! И написан, по сути, одним разработчиком (его, кстати, можно найти в чате https://xn--r1a.website/proRust) и только ресурсы делали уже несколько человек!
#rust #gamedev #game
Rust в Steam Greenlight! https://steamcommunity.com/sharedfiles/filedetails/?id=868228143Заметьте, движок у игры свой, самописный! И написан, по сути, одним разработчиком (его, кстати, можно найти в чате https://xn--r1a.website/proRust) и только ресурсы делали уже несколько человек!
#rust #gamedev #game
Я уже писал про
Проект находится в стадии активной разработки, но многое уже работает. Кстати, PX8 можно программировать не только на
#pico8 #rust #python #lua
PICO-8, а тут, оказывается, некто пилит свободный клон! На Rust! Смотреть сюда: https://docs.rs/crate/px8Проект находится в стадии активной разработки, но многое уже работает. Кстати, PX8 можно программировать не только на
Lua, но и на Python 3! Не то чтобы очень хотелось, но кому-то может понравиться ;)#pico8 #rust #python #lua
Ещё один
Написан он на #rust и, несмотря на юность, уже умеет многое. Меня, например, радует возможность класть посты в подпапки вместе с дополнительными файлами (картинки и проч) и вообще выстраивать целые иерархии записей. RSS, тэги и категории также присутствуют - это умеет любой уважающий себя генератор. Ещё есть
Вердикт - стоит попробовать! Я то пока с #Hakyll слезать не собираюсь, тем более что блог я подзабросил - да, опять - и если и пишу, то сюда. Но Rust мне интересен и наблюдать за появлением и развитием проектов на оном мне нравится :)
генератор статических сайтов: https://github.com/Keats/gutenbergНаписан он на #rust и, несмотря на юность, уже умеет многое. Меня, например, радует возможность класть посты в подпапки вместе с дополнительными файлами (картинки и проч) и вообще выстраивать целые иерархии записей. RSS, тэги и категории также присутствуют - это умеет любой уважающий себя генератор. Ещё есть
Jinja2 / Django-совместимые шаблоны.Вердикт - стоит попробовать! Я то пока с #Hakyll слезать не собираюсь, тем более что блог я подзабросил - да, опять - и если и пишу, то сюда. Но Rust мне интересен и наблюдать за появлением и развитием проектов на оном мне нравится :)
GitHub
GitHub - getzola/zola: A fast static site generator in a single binary with everything built-in. https://www.getzola.org
A fast static site generator in a single binary with everything built-in. https://www.getzola.org - getzola/zola
Livecoding на
Что же, начинание, бесспорно, полезное, хоть и не каждому подходит такой формат "развлечений" 😉
Зато сделана трансляция качественно, "диктора" слышно хорошо, да и тематика не самая "попсовая". Автор даже разместил ссылку на свои
Twitch добрался и до #rust: https://www.twitch.tv/tsoding - тут пишут электронную музыку на сабже.Что же, начинание, бесспорно, полезное, хоть и не каждому подходит такой формат "развлечений" 😉
Зато сделана трансляция качественно, "диктора" слышно хорошо, да и тематика не самая "попсовая". Автор даже разместил ссылку на свои
dotfiles: редактором у него #emacs работает, что лично меня радует 👍, а операционкой - #nixos!Twitch
Tsoding - Twitch
Recreational Programming
Relm (http://relm.ml/relm-intro) - библиотека для построения GUI на основе GTK+ с применением подхода "The Elm Architecture" (#tea), на этот раз - на #rust
Ещё одна утилитка на #rust: https://the.exa.website/
Быстрая (по словам авторов) и более современная замена ls. Умеет выводить различные дополнительные данные, сразу выводит размер в человекочитаемом виде, может отображать git-статус - приятная штука.
Ах да, ещё может заменить собой tree - тоже умеет выводить иерархию файлов и папок, но уже с дополнительной информацией.
Быстрая (по словам авторов) и более современная замена ls. Умеет выводить различные дополнительные данные, сразу выводит размер в человекочитаемом виде, может отображать git-статус - приятная штука.
Ах да, ещё может заменить собой tree - тоже умеет выводить иерархию файлов и папок, но уже с дополнительной информацией.
https://www.youtube.com/watch?v=YC2FvozglPc -
интересная задача (эмуляция NES) и интересная комбинация #rust и #elm :)
Rust то как раз оправдан - эмуляторы стоит писать как раз на таких языках. А вот Elm в таком проекте интересно было увидеть! Впрочем, я лично не удивлён, т.к. Elm как раз очень хорошо подходит тем, кто хочет "просто сделать GUI", но фронтендом непосредственно не интересуется (и часто не хочет погружаться в тонкости настройки webpack, babel, вот этого всего).
В комментариях к ролику автора спросили "Very nice! Btw, why did you choose Elm instead of PureScript (which has higher abstractions like typeclasses etc)?", на что он ответил "I haven't heard of purescript until now, so I guess Elm is just marketed better or has more people talking about it.". Этот микродиалог меня натолкнул на две мысли:
1) автор столкнется с болью и унижением, если попробует приобщиться к #purescript и во многом благодаря (да уж, что ещё "благо") тулингу - имхо, npm+bower+pulp+psc-package могут любить только мазохисты, профессионально деформированные фронтендом;
2) всё таки заметность у Elm уже достаточна для того, чтобы язык выбирали те, кто client-side web developing особо не интересуется и сталкивается с оным лишь эпизодически - по необходимости.
P.S. В описании видео есть ссылки и на эмулятор и на отладчик - тут уж кому что интересно :)
интересная задача (эмуляция NES) и интересная комбинация #rust и #elm :)
Rust то как раз оправдан - эмуляторы стоит писать как раз на таких языках. А вот Elm в таком проекте интересно было увидеть! Впрочем, я лично не удивлён, т.к. Elm как раз очень хорошо подходит тем, кто хочет "просто сделать GUI", но фронтендом непосредственно не интересуется (и часто не хочет погружаться в тонкости настройки webpack, babel, вот этого всего).
В комментариях к ролику автора спросили "Very nice! Btw, why did you choose Elm instead of PureScript (which has higher abstractions like typeclasses etc)?", на что он ответил "I haven't heard of purescript until now, so I guess Elm is just marketed better or has more people talking about it.". Этот микродиалог меня натолкнул на две мысли:
1) автор столкнется с болью и унижением, если попробует приобщиться к #purescript и во многом благодаря (да уж, что ещё "благо") тулингу - имхо, npm+bower+pulp+psc-package могут любить только мазохисты, профессионально деформированные фронтендом;
2) всё таки заметность у Elm уже достаточна для того, чтобы язык выбирали те, кто client-side web developing особо не интересуется и сталкивается с оным лишь эпизодически - по необходимости.
P.S. В описании видео есть ссылки и на эмулятор и на отладчик - тут уж кому что интересно :)
YouTube
Demo: NES Emulator (Rust) + Graphical Debugger (Elm)
This is a demo of my NES emulator and graphical debugger written in Rust and Elm, respectively. I also get into some NES internals, and talk a bit about why ...
Кстати, пока я искал альтернативы для
bat, это такой
Приятно, что таких проектов становится больше: rq, ripgrep, fd, а теперь ещё и bat (автор тот же, что и у fd, кстати). Я считаю, что нам нужны современные версии "рабочих лошадок", работающие быстро и стабильно - да такие, в которые и поконтрибутить приятно!
pygments, мне подкинули интересный вариант на замену: batbat, это такой
cat(1), только написанный на #rust, и умеющий красиво подсвечивать синтаксис разных форматов файлов с помощью схем подсветки от SublimeText (использует библиотеку syntect).Приятно, что таких проектов становится больше: rq, ripgrep, fd, а теперь ещё и bat (автор тот же, что и у fd, кстати). Я считаю, что нам нужны современные версии "рабочих лошадок", работающие быстро и стабильно - да такие, в которые и поконтрибутить приятно!
GitHub
GitHub - sharkdp/bat: A cat(1) clone with wings.
A cat(1) clone with wings. Contribute to sharkdp/bat development by creating an account on GitHub.
Добрался наконец до 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.
Я уже писал про свои эксперименты с WebAssembly/WASI, недавно даже подкаст-монолог про это дело записал. Словом, я за темой слежу, причём слежу именно за направлением "универсальных бинарников".
А тут такая новость: Mozilla, Intel, RedHat и Fastly создали Bytecode Alliance — сообщество по пилению того самого нового формата бинарников.
Суть: реализовать возможность запускать универсальны WASM-бинарники в защищённых окружениях на разных системах и при этом управлять а) зависимостями и б) доступом зависимостей к системным ресурсам. Пункт "б", ИМХО — самый интересный! Можно взять стандартную библиотеку работы со строками (ага, leftpad) и запретить ей доступ ко всему, кроме, собственно, работы со строками!
Fastly регулярно пишут про свои эксперименты с Rust/Wasmer и им очень интересна вся эта тема с управлением правами wasm-бинарников. FastlyLabs открытые проекты по теме пилят. Словом, прямой коммерческий интерес к такому применению Wasm уже есть. А это очень важно для выживания технологии!
Отдельно радует роль #rust в около'wasm'овой экосистеме: на нём и рантаймы пишутся и инструментарий вроде wascap. Не говоря уж о том, что Rust — один из первых языков, начавших прорабатывать компиляцию в Wasm.
Ждём, надеемся, держим руку на пульсе #wasm
А тут такая новость: Mozilla, Intel, RedHat и Fastly создали Bytecode Alliance — сообщество по пилению того самого нового формата бинарников.
Суть: реализовать возможность запускать универсальны WASM-бинарники в защищённых окружениях на разных системах и при этом управлять а) зависимостями и б) доступом зависимостей к системным ресурсам. Пункт "б", ИМХО — самый интересный! Можно взять стандартную библиотеку работы со строками (ага, leftpad) и запретить ей доступ ко всему, кроме, собственно, работы со строками!
Fastly регулярно пишут про свои эксперименты с Rust/Wasmer и им очень интересна вся эта тема с управлением правами wasm-бинарников. FastlyLabs открытые проекты по теме пилят. Словом, прямой коммерческий интерес к такому применению Wasm уже есть. А это очень важно для выживания технологии!
Отдельно радует роль #rust в около'wasm'овой экосистеме: на нём и рантаймы пишутся и инструментарий вроде wascap. Не говоря уж о том, что Rust — один из первых языков, начавших прорабатывать компиляцию в Wasm.
Ждём, надеемся, держим руку на пульсе #wasm
:)YouTube
#Hexlet Podcast: средства для ускорения web
Ведущий подкаста - Алексей Пирогов, преподаватель Hexlet. Сегодня расскажем об истории web и инструментах, которые применялись для его ускорения.
* COM https://ru.wikipedia.org/wiki/Component_Object_Model
* Java applets https://ru.wikipedia.org/wiki/Java…
* COM https://ru.wikipedia.org/wiki/Component_Object_Model
* Java applets https://ru.wikipedia.org/wiki/Java…
В этом году опять не нашёл времени добить AdventOfCode, однако 46 звёздочек из 50 считаю неплохим результатом. Если что, AoC, это такой марафон по решению задачек с помощью кода. Я про него уже писал.
Решал я задачки на #Haskell, как водится. Довольствовался "просто нормальными решениями", которые было приятно реализовывать без необходимости погружаться в оптимизации. Итоги: удовольствие получено, нервов затрачено немного, руки размяты.
А вот общее впечатление от задачек в этого года, увы, смешанное. Возможно, дело в том, что это AoC'2019 был очень хорош, а нынешний просто получился "как раньше": с задачками на вида "пишите уже процедурщину, иначе не дождётесь окончания вычисления" (это могу терпеть) и "вспомнил известный алгоритм — решил, не вспомнил — не решил" (вот такое не люблю!). А ещё в этом году были самоповторы: три вариации конвеевской "Жизни" с незначительными отличиями, это не то, чего ждёшь от авторов. Возможно, год выдался тяжёлым и для них…
Так или иначе, advent calendars — это здорово! Подкину таковых на разные темы:
- "Advent of Haskell 2020" — познавательно-развлекательные статейки о #Haskell
- "Kotlin Christmas" — то же самое, но про #Kotlin
- "QEMU Advent Calendar 2020" — традиционный уже календарь всякого забавного, что можно запустить в QEMU (про этот календарь я тоже писал); день №12, например, это всё та же "Жизнь", но в виде самозагружаемой (без ОС!) программы на #Rust
Из прошлогодних могу упомянуть "‘A Language a Day’ — Advent Calendar 2019": 25 разных языков программирования по одному на день со ссылками на документацию и примерами кода.
Наконец, возвращаясь к AoC, отмечу, что в этих наших интернетах множество людей делится своими решениями в виде статей и прочих стримов. Вот, например, репозиторий со ссылками на решения AoC на куче языков (ЯП и не очень вроде jq) — вдруг кому захочется свои решения посравнивать с чужими.
И да, всех с Новым Годом!
Решал я задачки на #Haskell, как водится. Довольствовался "просто нормальными решениями", которые было приятно реализовывать без необходимости погружаться в оптимизации. Итоги: удовольствие получено, нервов затрачено немного, руки размяты.
А вот общее впечатление от задачек в этого года, увы, смешанное. Возможно, дело в том, что это AoC'2019 был очень хорош, а нынешний просто получился "как раньше": с задачками на вида "пишите уже процедурщину, иначе не дождётесь окончания вычисления" (это могу терпеть) и "вспомнил известный алгоритм — решил, не вспомнил — не решил" (вот такое не люблю!). А ещё в этом году были самоповторы: три вариации конвеевской "Жизни" с незначительными отличиями, это не то, чего ждёшь от авторов. Возможно, год выдался тяжёлым и для них…
Так или иначе, advent calendars — это здорово! Подкину таковых на разные темы:
- "Advent of Haskell 2020" — познавательно-развлекательные статейки о #Haskell
- "Kotlin Christmas" — то же самое, но про #Kotlin
- "QEMU Advent Calendar 2020" — традиционный уже календарь всякого забавного, что можно запустить в QEMU (про этот календарь я тоже писал); день №12, например, это всё та же "Жизнь", но в виде самозагружаемой (без ОС!) программы на #Rust
Из прошлогодних могу упомянуть "‘A Language a Day’ — Advent Calendar 2019": 25 разных языков программирования по одному на день со ссылками на документацию и примерами кода.
Наконец, возвращаясь к AoC, отмечу, что в этих наших интернетах множество людей делится своими решениями в виде статей и прочих стримов. Вот, например, репозиторий со ссылками на решения AoC на куче языков (ЯП и не очень вроде jq) — вдруг кому захочется свои решения посравнивать с чужими.
И да, всех с Новым Годом!
Повозился тут со штуками вокруг Gemini (см выше).
Серверы
Именно статический "сайт" поднимать не особо хотелось, но таки поднял:
Потыкал пакеты из набора haskell-gemini: пока сыровато. Так что #Haskell с Gemini я подружу позже.
Зато приятно оказалось пользоваться Jetforce. Это фреймворк для #Python такой. Построен на Twisted, внутри типы проаннотированы, async тут и там, при этом код выглядит "как Flask", то есть как набор декорированных функций — современненько!
Мне интересно было именно "Gemini приложение" написать, то есть что-то, создающее контент на лету. Получилось вполне прилично: основная функциональность в Jetforce уже есть. Нужно только будет написать eDSL для более удобного (чем захват регулярками) описания параметров в путях.
Клиенты
На десктопе попробовал пожить с Castor, графическим клиентом, написанным на #Rust, опять же. Но клиент пока слишком юн, и им не слишком удобно пользоваться.
В итоге пересел на Lagrange. Вот этот — красавец! Написан на C11 и SDL, аппаратно ускоряет отрисовку, красиво показывает текст, может и графику показать inline, управляется хоткеями. Даже "лого" генерирует для ресурсов на основе их имени — как умолчательные аватары на GitHub, вы такие точно видели. Пока я крайне доволен пользованием, рекомендую!
На Android пока остановился на deedum. Он не слишком красив, но крайне шустр и нетребователен к ресурсам.
Контент
В Gemlogs — это такие дневники в Geminiverse — народ пишет, есть что почитать. А ещё есть зеркала Lobste.rs и HackerNews, даже с комментариями. Ту же Wikipedia можно почитать через такой прокси. Словом, уютненько
Серверы
Именно статический "сайт" поднимать не особо хотелось, но таки поднял:
gemini://recursive.one (он же через проксю). Раздаётся с помощью Agate, минималистичного Gemini-сервера, написанного на #Rust. Agate кроме раздачи статики ничего не умеет, так что пока статическая страница и повисит %)Потыкал пакеты из набора haskell-gemini: пока сыровато. Так что #Haskell с Gemini я подружу позже.
Зато приятно оказалось пользоваться Jetforce. Это фреймворк для #Python такой. Построен на Twisted, внутри типы проаннотированы, async тут и там, при этом код выглядит "как Flask", то есть как набор декорированных функций — современненько!
Мне интересно было именно "Gemini приложение" написать, то есть что-то, создающее контент на лету. Получилось вполне прилично: основная функциональность в Jetforce уже есть. Нужно только будет написать eDSL для более удобного (чем захват регулярками) описания параметров в путях.
Клиенты
На десктопе попробовал пожить с Castor, графическим клиентом, написанным на #Rust, опять же. Но клиент пока слишком юн, и им не слишком удобно пользоваться.
В итоге пересел на Lagrange. Вот этот — красавец! Написан на C11 и SDL, аппаратно ускоряет отрисовку, красиво показывает текст, может и графику показать inline, управляется хоткеями. Даже "лого" генерирует для ресурсов на основе их имени — как умолчательные аватары на GitHub, вы такие точно видели. Пока я крайне доволен пользованием, рекомендую!
На Android пока остановился на deedum. Он не слишком красив, но крайне шустр и нетребователен к ресурсам.
Контент
В Gemlogs — это такие дневники в Geminiverse — народ пишет, есть что почитать. А ещё есть зеркала Lobste.rs и HackerNews, даже с комментариями. Ту же Wikipedia можно почитать через такой прокси. Словом, уютненько
:^)👍1