👀3🔥2🕊1
memory heap
Another Guile-PNG generative art: https://gist.github.com/artyom-poptsov/72fe27b7441f984262c99ee2b27082a8 #generative_art #art #guile_png #scheme
Экспериментальным способом получено изображение с повышенной шакальностью.
#generative_art #guile_png #scheme
#generative_art #guile_png #scheme
🎃4
Смог добиться сборки Guile-SSH вместе с libssh 0.11. Изменения уже на ветке
#projects #guile #guile_ssh
master и будут включены в следующий релиз.#projects #guile #guile_ssh
GitHub
GitHub - artyom-poptsov/guile-ssh: Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs.
Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs. - artyom-poptsov/guile-ssh
🔥4
memory heap
#guix_patches Мой первый коммит в GNU Guix: https://git.savannah.gnu.org/cgit/guix.git/commit/?id=e032a0f38ff3394816fdc29554933ce77c545eff Спасибо Sharlatan Hellseher за помощь.
#guix_patches #guile_ssh
Первый чужой патч, который я обработал и замёржил:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=36c794c0ed058ee414cbb90c577f6ade5170470a
Патч обновляет Guile-SSH до версии 0.17.0 в GNU Guix и подготовлен пользователем Herman Rimm.
Первый чужой патч, который я обработал и замёржил:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=36c794c0ed058ee414cbb90c577f6ade5170470a
Патч обновляет Guile-SSH до версии 0.17.0 в GNU Guix и подготовлен пользователем Herman Rimm.
🔥2
#dev #guile_ssh
Работаю над допиливанием изменений в Guile-SSH перед следующем релизом. Добавил в GitHub CI задачу сборки с libssh 0.8.3 для тестирования изменений.
Благодаря GNU Guix это сделать достаточно просто. [1, 2]
Выявил проблему в обратной совместимости, исправил. Таким образом, Guile-SSH сейчас должен поддерживать libssh 0.8.3+, 0.9, 0.10 и 0.11. Учитывая, что libssh 0.8 был выпущен в 2018-м, считаю достаточно неплохим результатом.
В libssh 0.7.4 и более старых был выявлен CVE-2016-0739, поэтому смысла поддерживать такое старое ископаемое не вижу (хотя пока теоретически Guile-SSH может с ними собраться, но я даже это не проверяю теперь.) Думаю, что поддержку версий libssh старше 0.8.3 стоит вообще выкинуть, так будет честнее.
Работаю над допиливанием изменений в Guile-SSH перед следующем релизом. Добавил в GitHub CI задачу сборки с libssh 0.8.3 для тестирования изменений.
Благодаря GNU Guix это сделать достаточно просто. [1, 2]
Выявил проблему в обратной совместимости, исправил. Таким образом, Guile-SSH сейчас должен поддерживать libssh 0.8.3+, 0.9, 0.10 и 0.11. Учитывая, что libssh 0.8 был выпущен в 2018-м, считаю достаточно неплохим результатом.
В libssh 0.7.4 и более старых был выявлен CVE-2016-0739, поэтому смысла поддерживать такое старое ископаемое не вижу (хотя пока теоретически Guile-SSH может с ними собраться, но я даже это не проверяю теперь.) Думаю, что поддержку версий libssh старше 0.8.3 стоит вообще выкинуть, так будет честнее.
GitHub
GitHub - artyom-poptsov/guile-ssh: Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs.
Guile-SSH is a library that provides access to the SSH protocol for GNU Guile programs. - artyom-poptsov/guile-ssh
🔥4👀1
Выпустил релиз Guile-SSH 0.18.0:
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.18.0
В новой версии:
1. Убрана поддержка libssh версий старше 0.8.0 (например, libssh 0.7)
2. Изменён интерфейс модуля
Зарепорчено пользователем graywolf в #39.
3.
Зарепорчено пользователем graywolf в #38.
4. Исправление ошибки компиляции из-за использования ключевого слова
Зарепорчено и исправлено пользователем Peter Tillemans в #43.
5. Исправлена сборка с libssh < 0.8.3. Также добавлены новые тесты в GitHub CI, проверяющие работу Guile-SSH на старых версиях.
6. Проект получил новое лого, более минималистичное и лаконичное! Спасибо дизайнеру, художнику и моему другу (в одном лице) Darya Sev. за ценные советы по поводу дизайна нового логотипа.
7. Обновлена и дополнена документация.
8. Обновлены и исправлены тесты.
9. Добавлен файл
#projects #guile_ssh #guile #scheme
https://github.com/artyom-poptsov/guile-ssh/releases/tag/v0.18.0
В новой версии:
1. Убрана поддержка libssh версий старше 0.8.0 (например, libssh 0.7)
2. Изменён интерфейс модуля
(ssh popen): процедуры open-remote-pipe*, open-remote-input-pipe* и open-remote-output-pipe* теперь работают также, как и open-pipe*. Также это делает их поведение соответствующим тому, что описано в документации Guile-SSH. Зарепорчено пользователем graywolf в #39.
3.
make-session теперь правильно обрабатывает параметр #:config со значением #f. Теперь выставление данного параметра в #f (false) выключает чтение стандартных конфигурационных файлов SSH (как и должно было быть по документации Guile-SSH). При использовании старых версий libssh (до 0.9) выставление параметра #:config в #f приводит к тому, что используется файл /dev/null в качестве конфигурационного (таким образом, предотвращая чтение стандартных конфигурационных файлов.)Зарепорчено пользователем graywolf в #38.
4. Исправление ошибки компиляции из-за использования ключевого слова
bool в качестве имени переменной.Зарепорчено и исправлено пользователем Peter Tillemans в #43.
5. Исправлена сборка с libssh < 0.8.3. Также добавлены новые тесты в GitHub CI, проверяющие работу Guile-SSH на старых версиях.
6. Проект получил новое лого, более минималистичное и лаконичное! Спасибо дизайнеру, художнику и моему другу (в одном лице) Darya Sev. за ценные советы по поводу дизайна нового логотипа.
7. Обновлена и дополнена документация.
8. Обновлены и исправлены тесты.
9. Добавлен файл
CODE_OF_CONDUCT.org в репозиторий.#projects #guile_ssh #guile #scheme
GitHub
Release v0.18.0 · artyom-poptsov/guile-ssh
Table of Contents
Changes in version 0.18.0 (2024-11-10)
Change (ssh popen) procedures behavior:API_CHANGE:
make-session now handles #:config set to #f properly
session-func.c: Fix compile error ...
Changes in version 0.18.0 (2024-11-10)
Change (ssh popen) procedures behavior:API_CHANGE:
make-session now handles #:config set to #f properly
session-func.c: Fix compile error ...
🔥5
#dev #guile #patches
Замёржили моё исправление в документации Guile-GnuTLS:
https://gitlab.com/gnutls/guile/-/merge_requests/26
Замёржили моё исправление в документации Guile-GnuTLS:
https://gitlab.com/gnutls/guile/-/merge_requests/26
GitLab
doc/gnutls-guile: Update "Anonymous Authentication Guile Example" (!26) · Merge requests · gnutls / Guile-GnuTLS · GitLab
doc/gnutls-guile.texi: Update "Anonymous Authentication Guile Example" to work with the latest Guile-GnuTLS version.
После двадцати одного года разработки выпущен Shepherd 1.0.0:
https://www.gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/
Shepherd — минималистичный сервис для управления сервисами, написанный на Scheme (GNU Guile.) Решает он ту же задачу, что и классический SystemV Init, стартуя в роли первого процесса в системе (PID 1), запуская все остальные сервисы и позволяя управлять ими. Для описания сервисов также используется язык Scheme.
Shepherd является основным сервисом инициализации в операционной системе GNU Guix.
#guix #guile
https://www.gnu.org/software/shepherd/news/2024/12/the-shepherd-1.0.0-released/
Shepherd — минималистичный сервис для управления сервисами, написанный на Scheme (GNU Guile.) Решает он ту же задачу, что и классический SystemV Init, стартуя в роли первого процесса в системе (PID 1), запуская все остальные сервисы и позволяя управлять ими. Для описания сервисов также используется язык Scheme.
Shepherd является основным сервисом инициализации в операционной системе GNU Guix.
#guix #guile
www.gnu.org
The Shepherd 1.0.0 released!
Ludovic Courtès — December 9, 2024
🔥1
#guix #guile_ssh
Guile-SSH обновлён до версии 0.18.0 в GNU Guix:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=da3c8a963f83c044568d99921480259eaa26a923
Патч подготовлен и замержен Vagrant Cascadian.
Guile-SSH обновлён до версии 0.18.0 в GNU Guix:
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=da3c8a963f83c044568d99921480259eaa26a923
Патч подготовлен и замержен Vagrant Cascadian.
🔥1
Выпустил релиз Guile-INI 0.5.5:
https://github.com/artyom-poptsov/guile-ini/releases/tag/v0.5.5
В новой версии добавлена возможность задавать собственный символ префикса комментария, вместо стандартного ";".
#guile #projects
https://github.com/artyom-poptsov/guile-ini/releases/tag/v0.5.5
В новой версии добавлена возможность задавать собственный символ префикса комментария, вместо стандартного ";".
#guile #projects
GitHub
Release v0.5.5 · artyom-poptsov/guile-ini
ini->scm and scm->ini now allow to set the comment prefix
The INI reading/writing procedures now allow to set the commentary prefix. It
allows library to read and write such variations of IN...
The INI reading/writing procedures now allow to set the commentary prefix. It
allows library to read and write such variations of IN...
🔥2
Выпустил релиз Guile-ICS 0.7.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.7.0
Основные изменения:
- Guile-ICS теперь корректно читает объекты с более, чем двумя уровнями вложенности. Проблема была зарепорчена Sören Tempel.
- Также теперь парсер позволяет читать неизвестные компоненты объектов.
- Парсер теперь корректно обрабатывает EOF ("End Of File" — символ конца файла) внутри контент-строк. Вместо общей ошибки от Guile теперь выкидывается
-
- Расширен набор тестов.
#projects #guile_ics #guile
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.7.0
Основные изменения:
- Guile-ICS теперь корректно читает объекты с более, чем двумя уровнями вложенности. Проблема была зарепорчена Sören Tempel.
- Также теперь парсер позволяет читать неизвестные компоненты объектов.
- Парсер теперь корректно обрабатывает EOF ("End Of File" — символ конца файла) внутри контент-строк. Вместо общей ошибки от Guile теперь выкидывается
content-line-error.-
ics describe теперь печатает описание компонентов, в том числе, ссылку на соответствующий раздел RFC.- Расширен набор тестов.
#projects #guile_ics #guile
GitHub
Release v0.7.0 · artyom-poptsov/guile-ics
Table of Contents
Changes in version 0.7.0 (2025-03-02)
Allow to read ICS objects with arbitrary level of nesting:BUGFIX:API_CHANGE:
Properly handle EOFs in content lines
Expand the test suite
ic...
Changes in version 0.7.0 (2025-03-02)
Allow to read ICS objects with arbitrary level of nesting:BUGFIX:API_CHANGE:
Properly handle EOFs in content lines
Expand the test suite
ic...
⚡2
Реализовал в Guile-PNG консольную утилиту, позволяющую получать описание содержимого PNG-файлов.
#projects #guile_png
#projects #guile_png
⚡3🔥2
Выпустил релиз Guile-PNG 0.8.0:
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.8.0
Основные изменения в новой версии:
- Реализована утилита для вывода человеко-читаемой информации в формате org-mode об PNG изображении. Утилита снабжена man-страницей.
- Новый тип
- Новый модуль
#projects #guile #guile_png
https://github.com/artyom-poptsov/guile-png/releases/tag/v0.8.0
Основные изменения в новой версии:
- Реализована утилита для вывода человеко-читаемой информации в формате org-mode об PNG изображении. Утилита снабжена man-страницей.
- Новый тип
<square> в модуле (png graphics rectangle).- Новый модуль
(png version), который содержит процедуры для получения информации о текущей версии Guile-PNG.#projects #guile #guile_png
GitHub
Release v0.8.0 · artyom-poptsov/guile-png
Table of Contents
Changes in version 0.8.0 (2025-03-29)
Implement a CLI tool for printing PNG data
New CODE_OF_CONDUCT.org file
(png version): New module
Changes in (png graphics rectangle)
<...
Changes in version 0.8.0 (2025-03-29)
Implement a CLI tool for printing PNG data
New CODE_OF_CONDUCT.org file
(png version): New module
Changes in (png graphics rectangle)
<...
🔥2
Выявил проблему с реализацией алгоритма Брезенхэма в Guile-PNG — в пятом октанте по ошибке выполнялось вычитание вместо деления, из-за этого угол линии был ~32 градуса вместо необходимых 30.
На скриншоте показано, как я в GIMP смотрел, где появляется ошибка в тестовом примере.
Исправил, теперь могу рисовать шестигранники-соты.
#guile #projects #guile_png
На скриншоте показано, как я в GIMP смотрел, где появляется ошибка в тестовом примере.
Исправил, теперь могу рисовать шестигранники-соты.
#guile #projects #guile_png
memory heap
А вот кстати вылезла новая проблема: фигура не центрирована внутри изображения.
Переписал алгоритм отрисовки шестигранника, используя вот этот пример. Теперь кстати можно в целом многогранники реализовать, и сделать просто шестигранник частным случаем.
Красными точками отмечена стартовая точка.
#guile_png #scheme
Красными точками отмечена стартовая точка.
#guile_png #scheme
#generative_art #guile_png
Научил Guile-PNG рисовать правильные многоугольники с произвольным количеством сторон.
Научил Guile-PNG рисовать правильные многоугольники с произвольным количеством сторон.
#projects #guile_ics #guile #scheme
Несколько дней работал над улучшением Guile-ICS (мне тут недавно написали issue на GitHub с просьбой реализовать нормальную поддержку
Теперь поддержка есть, только нехватает ещё вспомогательных процедур для работы с повторяющимися событиями.
Вот, как пример, вывод консольной утилиты для работы с форматом iCalendar, базирующейся на API библиотеки и поставляющейся вместе с ней. Здесь можно видеть разобранный и затем склеянный обратно (для красивого вывода) параметр
Значения параметров повторения теперь не только парсятся, но и проверяются на корректность. Библиотека не только бросается ошибками при некорректных значениях, но ещё и выдаёт справку по использованию данных параметров — по сути, куски RFC.
Несколько дней работал над улучшением Guile-ICS (мне тут недавно написали issue на GitHub с просьбой реализовать нормальную поддержку
RRULE — параметров повторяемости событий календаря.)Теперь поддержка есть, только нехватает ещё вспомогательных процедур для работы с повторяющимися событиями.
Вот, как пример, вывод консольной утилиты для работы с форматом iCalendar, базирующейся на API библиотеки и поставляющейся вместе с ней. Здесь можно видеть разобранный и затем склеянный обратно (для красивого вывода) параметр
RRULE:$ ./pre-inst-env ./utils/ics rrule.ics
BEGIN: VCALENDAR
BEGIN: VEVENT
RRULE (RECUR): FREQ=YEARLY; INTERVAL=2; BYMINUTE=30; BYHOUR=8,9,10; BYDAY=SU; BYMONTH=1
END: VEVENT
END: VCALENDAR
Значения параметров повторения теперь не только парсятся, но и проверяются на корректность. Библиотека не только бросается ошибками при некорректных значениях, но ещё и выдаёт справку по использованию данных параметров — по сути, куски RFC.
GitHub
GitHub - artyom-poptsov/guile-ics: iCalendar/vCard parser for GNU Guile.
iCalendar/vCard parser for GNU Guile. Contribute to artyom-poptsov/guile-ics development by creating an account on GitHub.
🔥1
David Thompson, "Optimizing Guile Scheme":
https://dthompson.us/posts/optimizing-guile-scheme.html
Интересная статья про оптимизацию программ на моём любимом языке программирования.
#guile #scheme #programming
https://dthompson.us/posts/optimizing-guile-scheme.html
Интересная статья про оптимизацию программ на моём любимом языке программирования.
#guile #scheme #programming
🔥2
Выпустил Guile-SMC 0.6.4 с исправлением ошибок:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.4
Основное исправление — Make больше не запускает генерацию целевого файла
#projects #guile #guile_smc #scheme
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.4
Основное исправление — Make больше не запускает генерацию целевого файла
puml-fsm.scm из исходгого puml.puml, когда исходный поменялся. Вместо этого генерация запускается только тогда, когда puml-fsm.scm удалён. Это позволяет избежать иногда возникающих ситуаций, когда система сборки пытается сгенерировать puml-fsm.scm из puml.puml без наличия установленного Guile-SMC в системе, что приводило к ошибке (так как для этого нужен Guile-SMC.)#projects #guile #guile_smc #scheme
GitHub
Release v0.6.4 · artyom-poptsov/guile-smc
Table of Contents
Version 0.6.4 (2025-07-21)
Fix compilation of puml-fsm.scm from puml.puml
README.org: Improve the description of the manual installation process
Modernize guix.scm
Add a new tes...
Version 0.6.4 (2025-07-21)
Fix compilation of puml-fsm.scm from puml.puml
README.org: Improve the description of the manual installation process
Modernize guix.scm
Add a new tes...
Наконец-то добрался до своих FOSS-проектов. Замёржил в Guile-DSV патч от Denis 'GNUtoo' Carikli, добавляющий возможность указывать собсвтенную процедуру для нарезки строк при форматировании таблицы.
Попутно внёс ещё несколько небольших улучшений.
#guile #scheme #projects #guile_dsv
Попутно внёс ещё несколько небольших улучшений.
#guile #scheme #projects #guile_dsv
GitHub
modules/dsv/table: add 'string-slice" option by GNUtoo · Pull Request #12 · artyom-poptsov/guile-dsv
modules/dsv/table.scm (format-table, table-wrap, table-wrap-row):
Add "string-slice" option.
Signed-off-by: Denis 'GNUtoo' Carikli [email protected]
Add "string-slice" option.
Signed-off-by: Denis 'GNUtoo' Carikli [email protected]