memory heap
374 subscribers
2.53K 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
🦟
This media is not supported in your browser
VIEW IN TELEGRAM
Насколько у художника должно быть развито чувство пропорции, чтобы так рисовать
Тесты тестятся.

#dev
6
Forwarded from Nexi's channel
Брэм Моленар, автор редактора vim, скончался 3 августа в возрасте 62 лет от внезапно обострившейся болезни.
memory heap
https://groups.google.com/g/vim_announce/c/tWahca9zkt4
Третьего августа 2023-го года скончался Брэм Моленар, создатель редактора Vim — об этом было сообщено в списке рассылки редатора Vim пятого августа. Похороны состоятся в Недерландах.

Брэм Моленар — Голландский разработчик ПО и активист, который также был известен, как создатель, сопровождающий и пожизненный великодушный диктатор (benevolent dictator for life) текстового редактора Vim.

В дополнении к работе над Vim, Брэм Моленар также основал и поддерживал НКО "International Child Care Fund Holland" (ICCF Holland) — небольшую некоммерческую организацию, базирующуся в Нидерландах, которая помогала жертвам СПИДа в Африки. В бедных районах Африки множество взрослых является жертвами СПИДа и после их смерти дети остаются сиротами. Проект ICCF Holland нацелен на предоставление поддержки таким детям — в том числе, оплата обучения в школе и медицинское обслуживание.

С 1994 года Брэм Моленар выступал волонтёром от проекта ICCF Holland в городе Кибаале (Уганда), помогая решить вопросы с обеспечением водой и санитарными условиями. В 1995-м году Брэм Моленар сделал VIM "charityware" — то есть, редактор распростанялся бесплатно и свободно, но пользователям, решившим поддержать развитие редактора, предлагалось сделать донат в ICCF Holland. По приблизительным оценкам, удалось собрать $2000 за 1997-й год, $4000 за 1998-й $7000 а в 1999-м таким образом.

Брэм Моленар также был участником Голландской группы пользователей Linux (NLUUG), от которой он получил награду на двадцать пятую годовщину существования группы за вклад в её развитие, а также за развитие редактора Vim и вклад в развитие свободного ПО в целом.

Фамилия "Moolenaar" буквально переводится, как "Мельник" — согласно информации на странице Брэма Моленара. Он поддерживал на сайте список людей с фамилией "Moolenaar", в который мог добавиться любой через специальную форму.

Сайт Брэма Моленара и его копия в Архиве интернета (archive.org.)

Большая часть информации для поста взята и переведена из английской страницы Wikipedia о Брэме Моленаре и связанных страниц.

:wq
Forwarded from Вееzzаrе
Оу май! Эта песня играла в конце десятого эпизода второго сезона и, если я правильно помню, создатели сериала хотели, чтобы вместа оригинала играл кавер, где некоторые слова были бы заменены на слово "Squanch".

[link]
memory heap
Переписываю детерминированные конечные автоматы (ДКА) парсеров в проекте Guile-DSV с написанного вручную кода на Guile-SMC. По ходу дела дорабатываю описание ДКА в формате PlantUML, т.к. именно из этого описания теперь будет герерироваться программный код…
Сравнение скорости обработки текстовых данных через Guile-DSV.

В первом случае (верхняя синяя линия на графике) тест проходил на оригинальной версии Guile-DSV с рукописным ДКА, а во втором случае (оранжевая нижняя линяя на графике) — с ДКА, сгенерированным через Guile-SMC. Отладочный лог выключен. Используется реальное время работы программы, в секундах.

Размер тестового текстового файла:
$ wc datasets/covid.csv 
53591 54463 3985948 datasets/covid.csv
$ du -h datasets/covid.csv
3,9M datasets/covid.csv

Скрипт сбора статистики:
https://gist.github.com/artyom-poptsov/d53c10875e85cb735dd34e5a0f428bbe

#dev #guile #dsv
1
memory heap
Сравнение скорости обработки текстовых данных через Guile-DSV. В первом случае (верхняя синяя линия на графике) тест проходил на оригинальной версии Guile-DSV с рукописным ДКА, а во втором случае (оранжевая нижняя линяя на графике) — с ДКА, сгенерированным…
Исправил ошибки в профилировщике детерминированных конечных автоматов из поставки Guile-SMC, исправления пойдут в следующий релиз.

Использование профилировщика на примере Guile-DSV:
$ dsv --log-driver file --log-opt=file=smc.log -F rfc4180 --to unix datasets/covid.csv > test.csv
$ smc profile smc.log
Total transitions: 1661324
Total time: 84173181 us
Stats:
read_quote: 30647003 us (36.4095 %)
read_quoted_field: 27615130 us (32.8075 %)
read_field_first_char: 23677038 us (28.1290 %)
add_row: 2233946 us (2.6540 %)
add_final_row: 35 us (.0000 %)
read_first_field_first_char: 29 us (.0000 %)


