Index: content/404.org
===================================================================
--- content/404.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/404.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -1,11 +1,11 @@
-#+Title: 404: Страница не найдена
+#+Title: 404: Page not found
 
 #+BEGIN_EXPORT html
 <article style="text-align: center; overflow-y: hidden;">
-  <h2>Ошибка 404
-    <small>Страница не найдена</small>
+  <h2>404
+    <small>Page not found</small>
   </h2>
   <div>
-    <a class="button" href="/">На главную</a>
+    <a class="button" href="/">To main page</a>
   </div>
   <img id="youmu" src="/public/images/youmu.png">
Index: content/emacs.org
===================================================================
--- content/emacs.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/emacs.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -1,10 +1,11 @@
-#+TITLE: Конфигурация Emacs
+#+TITLE: Конфигурация GNU Emacs
 #+LANGUAGE: RU
 
-* Конфигурация Emacs
+* Конфигурация GNU Emacs
 #+BEGIN_abstract
-[[https://www.gnu.org/software/emacs/][Emacs]] -- текстовый редактор от сообщества GNU. Он расширяется при помощи
-языка Emacs Lisp и является одним из старейших текстовых редакторов,
-который используется многими и по сей день.
+[[https://www.gnu.org/software/emacs/][Emacs]] -- текстовый редактор от сообщества GNU. Он расширяется при
+помощи языка Emacs Lisp и является одним из старейших текстовых
+редакторов, который используется многими и по сей день. Далее идёт моя
+конфигурация этого редактора.
 #+END_abstract
 
Index: content/guix.org
===================================================================
--- content/guix.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/guix.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -105,6 +105,6 @@
 
 Чтобы сделать установочный образ с фиксом бана сабститьютов
-ci.guix.gnu.org, надо склонировать репу guix'а, найти файл
-gnu/system/install.scm, найти переменную %installation-services и
+ci.guix.gnu.org, надо склонировать [[https://git.savannah.gnu.org/cgit/guix.git/][репозиторий Guix]], найти файл
+~gnu/system/install.scm`, найти переменную ~%installation-services~ и
 добавить туда сервисы:
 
Index: content/index.org
===================================================================
--- content/index.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/index.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -3,5 +3,7 @@
 #+LANGUAGE: ru
 
-#+BEGIN_EXPORT html
+#+BEGIN_EXPORT nil
+
+<!-- News panel on the right -->
 <nav id="table-of-contents">
   <div id="text-table-of-contents">
@@ -14,5 +16,7 @@
   </div>
 </nav>
+#+END_EXPORT
 
+#+BEGIN_EXPORT html
 <article>
   <div class="row">
Index: content/music.org
===================================================================
--- content/music.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/music.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -15,5 +15,5 @@
 music based on musical notation. [[https://lilypond.org/][Lilypond]] and [[http://denemo.org/][Denemo]] are great for
 transcribing finished music pieces written in music notation on
-paper. [[https://en.wikipedia.org/wiki/Audacity_(audio_editor)][Audacity]] is great for post editing.
+paper. [[https://en.wikipedia.org/wiki/Audacity_(audio_editor)][Audacity]] is great for post editing and recording.
   
 #+BEGIN_EXPORT html
Index: ntent/posts/reproducible-builds.org~
===================================================================
--- content/posts/reproducible-builds.org~	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ 	(revision )
@@ -1,561 +1,0 @@
-#+TITLE: Воспроизводимые сборки на примере GNU/Guix
-#+DATE: <2020-01-21 Вт>
-#+LANGUAGE: ru
-
-#+LATEX_CLASS_OPTIONS: [article,10pt]
-
-#+BEGIN_EXPORT latex
-\setcounter{secnumdepth}{0}
-#+END_EXPORT
-
-* Воспроизводимые сборки на примере GNU/Guix
-  #+BEGIN_abstract
-  Эта обзорная статья рассматривает концепцию воспроизводимых
-  сборок. Она не затрагивает глубокие технические детали. В качестве
-  демонстрации используется пакетный менеджер GNU/Guix.
-  #+END_abstract
-
-  Воспроизводимая сборка также называется детерменированной
-  компиляцией [fn:determinational-build]. Сборка называется
-  воспроизводимой, если исходный код, программное окружение и
-  инструкции сборки будут давать на выходе побитово идентичные копии
-  всех артефактов.
-
-  Соответствующее программное окружение, инструкции сборки и исходный
-  код также как и ожидаемый воспроизводимый артефакт определены
-  авторами ПО или дистрибьюторами. Артефакты сборки -- это часть
-  сборки, которая является основным ожидаемым результатом.
-
-** Термины
-   - Исходный код :: Берется из системы контроля версий
-                     определенной ревизии или архива.
-
-   - Соответствующие аттрибуты среды сборки :: Включают в себя
-        зависимости и их версии, флаги конфигурации сборки и
-        переменные окружения.
-
-   - Артефакты :: Являются исполняемыми файлами, пакетами
-                  дистрибутива или образами файловой системы. Обычно
-                  не содержат в себе логов сборки или похожих на логи
-                  вещей. Воспроизводимость артефактов достигается
-                  путём побитового сравнивания при помощи
-                  криптографических хеш-функций [fn:hash-function].
-
-   - Авторы и дистрибьюторы :: Лица, которые утверждают
-        воспроизводимость артефактов. Они могут быть авторами ПО,
-        сопровождающими дистрибутива или иным лицом, распространяющим
-        ПО.
-
-** Почему воспроизводимые сборки важны
-   #+ATTR_HTML: :width 500px
-   #+CAPTION: Логотип движения за воспроизводимые сборки
-   [[https://reproducible-builds.org/assets/images/logo-text.svg]]
-
-   Не смотря на то, что каждый может исследовать исходный код
-   свободного и открытого ПО на наличие вредоносных дыр, большая часть
-   этого ПО распространяется в виде собранных исполняемых файлов без
-   методов проверки соответствия с исходным кодом.
-
-   Это стимулирует нападки на разработчиков, которые выпускают ПО, не
-   только посредством традиционного использования эксплоитов, но также
-   в форме политического влияния или шантажа.
-
-   Это особенно важно для разработчиков, создающих ПО, связанное с
-   приватностью и безопасностью: атака на это ПО, обычно
-   компроментирует политические цели таких как: инакомыслящие,
-   журналисты, информаторы, а также любого, кто желает использовать
-   безопасные от репрессивного режима каналы связи.
-
-   Не смотря на то, что отдельно взятые разработчики кажутся
-   естественной мишенью, под удар также попадают инфраструктуры для
-   сборки, которые при успешной атаке предоставляют доступ к большому
-   числу компьютерных систем. Модифицирование собранных исполняемых
-   файлов в сборочной инфраструктуре вместо модифицирования исходного
-   кода делает эти изменения практически невидимыми для оригинальных
-   авторов и пользователей программы.
-
-   Целью воспроизводимых сборок является возможность проверки на факт
-   наличия уязвимостей и дыр в безопасности в процессе сборки. Один и
-   тот же вход гарантирет один и тот же выход. Это позволяет понять
-   находится перед нами оригинальная правильная или
-   скомпроментированная неправильная сборка. Это позволяет
-   предотвращать такие угрозы и атаки как можно раньше, так как любое
-   изменение будет быстро обнаружено.
-
-** Как добиться воспроизводимости
-   Достижение воспроизводимости сборок требует сотрудничества
-   нескольких ролей в производстве ПО.
-
-*** Создание детерменированного окружения сборки
-    Чтобы ПО могло быть воспроизводимым, исходный код не должен
-    создавать неконтроллируемые вариации в логе вывода.
-
-    Будет лучше, если пользователи обнаружат вариации, которые выдают
-    невоспроизводимые исполняемые файлы. Создание протокола для
-    тестов, который бы пересобирал программу в нужной вариации, сильно
-    поможет.
-
-*** Определение окружения сборки
-    Разные версии утилит для сборки скорее всего выдадут разный
-    результат, пользователи должны быть в состоянии воссоздать
-    окружение сборки. Это не обозначает, что сами утилиты для сборки
-    должны быть побитово идентичными, вернее результат их работы
-    должен оставаться одинаковым.
-
-    Окружение сборки может быть определено, пока ПО только
-    разрабатывается или поверх существующего процесса сборки.
-
-*** Дистрибуция окружения сборки
-    Пользователи должны знать какое окружение должно быть воссоздано,
-    чтобы собрать ПО.
-
-    Если окружение сборки уже определено или является частью исходного
-    кода, то дальнейшие шаги не требуются.
-
-    В остальных же случаях, необходимо поместить описание рядом с
-    исполняемыми файлами о том, как воспроизвести окружение.
-
-*** Предоставление протокола сравнения
-    Пользователи должны иметь легкий способ воссоздания окружения
-    сборки, получения исходного кода, проведения процесса сборки и
-    сравнения результата.
-
-    В идеале протокол сравнения должен быть прост в сравнении
-    исполняемых файлов. Сравнение байтов и криптографических хешей
-    легко реализовать и воспринимать.
-
-** Как проверить воспроизводимость
-   Техника, используемая в воспроизводимых сборках, называется Diverse
-   Double-Compilation[fn:diverse-double-compilation] и создана она
-   David A. Wheeler.
-
-   Алгоритм примерно следующий:
-   - Собрать в первый раз
-   - Сохранить результат
-   - Сделать максимальное количество изменений окружения
-   - Собрать второй раз
-   - Сравнить результаты
-
-   [[https://diffoscope.org/][diffoscope]] -- утилита, которая разработана для обнаружения проблем
-   в сравнении результатов сборки.
-
-   Список вариаций:
-   - Дата и время
-   - путь сборки
-   - hostname
-   - domain name
-   - Файловая система
-   - Переменные окружения 
-   - Часовой пояс
-   - Язык
-   - Локаль
-   - Имя пользователя
-   - ID пользователя
-   - Группа пользователя
-   - ID группы
-   - Версия ядра
-   - umask,
-   - Тип CPU
-   - Количество ядер CPU
-
-   [[https://tests.reproducible-builds.org/debian/index_variations.html][Пример вариаций в Debian]]
-
-   [[https://packages.debian.org/sid/disorderfs][disorderfs]] -- утилита, помогающая тестировать файловую систему в
-   воспроизводимой манере.
-
-** Воспроизводимые сборки в GNU/Guix
-
-   #+CAPTION: Логотип GNU/Guix
-   [[https://upload.wikimedia.org/wikipedia/commons/8/81/Guix_logo.svg]]
-
-   GNU/GUIX /(произносится гикс ɡiːks)/ — функциональный пакетный
-   менеджер и операционная система, разработанные Ludovic Courtès и
-   сообществом GNU. Отличительной особенностью является использование
-   воспроизводимых сборок и наличие только [[https://www.gnu.org/philosophy/free-sw.ru.html][свободного ПО]]. Guix можно
-   поставить на существующий дистрибутив GNU/Linux или в качестве
-   отдельной системы на базе Linux или GNU Hurd. Раньше существовало
-   разделение менеджера пакетов Guix и операционной системы GuixSD.
-
-   Определения пакетов описываются на диалекте языка Scheme –
-   [[https://www.gnu.org/software/guile/][GNU/Guile]]. Большая часть исходников написана на нём же. Система
-   изначально была основана на Nix. Отличиями от Nix(OS) являются язык
-   для описания пакетов и сервисов, система инициализации ([[https://www.gnu.org/software/guile/][GNU
-   Shepherd]]), использование ядра [[https://www.fsfla.org/ikiwiki/selibre/linux-libre/][Linux-Libre]] (Linux без проприетарных
-   блобов) и отсутствие проприетарных пакетов.
-
-   Все пакеты Guix собраны из исходников, включая различные прошивки
-   (firmware), которые имеют тенденцию быть представлены в виде
-   предсобранных исполняемых файлов без предоставления доступа к
-   исходному коду. В Guix возможно получение предсобранных исполняемых
-   файлов в виде [[https://guix.gnu.org/manual/ru/html_node/Podstanovki.html#g_t_041f_043e_0434_0441_0442_0430_043d_043e_0432_043a_0438][подстановок]]. Эти подстановки представляют из себя
-   программы, собранные на отдельных машинах (build farm), одинаковый
-   результат которых вы получите, если бы собирали их на своей машине.
-
-   Guix собирает пакеты в [[https://guix.gnu.org/manual/ru/html_node/Osobennosti.html][полностью изолированном программном
-   окружении]] для максимизации воспроизводимости -- это важнейшая
-   особенность, унаследованная от пакетного менеджера [[http://nixos.org/nix/][Nix]].
-
-   Таким образом возможно очень малое количество вариаций между
-   различными экземплярами окружений сборки; список доступных файлов в
-   окружении, имя хоста, переменные окружения, локаль и так далее
-   полностью под контролем и недоступны для изменения.
-
-   Единственное, что может различаться -- это ядро и железо. Самый
-   популярный пример того, как детали "железа" могут просочиться в
-   процесс сборки -- временная метка (timestamp). К сожалению это
-   очень частое явление, которое используется в выводе сборки.
-
-   Подробнее о преимуществах GUIX в статье [[https://www.opennet.ru/docs/RUS/guix/][«Guix: Самая совершенная
-   операционная система»]][fn:guix-best].
-
-   Существует русскоязычная [[https://t.me/gnu_guix_ru][конференция пользователей Guix в Telegram]].
-
-*** Установка Guix
-    Нам понадобится Guix в качестве пакетного менеджера, он
-    предоставляет все инструменты для воспроизводимых сборок. Я
-    подразумеваю, что вы использует GNU/Linux дистрибутив. Вы можете
-    установить Guix, используя пакетный менеджер вашего дистрибутива:
-
-    [[https://aur.archlinux.org/packages/guix/][Arch Linux]] | [[https://packages.gentoo.org/packages/sys-apps/guix][Gentoo]] 
-
-    Если в вашем дистрибутиве нет готового пакета с Guix, то это не
-    проблема. Guix возможно установить на любой дистрибутив GNU/Linux,
-    единственное требование -- иметь программы GNU tar и Xz. Для этого
-    необходимо воспользоваться инструкцией «[[https://guix.gnu.org/manual/ru/html_node/Binarnaya-ustanovka.html][Бинарная установка]]».
-
-    При установке Guix создаст директории в следующих местах:
-    - ~/gnu/store/~
-    - ~/var/guix/~
-    - ~~/.guix-profile/~
-
-    В ~/gnu/~ помещаются все собранные программы в так называемый
-    ~store~. Если программа предполагается к установке, то сначала она
-    собирается в ~store~, а далее линкуется в ~~/.guix-profile/~ и
-    помещается в переменную окружения PATH. Много версий программ
-    может существовать на одной системе без конфликтов и хранится в
-    store. Неиспользуемые программы могут быть удалены сборщиком
-    мусора ~guix gc~.
-
-    В отличии от большинства системных пакетных менеджеров (apt, dnf,
-    pacman, portage) guix не требует доступа суперпользователя для
-    функционирования. Guix, будучи функциональным пакетным менеджером,
-    не использует состояние системы, поэтому ему не надо лазать в
-    системные директории, для которых нужны права суперпользователя.
-
-*** GNU Hello
-
-    Рассмотрим программу [[https://www.gnu.org/software/hello/][GNU Hello]]. Это небольшая hello-world
-    программа, написанная на языке Си в соответствии со стилем и
-    практиками проекта GNU. Найдём ее описание при помощи
-    ~guix show hello~.
-
-    #+BEGIN_SRC bash
-    w96k ~$ guix show hello
-    name: hello
-    version: 2.10
-    outputs: out
-    systems: x86_64-linux i686-linux
-    dependencies: 
-    location: gnu/packages/base.scm:73:2
-    homepage: https://www.gnu.org/software/hello/
-    license: GPL 3+
-    synopsis: Hello, GNU world: An example GNU package  
-    description: GNU Hello prints the message "Hello, world!" and then exits.
-    It serves as an example of standard GNU coding practices.  As such, it
-    + supports command-line arguments, multiple languages, and so on.
-    #+END_SRC
-
-    Если не знаете название пакета, то используйте команду для поиска ~guix search~.
-
-*** Определение пакета
-    :PROPERTIES:
-    :CUSTOM_ID: package_definition
-    :END:
-
-    Определение пакета[fn:guix-package-definition] можно найти в файле
-    ~~/.config/guix/current/share/guile/site/2.2/~ + строка
-    location (~location: gnu/packages/base.scm:73:2~). Для простоты взаимодействия с системой существует мод
-    для редактора [[https://www.gnu.org/software/emacs/][Emacs]] -- [[https://emacs-guix.gitlab.io/][emacs-guix]]. Из него можно проще
-    навигироваться по системе.
-
-    Пакет GNU Hello в Guix определен следующим образом[fn:gnu-guix-hello]:
-
-    #+BEGIN_SRC scheme
-      (define-public hello
-          (package
-            (name "hello")
-            (version "2.10")
-            (source (origin
-                      (method url-fetch)
-                      (uri (string-append "mirror://gnu/hello/hello-" version
-                                          ".tar.gz"))
-                      (sha256
-                       (base32
-                        "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
-            (build-system gnu-build-system)
-            (synopsis "Hello, GNU world: An example GNU package")
-            (description
-             "GNU Hello prints the message \"Hello, world!\" and then exits.  It
-        serves as an example of standard GNU coding practices.  As such, it supports
-        command-line arguments, multiple languages, and so on.")
-            (home-page "https://www.gnu.org/software/hello/")
-            (license gpl3+)))
-    #+END_SRC
-
-    Это определение написано на языке [[https://www.gnu.org/software/guile/][GNU/Guile]], диалекте лиспа
-    Scheme. Вам не нужно понимать тонкости языка, чтобы его
-    использовать в Guix. Как мы видим пакет описан декларативно.
-
-    Разберем это определение на составные части.
-
-    #+BEGIN_SRC scheme
-      (package
-       (name "hello")
-       (version "2.10")
-       ...
-    #+END_SRC
-
-    Имя и версия пакета.
-
-    #+BEGIN_SRC scheme
-      (package 
-          ...
-          (source (origin
-                (method url-fetch)
-                (uri (string-append "mirror://gnu/hello/hello-" version
-                                    ".tar.gz"))
-                (sha256
-                 (base32
-                  "0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i"))))
-          ...
-    #+END_SRC
-
-    Источник пакета и его хеш-сумма. Источником пакета может являться
-    как гит репозиторий, так и обычная ссылка на архив. Если хеш-сумма
-    не совпадает, то guix не установит пакет. Строка mirror заменяет
-    строку на url доступного зеркала[fn:guix-mirrors].
-
-    #+BEGIN_SRC scheme
-      (package
-         ...
-         (build-system gnu-build-system)
-         ...
-    #+END_SRC
-
-    Система сборки[fn:guix-build-systems]. В Guix существуют несколько систем сборки,
-    содержащие инструкции и окружение сборки. В данном случае
-    подразумевается, что система сборки запустит команды ~./configure
-    && make && make check && make install~ и будет иметь
-    соответствующие утилиты.
-
-    #+BEGIN_SRC scheme
-      (package
-         ...
-         (synopsis "Hello, GNU world: An example GNU package")
-         (description
-          "GNU Hello prints the message \"Hello, world!\" and then exits.  It
-     serves as an example of standard GNU coding practices.  As such, it supports
-     command-line arguments, multiple languages, and so on.")
-         (home-page "https://www.gnu.org/software/hello/")
-         (license gpl3+))
-
-    #+END_SRC
-
-    Синопсис, описание, домашняя страница и лицензия. Информация,
-    полезная при поиске пакета.
-
-    Также определение пакета может содержать зависимости ~inputs~,
-    ~native-inputes~ и ~propogated-inputs~, но в нашем случае пакет
-    hello не содержит зависимостей. Если бы зависимости были, то они
-    бы собрались раньше пакета и были бы добавлены в окружение, а
-    зависимости зависимостей собрались бы еще раньше. Таким образом
-    образуется дерево зависимостей. Например дерево зависимостей
-    программы ~grep~.
-
-    #+CAPTION: дерево зависимостей программы grep
-    [[../../public/images/grep.png]]
-
-    Вы можете создать такую же визуализацию командой ~guix graph
-    grep | dot -Tpng > grep.png~. Для выполнения нужен установленный
-    пакет ~graphviz~.
-
-*** Загрузка исходного кода
-    Создадим отдельную директорию для нашей демонстрации и
-    переместимся в нее:
-
-    #+BEGIN_SRC bash
-    mkdir hello
-    cd hello
-    #+END_SRC
-
-    Загрузим исходный код при помощи команды ~guix download~ и ссылки
-    на пакет из [[file:#package_definition][определения пакета]] (необходимо подставить версию):
-
-    #+BEGIN_SRC bash
-     guix download -o hello.tar.gz mirror://gnu/hello/hello-2.10.tar.gz
-
-     Starting download of hello.tar.gz
-     From https://ftpmirror.gnu.org/gnu/hello/hello-2.10.tar.gz...
-     following redirection to `https://mirror.tochlab.net/pub/gnu/hello/hello-2.10.tar.gz`
-     709KiB		                          5.2MiB/s 00:00 [##################] 100.0%
-     hello.tar.gz
-     0ssi1wpaf7plaswqqjwigppsg5fyh99vdlb9kzl7c9lng89ndq1i	
-    #+END_SRC
-
-    Мы получили файл hello.tar.gz в текущей директории. Последняя
-    строка вывода консоли -- это хеш-сумма, которую мы видели в
-    определении пакета.
-
-*** Создание детерминированного окружения
-    Детерминированное окружение одно из требований для создания
-    воспроизводимых сборок. Для создания изолированного окружения
-    воспользуемся командой ~guix environment~:
-
-    #+BEGIN_SRC bash
-    guix environment hello --container
-    #+END_SRC
-
-    Флаг ~--container~ использует возможность ядра [[https://ru.wikipedia.org/wiki/%D0%9A%D0%BE%D0%BD%D1%82%D1%80%D0%BE%D0%BB%D1%8C%D0%BD%D0%B0%D1%8F_%D0%B3%D1%80%D1%83%D0%BF%D0%BF%D0%B0_(Linux)][cgroups]], которая
-    может не поддерживаться вашим процессором. Если это так, то
-    используется вместо ~--container~ флаг ~--pure~.
-
-    Выполнив данную команду Guix скачивает необходимые программы для
-    окружения сборки и перемещает нас в него. То есть нам доступны
-    только непосредственно программы для сборки (gnu-build-system) +
-    при наличии зависимостей -- собранные зависимости.
-
-    Строка ~[env]~ говорит о том, что вы находитесь в изолированном
-    окружении. Чтобы выйти из окружения, используйте сочетание клавиш
-    ~C-d~. Для дальнейшей работы оставайтесь в изолированном
-    окружении.
-
-*** Сборка
-    Разархивируем архив при помощи ~tar~ и переместимся в папку с
-    исходным кодом:
-    #+BEGIN_SRC bash
-    tar -xf hello.tar.gz
-
-    ls
-    hello-2.10  hello.tar.gz
-    cd hello-2.10
-    #+END_SRC
-
-    Далее соберем проект из серии команд:
-    1. ~./configure~
-    2. ~make~
-    3. ~make check~
-    4. ~make prefix=./dist install~
-
-    И так мы получили в директории  ~dist~:
-    #+BEGIN_SRC bash
-    cd dist; cd bin;
-    ./hello 
-    Hello, world!
-    #+END_SRC
-
-    Теперь можно выйти из виртуального окружения, нажав ~C-d~.
-
-*** Сборка через пакетный менеджер
-    Теперь вы примерно понимаете как происходит процесс сборки. Всё
-    что мы сделали уже реализовано пакетным менеджером, для повторения
-    всей процедуры используем ~guix build~:
-    
-    #+BEGIN_SRC bash
-    guix build hello --check
-    #+END_SRC
-
-    На самом деле данная команда использует дополнительные шаги, но
-    основные -- те, что мы уже выполнили.
-
-*** Установка через пакетный менеджер
-    Основная команда для взаимодействия с пакетами ~guix package~[fn:guix-package-command], но
-    есть удобные алиасы ~guix install~ для установки и ~guix remove~
-    для удаления. Попробуем установить пакет hello:
-
-    #+BEGIN_SRC bash
-      guix install hello
-      hello
-      Здравствуй, мир!
-      # Я использую русскую локаль в системе, поэтому выводит на русском. В
-      # окружении сборки переменная LANG не настроена. Поменяем переменную
-      # окружения LANG на en_US
-      LANG=en_US hello
-      Hello, world!
-    #+END_SRC
-
-*** Проверка воспроизводимости
-    Для проверки существует команда ~guix challenge~. Она проверяет
-    совпадает ли хеш, собранной программы с тем, что находится на
-    сборочной ферме (build farm):
-
-    #+BEGIN_SRC bash
-    guix challenge hello -v
-    /gnu/store/kg9mirg6xbvzcp0a98v7326n1nvvwgsj-hello-2.10 contents match:
-    local hash: 101vrhsf9zrzkir4yz01934il2b8wp3z30cc8h0aymzdzbwrikq9
-    https://ci.guix.gnu.org/nar/lzip/kg9mirg6xbvzcp0a98v7326n1nvvwgsj-hello-2.10: 101vrhsf9zrzkir4yz01934il2b8wp3z30cc8h0aymzdzbwrikq9
-
-    1 store items were analyzed:
-    - 1 (100.0%) were identical
-    - 0 (0.0%) differed
-    - 0 (0.0%) were inconclusive
-    #+END_SRC
-
-    Наша сборка побитово идентична, а значит воспроизводима. Таким
-    образом мы рассмотрели воспроизводимые сборки на примере уже
-    существующей программы в репозитории Guix.
-
-*** Запись действий
-    #+BEGIN_EXPORT html
-    <span align="center">
-      <script id="asciicast-Ie61O6XaPHzu5O5WafFxA0Hsc" src="https://asciinema.org/a/Ie61O6XaPHzu5O5WafFxA0Hsc.js" async></script>
-    </span>
-    #+END_EXPORT
-
-** Воспроизводимые сборки в других дистрибутивах
-*** NixOS
-    #+CAPTION: Логотип Nix(OS)
-    [[https://nixos.wiki/nixos-logo-small.png]]
-    
-    Дистрибутив GNU/Linux, которым вдохновлялся Guix.
-
-    #+BEGIN_QUOTE
-    1528 out of 1541 (99.16%) paths in the minimal installation image
-    are reproducible! [fn:nixos-reproducible]
-    #+END_QUOTE
-
-*** Debian
-    #+CAPTION: Логотип Debian
-    [[https://www.debian.org/logos/openlogo-100.jpg]]
-    
-    Проект Reproducible Debian[fn:debian-reproducible] ставит целью
-    достижение воспроизводимости как можно большего числа пакетов в
-    дистрибутиве Debian. Достаточно много пакетов уже воспроизводимы:
-
-    [[https://tests.reproducible-builds.org/debian/unstable/amd64/stats_pkg_state.png]]
-
-*** Arch Linux
-    #+CAPTION: Логотип Arch Linux
-    [[https://www.archlinux.org/static/logos/archlinux-logo-dark-90dpi.ebdee92a15b3.png]]
-
-    Дистрибутив Arch Linux также старается использовать практику
-    воспроизводимых сборок[fn:arch-reproducible].
-
-    [[https://tests.reproducible-builds.org/archlinux/archlinux.png]]
-
-[fn:determinational-build: Детерминированная компиляция: https://ru.wikipedia.org/wiki/Детерминированная_компиляция]
-[fn:reproducible-builds: Сайт движения воспроизводимых сборок: https://reproducible-builds.org]
-[fn:hash-function: Что такое хеш-функция: https://ru.wikipedia.org/wiki/Хеширование]
-[fn:gnu-guix: Пакетный менеджер, а также свободный дистрибутив GNU/Linux с воспроизводимым ПО: https://guix.gnu.org/]
-[fn:gnu-nixos: Пакетный менеджер, а также открытый дистрибутив GNU/Linux с воспроизводимым ПО: https://nixos.org]
-[fn:debian-reproducible: Воспроизводимые сборки Debian: https://wiki.debian.org/ReproducibleBuilds/]
-[fn:arch-reproducible: Воспроизводимые сборки Arch Linux: https://tests.reproducible-builds.org/archlinux/archlinux.html]
-[fn:nixos-reproducible: Воспроизводимые сборки NixOS: https://r13y.com]
-[fn:guix-blog-1: Статья "Reproducible builds: a means to an end": https://guix.gnu.org/blog/2015/reproducible-builds-a-means-to-an-end/]
-[fn:guix-blog-2: Статья "Reproducible computations with Guix": https://guix.gnu.org/blog/2020/reproducible-computations-with-guix/]
-[fn:guix-best: Оригинал статьи «Guix: Самая совершенная операционная система»: https://ambrevar.xyz/guix-advance/index.html]
-[fn:gnu-guix-hello: Определение GNU Hello в Guix: https://git.savannah.gnu.org/cgit/guix.git/tree/gnu/packages/base.scm#n72]
-[fn:guix-mirrors: Зеркала пакетов Guix: https://paste.sr.ht/~w96k/8d0e03d5a7193dec95b6f0dc77682dab55d57e3d]
-[fn:guix-build-systems: Системы сборки в Guix: https://guix.gnu.org/manual/ru/html_node/Sistemy-sborki.html]
-[fn:guix-package-definition: Определение пакета в Guix: https://guix.gnu.org/manual/ru/html_node/Opisanie-paketov.html]
-[fn:guix-package-command: Команда guix package: https://guix.gnu.org/manual/ru/html_node/Vyzov-guix-package.html]
-[fn:diverse-double-compilation: Diverse Double-Compilation: https://dwheeler.com/trusting-trust/]
Index: ntent/saharovo-short.org
===================================================================
--- content/saharovo-short.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ 	(revision )
@@ -1,99 +1,0 @@
-#+TITLE: Сахарово: кратко
-#+DATE: <2021-02-16 Вт>
-#+LANGUAGE: ru
-
-
-#+BEGIN_EXPORT html
-<article>
-  <div class="row">
-    <div class="col-md" style="padding-top: 0.75em;">
-      <h2>Сахарово: кратко</h2>
-    </div>
-    <div class="col-md" align="right">
-      <a href="/posts/saharovo.html" class="button">Длинная версия</a>
-    </div>
-  </div>
-  <div class="row">
-    <div class="col-md">
-       <img src="/public/images/saharovo-kamera.jpg">
-       <p>
-         Я был задержан и подвергнут административную аресту в центре
-	 временного содержания иностранных граждан Сахарово. Это решение 
-	 я буду обжаловать в Европейском Суде по Правам Человека.
-       </p>
-    </div> 
-  </div>
-</article>
-#+END_EXPORT
-
-** Нарушения
-   - Задержавшие сотрудники росгвардии были без опознавательных жетонов
-   - Задержавшие сотрудники росгвардии не представились и не пояснили
-     причину задержания
-   - Сотрудники правоохранительных органов не кормили/не поили в течение
-     32-34 часов
-   - В отделе МВД отобрали паспорта
-   - В отделе МВД производили фотографирование и дактилоскопию
-   - В отделе МВД не было туалета с туалетной бумагой
-   - В отдел МВД не пустили адвоката, ссылаясь на план "Крепость"
-   - В отделе МВД не спросили про хронические заболевания
-   - В отделе МВД некоторые сотрудники не соблюдали масочный режим
-   - Перенесли время суда с 13:40 на 11:30, не уведомив меня
-   - В автозаке по пути в Сахарово отобрали мобильные телефоны
-   - В автозаке по пути в Сахарово отобрали постановления суда. В итоге
-     не вернули совсем.
-   - Не было воды, вешалки, бритв, настольных игр, переодических
-     изданий, доступа к библиотеке и бумаги в камере
-   - Заселили 7 человек в 4-х местную камеру. Через 4 часа расселили, но
-     было нечем дышать.
-   - Заселили в женский корпус вместе с девушками, они были в других
-     камерах, но в том же корпусе
-   - При доставлении был пропущен завтрак, нас не кормили на тот момент
-     ~32-34 часа. 
-   - Отсутствовал первичный медосмотр. Не мерили температуру для
-     обнаружения симптомов Covid-19.
-   - Несколько дней не было бумаги
-   - 4 дня не было связи (из-за симкарт Tele2 без поддержки GSM)
-   - Моего друга не пустили на "свидание", ссылаясь на то, что он не
-     является моим родственником
-   - Прогулки часто длились меньше часа
-   - Долгое время не оформляли. Родственники приезжали в Сахарово, им
-     говорили, что меня здесь нет. Мои родственники не могли найти меня
-     примерно 4 дня.
-   - Не выдали уведомление о начале суда по апеляционной жалобе
-   - График был нестабилен. Отбой мог быть позже на несколько часов.
-   - Справка о выходе была выдана, будто я сидел в другом месте (в
-     Мневниках)
-
-** Хроника событий
-| <l>              | <l50>                                                   |
-| Дата и время     | Событие                                                 |
-|------------------+---------------------------------------------------------|
-| 2.02.2021 ~23:30 | задержан на Большой Дмитровке 15Б                       |
-| 3.02.2021 1:35   | доставлен в Головинский отдел МВД                       |
-| 3.02.2021 ~11:20 | доставлен в Головинский районный суд / начало заседания |
-| 3.02.2021 ~11:30 | вынесение решения: арест 8 суток                        |
-| 3.02.2021 ~19:00 | отъезд в Сахарово                                       |
-| 4.02.2021 ~8:00  | приезд в Сахарово и заселение в камеру                  |
-| 11.02.2021 1:40  | выход на свободу                                        |
-
-** Видео
-*** Место задержания
-    [[video:bdmitrovka1.webm]]
-
-*** Избиения и задержания на улицах Москвы
-    [[youtube:0q40OsZjoV8]]
-
-*** Очередь из автозаков в Сахарово
-    youtube:t-JgoNtWcuQ
-
-*** Видео из Сахарово
-    [[video:saharovo-bunt.mov]]
-    
-    [[video:saharovo-gimn.mp4]]
-
-    [[video:saharovo-girls1.mp4]]
-
-    [[video:saharovo-girls2.mp4]]
-
-
Index: content/saharovo-short.org.old
===================================================================
--- content/saharovo-short.org.old	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
+++ content/saharovo-short.org.old	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -0,0 +1,99 @@
+#+TITLE: Сахарово: кратко
+#+DATE: <2021-02-16 Вт>
+#+LANGUAGE: ru
+
+
+#+BEGIN_EXPORT html
+<article>
+  <div class="row">
+    <div class="col-md" style="padding-top: 0.75em;">
+      <h2>Сахарово: кратко</h2>
+    </div>
+    <div class="col-md" align="right">
+      <a href="/posts/saharovo.html" class="button">Длинная версия</a>
+    </div>
+  </div>
+  <div class="row">
+    <div class="col-md">
+       <img src="/public/images/saharovo-kamera.jpg">
+       <p>
+         Я был задержан и подвергнут административную аресту в центре
+	 временного содержания иностранных граждан Сахарово. Это решение 
+	 я буду обжаловать в Европейском Суде по Правам Человека.
+       </p>
+    </div> 
+  </div>
+</article>
+#+END_EXPORT
+
+** Нарушения
+   - Задержавшие сотрудники росгвардии были без опознавательных жетонов
+   - Задержавшие сотрудники росгвардии не представились и не пояснили
+     причину задержания
+   - Сотрудники правоохранительных органов не кормили/не поили в течение
+     32-34 часов
+   - В отделе МВД отобрали паспорта
+   - В отделе МВД производили фотографирование и дактилоскопию
+   - В отделе МВД не было туалета с туалетной бумагой
+   - В отдел МВД не пустили адвоката, ссылаясь на план "Крепость"
+   - В отделе МВД не спросили про хронические заболевания
+   - В отделе МВД некоторые сотрудники не соблюдали масочный режим
+   - Перенесли время суда с 13:40 на 11:30, не уведомив меня
+   - В автозаке по пути в Сахарово отобрали мобильные телефоны
+   - В автозаке по пути в Сахарово отобрали постановления суда. В итоге
+     не вернули совсем.
+   - Не было воды, вешалки, бритв, настольных игр, переодических
+     изданий, доступа к библиотеке и бумаги в камере
+   - Заселили 7 человек в 4-х местную камеру. Через 4 часа расселили, но
+     было нечем дышать.
+   - Заселили в женский корпус вместе с девушками, они были в других
+     камерах, но в том же корпусе
+   - При доставлении был пропущен завтрак, нас не кормили на тот момент
+     ~32-34 часа. 
+   - Отсутствовал первичный медосмотр. Не мерили температуру для
+     обнаружения симптомов Covid-19.
+   - Несколько дней не было бумаги
+   - 4 дня не было связи (из-за симкарт Tele2 без поддержки GSM)
+   - Моего друга не пустили на "свидание", ссылаясь на то, что он не
+     является моим родственником
+   - Прогулки часто длились меньше часа
+   - Долгое время не оформляли. Родственники приезжали в Сахарово, им
+     говорили, что меня здесь нет. Мои родственники не могли найти меня
+     примерно 4 дня.
+   - Не выдали уведомление о начале суда по апеляционной жалобе
+   - График был нестабилен. Отбой мог быть позже на несколько часов.
+   - Справка о выходе была выдана, будто я сидел в другом месте (в
+     Мневниках)
+
+** Хроника событий
+| <l>              | <l50>                                                   |
+| Дата и время     | Событие                                                 |
+|------------------+---------------------------------------------------------|
+| 2.02.2021 ~23:30 | задержан на Большой Дмитровке 15Б                       |
+| 3.02.2021 1:35   | доставлен в Головинский отдел МВД                       |
+| 3.02.2021 ~11:20 | доставлен в Головинский районный суд / начало заседания |
+| 3.02.2021 ~11:30 | вынесение решения: арест 8 суток                        |
+| 3.02.2021 ~19:00 | отъезд в Сахарово                                       |
+| 4.02.2021 ~8:00  | приезд в Сахарово и заселение в камеру                  |
+| 11.02.2021 1:40  | выход на свободу                                        |
+
+** Видео
+*** Место задержания
+    [[video:bdmitrovka1.webm]]
+
+*** Избиения и задержания на улицах Москвы
+    [[youtube:0q40OsZjoV8]]
+
+*** Очередь из автозаков в Сахарово
+    youtube:t-JgoNtWcuQ
+
+*** Видео из Сахарово
+    [[video:saharovo-bunt.mov]]
+    
+    [[video:saharovo-gimn.mp4]]
+
+    [[video:saharovo-girls1.mp4]]
+
+    [[video:saharovo-girls2.mp4]]
+
+
Index: content/sitemap.org
===================================================================
--- content/sitemap.org	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ content/sitemap.org	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -3,10 +3,17 @@
 - [[file:404.org][404: Страница не найдена]]
 - [[file:cv.org][Curriculum Vitae]]
-- [[file:saharovo-short.org][Сахарово: кратко]]
 - [[file:legal.org][Правовая информация]]
+- [[file:index.org][@w96k: Кириллов Михаил]]
+- [[file:about.org][Обо мне: Кириллов Михаил]]
 - [[file:emacs.org][Конфигурация Emacs]]
-- [[file:about.org][Обо мне: Кириллов Михаил]]
-- [[file:index.org][@w96k: Кириллов Михаил]]
 - [[file:music.org][@w96k: Music]]
+- [[file:server.org][@w96k: Server]]
+- [[file:articles.org][@w96k: Articles]]
+- [[file:guix.org][@w96k: Guix]]
 - projects
   - [[file:projects/ensemble.org][ensemble]]
+- posts
+  - [[file:posts/libreboot-x200t.org][Обзор Lenovo Thinkpad X200T с Libreboot]]
+  - [[file:posts/reproducible-builds.org][Воспроизводимые сборки на примере GNU/Guix]]
+  - [[file:posts/web.org][Свободное использование сети Интернет]]
+  - [[file:posts/unix-distros.org][Unix-подобные дистрибутивы]]
Index: public/css/mini.css
===================================================================
--- public/css/mini.css	(revision 81d2166102410aa3a8181bda6ae1b9c243840fb3)
+++ public/css/mini.css	(revision 8e3e6d594d73cb6d33df1a51253d506c5142c3cb)
@@ -76,8 +76,8 @@
     margin: var(--universal-margin);
     font-weight: 500;
-    padding: 0.65em 0 0.35em 0;
-}
-
-h3, h4, h5, h6 {
+    padding: 0.75em 0 0.25em 0;
+}
+
+h3 {
     border-bottom: 1px solid #cccccc;
 }
