memory heap
375 subscribers
2.56K photos
525 videos
52 files
3.16K 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
Пробую интегрировать работу с форматом vCard (RFC 6350) в Guile-ICS, поскольку этот формат крайне похож на iCalendar (RFC 5545.) Хочу ещё добавить также конвертацию табличных данных в vCard, чтобы массово можно было создавать карточки контактов на основе некой адресной книги (актуальная задача по работе сейчас.)

Для чтения табличных данных как раз можно использовать Guile-DSV. ^_^

Пример данных vCard:
BEGIN:VCARD
VERSION:4.0
UID:urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
FN;PID=1.1:J. Doe
N:Doe;J.;;;
EMAIL;PID=1.1:[email protected]
EMAIL;PID=2.1:[email protected]
TEL;PID=1.1;VALUE=uri:tel:+1-555-555-5555
TEL;PID=2.1;VALUE=uri:tel:+1-666-666-6666
CLIENTPIDMAP:1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
END:VCARD


Пример описания содержимого vCard утилитой ics, которая идёт в комплекте к Guile-ICS:
$ ics describe vcard.vcf
;;; VCARD
;;; CLIENTPIDMAP (TEXT: Text type: RFC5545, 3.3.11)
;;; 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-666-666-6666
;;; VALUE uri
;;; PID 2.1
;;; TEL (TEXT: Text type: RFC5545, 3.3.11)
;;; tel:+1-555-555-5555
;;; VALUE uri
;;; PID 1.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; [email protected]
;;; PID 2.1
;;; EMAIL (TEXT: Text type: RFC5545, 3.3.11)
;;; [email protected]
;;; PID 1.1
;;; N (TEXT: Text type: RFC5545, 3.3.11)
;;; Doe;J.;;;
;;; FN (TEXT: Text type: RFC5545, 3.3.11)
;;; J. Doe
;;; PID 1.1
;;; UID (TEXT: Text type: RFC5545, 3.3.11)
;;; urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
;;; VERSION (TEXT: Text type: RFC5545, 3.3.11)
;;; 4.0


Режим "pretty print":
$ ics print vcard.vcf
BEGIN: VCARD
CLIENTPIDMAP: 1;urn:uuid:53e374d9-337e-4727-8803-a1e9c14e0556
TEL;VALUE=uri;PID=2.1: tel:+1-666-666-6666
TEL;VALUE=uri;PID=1.1: tel:+1-555-555-5555
EMAIL;PID=2.1: [email protected]
EMAIL;PID=1.1: [email protected]
N: Doe;J.;;;
FN;PID=1.1: J. Doe
UID: urn:uuid:4fbe8971-0bc3-424c-9c26-36c3e1eff6b1
VERSION: 4.0
END: VCARD


#projects #guile #ics #parser #rfc5545 #rfc6350
1
Творчество студентов с практики по программированию микроконтроллеров.

#нртк #студенты #arduino #music #студенческие_работы
Давно интересовал этот вопрос, и вот в этой статье можно найти подробный ответ.
Media is too big
VIEW IN TELEGRAM
Billie Eilish, "Lovely"

Авторы: Клочков Михаил и Якушин Андрей.

#нртк #студенты #music #arduino #студенческие_работы
Media is too big
VIEW IN TELEGRAM
League of Legends, "Swain, the Noxian Grand General"

Авторы: Сирота Константин, Ометов Андрей

#нртк #студенты #arduino #music #студенческие_работы
🔥1
This media is not supported in your browser
VIEW IN TELEGRAM
Фотошоп+нейросети:
Есть плагин для Photoshop и Krita под названием flying dog с поддержкой Stable Diffusion, который позволяет сразу менять выделенную или вырезанную область на результат текстового запроса.
И так это выглядит

r/#StableDiffusion
Forwarded from Archillect
Forwarded from Адовый UX
Это меню, лично для вас — адовый UX или райский? Вы сразу понимаете, как тут что? Или нужно стоять и втыкать?

Голосуем!

Адовый — 💩
Райский — ❤️
7🤔1
Выпустил релиз 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