memory heap
366 subscribers
2.53K photos
513 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
Обновил и дополнил предметный указатель для книги.

#SPARC
Два с половиной дня бодался с установкой Lilyglyphs (пакета LaTeX, содержащий знаки музыкальной нотации) в GitHub Actions на образ Ubuntu Latest (22.04) для того, чтобы сделать непрерывную интеграцию книги и также автоматическую генерацию PDF.

Проблему решить удалось через ручную установку Lilyglyphs из CTAN (Comprehensive TeX Archive Network), и вот скрипт, который выполняет установку:
https://gist.github.com/artyom-poptsov/2d141d235a6773d964d371f70cc7775c

Собственно вот полученный результат:
https://github.com/artyom-poptsov/SPARC/actions/workflows/pdf.yaml

Может быть, кому полезно будет тоже.

#projects #latex #sparc #linux
1
Пробую сделать воспроизводимую сборку моей книги в GNU Guix:
https://github.com/artyom-poptsov/SPARC/blob/master/guix.scm

В GitHub Actions при сборке внутри Docker-образа с Ubuntu почему-то часть книги в конечном PDF отсутствует (~5 мегабайт получается объём файла вместо ~7), тогда как у меня на компьютере книга собирется прекрасно. При этом, в GitHub Actions ошибок при сборке не вижу. Возможно, не учитываю какие-то особенности моего локального окружения.

Вот как раз и пример, где воспроизводимые сборки нужны.

#sparc #guix
3
memory heap
Пробую сделать воспроизводимую сборку моей книги в GNU Guix: https://github.com/artyom-poptsov/SPARC/blob/master/guix.scm В GitHub Actions при сборке внутри Docker-образа с Ubuntu почему-то часть книги в конечном PDF отсутствует (~5 мегабайт получается объём…
Сборка книги через GNU Guix заработала:
https://github.com/artyom-poptsov/SPARC/actions/runs/6017439099

Благодаря GNU Guix теперь книга автоматически собирается через GitHub Actions, как и должна, в полном объёме.

\o/

Но воспроизводимости ещё не достиг, т.к. в том числе в книге используется генератор случайных (или псевдо-случайных) чисел для создания некоторых графиков, и по понятным причинам каждый PDF-файл немного отличается от предыдущего. Возможно, есть ещё какие-то недочёты.

Надо придумать какой-то способ сделать сборку повторяемой. Самый простой способ сделать повторяемые графики — это выставить начальную точку отсчёта генератора псевдослучайных чисел в какое-то одно значение, например в "42". Но тогда графики, которые должны показывать "белый шум", будут всегда одинаковые, что не интересно. Другой вариант, который я вижу — это взять коммит, с которого собирается книга, и из его хэша "сварить" начальную точку отсчёта для генератора псведослучайных чисел — тогда и график будет меняться в разных версиях книги, и повторяемость в рамках одного коммита будет. Но как это сделать, я до конца пока не придумал (идеи принимаются.)

#guix #sparc
2
Выпустил версию 1.0.0 своей книги "Автомато-программато-компарадио-кружок":
https://github.com/artyom-poptsov/SPARC

Книга посвящена соединению науки, программирования, искусства и радиоэлектроники в рамках самостоятельных занятий или же для ведения кружков и практик по программированию микроконтроллеров.

Моей любимой темой является, конечно же, программирование музыки на микроконтроллерной платформе Arduino, чему посвящена значительная часть книги. Этот материал базируется на многолетнем и увлекательном опыте ведения практик по программированию в колледже, а также на дополнительных занятиях со студентами и мастер-классах, проводимых в нашем хакерспейсе.

