129 lines
5.9 KiB
TeX
129 lines
5.9 KiB
TeX
% =========================================================================== %
|
|
% Encoding: UTF-8 (žluťoučký kůň úpěl ďábelšké ódy)
|
|
% =========================================================================== %
|
|
|
|
\listofappendices
|
|
|
|
\priloha{List of supplemental material}\label{appendix:supplementalmaterial}
|
|
\n{2}{Git signing keys}\label{appendix:signingkeys}
|
|
File name: \texttt{gitsign.pub}\\
|
|
Blake3:
|
|
{\small\texttt{af0f319aecd3ca1d1d4002ebd4ebd5f93e6030551a91f3e09664995340208c85}}\\
|
|
SHA3-256:
|
|
{\small\texttt{8cab97c322c26369437ba365159b14ac4b829056c8974c671fdc57bcba8f518b}}\\
|
|
File name: \texttt{surtur.pub}\\
|
|
Blake3:
|
|
{\small\texttt{f6d87e457c9939063117a2ee243af279b39b07f47bbb190f3fe5b59a6972c531}}\\
|
|
SHA3-256:
|
|
{\small\texttt{0b53a5766c3f144fffa8ff7c1c24c5f10a52588cd75d86fb8150aacbbd7c7b10}}\\
|
|
|
|
\n{2}{ZSTD-compressed tarball of the PCMT source code repository}
|
|
Note: Also contains the git history.\\
|
|
File name: \texttt{pcmt.git.tar.zst}\\
|
|
Blake3:
|
|
{\small\texttt{ca53c60eb4f0f14e287ec866ccba63ef7e375c17c1fbbcd58950162f7d8ad172}}\\
|
|
SHA3-256:
|
|
{\small\texttt{3df969231ac8b464d9ed6ea6991aa61751629b997b4928cece2c5261543c3803}}\\
|
|
|
|
\n{2}{ZSTD-compressed tarball of the PCMT configuration schema repository}
|
|
Note: Also contains the git history.\\
|
|
File name: \texttt{pcmt-config-schema.tar.zst}\\
|
|
Blake3:
|
|
{\small\texttt{2f55e255318967e89443b5a1847466952599a5eae1080b8c973a0368920dbdcc}}\\
|
|
SHA3-256:
|
|
{\small\texttt{9a0b383fce6bf2918fc39b44a5d29dccf27a77adc6c4b4483cd05e8be410345a}}\\
|
|
|
|
\n{2}{ZSTD-compressed tarball of the \LaTeX{} sources of this thesis}
|
|
Note: Also contains the git history. The hash digest of this file is omitted to avoid chicken-egg problem when wishing to include its digest here.\\
|
|
File name: \texttt{pcmt-latex-thesis.tar.zst}\\
|
|
|
|
\n{2}{\texttt{BLAKE3} checksums}\label{appendix:b3sums}
|
|
Note: A list of \texttt{BLAKE3} checksums for the supplementary material
|
|
(excluding the checksum files). Check using \texttt{b3sum -c b3sums}.\\
|
|
File name: \texttt{b3sums}\\
|
|
Blake3:
|
|
{\small\texttt{2cbb654aff2755eb00a0d61ce68dabdb9348b8d2f283e95b7619d39ec451f729}}\\
|
|
SHA3-256:
|
|
{\small\texttt{b0c26f0ee638e1e26e3dfbf2973e50a6130c446f5e9ed5db2aa3295e08890f93}}\\
|
|
|
|
\n{2}{\texttt{SHA3-256} checksums}\label{appendix:sha3-256sums}
|
|
Note: A list of \texttt{SHA3-256} checksums for the supplementary material
|
|
(excluding the checksum files). Check using \texttt{sha3-256sum -c sha3-256sums}.\\
|
|
File name: \texttt{sha3-256sums}\\
|
|
Blake3:
|
|
{\small\texttt{464d1be89b7d8ae62ff4687722127498f4d9b91b86f94b83fc7a07c97743916c}}\\
|
|
SHA3-256:
|
|
{\small\texttt{cc57c0cfc5ddd9e4db754e914e4d87733b967d0040356108ebc225ac9cacf68e}}\\
|
|
|
|
|
|
\priloha{Whys}\label{appendix:whys}
|
|
|
|
This appendix is concerned with explaining why certain technologies were used.
|
|
|
|
\n{2}{Why Go}\label{appendix:whygo}
|
|
|
|
First, a question of \textit{`Why pick Go for building a web application?'}
|
|
might arise, so the following few lines will try to address that.
|
|
|
|
Go\footnotemark{}, or \emph{Golang} for SEO-friendliness and disambiguating Go
|
|
the ancient game, is a strongly typed, high-level \emph{garbage-collected}
|
|
language where functions are first-class citizens and errors are values.
|
|
|
|
\footnotetext{The Go programming language (\url{https://go.dev})}
|
|
|
|
The appeal for the author comes from a number of features of the language, such
|
|
as built-in support for concurrency and unit testing, sane \emph{zero} values,
|
|
lack of pointer arithmetic, inheritance and implicit type conversions,
|
|
easy-to-read syntax, producing a statically linked binary by default, etc., on
|
|
top of that, the language has got a cute mascot. Thanks to the foresight of the
|
|
Go Authors regarding \emph{the formatting question} (i.e.\ where to put the
|
|
braces, \textbf{tabs vs.\ spaces}, etc.), most of the discussions on this topic
|
|
have been foregone. Every \emph{gopher}\footnote{euph.\ a person writing in the
|
|
Go programming language} is expected to format their source code with the
|
|
official formatter (\texttt{gofmt}), which automatically ensures that the code
|
|
adheres to the one formatting standard. Then, there is \emph{The Promise} of
|
|
backwards\footnotemark{} compatibility for Go 1.x, which makes it a good choice
|
|
for long-term without the fear of being rug-pulled.
|
|
|
|
\footnotetext{Now there is also the promise of \emph{forward compatibility}
|
|
(\url{https://go.dev/blog/toolchain})}
|
|
|
|
\n{2}{Why Nix/devenv}\label{appendix:whynix}
|
|
|
|
Nix (\url{https://builtwithnix.org/}) is a functional programming language
|
|
resembling Haskell and a declarative package manager, which has been used in
|
|
this project in the form of \texttt{devenv} tool (\url{https://devenv.sh/}) to
|
|
create \textbf{declarable} and \textbf{reproducible} development environment.
|
|
The author has previously used Nix directly with \emph{flakes} and liked
|
|
\texttt{devenv}, as it effectively exposed only a handful of parameters for
|
|
configuration, and rid of the need to manage the full flake, which is of course
|
|
still an option for people who choose so. See \texttt{devenv.nix} in the
|
|
repository root.
|
|
|
|
|
|
\priloha{Terminology}\label{appendix:terms}
|
|
|
|
\n{2}{Linux}
|
|
|
|
The term \emph{Linux} is exclusively used in the meaning of the
|
|
Linux kernel~\cite{linux}.
|
|
|
|
\n{2}{GNU/Linux}
|
|
|
|
As far as a Linux-based operating system is concerned, the term ``GNU/Linux''
|
|
as defined by the Free Software Foundation~\cite{fsfgnulinux} is used. While it
|
|
is longer and arguably a little bit cumbersome, the author aligns with the
|
|
opinion that this term more correctly describes its actual target. Being aware
|
|
that there are many people who conflate the complete operating system with its
|
|
(be it core) component, the kernel, the author is taking care to distinguish
|
|
the two, although writing from experience, colloquially, this probably brings
|
|
more confusion and a lengthy explanation is usually required.
|
|
|
|
\n{2}{The program}
|
|
|
|
By \emph{the program} or \emph{the application} without any additional context
|
|
the author most probably means the Password Compromise Monitoring Tool program.
|
|
|
|
|
|
% =========================================================================== %
|