Лисп в изгнании
230 subscribers
156 photos
21 videos
5 files
233 links
Авторский канал на околоайтишную тематику.

По всем вопросам @awkravchuk
Download Telegram
#лытдыбр #мемасики #scheme #common_lisp

Наткнулся тут в недавней статье про Medley/Interlisp на шикарное сравнение:
• Scheme — это экзотический спорткар. Быстрый. На ручной коробке. Без радио.
• Emacs Lisp — это Subaru GL 4WD 1984 года: "машина, которая всегда впереди тебя".
• Common Lisp — это Ходячий замок Хаула 🤣
😁5
#лытдыбр #проекты

Принял стратегическое решение отключить бота для слежения за обновлениями — популярностью он не пользоваться, рекламой заниматься я не умею, а если начинать учиться, то с другими моими проектами получится, как на приложенном мемасике 😅

Благо, удалось извлечь из этого проекта пользу: он был развёрнут на FreeBSD и PostgreSQL поверх OpenZFS, и теперь я из практики знаю, как обращаться с этим ультрахардкорным стеком 😊
🔥6👍1🙈1
#лытдыбр #common_lisp

Сделал ещё один маленький шажок к ресурсной системе игрового движка на CL — теперь при запуске автоматически происходит переход в каталог с ресурсами, причём хоть при загрузке кода в Emacs, хоть при запуске из сдампанного lisp-образа, хоть из линуксового AppImage 😊

Соответствующие изменения уже есть в последней версии нашего крайнего шедевра Cycle of Evil, в шаблоне игры на Common Lisp и в туториале по cl-fast-ecs я уже вот-вот накоплю силы для второй части, честно-честно 😅
🔥13
#мысль_в_душе #common_lisp

По результатам обсуждения макросов CL в коммьюнити Lisp forever пришла в голову такая мысль: не секрет, что в большинстве лиспов у функций сохраняется информация об исходном коде, так что, например, при возникновении исключительной ситуации в стек-трейсе можно написать что-то в духе (foo) from foo.lisp line 42. Почему бы не сохранять также для каждой строчки инфу о раскрытых макросах, которые были на этой строчке, чтобы ещё можно было написать, типа, (foo) from macro expansion of (with-open-file) in foo.lisp line 42?

С каждым днём мне всё труднее удерживать себя от того, чтобы бросить всё и начать пилить свой супербыстрый и суперкрутой диалект лиспа 😅
5👍3
#лытдыбр #common_lisp

Отправил в библиотеку cl-tiled PR с фичой, которой нам сильно не хватало для игры на весенний лисповый геймджем, а именно — поддержки объектов-шаблонов Tiled. Ну то есть как нам, не хватало моему товарищу, занимавшемуся картами, я-то просто сочувственно цокал языком 😅

Теперь шаблоны в cl-tiled будут поддерживаться прозрачным образом, даже код старых игр менять не придётся. Вы знаете, где выгрузить фуру с лайками и прочими положительными реакциями типа 🎉, чтобы автор библиотеки быстрее принял пуллреквест 😊
🔥7
This media is not supported in your browser
VIEW IN TELEGRAM
#лытдыбр #common_lisp

Умудрился тут себе заработать воспаление плечевого сустава, так что уле=еле полулёжа сижу за компом, закидавшись обезболивающими. Но всё же потихоньку нахожу в себе силы пилить вторую часть туториала по геймдеву на Common Lisp, чтобы успеть опубликовать его до середины октября и иметь возможность пошутить шуточку "и года не прошло с первой части" 😅

Вон даже осилил сделать подгрузку анимированных тайлов 😊
🔥8
#лытдыбр

А вот и отзывы подъехали к моему ECS-фреймворку для Common Lisp, хоть сейчас верстай лендинг с разделом Testimonials 😅
🔥9😁42💯2
#лытдыбр

Пока из-за больного плеча валялся на диване нетрудоспособным тюленчиком, осилил дочитать книжку Кристиана Кеннека "Lisp in small pieces", в которой подробно рассматривается строение интерпретаторов и компиляторов разных лиспов, и, конечно же, я загорелся идеей сделать свой крутой компилятор своего диалекта лиспа 😅 Как будто у меня хобби мало — уже поджимают сроки со второй частью туториала по геймдеву на Common Lisp, и буквально сегодня объявили дату осеннего Lisp Game Jam (спойлер, это 25 октября).

В общем, сегодня схожу на первый сеанс ЛФК, меня там каак вылечат, и тут-то я всё и сделаю))
8😢2👍1
#лытдыбр #common_lisp

Пока потихоньку доделываю туториал по геймдеву на CL, умудрился наткнуться и починить багу в библиотеке для UI Nuklear (она во второй части туториала тоже будет фигурировать 😊). Бага причём есть не только в liballegro-бэкэнде (я уже давно прикипел к этой библиотеке), но и в некоторых других бэкэндах, но на них у меня сил, конечно, не хватит 😅
🔥5
#лытдыбр

Пулл-реквест в библиотеку Nuklear приняли, в результате чего я попал, гм, в первую четырнадцатку соучастников 😅
🔥18👍1
#лытдыбр