Кусок файла smc.log:
$ head smc.log
2023-08-10 21:19:05.522313 (DEBUG): [*] -> [read_first_field_first_char]
2023-08-10 21:19:05.522342 (DEBUG): [read_first_field_first_char] -> [read_quoted_field]
2023-08-10 21:19:05.522377 (DEBUG): [read_quoted_field] -> [read_quote]
2023-08-10 21:19:05.522427 (DEBUG): [read_quote] -> [read_field_first_char]
2023-08-10 21:19:05.522448 (DEBUG): [read_field_first_char] -> [read_quoted_field]
2023-08-10 21:19:05.522483 (DEBUG): [read_quoted_field] -> [read_quote]
2023-08-10 21:19:05.522508 (DEBUG): [read_quote] -> [read_field_first_char]
2023-08-10 21:19:05.522527 (DEBUG): [read_field_first_char] -> [read_quoted_field]
2023-08-10 21:19:05.522556 (DEBUG): [read_quoted_field] -> [read_quote]
2023-08-10 21:19:05.522585 (DEBUG): [read_quote] -> [read_field_first_char]


#dev #projects #guile #dsv #smc
1
Выпустил релиз Guile-SMC 0.6.2:
https://github.com/artyom-poptsov/guile-smc/releases/tag/v0.6.2

Ключевые изменения:

- Исправлена ошибка с процедурой pre-action в модуле (smc context functional char): Теперь процедура во всех случаях возвращает контекст.

- Исправлена ошибка высчитывания отметок времени в модуле (smc trace-context). Теперь значение отметок времени всегда получается положительным, как и должно. При этом, если всё же обнаруживается уход времени в отрицательные значения, бросается ошибка.

- Исправлен рассчёт времени в модуле (smc cli command-profile) профайлера. Теперь профайлер Guile-SMC даёт правильные значения суммарного времени работы ДКА и времени для каждого отдельно взятого состояния.

- В модуль (smc context oop generic) добавлен недостающий модуль (smc core log). Его отсутствие приводило бы к ошибками при попытке использования (smc context oop generic).

- Теперь Guile-SMC позволяет задавать pre-action и post-action для ДКА прямо в PlantUML описании. Эти процедуры выполняются перед всеми остальными проверками для каждого состояния, и могут например использоваться для обновления счётчиков в контексте. Пример задания этих процедур в PlantUML файле описания ДКА:
legend
pre-action: custom-pre-action
post-action: custom-post-action
endlegend

- Для класса <fsm> в модуле (smc fsm) теперь добавлены процедуры для задания pre-action (fsm-pre-action-set!) и post-action (fsm-post-action-set!). Также из модуля экспортированы процедуры fsm-pre-action и fsm-post-action для получения текущих значений pre-action и post-action соответственно.

- В модуле (smc core log) теперь регистрируется логгер по-умолчанию, под именем "guile-smc". Также добавлена процедура smc-log-default-logger.

- Обновлена документация.

Новый релиз обратно совместим с версиями 0.6.0 и 0.6.1.

#dev #projects #guile #smc
1
Axis of Ordinary
The first room-temperature ambient-pressure superconductor? Discussion: 1. https://news.ycombinator.com/item?id=36864624 2. https://marginalrevolution.com/marginalrevolution/2023/07/claims-about-room-temperature-superconductivity.html Prediction market:…
Thunderf00t про нашумевший сверхпроводник LK-99:
https://youtu.be/p3hubvTsf3Y

Судя по этой информации, в этом LK-99 шума действительно больше, чем правды и пользы.
1
Forwarded from Ruslan Kuksa
2
Обед: соевое мясо с овощами и макаронами.

#vegan #food
5
Forwarded from Archillect
2
memory heap
Сравнение скорости обработки текстовых данных через Guile-DSV. В первом случае (верхняя синяя линия на графике) тест проходил на оригинальной версии Guile-DSV с рукописным ДКА, а во втором случае (оранжевая нижняя линяя на графике) — с ДКА, сгенерированным…
Провёл ещё один замер производительности Guile-DSV с новым ДКА, сделанным на базе Guile-SMC, используя датасет "Feed Grains: Yearbook Tables" на почти полмиллиона строк (498929 строк, если быть точным.)

Время на графиках в секундах.

Новая версия парсера работает быстрее старого на этом примере примерно в 15 раз.

Конечно, сорость обработки данных ещё зависит от самих данных и их формата. Например, парсер Unix-формата DSV работает быстрее, поскольку там нюансов меньше, и следовательно сам ДКА для Unix-формата проще.

#dev #projects #guile #dsv
1
Я создал очень нужную таблицу.)
6