Два с половиной дня бодался с установкой 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
Проблему решить удалось через ручную установку 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
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/SPARC
⚡1
Пробую сделать воспроизводимую сборку моей книги в GNU Guix:
https://github.com/artyom-poptsov/SPARC/blob/master/guix.scm
В GitHub Actions при сборке внутри Docker-образа с Ubuntu почему-то часть книги в конечном PDF отсутствует (~5 мегабайт получается объём файла вместо ~7), тогда как у меня на компьютере книга собирется прекрасно. При этом, в GitHub Actions ошибок при сборке не вижу. Возможно, не учитываю какие-то особенности моего локального окружения.
Вот как раз и пример, где воспроизводимые сборки нужны.
#sparc #guix
https://github.com/artyom-poptsov/SPARC/blob/master/guix.scm
В GitHub Actions при сборке внутри Docker-образа с Ubuntu почему-то часть книги в конечном PDF отсутствует (~5 мегабайт получается объём файла вместо ~7), тогда как у меня на компьютере книга собирется прекрасно. При этом, в GitHub Actions ошибок при сборке не вижу. Возможно, не учитываю какие-то особенности моего локального окружения.
Вот как раз и пример, где воспроизводимые сборки нужны.
#sparc #guix
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/SPARC
⚡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
https://github.com/artyom-poptsov/SPARC/actions/runs/6017439099
Благодаря GNU Guix теперь книга автоматически собирается через GitHub Actions, как и должна, в полном объёме.
\o/
Но воспроизводимости ещё не достиг, т.к. в том числе в книге используется генератор случайных (или псевдо-случайных) чисел для создания некоторых графиков, и по понятным причинам каждый PDF-файл немного отличается от предыдущего. Возможно, есть ещё какие-то недочёты.
Надо придумать какой-то способ сделать сборку повторяемой. Самый простой способ сделать повторяемые графики — это выставить начальную точку отсчёта генератора псевдослучайных чисел в какое-то одно значение, например в "42". Но тогда графики, которые должны показывать "белый шум", будут всегда одинаковые, что не интересно. Другой вариант, который я вижу — это взять коммит, с которого собирается книга, и из его хэша "сварить" начальную точку отсчёта для генератора псведослучайных чисел — тогда и график будет меняться в разных версиях книги, и повторяемость в рамках одного коммита будет. Но как это сделать, я до конца пока не придумал (идеи принимаются.)
#guix #sparc
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/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)
Список ключевых изменений:
https://github.com/artyom-poptsov/SPARC/blob/master/sparc.pdf
#projects #sparc
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)PDF-версию книги можно найти в репозитории:
===========================
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 Исправление опечаток и ошибок
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
https://github.com/artyom-poptsov/SPARC/blob/master/sparc.pdf
#projects #sparc
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/SPARC
⚡4
memory heap
Выпустил версию 1.0.0 своей книги "Автомато-программато-компарадио-кружок": https://github.com/artyom-poptsov/SPARC Книга посвящена соединению науки, программирования, искусства и радиоэлектроники в рамках самостоятельных занятий или же для ведения кружков…
Выпустил релиз книги 1.0.1 с исправлениями воспроизводимой сборки в GNU Guix:
https://github.com/artyom-poptsov/SPARC/releases/tag/v1.0.1
Подробный список изменений по сравнению с версией 0.0.0 можно найти в анонсе версии 1.0.0:
https://t.iss.one/memory_heap/2102
Также отправил патч в GNU Guix с добавлением опакеченной книги:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65669
#book #sparc #guix_patches
https://github.com/artyom-poptsov/SPARC/releases/tag/v1.0.1
Подробный список изменений по сравнению с версией 0.0.0 можно найти в анонсе версии 1.0.0:
https://t.iss.one/memory_heap/2102
Также отправил патч в GNU Guix с добавлением опакеченной книги:
https://debbugs.gnu.org/cgi/bugreport.cgi?bug=65669
#book #sparc #guix_patches
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/SPARC
memory heap
Выпустил версию 1.0.0 своей книги "Автомато-программато-компарадио-кружок": https://github.com/artyom-poptsov/SPARC Книга посвящена соединению науки, программирования, искусства и радиоэлектроники в рамках самостоятельных занятий или же для ведения кружков…
Патч с моей книгой приняли в GNU Guix!
\o/
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=16c05788947f456bf1c82955dd27938755272cb4
Установить можно командой:
Книга будет в
#sparc
\o/
https://git.savannah.gnu.org/cgit/guix.git/commit/?id=16c05788947f456bf1c82955dd27938755272cb4
Установить можно командой:
guix install book-sparc
Книга будет в
~/.guix-profile/share/doc/sparc/sparc.pdf.#sparc
GitHub
GitHub - artyom-poptsov/SPARC: Science, Programming, Art and Radioelectronics Club (SPARC) book.
Science, Programming, Art and Radioelectronics Club (SPARC) book. - artyom-poptsov/SPARC
⚡5
Распечатал и брошюратором подшил книгу для колледжа. В печатном виде она выглядит более весомо, чем в PDF.
#sparc_book
#sparc_book
⚡12
memory heap
Прогресс по книге: сделал более наглядную "шпаргалку" по чтению нот в виде музыкального "графика". #projects #sparc #book
Прогресс по книге: сделал ещё одну "шпаргалку", теперь уже по чтению нот в басовом ключе в виде музыкального "графика".
#projects #sparc #book
#projects #sparc #book
⚡1