memory heap
374 subscribers
2.54K photos
516 videos
52 files
3.12K links
science ∩ art = wonder

all memory blocks here are allocated by @a_v_p

GitHub: https://github.com/artyom-poptsov
Mastodon: https://fosstodon.org/@avp

https://memory-heap.org/~avp/
Download Telegram
#projects

Примерно месяц назад мне прислали отчёт об ошибке в Guile-ICS. Вот наконец добрался до проекта. Потратил несколько часов на обдумывание и написание кода, запушил решение:
https://github.com/artyom-poptsov/guile-ics/commit/b141d51d4712290065fa61e2084fb1e2262b5cae

Если кратко, то теперь Guile-ICS должен правильно читать рекурсивные определения объектов, с произвольным уровнем вложенности.
🔥1
memory heap
#projects Примерно месяц назад мне прислали отчёт об ошибке в Guile-ICS. Вот наконец добрался до проекта. Потратил несколько часов на обдумывание и написание кода, запушил решение: https://github.com/artyom-poptsov/guile-ics/commit/b141d51d4712290065f…
Парсер в Guile-ICS компилируется из описания конечного автомата в PlantUML, с помощью компилятора Guile-SMC, также написанного мной. Вот текущая диаграмма состояний для автомата.

#projects
🔥3
Выпустил релиз 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 теперь выкидывается content-line-error.
- ics describe теперь печатает описание компонентов, в том числе, ссылку на соответствующий раздел RFC.
- Расширен набор тестов.

#projects #guile_ics #guile
2
Реализовал в Guile-PNG консольную утилиту, позволяющую получать описание содержимого 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-страницей.
- Новый тип <square> в модуле (png graphics rectangle).
- Новый модуль (png version), который содержит процедуры для получения информации о текущей версии Guile-PNG.

#projects #guile #guile_png
🔥2
Выявил проблему с реализацией алгоритма Брезенхэма в Guile-PNG — в пятом октанте по ошибке выполнялось вычитание вместо деления, из-за этого угол линии был ~32 градуса вместо необходимых 30.

На скриншоте показано, как я в GIMP смотрел, где появляется ошибка в тестовом примере.

Исправил, теперь могу рисовать шестигранники-соты.

#guile #projects #guile_png
#projects #guile_ics #guile #scheme

Несколько дней работал над улучшением 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.
🔥1
Выпустил Guile-SMC 0.6.4 с исправлением ошибок:
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
Наконец-то добрался до своих FOSS-проектов. Замёржил в Guile-DSV патч от Denis 'GNUtoo' Carikli, добавляющий возможность указывать собсвтенную процедуру для нарезки строк при форматировании таблицы.

Попутно внёс ещё несколько небольших улучшений.

#guile #scheme #projects #guile_dsv
Выпустил релиз Guile-DSV 0.8.0:
https://github.com/artyom-poptsov/guile-dsv/releases/tag/v0.8.0

В новой версии:
- Исправлен баг с чтением данных в формате RFC4180, где строки заканчиваются символом "LF", вместо рекомендуемой в RFC комбинации "CRLF". Теперь данные читаются корректно. Хотя это поведение не соответствует стандарту RFC4180, в данном случае Guile-DSV придерживается принципа надёжности ("Будь корсервативен в том, что отправляешь — и либеральным в том, что принимаешь.")
- Новые параметры для процедур в модуле (dsv table): Процедуры format-table, table-wrap и table-wrap-row теперь принимают параметр string-slice, который позволяет контролировать, как столбцы таблицы вписываются в требуемую ширину. Процедуры table-wrap и format-table теперь принимают параметр calculate-cell-widths, который позволяет изменить поведение Guile-DSV при подсчёте ширины столбцов таблицы.
- Обновлена документация: теперь в Info документации подробно расписаны параметры таблицы; кроме того, добавлено описание новых параметров процедур.
- Файл README обновлён, теперь он более читаемый и информативный.

#projects #scheme #lisp
Forwarded from CADR SPACE (Artyom "avp" Poptsov)
Разработано крепление для рёбер жёсткости большого принтера REPLICADR-L, на основе резьбовых шпилек М8. Распечатали тестовый образец, скорректировали небольшие ошибки.

#projects #replicadr #freecad
🔥2
Артём Попцов, "Yggdrasil: IPv6 в массы!":
https://www.youtube.com/watch?v=eicZHM5cE2A

Моё выступление в Нижнем Новгороде на конференции 20 сентября 2025 года от ITGorky (https://itgorky.ru/) про меш-сеть Yggdrasil.

Слайды презентации:
https://github.com/artyom-poptsov/talks/tree/master/yggdrasil

Проект Yggdrasil:
https://yggdrasil-network.github.io/

Проект Yggtray:
https://github.com/the-nexi/yggtray

Спасибо за видеозапись и помощь в проведении доклада Илье Ильиных (https://t.iss.one/kydavoiti).

#me #yggdrasil #yggtray #projects #talks
2🔥1