memory heap
Полное интервью с Джоном Кармаком: https://www.youtube.com/watch?v=I845O57ZSy4
Досмотрел/дослушал интервью. ~5 часов Джона Кармака на 1.00x, 1.25x и 1.50x. Было очень интересно.
memory heap
Работаю над портированием Guile-ICS на мой компилятор детерминированных конечных автоматов (ДКА) Guile-SMC: https://github.com/artyom-poptsov/guile-ics Интересная задача, которая позволяет выявить недостатки Guile-SMC и понять сам процесс проектирования и…
Почти завершил работу по портированию Guile-ICS на Guile-SMC. Код получается более понятный и легко адаптируемый. Часть вопросов решается правкой ДКА в формате PlantUML, иногда даже без правки Scheme-кода.
По ходу дела похоже исправил недоработку в старой версии Guile-ICS — теперь парсер способен читать все поддерживаемые типы компонентов календаря, согласно RFC5545.
Одна из проблем, которые остались — сборка в отдельном каталоге при
Ещё думаю, что надо в ближайшее время зарелизить новую версию Guile-SMC, чтобы было, от чего отталкиваться при работе над связанными проектами.
#guile #smc #dev #projects
По ходу дела похоже исправил недоработку в старой версии Guile-ICS — теперь парсер способен читать все поддерживаемые типы компонентов календаря, согласно RFC5545.
Одна из проблем, которые остались — сборка в отдельном каталоге при
make distcheck не может найти некоторые файлы.Ещё думаю, что надо в ближайшее время зарелизить новую версию Guile-SMC, чтобы было, от чего отталкиваться при работе над связанными проектами.
#guile #smc #dev #projects
Выпустил релиз 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-08/msg00071.html
Основные возможности:
- Таблица переходов между состояниями может быть автоматически проверена на наличие тупиковых и недостижимых состояний.
- ДКА Guile-SMC при работе собирают статистику — можно узнать, сколько шагов и переходов делала машина состояний при работе.
- Guile-SMC включает в себя профилировщик, который позволяет по логам работы ДКА узнать, сколько система провела в каждом состоянии времени и какой процент от общего времени работы это составляет. Это позволяет находить "узкие места" и оптимизировать ДКА на основе цифр, полученных в реальной работе.
- Поддержка разных "целей" для компиляции — есть три цели: обычная "guile", которая даёт на выходе код ДКА, который для работы будет требовать наличие Guile-SMC в целевой системе; "автономный" режим ("guile-standalone"), который позволяет получить на выходе код ДКА, который не зависит от наличия Guile-SMC в целевой системе (и также по виду близок к тому, который мог бы быть написан в ручном режиме, где переход между состояниями по сути представлен рекурсивным вызовом процедур, каждая из которых представляет одно из состояний ДКА); и наконец "автономный" режим с сохранением Guile-SMC основы ("guile-standalone-copy"), который копирует в вместе с ДКА часть Guile-SMC, которая необходима для его работы.
- Возможность запустить ДКА напрямую из PlantUML-файла (см. команду
Цель проекта — автоматизировать и упростить разработку ДКА для различных задач (в первую очередь различных парсеров, как раз одна из областей моих интересов), избежать дублирования работы.
Основные изменения в версии 0.5.0:
- Для цели компиляции
- Для цели компиляции
- При компиляции для цели
- Команда
-
- Модуль
- Исправлены справочные сообщения от команд.
- В команду
- Документация в Texinfo обновлена.
#guile #smc #fsm #dev #projects
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.5.0
Официальный анонс в списке рассылки Guile:
https://lists.gnu.org/archive/html/guile-user/2022-08/msg00071.html
Основные возможности:
- Таблица переходов между состояниями может быть автоматически проверена на наличие тупиковых и недостижимых состояний.
- ДКА Guile-SMC при работе собирают статистику — можно узнать, сколько шагов и переходов делала машина состояний при работе.
- Guile-SMC включает в себя профилировщик, который позволяет по логам работы ДКА узнать, сколько система провела в каждом состоянии времени и какой процент от общего времени работы это составляет. Это позволяет находить "узкие места" и оптимизировать ДКА на основе цифр, полученных в реальной работе.
- Поддержка разных "целей" для компиляции — есть три цели: обычная "guile", которая даёт на выходе код ДКА, который для работы будет требовать наличие Guile-SMC в целевой системе; "автономный" режим ("guile-standalone"), который позволяет получить на выходе код ДКА, который не зависит от наличия Guile-SMC в целевой системе (и также по виду близок к тому, который мог бы быть написан в ручном режиме, где переход между состояниями по сути представлен рекурсивным вызовом процедур, каждая из которых представляет одно из состояний ДКА); и наконец "автономный" режим с сохранением Guile-SMC основы ("guile-standalone-copy"), который копирует в вместе с ДКА часть Guile-SMC, которая необходима для его работы.
- Возможность запустить ДКА напрямую из PlantUML-файла (см. команду
smc run)Цель проекта — автоматизировать и упростить разработку ДКА для различных задач (в первую очередь различных парсеров, как раз одна из областей моих интересов), избежать дублирования работы.
Основные изменения в версии 0.5.0:
- Для цели компиляции
guile-standalone добавлены недостающие зависимости в целевой код.- Для цели компиляции
guile-standalone также изменён API: теперь в целевом коде процедура для запуска называется fsm-run!, которая функционирует также, как и при цели компиляции guile — что позволяет обеспечить одинаковый интерфейс запуска ДКА, который не зависит от цели компиляции.- При компиляции для цели
guile-standalone выходной код теперь имеет более аккуратный вид.- Команда
smc context теперь позволяет генерировать промежуточный контекст, который можно использовать для обеспечения минимальной зависимости от внутренней структуры модулей Guile-SMC (это необходимо для совместимости различных целей компиляции, что опять же позволяет использовать разные цели без переписывания пользовательского кода.) В будущем рекомендуется использовать именно этот промежуточный контекст, а не прямой доступ к модулям Guile-SMC.-
smc context теперь может читать описание ДКА в PlantUML из файла.- Модуль
(smc core stack) удалён.- Исправлены справочные сообщения от команд.
- В команду
smc run добавлены дополнительные проверки корректности параметров запуска.- Документация в Texinfo обновлена.
#guile #smc #fsm #dev #projects
GitHub
Release v0.5.0 · artyom-poptsov/guile-smc
Version 0.5.0
memory heap pinned «Выпустил релиз 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…»
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
К сожалению, система логирования в 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
baical.net
Baical - main page
Baical server main page
👍1
#music
Pink Floyd — "Cymbaline" (живая запись 15 июня 1971г.)
https://www.youtube.com/watch?v=jWB2xTubGLk
Студийная запись:
https://www.youtube.com/watch?v=ietkuUZwjpU
Pink Floyd — "Cymbaline" (живая запись 15 июня 1971г.)
https://www.youtube.com/watch?v=jWB2xTubGLk
Студийная запись:
https://www.youtube.com/watch?v=ietkuUZwjpU
YouTube
Pink Floyd - 'Cinq Grands Sur La Deux' Cymbaline
Cymbaline at The Abbaye de Royaumont, Asnierès-sur-Oise, France. Cinq Grand Sur La Deux TV Broadcast on 15 June 1971.
OUT NOW Pink Floyd at Pompeii – MCMLXXII. Digitally remastered with new audio, the live album is now available on vinyl for the first time.…
OUT NOW Pink Floyd at Pompeii – MCMLXXII. Digitally remastered with new audio, the live album is now available on vinyl for the first time.…
Во FreeCAD параметр
Чтобы пересчитать это в систему СИ, надо умножить это число на 1E-9, или же разделить на 1'000'000.
Вот так это выглядит в консоли Python внутри FreeCAD:
Shape.Volume задаётся в кубических миллиметрах.Чтобы пересчитать это в систему СИ, надо умножить это число на 1E-9, или же разделить на 1'000'000.
Вот так это выглядит в консоли Python внутри FreeCAD:
>>> obj = doc.getObject("some-object")
>>> obj.Shape.Volume / 1000000
0.004515176998353076
#freecad #notes👍3
memory heap
Во FreeCAD параметр Shape.Volume задаётся в кубических миллиметрах. Чтобы пересчитать это в систему СИ, надо умножить это число на 1E-9, или же разделить на 1'000'000. Вот так это выглядит в консоли Python внутри FreeCAD: >>> obj = doc.getObject("some-object")…
Попытка посчитать характеристики деталей сборки во FreeCAD.
Считается объём в кубических метрах, и масса в граммах.
Чтобы посчитать массу, использую формулу:
Сборка выполнена на верстаке A2Plus. Для вывода информации по сборке используется дополнение FreeCAD Reporting.
В общем виде, запрос выглядит так:
Считается объём в кубических метрах, и масса в граммах.
Чтобы посчитать массу, использую формулу:
Shape.Volume / 1000 * 1.27Где 1.27 — плотность PETG.
Сборка выполнена на верстаке A2Plus. Для вывода информации по сборке используется дополнение FreeCAD Reporting.
В общем виде, запрос выглядит так:
select Label, sourceFile as 'File', Shape.Volume / 1000000 as 'Volume (m^3)', Shape.Volume / 1270 as 'Mass (g)' from document where sourceFile != Null#freecad #notes
memory heap
Попытка посчитать характеристики деталей сборки во FreeCAD. Считается объём в кубических метрах, и масса в граммах. Чтобы посчитать массу, использую формулу: Shape.Volume / 1000 * 1.27 Где 1.27 — плотность PETG. Сборка выполнена на верстаке A2Plus. Для…
Разумеется, нет цели напечатать полностью все детали сборки на 3D-принтере, это был просто эксперимент, чтобы понять процесс работы с верстаком A2Plus и дополнением FreeCAD Reporting.
Результат просто огонь, хотя я предполагаю, что где-то мог допустить ошибки.
Также при рассчёте веса гипотетической напечатанной детали не учитывается тот факт, что 3D-печать обычно не делается со 100%-м заполнением, и фактический вес изделия будет в несколько раз меньше.
На фото — вид сборки, по которой выполнялся запрос в Reporting.
Версия FreeCAD, кстати — 0.20.1, установлен из GNU Guix на Ubuntu 22.04.
#freecad #notes
Результат просто огонь, хотя я предполагаю, что где-то мог допустить ошибки.
Также при рассчёте веса гипотетической напечатанной детали не учитывается тот факт, что 3D-печать обычно не делается со 100%-м заполнением, и фактический вес изделия будет в несколько раз меньше.
На фото — вид сборки, по которой выполнялся запрос в Reporting.
Версия FreeCAD, кстати — 0.20.1, установлен из GNU Guix на Ubuntu 22.04.
#freecad #notes
#music
Opeth — "In My Time of Need" (Live 2018)
https://www.youtube.com/watch?v=LlrwHuIffGE
Очень красивая композиция, в красивом исполнении.
Текст песни:
Opeth — "In My Time of Need" (Live 2018)
https://www.youtube.com/watch?v=LlrwHuIffGE
Очень красивая композиция, в красивом исполнении.
Текст песни:
I can't see the meaning of this life I'm leading
I try to forget you as you forgot me
This time there is nothing left for you to take
This is goodbye
Summer is miles and miles away
And no one would ask me to stay
And I should contemplate this change
To ease the pain
And I should step out of the rain
Turn away
Close to ending it all
I am drifting through the stages
Of the rapture born within this loss
Thoughts of death inside
Tear me apart from the core of my soul
Summer is miles and miles away
And no one would ask me to stay
And I should contemplate this change
To ease the pain
And I should step out of the rain
Turn away
At times the
Dark's fading slowly
But it never sustains
Would someone watch over me
In my time of need
Summer is miles and miles away
And no one would ask me to stay
And I should contemplate this change
To ease the pain
And I should step out of the rain
Turn away
YouTube
Opeth - In My Time Of Need, Live 2018 (1080p)
Garden of the Titans: Live at Red Rocks Amphitheater 2018
memory heap
#music Opeth — "In My Time of Need" (Live 2018) https://www.youtube.com/watch?v=LlrwHuIffGE Очень красивая композиция, в красивом исполнении. Текст песни: I can't see the meaning of this life I'm leading I try to forget you as you forgot me This time there…
Вот эти строки прямо за душу цепляют, как говорится:
And I should contemplate this change
To ease the pain
And I should step out of the rain
Turn away
And I should contemplate this change
To ease the pain
And I should step out of the rain
Turn away
Пробую смоделировать крышку на аккумуляторный отсек велосипеда. Работы ещё много, но вот промежуточный результат.
#freecad
#freecad
Очень красивый — в музыкальном и визуальном плане — клип Марии Франц и её проекта EUZEN:
https://www.youtube.com/watch?v=oq7oCR8l8Z0
Мария Франц также является вокалисткой в группе "техно-викингов" (как говорит один мой друг) — Heilung:
https://www.youtube.com/watch?v=GPV38e7yfSo
#music
https://www.youtube.com/watch?v=oq7oCR8l8Z0
Мария Франц также является вокалисткой в группе "техно-викингов" (как говорит один мой друг) — Heilung:
https://www.youtube.com/watch?v=GPV38e7yfSo
#music
YouTube
EUZEN - Phobia [Official]
https://open.spotify.com/artist/5JrbFyw3Hxe165XkCJPjui
https://www.facebook.com/euzeniverse
https://euzen.dk
This is the brand new music video for "Phobia" from the third album "Metamorph" by the Danish/Norwegian band EUZEN.
Credits:
Director, edit…
https://www.facebook.com/euzeniverse
https://euzen.dk
This is the brand new music video for "Phobia" from the third album "Metamorph" by the Danish/Norwegian band EUZEN.
Credits:
Director, edit…
Хорошее видео на русском про формат растровой графики PNG:
https://www.youtube.com/watch?v=e4vMlLbYHWI&list=WL
#image #formats #png
https://www.youtube.com/watch?v=e4vMlLbYHWI&list=WL
#image #formats #png
YouTube
КАК УСТРОЕН PNG-ФАЙЛ?
Хочешь жить по-другому? Учись по-другому! Поступай в Институт iSpring и погружайся в карьеру с первого курса.
Подробнее о программе обучения и правилах набора на сайте: https://clck.ru/sc5Uy
Фильм о команде и миссии Института iSpring: https://www.youtube…
Подробнее о программе обучения и правилах набора на сайте: https://clck.ru/sc5Uy
Фильм о команде и миссии Института iSpring: https://www.youtube…