blob: eaa9e4cb821737d66d647be300dc5f96518a47c9 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
|
\input{header.inc}
\title{Criterion C: Development}
\begin{document}
\maketitle
% Remember to demonstrate algorithmic thinking.
\section{Structure and justification}
\section{Algorithmic thinking}
\section{Development techniques}
\section{Existing tools}
The following tools, libraries, and other materials were used in the
development of this product.
\begin{itemize}
\item The \href{https://go.dev}{Go programming language}'s
\href{https://go.dev/ref/spec}{specification} was referred to,
especially for documentation on how channel operations work;
its GC toolchain (the most widely-used reference
implementation) is used as the compiler during development and
production; its standard library is used extensively in the
program.
\item \href{https://gobyexample.com}{Go by Example} was referred to for
documentation on command-line flags and contexts.
\item \href{https://developer.mozilla.org/en-US/}{MDN Web Docs} was
used as my primary source of JavaScript documentation.
\item \href{https://godocs.io}{A hosted fork of gddo} was used as my
primary source of Go documentation, along with using the
\texttt{go doc} command as part of the GC toolchain.
\item \href{https://git.sr.ht/~emersion/go-scfg}{scfg}
written by \href{https://emersion.fr}{Simon Ser} is used to
parse configuration files.
\item \href{https://github.com/MicahParks/keyfunc}{keyfunc}
written by \href{https://micahparks.com/}{Micah Parks} is used
to update the JSON Web Key Set to validate JSON Web Tokens for
user authentication.
\item \href{https://github.com/coder/websocket}{websocket} maintained
by \href{https://coder.com/}{coder} is used for bi-directional
communication.
\item A minimal variant of the
\href{https://www.rfc-editor.org/rfc/rfc1459#section-2.3}{RFC1459
IRC message format} is used as the message format in
client-server communication.
\item \href{https://github.com/golang-jwt/jwt}{golang-jwt} is used to
parse and validate JSON Web Tokens for user authentication.
\item \href{https://github.com/google/uuid}{uuid} by Google is used to
generate
\href{https://www.rfc-editor.org/rfc/rfc9562.html}{UUIDs}
during testing.
\item \href{https://github.com/jackc/pgx}{pgx} by
\href{https://jackchristensen.com/}{Jack Christensen} is used
to establish a connection with the PostgreSQL database backend.
\item \href{https://www.postgresql.org/}{PostgreSQL} is used as a
database backend.
\item \href{https://golangci-lint.run/}{golangci-lint} is used as a
linter to detect programming errors.
\item \href{https://neovim.io/}{neovim} is used as a text editor; its
LSP client was used to connect to
\href{https://pkg.go.dev/golang.org/x/tools/gopls}{gopls} for
error detection and documentation provision while editing code.
\end{itemize}
\end{document}
|