#лытдыбр
Выбор ссылки, которая станет превью поста в телеграме — это, блядь, какая-то безвыигрышная лотерея: как ты не ебись, оно сделает так, как не нужно, и это один из немногих косяков, который становится лишь очевиднее после того, как заводишь свой канал. В который раз уже повторюсь, что более косоёбого мессенджера, чем телеграм, я в жизни ни разу не видел, а я настолько мастодонт, что застал ещё ICQ и Miranda. Сколько г-н Дуров вбухал в маркетинг, чтобы все этим костыльным говном пользовались, мне даже примерно представить страшно.
Выбор ссылки, которая станет превью поста в телеграме — это, блядь, какая-то безвыигрышная лотерея: как ты не ебись, оно сделает так, как не нужно, и это один из немногих косяков, который становится лишь очевиднее после того, как заводишь свой канал. В который раз уже повторюсь, что более косоёбого мессенджера, чем телеграм, я в жизни ни разу не видел, а я настолько мастодонт, что застал ещё ICQ и Miranda. Сколько г-н Дуров вбухал в маркетинг, чтобы все этим костыльным говном пользовались, мне даже примерно представить страшно.
😁1
#лытдыбр #видео
Вчера хвастался своей реализацией самодельного интерпретатора лиспа на сишечьке, сделанной между делом в рамках бесплатного курса. Спасибо Андрею за то, что взял за руку и протащил по этому пути 😁
Упаси меня боже занырнуть в эту сторону с головой и начать писать компилятор своего диалекта лиспа в LLVM-биткод, мне же тогда точно спать станет некогда 😅
Вчера хвастался своей реализацией самодельного интерпретатора лиспа на сишечьке, сделанной между делом в рамках бесплатного курса. Спасибо Андрею за то, что взял за руку и протащил по этому пути 😁
YouTube
Liscript (пишем свой Лисп) - 6
🔥3😁1
#common_lisp
Сегодня с утра на стриме с удивлением узнал на опыте, что в SBCL декларация
Сегодня с утра на стриме с удивлением узнал на опыте, что в SBCL декларация
(optimize (space 0))
приводит не к увеличению производительности (хотя казалось бы, если компилятору насрать на всё, включая размер, он потенциально может сделать более большой, но более быстро работающий код), а вовсе наоборот — к деградации скорости работы, причём в моём случае аж в два раза. Век живи — век учись 😅🔥1
#clojure
Минутка бесстыдной рекламы: вот уже в этот четверг, 27 апреля, начнётся первый поток курса Clojure Developer в Otus, к которому ваш покорный немножко приложил руку, и, более того, будет вести в нём несколько занятий. Команда курса собрана очень сильная, поэтому, если всегда хотелось занырнуть в мир разработки на Clojure, добро пожаловать 😊
Минутка бесстыдной рекламы: вот уже в этот четверг, 27 апреля, начнётся первый поток курса Clojure Developer в Otus, к которому ваш покорный немножко приложил руку, и, более того, будет вести в нём несколько занятий. Команда курса собрана очень сильная, поэтому, если всегда хотелось занырнуть в мир разработки на Clojure, добро пожаловать 😊
otus.ru
Курс clojure Developer
Best Practices по одному из любимых языков разработчиков
❤2
#лытдыбр
Хотел тут на этой неделе сделать небольшую паузу и подкопить немного сил перед предстоящим в конце мая Lisp game jam 2023, но жизнь внесла свои коррективы — во вторник на улице шёл град, я закрыл все ставни на балконе, пошёл в магаз, а когда минут через десять вернулся, полбалкона в граде, а в самой квартире (съёмной, на секундочку) всё плавает в воде по щиколотку, хорошо хоть ничего не закоротило, кроме блока питания к ноутбуку. Как мне потом объясняли, град на балкон умудрился попасть каким-то невероятным образом через ливневую канализацию. В итоге вместе с хозяйкой весь день вычёрпывали воду и паниковали по поводу паркета, и до сих пор абсолютно все мышцы в моём теле болят 😭 Такой вот непреднамеренный отдых, лол
Хотел тут на этой неделе сделать небольшую паузу и подкопить немного сил перед предстоящим в конце мая Lisp game jam 2023, но жизнь внесла свои коррективы — во вторник на улице шёл град, я закрыл все ставни на балконе, пошёл в магаз, а когда минут через десять вернулся, полбалкона в граде, а в самой квартире (съёмной, на секундочку) всё плавает в воде по щиколотку, хорошо хоть ничего не закоротило, кроме блока питания к ноутбуку. Как мне потом объясняли, град на балкон умудрился попасть каким-то невероятным образом через ливневую канализацию. В итоге вместе с хозяйкой весь день вычёрпывали воду и паниковали по поводу паркета, и до сих пор абсолютно все мышцы в моём теле болят 😭 Такой вот непреднамеренный отдых, лол
🤯1😢1
#лытдыбр #common_lisp #проекты
В рамках подготовки к Lisp game jam возродил тут проект по сборке бинарников SBCL под старые виндусы (включая шиндус 7 — официальный бинарь с sbcl.org работает только под десяткой+). Провозился несколько часов, разобрался с Github Actions и даже зарепортил баг в SBCL — система сборки у него, конечно, заслуживает эпитета "хтонический", но в конечном итоге последняя версия (2.3.4) успешно работает. Забирайте, кому нужно 😊
В рамках подготовки к Lisp game jam возродил тут проект по сборке бинарников SBCL под старые виндусы (включая шиндус 7 — официальный бинарь с sbcl.org работает только под десяткой+). Провозился несколько часов, разобрался с Github Actions и даже зарепортил баг в SBCL — система сборки у него, конечно, заслуживает эпитета "хтонический", но в конечном итоге последняя версия (2.3.4) успешно работает. Забирайте, кому нужно 😊
🔥5
#статьи #common_lisp
Лентой принесло статью про лиспы, которой хотелось бы поделиться. Автор исследует вопрос, что же вообще делает какой-то конкретный язык Lisp'ом; утверждает, что любой акт программирования — это акт создания своего языка, даже когда ты этого не замечаешь, а затем акт его использования (тут на ум сразу приходят шаблоны Django или SQL). Наконец, автор приводит пару примеров из практики на Common Lisp приходит к выводу, что лисп — это любой язык, в котором есть возможность конструировать свои (суб-)языки. Можно спорить о том, насколько часто эта возможность используется (в той же Clojure вроде как многие бестпрактисы отсоветывают писать свои макросы), но в целом со статьёй согласен, лёгкость написания DSL в лиспах — это самая его убойная киллерфича, как мне кажется.
Лентой принесло статью про лиспы, которой хотелось бы поделиться. Автор исследует вопрос, что же вообще делает какой-то конкретный язык Lisp'ом; утверждает, что любой акт программирования — это акт создания своего языка, даже когда ты этого не замечаешь, а затем акт его использования (тут на ум сразу приходят шаблоны Django или SQL). Наконец, автор приводит пару примеров из практики на Common Lisp приходит к выводу, что лисп — это любой язык, в котором есть возможность конструировать свои (суб-)языки. Можно спорить о том, насколько часто эта возможность используется (в той же Clojure вроде как многие бестпрактисы отсоветывают писать свои макросы), но в целом со статьёй согласен, лёгкость написания DSL в лиспах — это самая его убойная киллерфича, как мне кажется.
www.tfeb.org
Nirvana
An article constructed from several emails from my friend Zyni, reproduced with her permission. Note that Zyni's first language is not English....
👍1
#мемасики
В зарубежных интернетах есть такой мемчик, The missile knows where it is, выстёбывающий формалистский текст ради текста (как раз такой, который любит генерировать модный нынче ChatGPT), совершенно шизоидного содержания, типа "ракета знает, где находится, потому что знает, где она не находится". Так вот, на днях наткнулся на ютубе на двухминутный видос с этим текстом, наложенным на демонстрацию кода на JS, и меня чёт вообще порвало 🤣
В зарубежных интернетах есть такой мемчик, The missile knows where it is, выстёбывающий формалистский текст ради текста (как раз такой, который любит генерировать модный нынче ChatGPT), совершенно шизоидного содержания, типа "ракета знает, где находится, потому что знает, где она не находится". Так вот, на днях наткнулся на ютубе на двухминутный видос с этим текстом, наложенным на демонстрацию кода на JS, и меня чёт вообще порвало 🤣
#common_lisp
В рамках подготовки к Lisp Game Jam 2023 уже сделяль шаблон для игрового проекта с использованием SDL2, которую я раньше избегал в пользу liballegro. Как выясняется, мне были уготованы пара открытий чудных: во-первых, в биндинге SDL2 к CL очень много "медвежьих услуг" в стиле автоматического удаления сишных указателей с кучи через финалайзеры
Во-вторых, GC в SBCL, конечно, весьма чудной, что под линуксом (см. рис. 1), что под шиндой (см. рис. 2). Сказали ему при компиляции, что общий размер доступной ему кучи 2 Гб, и он не особо шевелится вплоть до момента, пока не будет сожран гигабайт с хвостиком 😂
В рамках подготовки к Lisp Game Jam 2023 уже сделяль шаблон для игрового проекта с использованием SDL2, которую я раньше избегал в пользу liballegro. Как выясняется, мне были уготованы пара открытий чудных: во-первых, в биндинге SDL2 к CL очень много "медвежьих услуг" в стиле автоматического удаления сишных указателей с кучи через финалайзеры
trivial-garbage
, как будто я сам не могу условный free
дёрнуть (а если так сделать вместе с финалайзером, то через неопределённый период времени игра крэшится или тупо зависает).Во-вторых, GC в SBCL, конечно, весьма чудной, что под линуксом (см. рис. 1), что под шиндой (см. рис. 2). Сказали ему при компиляции, что общий размер доступной ему кучи 2 Гб, и он не особо шевелится вплоть до момента, пока не будет сожран гигабайт с хвостиком 😂
🤔2
#common_lisp
Итак, вот уже в эту пятницу начнётся Lisp game jam. Я к его началу собрался подготовить cokiecutter-шаблон для игры на CL, с выбором варианта middleware-библиотеки (SDL2, liballegro, raylib) и с автоматической сборкой готовых бинарников для трёх основных платформ (Linux, MacOS, Windows). Так вот, сегодня с утра доделал вариант с raylib, который на удивление занимает меньше всего кода и меньше всего места в скомпилированном виде. Под линукс и шинду уже всё готово, это, на секундочку, шесть протестированных вариантов сборки. Попробовал ткнуться в сборку под MacOS, установив у себя в kvm-виртуалку Monterey (а затем и High Sierra в VirtualBox), и я должен сказать, что там не работает НИХУЯ, по буквам: Николай, Иван, Харитон, Ульяна, Ярослав. Ну то есть код с использованием liballegro крэшится где-то в недрах кода макоси при её, liballegro, инициализации, код SDL2 намертво залипает на каком-то мьютексе внутряхоткрыто и смело прямо в лицо, что
Теперь надо написать статью на хабр с анонсом геймджема, и ещё поспать бы, а то на улице жара такая, а я не выспался 🥱
Итак, вот уже в эту пятницу начнётся Lisp game jam. Я к его началу собрался подготовить cokiecutter-шаблон для игры на CL, с выбором варианта middleware-библиотеки (SDL2, liballegro, raylib) и с автоматической сборкой готовых бинарников для трёх основных платформ (Linux, MacOS, Windows). Так вот, сегодня с утра доделал вариант с raylib, который на удивление занимает меньше всего кода и меньше всего места в скомпилированном виде. Под линукс и шинду уже всё готово, это, на секундочку, шесть протестированных вариантов сборки. Попробовал ткнуться в сборку под MacOS, установив у себя в kvm-виртуалку Monterey (а затем и High Sierra в VirtualBox), и я должен сказать, что там не работает НИХУЯ, по буквам: Николай, Иван, Харитон, Ульяна, Ярослав. Ну то есть код с использованием liballegro крэшится где-то в недрах кода макоси при её, liballegro, инициализации, код SDL2 намертво залипает на каком-то мьютексе внутрях
cl-sdl2
, и только raylib говорит Failed to initialize Graphic Device
, хотя хочу заметить, что под виндой с софтверным рендерером в том же VirtualBox все три варианта прекрасно бегают. По хорошему, надо бы попробовать сделать в KVM GPU pass-through, но моя Nvidia поддерживается только в High Sierra и ранее, а хайсьерра в QEMU не ставится, мотивируя отказ тем, что не может до серверов эппла достучаться, хотя интернет у неё есть. А это я ещё даже не прикасался к теме компиляции под Apple Silicon, там вообще гроб гроб кладбище пидор. В общем, решил пока подзабить на макось, если будет по ходу дела время, попробую чё-то поковырять, в идеале вообще нужно где-то приобрести старенький мак и на нём экспериментировать, но это уже не для моих финансовых условий.Теперь надо написать статью на хабр с анонсом геймджема, и ещё поспать бы, а то на улице жара такая, а я не выспался 🥱
🔥4
#common_lisp #проекты
Ну штош, выкатил на гитхаб свой шаблон для игры на Common Lisp 🎉 Эх, давненько я так плотно с CI пайплайнами не развлекался 😅
Завтра на стриме, наверное, вернусь к ECS-библиотеке, надеюсь, ещё пару мажорных фич успею реализовать до пятницы.
Ну штош, выкатил на гитхаб свой шаблон для игры на Common Lisp 🎉 Эх, давненько я так плотно с CI пайплайнами не развлекался 😅
Завтра на стриме, наверное, вернусь к ECS-библиотеке, надеюсь, ещё пару мажорных фич успею реализовать до пятницы.
GitHub
GitHub - lockie/cookiecutter-lisp-game: A cookiecutter template for Common Lisp videogame projects
A cookiecutter template for Common Lisp videogame projects - lockie/cookiecutter-lisp-game
🔥2
#common_lisp #статьи
Давно хотел запостить на хабр перевод программной статьи г-жи Хафнер про особенности использования Common Lisp в разработке игр, и вот наконец подвернулась оказия)
Апвоуты приветствуются ❤️
https://habr.com/ru/articles/737316
Давно хотел запостить на хабр перевод программной статьи г-жи Хафнер про особенности использования Common Lisp в разработке игр, и вот наконец подвернулась оказия)
Апвоуты приветствуются ❤️
https://habr.com/ru/articles/737316
Хабр
Использование высокодинамичного языка для разработки
Преимущества и навыки, полученные при использовании Common Lisp в разработке игр Разработка игр является увлекательной задачей. Игры требуют быстрого цикла разработки, высокой интерактивности и задают...
❤6
#лытдыбр #мемасики
Сегодня на традиционном утреннем стриме продолжил накидывать код для предстоящего геймджема, и, как оказалось, использовать ECS гораздо сложнее, чем писать ECS-фреймворк (см. иллюстрацию) 😅
Впрочем, по крайней мере успел набросать системы для отображения и проигрывания анимаций.
Сегодня на традиционном утреннем стриме продолжил накидывать код для предстоящего геймджема, и, как оказалось, использовать ECS гораздо сложнее, чем писать ECS-фреймворк (см. иллюстрацию) 😅
Впрочем, по крайней мере успел набросать системы для отображения и проигрывания анимаций.
🤯1
#лытдыбр #геймджем #common_lisp
Штош, первый день Spring Lisp Game Jam 2023 подошёл к концу, а мне похвастаться особо нечем (см. рис. 1) — начал пилить анимации персонажей, но наткнулся на отсутствие в своём ECS-фреймворке а) способа передачи в системы произвольных аргументов, вроде
Продолжу, видимо, уже завтра.
Штош, первый день Spring Lisp Game Jam 2023 подошёл к концу, а мне похвастаться особо нечем (см. рис. 1) — начал пилить анимации персонажей, но наткнулся на отсутствие в своём ECS-фреймворке а) способа передачи в системы произвольных аргументов, вроде
delta-time
, и б) обратных индексов, позволяющих быстро (за O(log N)
хотя бы) получить ответ на вопрос, "у какой (каких) entity в таком-то компоненте вот такой-то слот имеет вот конкретно такое значение". Первое победил, про второе только сейчас додумал, как можно сделать относительно безболезненно с алгоритмической точки зрения (см. рис. 2), но с точки зрения дружелюбности к кэшу процессора там пиздец, конечно, полный раздрай, хорошо хоть происходит всё это действительно за логарифм от количества entity с этим компонентом.Продолжу, видимо, уже завтра.
🔥3
#мемасики
Короче, с воскресенья на понедельник плохо выспался, допоздна в D&D играли. Провёл утренний стрим, позавтракал и решил чаю заварить, иначе какой нормальный человек чаем завтрак не заполирует. Поставил чайник и вдруг понял, что пакетики закончились. Пошарился по полкам, нашёл запасную пачку и вдруг понимаю, что передо мной стоит притёртая баночка кофе, которую хозяйка оставила. Редко раньше кофе пил, а тут вдруг захотелось, дай-ка, думаю, приободрюсь перед рабочим днём, а раз захотелось, почему бы и не навернуть. Нашёл в шкафчике джезву, сыпанул две щедрых ложки в холодную воду, заварил, налил в чашку и тут вдруг sve se prebojilo u crvenu boju i zazvučalo "Ja sam Crnogorac", jebem moje uši, ništa nije jasno, puzeći iz zemlje Ljudevit Gaj i govori neku sranje o Hrvatima i moralu, stari pedal, zašto mu nije ležalo u zemlji? Sada osim crnogorskog jezika ne razumijem ništa.
Čini mi se da je kafa bila prokleta.
Короче, с воскресенья на понедельник плохо выспался, допоздна в D&D играли. Провёл утренний стрим, позавтракал и решил чаю заварить, иначе какой нормальный человек чаем завтрак не заполирует. Поставил чайник и вдруг понял, что пакетики закончились. Пошарился по полкам, нашёл запасную пачку и вдруг понимаю, что передо мной стоит притёртая баночка кофе, которую хозяйка оставила. Редко раньше кофе пил, а тут вдруг захотелось, дай-ка, думаю, приободрюсь перед рабочим днём, а раз захотелось, почему бы и не навернуть. Нашёл в шкафчике джезву, сыпанул две щедрых ложки в холодную воду, заварил, налил в чашку и тут вдруг sve se prebojilo u crvenu boju i zazvučalo "Ja sam Crnogorac", jebem moje uši, ništa nije jasno, puzeći iz zemlje Ljudevit Gaj i govori neku sranje o Hrvatima i moralu, stari pedal, zašto mu nije ležalo u zemlji? Sada osim crnogorskog jezika ne razumijem ništa.
Čini mi se da je kafa bila prokleta.
😱5🤯1
This media is not supported in your browser
VIEW IN TELEGRAM
#лытдыбр #геймджем #common_lisp
К пятому дню геймджема я наконец допилил анимированных персонажей 😅 Зато всё хранится по науке, в ECS-хранилище. Дальше должно пойти быстрее, если бы ещё не работа, ух я бы разгулялся)
Исходнички выложил сюда 😊
К пятому дню геймджема я наконец допилил анимированных персонажей 😅 Зато всё хранится по науке, в ECS-хранилище. Дальше должно пойти быстрее, если бы ещё не работа, ух я бы разгулялся)
Исходнички выложил сюда 😊
👍2🥰1