memory heap
373 subscribers
2.53K photos
514 videos
52 files
3.11K 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
memory heap
Выпустил релиз Guile-SMC 0.5.0 — компилятора детерминированных конечных автоматов (ДКА) для GNU Guile: https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.5.0 Официальный анонс в списке рассылки Guile: https://lists.gnu.org/archive/html/guile-user/2022…
И вот выяснилось, что логирование в Guile-SMC надо переделывать, поскольку при сборке в GNU Guix оказывается, что syslog недоступен, приходится патчить модуль логирования. Проблема решена, но осадок остался.

К сожалению, система логирования в Guile, на мой взгляд, находится в зачаточном состоянии — вот кстати, одна из возможных тем для полезного проекта: сделать нормальную систему логирования, как в популярных ЯП (стоит наверное посмотреть в сторону Java для вдохновения, или какого-нибудь C/C++.)

Если кто знает больше про системы логирования в GNU Guile/Scheme, киньте в меня ссылкой. Может, какой-то стандарт, мне неведомый есть (напр. SRFI)? Также интересен опыт использования подсистем логирования в других функциональных языках (Common Lisp, к примеру.)

Из достаточно интересных систем логирования для C/C++/C#/Python, с которыми довелось работать, могу назвать libP7-Baical:
https://baical.net/

Но официальный процесс разработки не прозрачен (библиотека распространяется в виде архивов с исходным кодом, доступа к репозиторию нет), и продвинутая часть инструментов анализа логов проприетарная (хотя сама библиотека под GNU LGPL.)

Немудрено, что появляются форки, вроде такого:
https://github.com/CMakePorts/libp7-baical

В общем, вроде и круто, но если копнуть глубже — есть недостаки (впрочем, как и везде.) Я бы мог написать обёртку вокруг P7 Baical для GNU Guile, однако это ещё один крупный проект, который сейчас тянуть в одиночку не хотелось бы (но, возможно, придётся.)

Из систем логирования ещё стоит отметить библиотеку Qt — у них там реально продуманная инфраструктура в плане модулей (взять тот же механизм IPC a.k.a. "сигналы/слоты", который просто огонь.)

Завершая данные размышления могу сказать, что двигателем для полезных и продуманных вещей обычно является практическая необходимость (и зачастую коммерческая, чего уж тут.) Когда GNU Guile выйдет на уровень популярности, сравнимый с JavaScript/Python, сразу вопросы с ключевыми модулями будут решаться быстрее (GNU Guix здесь имеет неплохой шанс способствовать этому.)

#gnu #guile #dev #thoughts
👍1
memory heap
#termux #c #programming
Сидел вчера на концерте, под музыку программировал на C в Termux, с телефона.

Когда ты пишешь что-либо из головы, с минимальным обращением к Интернету — это ещё и проба своих навыков, оттачивание мастерства. Мне пришлось только подсмотреть синтаксис задания управляющих символов для контроля стиля текста — написанный вариант из головы оказался правильным только наполовину (что уже неплохо.)

Программирование с давних пор для меня было "медитативным" занятием. Круто видеть, как некая ментальная модель того, что ты хочешь получить, реализуется в виде работающего кода. И тут даже не важно, это код, решающий практическую задачу, или же просто объект искусства, как в видео выше. При этом искусство, наука и технология для меня переплетаются в один сияющий клубок, из которого может быть соткано практически всё, что угодно.

#thoughts #programming
3
Хочу написать ещё о чувстве одиночества, которое иногда приходит, не постучавшись, когда остаюсь наедине с собой.

Работая в роли преподавателя, приходится много взаимодействовать с людьми; кроме этого, не обделён друзьями, поэтому не могу сказать, что я одинок в контексте социальных связей. При этом, мне сложно налаживать более близкие контакты с людьми. Причин тут вижу несколько — в некоторых случаях я людям не интересен; вряд ли что-то могу с этим поделать, всем не угодишь. В других случаях мне сложно общаться с людьми, из-за различий в интересах и взглядах.

Для меня важна работа и хобби. Как программист, ценю возможность сделать вклад в развитие open source/free проектов. Как преподаватель и со-основатель хакерспейса, могу передать свои знания и опыт людям, и что более важно — разжечь в них любопытство и тягу к знаниям, интерес к науке и творчеству. Таким образом реализую себя в жизни, даже иногда делая жизнь лучше для людей вокруг.

Как говорит Митио Ка́ку, известный физик-теоретик:
Я склонен думать, что все мы рождаемся с определённым набором талантов и способностей, и мы должны достичь максимума нашего потенциала. Почему? Чтобы сделать мир лучшим местом; чтобы быть уверенными, что когда мы покинем этот мир, мы оставим его в лучшем виде, чем он был, когда мы родились.

Когда занимаюсь любимым делом, то отдаюсь этому полностью, и чувство одиночества остаётся где-то за дверью подсознания. Надеюсь лишь, что со временем научусь строить близкие контакты с людьми также хорошо, как строить программные системы.

Но нужно встать, расправить плечи,
Подняться над всей суетой —
Пусть время раны все залечит
Рубцы оставив за собой.
Мне не вернуть упущенные годы;
Надеюсь лишь, что пройдены не зря
Все одинокие дороги,
Что жизнь послала для меня.

("Время лечит" — https://memory-heap.org/~avp/poetry/2022/2022-05-27.html)

#thoughts
3