diff --git a/src/css/style.css b/src/css/style.css
index e9a3807..943c4db 100644
--- a/src/css/style.css
+++ b/src/css/style.css
@@ -1,3 +1,8 @@
+@font-face {
+ font-family: 'atkinson';
+ src: url(/res/atkinson-regular.woff2);
+}
+
@font-face {
font-family: 'merriweather';
src: url(/res/merriweather-regular.woff2);
@@ -9,11 +14,11 @@
}
body {
- font-family: merriweather;
+ font-family: 'merriweather';
background-image: url("/res/grey.png");
background-repeat: repeat;
padding: 20px 10px 20px;
- line-height: 1.75em;
+ line-height: 1.5em;
height: 100%;
max-width: 40em;
display: flex;
@@ -22,14 +27,21 @@ body {
main {
border-radius: 15px;
- padding: 15px;
+ word-spacing: 0.12em;
+ padding: 1.2em;
background-color: #ffeedd;
margin: 2px;
- width: 100%
+ width: 100%;
+ font-size: 1.2em;
}
code {
+ display: inline-block;
font-family: cascadia;
+ font-size: 0.9em;
+ background: #1e1e22;
+ color: #dddde1;
+ padding: 0.1em 0.5em 0.1em;
}
table {
@@ -62,8 +74,8 @@ h1 {
}
h2 {
- margin-top: 0em;
- margin-bottom: 0em;
+ margin-top: 1em;
+ margin-bottom: 0.5em;
}
section {
diff --git a/src/hyperspace/index.md b/src/hyperspace/index.md
index c063cde..b162fe6 100644
--- a/src/hyperspace/index.md
+++ b/src/hyperspace/index.md
@@ -12,5 +12,6 @@
* [psychocool](https://psychcool.org/links)
* [nenrikido](https://nenrikido.neocities.org/)
* [incessantpain](https://incessantpain.neocities.org/)
+* [ngmi](https://ngmi.neocities.org/home)
## cool webrings
* [neocratives](http://neocreatives.byethost5.com/)
diff --git a/src/index.md b/src/index.md
index 232123b..04c99a1 100644
--- a/src/index.md
+++ b/src/index.md
@@ -1,23 +1,26 @@
# logan's site
## about
My name is Logan Gatlin, and upon this Intel NUC8i3 I shall build my kingdom. I
-am from the United States, where I was born in 2003. In 2025 I will receive my
-bachellors in Computer Science from the [University of Texas at San
+am from the United States, where I was born in 2003. In 2025, I will receive my
+bachelor's degree in Computer Science from the [University of Texas at San
Antonio](https://utsa.edu).
## site map
-* [my git server](https://git.lgatlin.dev/logan) - _Private forgejo instance_
+* [writings](/writings/) - _My thoughts_
* [software](/software) - _Awesome software projects_
* [books](/books) - _Reading corner_
* [music](/music) - _Sick tunes_
-* [toybox](/toybox) - _Web experiences_
-* [hyperspace](/hyperspace) - _Everything world wide web_
-
-## meta
+* [toy box](/toybox) - _Web experiences_
+* [hyperspace](/hyperspace) - _Everything World Wide Web_
* [server info](/server-info.html) - _Technical information about this server_
* [style guide](/style-guide.html) - _Formatting rules for this site_
+## external links
+* [my git server](https://git.lgatlin.dev/logan)
+* [github](https://github.com/Xterminate1818)
+* [resume](/resume.pdf)
+
-
-If you're not remembered, then you never existed
+
+ If you're not remembered, then you never existed
diff --git a/src/js/highlight.js b/src/js/highlight.js
index 91a98ad..6bfc2d7 100644
--- a/src/js/highlight.js
+++ b/src/js/highlight.js
@@ -979,4 +979,4 @@ className:"number",
begin:"\\b[0-9]{4}(-[0-9][0-9]){0,2}([Tt \\t][0-9][0-9]?(:[0-9][0-9]){2})?(\\.[0-9]*)?([ \\t])*(Z|[-+][0-9][0-9]?(:[0-9][0-9])?)?\\b"
},{className:"number",begin:e.C_NUMBER_RE+"\\b",relevance:0},t,g,s],r=[...b]
;return r.pop(),r.push(i),l.contains=r,{name:"YAML",case_insensitive:!0,
-aliases:["yml"],contains:b}}})();hljs.registerLanguage("yaml",e)})();
\ No newline at end of file
+aliases:["yml"],contains:b}}})();hljs.registerLanguage("yaml",e)})();
diff --git a/src/res/AtkinsonHyperlegible-Bold.ttf b/src/res/atkinson-hyperlegible-bold.ttf
similarity index 100%
rename from src/res/AtkinsonHyperlegible-Bold.ttf
rename to src/res/atkinson-hyperlegible-bold.ttf
diff --git a/src/res/atkinson-hyperlegible-bolditalic.ttf b/src/res/atkinson-hyperlegible-bolditalic.ttf
new file mode 100644
index 0000000..ff966b1
Binary files /dev/null and b/src/res/atkinson-hyperlegible-bolditalic.ttf differ
diff --git a/src/res/atkinson-hyperlegible-italic.ttf b/src/res/atkinson-hyperlegible-italic.ttf
new file mode 100644
index 0000000..1cf113a
Binary files /dev/null and b/src/res/atkinson-hyperlegible-italic.ttf differ
diff --git a/src/res/atkinson-hyperlegible-regular.ttf b/src/res/atkinson-hyperlegible-regular.ttf
new file mode 100644
index 0000000..23614a4
Binary files /dev/null and b/src/res/atkinson-hyperlegible-regular.ttf differ
diff --git a/src/res/atkinson-regular.woff2 b/src/res/atkinson-regular.woff2
new file mode 100644
index 0000000..99b3c6f
Binary files /dev/null and b/src/res/atkinson-regular.woff2 differ
diff --git a/src/resume.pdf b/src/resume.pdf
new file mode 100644
index 0000000..a28595d
Binary files /dev/null and b/src/resume.pdf differ
diff --git a/src/toybox/the-crypt/index.md b/src/toybox/the-crypt/index.md
index 658dc28..9f68783 100644
--- a/src/toybox/the-crypt/index.md
+++ b/src/toybox/the-crypt/index.md
@@ -18,7 +18,7 @@ compiled for the web if you want to host it locally
## embed
```html
diff --git a/src/writings/1-build-systems.md b/src/writings/1-build-systems.md
new file mode 100644
index 0000000..1debe3a
--- /dev/null
+++ b/src/writings/1-build-systems.md
@@ -0,0 +1,69 @@
+# on build systems
+Recently I have been thinking about what makes for good build system. I
+want to analyze the major pain points I have encountered building software,
+and identify where these systems go wrong. To do this I have picked several
+languages I am already familiar with to use as case studies
+## definitions
+I think of build systems as a very broad category of software; the goal of
+which is to automate the process of packaging or executing other software.
+This typically involves several subtasks. Resolving dependencies, compiling,
+interpreting, linking, deploying, packaging, executing - software that does one
+or more of these things counts as a build system in my book
+## c and c++
+The C family of languages has a quite complicated ecosystem of competing build
+systems. To start with, there are the compilers themselves:
+[GCC](https://gcc.gnu.org/) and [Clang](https://clang.llvm.org/). A typical
+invocation of looks like this:
+```bash
+cc main.c foo.c bar.h -Iinclude/ -Llib/ -O2 -oProgram
+```
+This is quite verbose as far as build commands go. The path of every source file
+must be specified, as well as separate folders for library headers and object
+files. Most software also makes use of numerous compiler flags, most of which
+have incredibly cryptic names.
+
+To compile a C project using only the compiler requires first learning
+its structure, wrangling each of its dependencies manually, and reading
+documentation to find the appropriate build flags for your platform. For any
+non-trivial program, simply typing the build command becomes a challenge
+
+## make
+The problems introduced by the C family of compilers have proven intractable,
+and so another layer of abstraction is necessary. Makefile is a rudimentary
+scripting language primarily used to build C family languages.
+```make
+# Example Makefile taken from:
+# https://www.cs.colby.edu/maxwell/courses/tutorials/maketutor/
+CC=gcc
+CFLAGS=-I.
+DEPS=hellomake.h
+OBJ=hellomake.o hellofunc.o
+
+%.o: %.c $(DEPS)
+ $(CC) -c -o $@ $< $(CFLAGS)
+
+hellomake: $(OBJ)
+ $(CC) -o $@ $^ $(CFLAGS)
+```
+Makefiles attempt to abstract away the complexity of the C compilation process.
+Variables and pattern matching of file names are particularly well suited for
+managing compiler flags and object files. However, by far the most attractive
+feature of Makefiles is the ability to simply type `make` to compile the entire
+program.
+
+As software becomes more complex, so too does the task of building it. The
+limitations of C make this problem particularly egregious, given its fragile
+dependency resolution and lack of meta-programming. Makefiles have attempted
+to bridge this gap, and are a Turing-Complete language in their own right.
+The [Makefile which builds the Linux kernel](https://github.com/torvalds/linux/blob/master/Makefile)
+is over 2000 lines as of writing. The massive demands placed on this
+intermediary language have exposed its weak points, mainly that it is
+stringly-typed and full of cryptic, unintuitive syntax. Maintaining complex
+Makefiles contributes to the difficulty of building software almost as much as
+it reduces
+
+## cmake
+When I first learned about CMake and what it does, I actually laughed out loud.
+I am lucky enough to have never written a CMake file, so this section will
+be brief. Just as Makefiles abstract away the complexity of building C, CMake
+abstracts away the complexity of building Makefiles.
diff --git a/src/writings/index.md b/src/writings/index.md
new file mode 100644
index 0000000..024e476
--- /dev/null
+++ b/src/writings/index.md
@@ -0,0 +1,2 @@
+# writings
+* [on build systems](./1-build-systems.html)