В преддверии Autumn Lisp Game Jam '24, на котором я решил на этот раз выступить с rogue-like игрой (надо ж все жанры понадкусывать, как яблоки в том анекдоте 😅), решил ознакомиться поподробнее с современным состоянием жанра и почти случайно наткнулся на такой шедевр, как Path of Achra. Графика там, конечно, на уровне приснопамятной Rogue, прямиком из конца семидесятых (см. рис. 1), но буквально с первого данжа игра невероятно затягивает, я в нее последнюю неделю каждый вечер залипаю 😊 Возможно, дело в том, что такого рода игры бросают в тебя серьёзные челленджи, но при этом также дают массу различных инструментов, чтобы с ними справляться — тут только разных типов урона 11 штук, а вариаций персонажей и вовсе 640)

Рекомендую причаститься, благо, в стиме есть бесплатное демо (в которое я и играю, скидки-то проворонил 😅)
🔥71
#common_lisp

Тут подъехала кулстори, что лицо Горлума из кинотрилогии "Властелин Колец" моделировали в софтине, написанной на Common Lisp 💪

https://archive.org/details/izware_mirai_1.1sp2

Mirai is a 3D creation and editing suite available originally from Nichimen Graphics Corporation, later from Winged Edge Technologies, and currently from Izware. The modeller uses the winged edge data structure, is written in Common Lisp, and traces its lineage to the S-Geometry software from Symbolics. It has been used primarily by game developers and high-end character animators—for example by Bay Raitt's facial morph targets for the Gollum character in The Lord of the Rings film trilogy.

UPD. В коментах ещё подкинули ссылку на статью об этой софтине на сайте Franz Inc., которые Allegro Common Lisp.
🔥10👍1
#лытдыбр #common_lisp

Определённо наличие дедлайнов, даже довольно произвольных, тонизирует — уже написал больше текста второй части туториала, чем было в первой, а ещё даже не закончил с рассмотрением первой темы из двух, вынесенных в её заголовок 😅
3👍2🔥2🕊1
#лытдыбр #соцсети

Наконец исполнил свою давнюю мечту и сделал персональный телеграм-канал для щитпоста на околопрограммерские темы, вот он: Щепелявый Щитпост 😅 Накидал там мемасов, которые давно под рукой валялись, так что подписывайтесь (но лучше не надо, щитпост же))
4
#лытдыбр #common_lisp

Вчера утром никого не трогаю, дописываю вторую часть туториала, вдруг раз — на почту уведомление, мол, в коментах к нашей игре на прошлогодний осенний Lisp-джем Mana Break чувачок пишет, что у него под линуксом игра не запускается. "Под такой благословенной ОС и не запускается", — думаю я, "непорядок, нужно чинить". Лезу разбираться, и выясняется, что в течение уже неопределённо долгого времени (с мая?) билды под некоторыми дистрибутивами действительно могут не запускаться из-за того, что окошечная библиотека GTK при запуске не может найти иконку image-missing, которая нужна, чтобы показать, что он не может найти иконку 😵‍💫

Попытался починить, даже багу в багтрекере AppImageKit завёл, возился-возился, потом плюнул и добавил всё правильно разруливающий в потрохах GTK GTK-плагин к утилите для создания линуксового AppImage, — это сработало, так что добавил его и внутрь своего докер-образа для сбора игр (заодно и версию SBCL бампнул), кроме того, пришлось внести изменения в cookiecutter-шаблон для игр на CL. Ух, вот это я понимаю прокрастинация 😅
👍6😭2🥴1
#лытдыбр #common_lisp

Сам поверить не могу, но я закончил первый черновик второй части туториала по геймдеву на Common Lisp 🎉 Теперь наступает нудный период редактуры и вычитывания, плюс надо наснимать скриншотов и сделать в Tiled карту, которая будет фигурировать в демо. Есть даже ненулевая вероятность уложиться в собственный с потолка взятый дедлайн (интересно, а бывают не взятые с потолка?) и опубликовать-таки его на следующей неделе)

Кстати, если кто-то хочет чуть позже помочь с вычиткой текста, милости прошу отметиться в коментах, в качестве благодарности, правда, смогу лишь упомянуть вас в конце статьи ❤️
🎉8👍3
#лытдыбр #common_lisp

О, репозиторий Quicklisp обновился, как я и предсказывал. Как я об этом узнал? Очень просто, билд дёмки для туториала начал валиться с segfault'ом, см. рис. 1.

После разбирательства стало понятно, что дело, скорее всего, не в бобине квиклиспе, а в том, что я дампил в лисп-образ память, аллоцированную через CFFI, а хрупкая сишная натура библиотеки liballegro после загрузки образа работать с такой памятью не может, но осадочек остался, несмотря на найденные ложечки 😅
🤣8👍1🎃1
#лытдыбр #common_lisp

По горячим следам после публикации туториала пофиксил багу, которую сам же и внёс в cl-tiled, когда реализовывал поддержку объектов-шаблонов, правда, она проявлялась только на уровне SAFETY 3, странно, что столько людей её репортят. Вообще количество баг-репортов в мои проекты за эти несколько дней ощутимо увеличилось, это не может не радовать 😊
🔥7