memory heap
373 subscribers
2.54K photos
521 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
"Попрошу обратить ваше внимание в иллюминаторы нашего самолёта по правому борту: сейчас вы можете видеть Стоунхендж, величественно возвышающийся над зелёными полями Уилтшира."

(Если что, это не полностью я приготовил, это полуфабрикат — картофельно-грибные котлеты из SPAR'а.)

#vegan #food
5
Случайный ренессанс.
Forwarded from No Context Russia
Выпустил релиз Guile-DSV 0.5.2:
https://mail.gnu.org/archive/html/guile-user/2023-04/msg00012.html

Основные изменения:

0. Исправлен баг с обработкой пустых полей в конце строки, при использовании формата RFC 4180. Если раньше таблица
  a,b
c,
давала результат '(("a" "b") ("c")), то теперь результат будет '(("a" "b") ("c" "")).

1. Утилита dsv теперь обрабатывает опцию --table-presets-path, которая позволяет задать путь к каталоку с пресетами таблиц. Этот же параметр теперь можно задать переменной окружения GUILE_DSV_TABLE_PRESETS_PATH.

2. Теперь для таблиц можно задавать "тень" (как видно на скриншоте.) Для теней можно задавать символ отрисовки и смещение по двум осям в формате x;y.

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

4. Параметры пресетов могут быть перезаписаны. Например:
$ dsv -b "graphic-with-shadow,bs=107;100,ts=107;100" /etc/passwd

5. Обновлена справочная документация.

#dev #projects #guile #dsv #lisp
Как сделать автомагические жалюзи из обычных, рецепт от великого и ужастного самодельщика Cranktown City:
https://youtu.be/G9q5oAXhidU

"Pretty cooool, huuuh?"
2
Обзор интересной технологии "code morphing" (Code Morphing Software, CMS), которая использовалась в ноутбуках Sony Vaio в 2000-х годах.
https://www.youtube.com/watch?v=K6xbDiDuFU0

Процессоры выпускались компанией Transmeta (в которой кстати работал Линус Торвальдс.) Особенностью процессоров от Transmeta было то, что они использовали архитектуру RISC, и эмулировали поверх архитектуру x86. При трансляции инструкций x86 в RISC, выполнялась JIT-оптимизация, которая позволяла при повторных запусках кода ускорять его выполнение (наподобие того, как это происходит в JVM.) Первый из выпущенных Tansmeta процессоров под названием Crusoe работал на частоте в 700МГц, при этом позволял исполнять программы для x86 на скорости, сравнимой с 500МГц процессором Intel Pentium III x86, при этом "Crusoe" был меньше и дешевле в производстве. "Crusoe" выполнял на программном уровне некоторые из тех задач процессора, которые обычно выполнялись "в железе" — например, изменение порядка инструкций для выполнения. Это позволяло сэкономить на количестве транзисторов в чипе.

#technology
3
"I never asked for this."
4
Как думаете, если я использую в своей книге ноты для какой-нибудь известной мелодии (например, "Sweet Dreams"), для обучения программированию музыки на Arduino, будет ли это нарушением прав?
2
Дешёвый и простой способ обнаруживать лица в вашем следующем электропроекте:
https://www.sparkfun.com/products/21231
memory heap
Дешёвый и простой способ обнаруживать лица в вашем следующем электропроекте: https://www.sparkfun.com/products/21231
Придумал кстати хорошее название для модуля захвата лиц: "лицехват".
Я: Назови процесс, который позволяет получить цифровой сигнал из аналогового.
Студент: Аналогово-цифровое преображение.

#студенты #нртк #студенческие_перлы
7
Постепенно переношу Guile-INI на новый API Guile-SMC, чтобы проверить корректность архитектурных решений и их реализации.

GitHub говорит, что Guile-INI состоит на ~42% из M4 макросов, и лишь на ~27% из кода на Scheme. Основная часть кода генерируется автоматически из описания ДКА в формате PlantUML и подтягивается из Guile-SMC. И это правильно, ведь в большинстве парсеров делаются одни и те же вещи, а значит, реализацию ДКА для парсеров можно обобщить, что я и пытаюсь сделать.

Ещё интересно будет попробовать Guile-SMC в проектах, где вместо чтения файлов есть некий "водоворот событий" ("event loop") — например, при реализации чат-ботов, либо же web-сервисов.

#projects #guile #scheme #fsm
1