Лисп в изгнании
#лытдыбр #common_lisp Итак, пришло время уже полюбившейся постоянным читателям рубрики "ебучий виндус наносит ответный удар". В понедельник с утра мой сотоварищ, помогающий с геймдизайном (и левел-дизайном 🤭) пишет, мол, скинь ассеты к нашей игре на геймджем.…
(2/2)
Во вторник пытаюсь понять, в каком конкретно компоненте проблема, может, в какой-то из DLL, от которых зависят собранные MSYS-овским GCC бинарники? Таких несколько —
Качаю вручную архив со старой версией
К вечеру уже совсем детально заныриваю в проблему. SBCL запускает GCC для компиляции потрохов пакета CFFI, а тот залипает. Окей, давай я сам попробую этот файл скомпилить. Залипает. А hello world GCC вообще может скомпилить? Может. Странно, так залипает, а так нет. После получаса ковыряний понимаю, что залипает на самом деле вызываемый GCC линкер
Тогда я пытаюсь заменить пакет
TL;DR: в рот ебал этот ваш виндус.
Во вторник пытаюсь понять, в каком конкретно компоненте проблема, может, в какой-то из DLL, от которых зависят собранные MSYS-овским GCC бинарники? Таких несколько —
libgcc_s.dll
и libstdc++-6.dll
из пакета gcc-libs
, libwinpthread-1.dll
и... и тут меня осеняет, косяки с WaitForCriticalSection
и виндусовая реализация POSIX threads, ну вот оно!Качаю вручную архив со старой версией
libwinpthread
— с той, которая от февраля и точно должна работать, потому что была в предыдущей версии докер-образа, распаковываю его в систему и... нихуя, точно также залипает. Психанув, закидываю самую старую версию либы, которая доступна, и, конечно, это тоже не помогает.К вечеру уже совсем детально заныриваю в проблему. SBCL запускает GCC для компиляции потрохов пакета CFFI, а тот залипает. Окей, давай я сам попробую этот файл скомпилить. Залипает. А hello world GCC вообще может скомпилить? Может. Странно, так залипает, а так нет. После получаса ковыряний понимаю, что залипает на самом деле вызываемый GCC линкер
ld.exe
, и только тогда, когда вызван с ключом --export-dynamic
, который, кстати, поддерживается только для ELF-файлов, а для виндусовых .exe
не имеет смысла, о чём ld и сообщает руганью типа warning: --export-dynamic is not supported for PE+ targets, did you mean --export-all-symbols?
перед тем, как залипнуть.Тогда я пытаюсь заменить пакет
binutils
, в который входит ld.exe
, на более старую версию — буквально минор на единичку меньше, и, о чудо, сборка проходит нормально! Матерясь, уже на ночь глядя включаю этот хак в докер-образ, собираю его (ещё 40 минут) и уже сегодня с утра наконец готов виндусовый билд текущего кода игры.TL;DR: в рот ебал этот ваш виндус.
💩6💯3
#лытдыбр #common_lisp
Конечно же, с игрой на джем уже проводил тесты вида "а что будет, если на карту накидать несколько сотен персонажей", и FPS как-то грустно проседает с двух тысяч до 800, а при совсем больших количествах (ближе к тысяче) и до 150 кадров в секунду.
Для анализа произволительности удалось заставить заработать замечательный cl-flamegraph Александра Артеменко (трюк в том, что сначала нужно грузить сам
Причём я даже догадываюсь, почему так — функция
Короче, по крайней мере хорошо, что понятно, где проблема 😁
Конечно же, с игрой на джем уже проводил тесты вида "а что будет, если на карту накидать несколько сотен персонажей", и FPS как-то грустно проседает с двух тысяч до 800, а при совсем больших количествах (ближе к тысяче) и до 150 кадров в секунду.
Для анализа произволительности удалось заставить заработать замечательный cl-flamegraph Александра Артеменко (трюк в том, что сначала нужно грузить сам
cl-flamegraph
, и только потом своё приложеньице). По результатам его работы видно (см. рис. 1) удивительное — львиная доля времени CPU тратится на вызов функции отрисовки спрайта через CFFI!Причём я даже догадываюсь, почему так — функция
al:draw-tinted-scaled-rotated-bitmap-region
, которую я вызываю, принимает на вход структуру с цветом по значению, что CFFI традиционно делает через жопу. А функции без цвета я использовать не могу, потому что мне надо одновременно вращать и масштабировать спрайт, а это в liballegro можно только в комплекте с цветом.Короче, по крайней мере хорошо, что понятно, где проблема 😁
❤7🙏1
#лытдыбр #common_lisp
Обнаружил себя в том месте своей жизни, в котором моя фантазия привела меня к описанию в коде проблематикиовечьего секса 😅😂
Обнаружил себя в том месте своей жизни, в котором моя фантазия привела меня к описанию в коде проблематики
🌚7😁4👍1
#лытдыбр #common_lisp
Ну штош, с приходом уикэнда весенний Lisp-геймджем '2024 выходит на финишную прямую, а значит, самое время опубликовать мою новую библиотеку, использованную в игре для джема, а именно — парсер для формата файлов редактора пиксельарт-анимаций Aseprite под названием cl-aseprite, благо во время разработки игры вроде бы баги выловил и сегодня с утра исходники причесал. Библиотека доступна по MIT лицензии и уже есть в Quicklisp-дистрибутиве LuckyLambda. Ура 😊🎉
Ну штош, с приходом уикэнда весенний Lisp-геймджем '2024 выходит на финишную прямую, а значит, самое время опубликовать мою новую библиотеку, использованную в игре для джема, а именно — парсер для формата файлов редактора пиксельарт-анимаций Aseprite под названием cl-aseprite, благо во время разработки игры вроде бы баги выловил и сегодня с утра исходники причесал. Библиотека доступна по MIT лицензии и уже есть в Quicklisp-дистрибутиве LuckyLambda. Ура 😊🎉
GitLab
Andrew Kravchuk / cl-aseprite · GitLab
Aseprite file format parser
🔥14👍3
#лытдыбр #проекты #common_lisp
Раз, два, три, четыре, пять, завершаю кранчевать 😂 После бурной разработки с товарищем сегодня в 3 утра по центральноевропейскому времени зарелизил игру для весеннего Lisp Game Jam '24: Cycle of Evil. Наверное, сегодня-завтра даже разрожусь постом-постмортемом)
P.S. itch.io прилёг полежать, поэтому вот ссылка проекта на Github.
Раз, два, три, четыре, пять, завершаю кранчевать 😂 После бурной разработки с товарищем сегодня в 3 утра по центральноевропейскому времени зарелизил игру для весеннего Lisp Game Jam '24: Cycle of Evil. Наверное, сегодня-завтра даже разрожусь постом-постмортемом)
P.S. itch.io прилёг полежать, поэтому вот ссылка проекта на Github.
itch.io
Cycle of Evil by Andrew, ViruScD
A fantasy-themed strategy/simulation with indirect player control. Available for Windows, macOS, Linux
🔥11❤🔥1❤1
#проекты #common_lisp
Ну штош, пришло время подвести итоги весеннего геймджемаи голосовать за других участников, а то уже время поджимает, а их больше, чем когда-либо . Вот они (без какого бы то ни было осмысленного порядка):
✔️ По мере разработки накоммитил кучу фиксов в свои библиотеки и даже опубликовал новую.
✔️ Иметь свой Quicklisp-дистрибутив удобно, можно иметь при сборке билда чётко те версии библиотек, которые тебе нужны.
✔️ В целом начинают вырисовываться очертания универсального 2D движка, который я давно вынашиваю в планах, а названия толкового ещё не придумал .
✔️ Думать и проектировать игры в терминах ECS невероятно прикольно, быстро и гибко. Типа, определяешь какие-то базовые ортогональные элементы данных, типа "дочерний объект", "позиция", "звуковой эффект", "спрайт", а потом их по-всякому между собой креативно комбинируешь.
✔️ Хорошо также иметь работающий, отлаженный и оптимизированный алгоритм поиска пути A*, но есть проблемки с дискретностью игрового пространства, т.е. очень часто персонаж, повинуясь
✔️ Декларативный UI — это каеф, даже если, как в моём случае, у него со всех сторон торчат уши нижележащей сишной библиотеки Nuklear.
✔️ Окончательно выяснилось слабое звено в плане производительности. Я-то комплексовал, что этим слабым звеном окажутся деревья поведения, создающие по одной ECS-системе и одному компоненту на каждый узел дерева, а они в игре были довольно развесистыми, вот, например, для крестьянина, добывающего мясо из овечек. Но оказалось, что этим слабым звеном всю дорогу была передача сишных структур в сишные же функции "по значению" (т.е. через стек), в частности, функция для отрисовки спрайтов персонажей, вызываемая по несколько раз для каждого персонажа, требует на вход структуру с цветом, поэтому когда персонажей в игре больше сотни, FPS проседает до 130 кадров в секунду, что уже довольно мало — если FPS в моей двухмерной игре упадёт ниже частоты обновления монитора, я это буду воспринимать как личное оскорбление 😅
✔️ Как уже много раз до этого, совершил ошибку откладывания разработки непосредственного контента на последний день, сконцентрировавшись изначально на коде. Пора бы уже действительно зарелизить некий универсальный движок и делать более проработанные игры 😅
✔️ Кроме того, я всё утро воскресенья пилил функционал отравления мяса крестьянами, который должен был стать одной из мета-механик, но в итоге в угаре горящего дедлайна мы с товарищем-геймдизайнером про неё забыли 😢
✔️ Билд под макось, кажется, работает 😊 Правда, кастомный курсор, в отличие от других ОС, не отображается.
✔️ В целом, получившуюся игру можно несложным образом превратить в полноценную стратежку, просто такой цели у нас с товарищем изначально не стояло, поэтому у нас снова indirect player control 🤣
Больше подробностей будет в субботнем девлоге 😊
Ну штош, пришло время подвести итоги весеннего геймджема
✔️ По мере разработки накоммитил кучу фиксов в свои библиотеки и даже опубликовал новую.
✔️ Иметь свой Quicklisp-дистрибутив удобно, можно иметь при сборке билда чётко те версии библиотек, которые тебе нужны.
✔️ В целом начинают вырисовываться очертания универсального 2D движка, который я давно вынашиваю в планах
✔️ Думать и проектировать игры в терминах ECS невероятно прикольно, быстро и гибко. Типа, определяешь какие-то базовые ортогональные элементы данных, типа "дочерний объект", "позиция", "звуковой эффект", "спрайт", а потом их по-всякому между собой креативно комбинируешь.
✔️ Хорошо также иметь работающий, отлаженный и оптимизированный алгоритм поиска пути A*, но есть проблемки с дискретностью игрового пространства, т.е. очень часто персонаж, повинуясь
A*
, пытался добежать из своей текущей позиции до центра текущего тайла, что не всегда выглядит естественно.✔️ Декларативный UI — это каеф, даже если, как в моём случае, у него со всех сторон торчат уши нижележащей сишной библиотеки Nuklear.
✔️ Окончательно выяснилось слабое звено в плане производительности. Я-то комплексовал, что этим слабым звеном окажутся деревья поведения, создающие по одной ECS-системе и одному компоненту на каждый узел дерева, а они в игре были довольно развесистыми, вот, например, для крестьянина, добывающего мясо из овечек. Но оказалось, что этим слабым звеном всю дорогу была передача сишных структур в сишные же функции "по значению" (т.е. через стек), в частности, функция для отрисовки спрайтов персонажей, вызываемая по несколько раз для каждого персонажа, требует на вход структуру с цветом, поэтому когда персонажей в игре больше сотни, FPS проседает до 130 кадров в секунду, что уже довольно мало — если FPS в моей двухмерной игре упадёт ниже частоты обновления монитора, я это буду воспринимать как личное оскорбление 😅
✔️ Как уже много раз до этого, совершил ошибку откладывания разработки непосредственного контента на последний день, сконцентрировавшись изначально на коде. Пора бы уже действительно зарелизить некий универсальный движок и делать более проработанные игры 😅
✔️ Кроме того, я всё утро воскресенья пилил функционал отравления мяса крестьянами, который должен был стать одной из мета-механик, но в итоге в угаре горящего дедлайна мы с товарищем-геймдизайнером про неё забыли 😢
✔️ Билд под макось, кажется, работает 😊 Правда, кастомный курсор, в отличие от других ОС, не отображается.
✔️ В целом, получившуюся игру можно несложным образом превратить в полноценную стратежку, просто такой цели у нас с товарищем изначально не стояло, поэтому у нас снова indirect player control 🤣
Больше подробностей будет в субботнем девлоге 😊
itch.io
Cycle of Evil by Andrew, ViruScD
A fantasy-themed strategy/simulation with indirect player control. Available for Windows, macOS, Linux
❤11❤🔥1
#анонс
Вот уже в следующий четверг, 06.06 в 19:00 по МСК буду выступать на онлайн-митапе по функциональщине, организованном широко известными в узких кругах HealthSamurai. Буду рассказывать, как же клёво писать игры на лиспах 😊
Мероприятие онлайновое и бесплатное, но нужна регистрация, поэтому айда: Функциональное программирование для всех
Вот уже в следующий четверг, 06.06 в 19:00 по МСК буду выступать на онлайн-митапе по функциональщине, организованном широко известными в узких кругах HealthSamurai. Буду рассказывать, как же клёво писать игры на лиспах 😊
Мероприятие онлайновое и бесплатное, но нужна регистрация, поэтому айда: Функциональное программирование для всех
health-samurai.ru
Функциональное программирование для всех
Митап для функциональщиков – базовые либы, безопасность и игры на Lisp!
🔥8
#common_lisp
Ну шо, пацаны и пацанессы, пришла пятница, а с ней и пати тайм 🕺
https://youtu.be/jS84KmkkNkU
Ну шо, пацаны и пацанессы, пришла пятница, а с ней и пати тайм 🕺
https://youtu.be/jS84KmkkNkU
YouTube
Drum N Bass in CommonLisp
Just made music which D'nB with visual effect on CommonLisp. You can get source code to https://github.com/byulparan/livecoding
I think Common Lisp is best toolkit for creative coding.
I think Common Lisp is best toolkit for creative coding.
👍5🔥1🎉1
#проекты #devlog #common_lisp
А вот и девлог игрового движка на Common Lisp с чуть более подробным разбором внутрянки игры на геймджем 🔥
Как обычно, с русскими субтитрами на всякий случай.
Если бы мои ебучие соседи не праздновали сегодня в третий раз день независимости до пяти утра, оно даже могло бы быть не таким сумбурным
https://youtu.be/27B-xpgCYOQ
А вот и девлог игрового движка на Common Lisp с чуть более подробным разбором внутрянки игры на геймджем 🔥
Как обычно, с русскими субтитрами на всякий случай.
https://youtu.be/27B-xpgCYOQ
YouTube
LISP Game Engine devlog #9
Devlog of my Common Lisp-based game engine.
Cycle of Evil game: https://awkravchuk.itch.io/cycle-of-evil
Game's source code: https://github.com/lockie/spring-lisp-jam-2024
ECS framework 0.5.0 release: https://awkravchuk.itch.io/cl-fast-ecs/devlog/740416/050…
Cycle of Evil game: https://awkravchuk.itch.io/cycle-of-evil
Game's source code: https://github.com/lockie/spring-lisp-jam-2024
ECS framework 0.5.0 release: https://awkravchuk.itch.io/cl-fast-ecs/devlog/740416/050…
👏4👍1
Вот уже через час начнётся митап про функциональщину. Присоединяйтесь, буду там лечить про игры на лиспах 😊
P.S. Запись потом тоже будет на ютубе 👌
P.S. Запись потом тоже будет на ютубе 👌
health-samurai.ru
Функциональное программирование для всех
Митап для функциональщиков – базовые либы, безопасность и игры на Lisp!
👍7🔥3
А вот и запись митапа подъехала, и ссылка на презентацию 😊
YouTube
Функциональное программирование для всех
00:00 - Писать игры на Lisp — кайфово! (Андрей Кравчук)
01:08:44 - Безопасность и гранулярный доступ (Ростислав Антонов)
01:31:42 - Sorted map/sorted set в Clojure (Макс Савченко)
01:55:00 - Конец
Презентация доклада «Писать игры на Lisp — кайфово!»
htt…
01:08:44 - Безопасность и гранулярный доступ (Ростислав Антонов)
01:31:42 - Sorted map/sorted set в Clojure (Макс Савченко)
01:55:00 - Конец
Презентация доклада «Писать игры на Lisp — кайфово!»
htt…
❤11👍5🔥3
#лытдыбр #common_lisp
И вот библиотека cl-aseprite для чтения файлов пиксельного редактора анимаций Aseprite в новой версии 0.1.0 обзавелась комплектом тестов и красивой страничкой документации 😊
Хотя, пока допиливал её, подумал, что так-то анимации вроде бы можно хранить и внутри файлов также используемого мной редактора карт Tiled, так что теоретически можно вообще целиком делать контент игры, не вылезая из него, получается этакий родной редактор карт для движка. В ближайшее время займусь проверкой этого варианта.
Вот так потихоньку вырисовываются черты ресурсной системы движка 😌
И вот библиотека cl-aseprite для чтения файлов пиксельного редактора анимаций Aseprite в новой версии 0.1.0 обзавелась комплектом тестов и красивой страничкой документации 😊
Хотя, пока допиливал её, подумал, что так-то анимации вроде бы можно хранить и внутри файлов также используемого мной редактора карт Tiled, так что теоретически можно вообще целиком делать контент игры, не вылезая из него, получается этакий родной редактор карт для движка. В ближайшее время займусь проверкой этого варианта.
Вот так потихоньку вырисовываются черты ресурсной системы движка 😌
GitLab
0.1.0 · Andrew Kravchuk / cl-aseprite · GitLab
This release adds a full test suite and documentation page, along with bunch of small fixes and changes. See
👏6
#лытдыбр #common_lisp
Закоммитил функцию, с помощью которой строил демонстрационную картиночку к митапу HealthSamurai. С помощью неё можно творить, например, вот такую красоту (см. рис. 1) 😊
Зато памяти жрёт чёртову прорву, когда я строил ту картиночку, бенчмарк для бедных системный макрос мне сообщал, что она нагенерила ~700 кб мусора 😱
Закоммитил функцию, с помощью которой строил демонстрационную картиночку к митапу HealthSamurai. С помощью неё можно творить, например, вот такую красоту (см. рис. 1) 😊
time
❤7😱1
#лытдыбр #common_lisp
Вчера натолкнулся на вот такой замечательный инструмент для построения графа зависимостей Common Lisp-овых систем— это так на CL-овском жаргоне по сути называется то, что в других языках зовётся библиотекой, только, как всегда, более гибкое 😊 Причём впервые такого рода инструмент у меня заработал без проблем, плюс в нём есть крутая фича по выводу лицензий всех зависимостей. Решил из интереса натравить его на последний проект, игру Cycle of Evil, и тут я с ужасом вижу в списке лицензий, помимо крайне либеральных MIT, zlib, и вовсе Public Domain, вирусную GPLv3 у библиотеки lisp-binary, от которой зависит моя новая либа для чтения Aseprite-файлов, и с ужасом же вспоминаю, почему я 4 года назад, когда делал разбор Aseprite-файлов в своём проекте d2clone-kit, не стал брать
Пришлось под шумок перелицензировать и Cycle of Evil, и либу cl-aseprite под той же GPLv3, чтобы её юзерам сразу было понятно, что почём 😩
Видимо, придётся-таки, как я и думал, хранить анимации в Tiled-файлах, но там тоже есть свои ограничения — остаётся надеяться на его, Tiled, быстрое развитие, хоть уже сам сдувай пыль со своих C++/Qt навыков и лепи пуллреквесты 😅
Вчера натолкнулся на вот такой замечательный инструмент для построения графа зависимостей Common Lisp-овых систем
lisp-binary
— хоть она клёвая и предоставляет удобный и мощный DSL для разбора бинарных файлов, вирусная GPL накладывает серьёзные ограничения на потенциальных пользователей моего кода.Пришлось под шумок перелицензировать и Cycle of Evil, и либу cl-aseprite под той же GPLv3, чтобы её юзерам сразу было понятно, что почём 😩
Видимо, придётся-таки, как я и думал, хранить анимации в Tiled-файлах, но там тоже есть свои ограничения — остаётся надеяться на его, Tiled, быстрое развитие, хоть уже сам сдувай пыль со своих C++/Qt навыков и лепи пуллреквесты 😅
GitHub
GitHub - varjagg/deptree: System dependency listing and archiving tool for Common Lisp
System dependency listing and archiving tool for Common Lisp - varjagg/deptree
Forwarded from Haiku
Всем привет!
Ребята, присоединяйтесь к хакатону от Самураев с 26 по 28 июня. Отличная возможность для тех, у кого есть интересный проект/идея, но не доходят руки! 😉
Если коротко про формат, то:
Дата: 26-28 июня
Формат: оффлайн + онлайн
Приз: $1000
Проект: новый, без объемных наработок
Тема: любая (+1 балл за Health IT, FHIR, Aidbox)
Стек технологий: любой, можно использовать ИИ (за ФП – сердечко от оргов)
Команда: 2-9 человек
Победителя выбирают сами участники голосованием
А если ты в Черногории, то приходи к нам на виллу, похакатоним оффлайн. Будет бассейн, настольный теннис и разные приколюхи.
Участие бесплатно, необходимо зарегистрироваться здесь.
Ребята, присоединяйтесь к хакатону от Самураев с 26 по 28 июня. Отличная возможность для тех, у кого есть интересный проект/идея, но не доходят руки! 😉
Если коротко про формат, то:
Дата: 26-28 июня
Формат: оффлайн + онлайн
Приз: $1000
Проект: новый, без объемных наработок
Тема: любая (+1 балл за Health IT, FHIR, Aidbox)
Стек технологий: любой, можно использовать ИИ (за ФП – сердечко от оргов)
Команда: 2-9 человек
Победителя выбирают сами участники голосованием
А если ты в Черногории, то приходи к нам на виллу, похакатоним оффлайн. Будет бассейн, настольный теннис и разные приколюхи.
Участие бесплатно, необходимо зарегистрироваться здесь.
❤5
#лытдыбр #emacs
Что-то я всю эту неделютюленил под кондиком, спасаясь от сорокаградусной жары пытался настроить почту в Emacs, ибо Thunderbird, которым я пользовался до этого, как в анекдоте про воздушные шарики, бракованный, потому что не радует 😅
Сначала попробовал вроде бы более популярный
Последние пару дней вазюкался с неправильным удалением почты, аж тред на реддите создал, но таки в конечном итоге всё победил) Тут хочется сказать большое спасибо очень дружелюбному русскоязычному емакс-коммьюнити и отдельно Андрею Орсту 🫶
Ну и только что закоммитил все конфиги себе в репу с дотфайлами, чтобы сохранилось на века 😁
Что-то я всю эту неделю
Сначала попробовал вроде бы более популярный
notmuch
, но быстро понял, что там нужно построить целую машину Голдберга из шелл-скриптов для того, чтобы вся локальная почта правильно синхронизировалась с GMail. По ходу дела ещё выяснилось, что в GMail придётся включить авторизацию по "паролю приложения" и интерфейс поменять на английский (чтобы имена папок были правильные), и что Python (и, по продолжению, offlineimap
) до сих пор не умеет правильно считывать мультиаккаунтный .netrc
, лол. В итоге плюнул и всё сделал на mu4e
+ mbsync
, и оказалось, что mu4e
мало того, что гмыло поддерживает почти целиком из коробки, так ещё и невероятно красив и пугающе удобен, я уже с трудом понимаю, как я жил до него 😊Последние пару дней вазюкался с неправильным удалением почты, аж тред на реддите создал, но таки в конечном итоге всё победил) Тут хочется сказать большое спасибо очень дружелюбному русскоязычному емакс-коммьюнити и отдельно Андрею Орсту 🫶
Ну и только что закоммитил все конфиги себе в репу с дотфайлами, чтобы сохранилось на века 😁
GitHub
emacsrc: added mail reader 🎉 · lockie/dotfiles@9491418
"you are your dotfiles". Contribute to lockie/dotfiles development by creating an account on GitHub.
🔥7❤2👍2✍1
#статьи
Коллега Иван Гришаев делится мнением про синтаксис Лиспов, которое я полностью разделяю. Ей-б-гу, после лиспа смотреть на код на C или там на каком питоне просто физически больно мозгу 😅
Коллега Иван Гришаев делится мнением про синтаксис Лиспов, которое я полностью разделяю. Ей-б-гу, после лиспа смотреть на код на C или там на каком питоне просто физически больно мозгу 😅
Telegram
igrishaev
Когда неподготовленный человек видит Лисп, он как-то реагирует: хихикает, лепит эмодзи, вовлекает других, словом — переживает. В такую минуту он напоминает школьника, который принес эротический журнал: смотрит на груди и попы, конфузится, краснеет, показывает…
❤1
#проекты #clojure
На той неделе поучаствовал в летнем хакатоне HealthSamurai, где умудрился за три дня пройти от давно вынашиваемой идеи до рабочего прототипа и сделал на Clojure бота, уведомляющего об обновлениях версий используемых библиотек в произвольных проектах (ну как произвольных, пока только на Clojure и Python), этакий аналог Snyk, но в телеграме. Вот видос с таймкодом, где я рассказываю о том, что удалось сделать на хакатоне, а вот и сам бот — он пока в открытом бета-тесте и бесплатный 😊
На той неделе поучаствовал в летнем хакатоне HealthSamurai, где умудрился за три дня пройти от давно вынашиваемой идеи до рабочего прототипа и сделал на Clojure бота, уведомляющего об обновлениях версий используемых библиотек в произвольных проектах (ну как произвольных, пока только на Clojure и Python), этакий аналог Snyk, но в телеграме. Вот видос с таймкодом, где я рассказываю о том, что удалось сделать на хакатоне, а вот и сам бот — он пока в открытом бета-тесте и бесплатный 😊
YouTube
Summer Hackathon | 3rd Day
👍8❤2
#лытдыбр #проекты #common_lisp
Сегодня с утреца в рамках акции растаскивания кодовой базы моего старого проекта
Возможно, какой-нибудь седобородый лисп-старец, несмотря на мои подробныеоправдания объяснения в Readme, зачем это, объяснил бы мне, что я делаю фигню и эта библиотека не нужна, но у меня таких знакомых нет 😅
Сегодня с утреца в рамках акции растаскивания кодовой базы моего старого проекта
d2clone-kit
на отдельные хорошо протестированные и задокументированные запчасти с чётким интерфейсом наконец доделал то, что собирался уже очень давно — вытащил в отдельную библиотеку макрос для изменения размера простых массивов Common Lisp, вот она: trivial-adjust-simple-array. Ну и по ходу дела зарефакторил ECS-библиотеку с её использованием.Возможно, какой-нибудь седобородый лисп-старец, несмотря на мои подробные
🔥5