memory heap
374 subscribers
2.54K photos
517 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
Выпустил релиз Guile-ICS 0.4.0:
https://github.com/artyom-poptsov/guile-ics/releases/tag/v0.4.0

Анонс в списке рассылки GNU Guile:
https://lists.gnu.org/archive/html/guile-user/2022-10/msg00075.html

Основные изменения:
- Добавлена базовая поддержка формата vCard (RFC 6350), используемого для передачи контактных данных.
- Улучшена утилита командной строки ics: теперь она лучше структуирована и поддерживает команды print, describe и convert.

С помощью ics convert теперь можно делать преобразование данных DSV (Delimiter-Separated Values) в iCalendar/vCard.

Например, пусть у вас в файле data.csv есть следующие данные:

ORG,TITLE,FN,EMAIL
Example Organisation,Programmer,Eva Luator,[email protected]
Example Organisation,Programmer,Random J. Hacker,[email protected]

Как можно видеть, первая строка таблицы содержит названия параметров карточки пользователя, тогда как каждая строка описывает по сути одну такую карточку.

То из него можно получить легко контактные карточки через ics convert:

$ ics convert data.csv
BEGIN:VCARD
EMAIL:[email protected]
FN:Eva Luator
TITLE:Programmer
ORG:Example Organisation
END:VCARD

BEGIN:VCARD
EMAIL:[email protected]
FN:Random J. Hacker
TITLE:Programmer
ORG:Example Organisation
END:VCARD

Если вывод ics convert перенаправить в файл, то получится файл с контактными данными. Потом этот файл можно загрузить в почтовый клиент, или приложение контактов в мобильном устройстве, и таким образом сделать массовую загрузку контактов (реальная задача, которая меня и сподвигла на реализацию этой возможности.)

Отправил также патч с обновлением Guile-ICS в GNU Guix:
https://mail.gnu.org/archive/html/guix-patches/2022-10/msg01846.html

#projects #guile #rfc5545 #rfc6350 #parser
👍1
В левой части скриншота — исходное изображение в формате PNG (RFC 2083) размером 2x2 пикселей с простым чёрно-белым рисунком. В правой части скриншота — результат преобразования изображения (инверсия цветов) через Guile-PNG. На фоне — выполненная команда преобразования.

Исходнй код программы:
#!/usr/bin/guile \
-L modules -e main -s
!#

(use-modules (png)
(png image)
(png filter))

(define (main args)
(let* ((png-image (png->scm (current-input-port)))
(new-image (png-image-filter-invert-colors png-image)))
(png-image->png new-image (current-output-port))))


Открыта новая технология: PNG.
\o/

#projects #guile #png #lisp
👍1
🔥3
Как оказалось, инверсия цветов в Guile-PNG не всегда работает корректно. В результате получаются вот такие артефакты.

(Парсер PNG, как же я тебя понимаю 😐)

#projects #guile #png #parser #lisp
😁3
Измеряю качество обработки изображений в самописной библиотеке PNG с помощью шакалов. 9 шакалов из 9, я считаю.

#projects #guile #png #parser #lisp
👍4
memory heap
Измеряю качество обработки изображений в самописной библиотеке PNG с помощью шакалов. 9 шакалов из 9, я считаю. #projects #guile #png #parser #lisp
Сверхточный шакал измерения, используемый для оценки качества обработки изображений.
Краткая (пока что) статья про настройку подключения к сети Yggdrasil на сайте хакерспейса CADR:
https://cadrspace.ru/w/index.php?title=Yggdrasil

#yggdrasil #network #mesh
😈2❤‍🔥1