Книга распространяется под лицензией Creative Commons «Attribution-ShareAlike» («Атрибуция-СохранениеУсловий») 4.0 Всемирная (CC BY-SA 4.0) (https://creativecommons.org/licenses/by-sa/4.0/deed.ru)

Список ключевых изменений:

1 Версия 1.0.0 (2023-08-31)
===========================

1.1 Добавление раздела, посвящённого разработке игр
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавление раздела, посвящённого разработке игр на
жидкокристаллическом текстовом дисплее 20x4.


1.2 Добавление информации о синхронизации звука с двух Arduino
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

В раздел про программирование музыки добавлена информация о
синхронизации двух Arduino с целью одновременного воспроизведения двух
"дорожек" одной музыкальной композиции.


1.3 Добавление возможности воспроизводимой сборки книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавление возможности воспроизводимой (повторяемой) сборки книги
через GNU Guix (<https://guix.gnu.org>). Воспроизводимая сборка
производится при указании переменной окружения "REPRODUCIBILITY" в
значение "yes".

Опционально также через переменную окружения "RANDOMSEED" можно
указать начальное числовое значение для генератора псевдослучайных
чисел, для того, чтобы сделать графики "Белого шума" в книге
повторяемыми. Данная переменная используется только тогда, когда
"REPRODUCIBILITY" выставлен в "yes".


1.4 Включение хэша последнего Git-коммита в версию книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Если книга собирается из Git-репозитория, то хэш последнего
Git-коммита включается в версию книги.


1.5 Добавление полных примеров программ в приложения
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Добавлен пример программы, воспроизводящей мелодию "Twinkle, Twinkle,
Little Star" простым способом и через массивы.


1.6 Дополнение существующих разделов книги
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


1.7 Добавление предметного указателя
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


1.8 Исправление опечаток и ошибок
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

PDF-версию книги можно найти в репозитории:
https://github.com/artyom-poptsov/SPARC/blob/master/sparc.pdf

#projects #sparc
4
Распечатал и брошюратором подшил книгу для колледжа. В печатном виде она выглядит более весомо, чем в PDF.

#sparc_book
12
Прогресс по книге: сделал более наглядную "шпаргалку" по чтению нот в виде музыкального "графика".

#projects #sparc #book
2
memory heap
Прогресс по книге: сделал более наглядную "шпаргалку" по чтению нот в виде музыкального "графика". #projects #sparc #book
Прогресс по книге: сделал ещё одну "шпаргалку", теперь уже по чтению нот в басовом ключе в виде музыкального "графика".

#projects #sparc #book
1
Прогресс по книге: пишу раздел про шину I2C, которая часто используется для подключения ЖК-дисплеев к Arduino. Перерисовал вот схему из Википедии в LaTeX.

#sparc_book
7
Добавил в книгу описание монитора порта Arduino и плоттера по последовательному соединению.

#sparc_book
1
Выпустил новую версию своей книги "Автомато-программато-компарадио-кружок":
https://github.com/artyom-poptsov/SPARC/releases/tag/v2.0.0

В новой версии:

- Новая глава "Язык общения машин". В данной главе рассматриваются протоколы коммуникации между микроконтроллером и внешними устройствами. На данный момент описан в достаточно подробных деталях протокол I2C, но в будущем планирую добавить описание COM-порта, SPI и 1-Wire.

- Переименована глава "Основные принципы электротехники" — теперь она называется просто "Основы электроники".

- Доработка раздела про ЖК-дисплей. В разделе подробнее расписано взаимодействие микроконтроллера с жидкокристаллическим дисплеем, добавлены ссылки на подраздел про I2C в главе "Язык общения машин". Общее улучшение изложения материала в разделе.

- Доработка раздела про последовательный порт: добавление скриншотов из Arduino IDE 1.8 с описанием, добавлен новый подраздел "Визуализация данных" с описанием плоттера по последовательному соединению.

- Добавлены задания для самостоятельного решения в раздел "Белый шум".

- Часть блоков исходного кода помещена в LaTeX-блок "listing", к ним добавлены подписи. Это позволило сформировать в конце документа список примеров кода.

- Исправление мелких ошибок


PDF-версия книги доступна на странице релиза, также скину копию в комментарии к этому посту.

#sparc_book
🔥8
#guix_patches #sparc_book

Sharlatan Hellseher замёржил патч, обновляющий мою книгу "Автомато-программато-компарадио-кружок" до версии 2.0.0 в GNU Guix.

Поставить или обновить книгу в системе GNU Guix можно командой:
guix install book-sparc
👾2