meta content

This commit is contained in:
Logan 2024-09-08 06:27:49 -05:00
parent b9ce32ea8d
commit 90bbdce08f
11 changed files with 520 additions and 326 deletions

142
src/books/books.json Normal file
View file

@ -0,0 +1,142 @@
{
"completed": {
"desc": "Individual books, series, and manga I read and enjoyed enough to keep in my collection",
"items": [
{
"main": "I am a Strange Loop",
"sub": "Douglass R. Hofstadter",
"url": "https://openlibrary.org/works/OL8067922W/I_Am_a_Strange_Loop?edition=key%3A/books/OL24948194M"
},
{
"main": "2001 a Space Odyssey (series)",
"sub": "Arthur C. Clarke",
"url": "https://openlibrary.org/books/OL18674505M/2001"
},
{
"main": "Zeros and Ones",
"sub": "Sadie Plant",
"url": "https://openlibrary.org/works/OL937516W/Zeros_and_Ones"
},
{
"main": "Xenofeminism",
"sub": "Helen Hester",
"url": "https://openlibrary.org/works/OL20586475W/Xenofeminism"
},
{
"main": "Daodejing (Wang Pi's commentary)",
"sub": "Lao-Tzu",
"url": "https://openlibrary.org/works/OL26585958W/Translation_of_Lao-Tzu%27s_Tao_Te_Ching_and_Wang_Pi%27s_Commentary?edition=key%3A/books/OL37483524M"
},
{
"main": "Groundwork for the Metaphysics of Morals",
"sub": "Immanuel Kant",
"url": "https://openlibrary.org/works/OL99843W/Grundlegung_zur_Metaphysik_der_Sitten"
},
{
"main": "The Burn Journals",
"sub": "Brent Runyon",
"url": "https://openlibrary.org/works/OL8043765W/The_Burn_Journals"
},
{
"main": "The Hitch Hikers Guide to the Galaxy (series)",
"sub": "Douglas Adams",
"url": "https://openlibrary.org/works/OL2163649W/The_Hitch_Hiker%27s_Guide_to_the_Galaxy?edition=key%3A/books/OL32838419M"
},
{
"main": "Six of Crows (duology)",
"sub": "Leigh Bardugo",
"url": "https://openlibrary.org/works/OL17332479W/Six_of_Crows?edition=key%3A/books/OL32178549M"
},
{
"main": "Berserk (series)",
"sub": "三浦建太郎",
"url": "https://openlibrary.org/works/OL8988597W/Berserk_Vol._1"
},
{
"main": "Hunter x Hunter (series)",
"sub": "冨樫 義博",
"url": "https://openlibrary.org/works/OL8215148W/Hunter_x_Hunter_Volume_1"
}
]
},
"backlog": {
"desc": "Works sitting on my shelf right now waiting to be read",
"items": [
{
"main": "Gödel, Escher, Bach",
"sub": "Douglas R. Hofstadter",
"url": "https://openlibrary.org/works/OL716850W/G%C3%B6del_Escher_Bach"
},
{
"main": "Snow Crash",
"sub": "Neal Stephenson",
"url": "https://openlibrary.org/works/OL38501W/Snow_Crash"
},
{
"main": "Dune",
"sub": "Frank Herbert",
"url": "https://openlibrary.org/works/OL893415W/Dune?edition=key%3A/books/OL26242482M"
},
{
"main": "Catch 22",
"sub": "Joseph Heller",
"url": "https://openlibrary.org/works/OL29300587W/Catch_22"
},
{
"main": "The End of History and the Last Man",
"sub": "Francis Fukuyama",
"url": "https://openlibrary.org/works/OL2670501W/The_End_of_History_and_the_Last_Man"
},
{
"main": "Spiritual Writings",
"sub": "Søren Kierkegaard",
"url": "https://openlibrary.org/works/OL112700W/Provocations?edition=key%3A/books/OL3319828M"
},
{
"main": "Gravity's Rainbow",
"sub": "Thomas Pynchon",
"url": "https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil"
},
{
"main": "Beyond Good and Evil",
"sub": "Friedrich Nietzsche",
"url": "https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil"
}
]
},
"novelties": {
"desc": "Books I will probably never read, but were interesting enough to collect anyway",
"items": [
{
"main": "Raster Graphics Handbook",
"sub": "Van Nostrand Reinhold",
"url": "https://openlibrary.org/works/OL16444194W/Raster_graphics_handbook?edition=key%3A/books/OL2849584M"
},
{
"main": "Fanged Noumena",
"sub": "Nick Land",
"url": "https://openlibrary.org/works/OL20705619W/Fanged_Noumena"
},
{
"main": "Beginning Flash Game Programming for Dummies",
"sub": "Andy Harris",
"url": "https://openlibrary.org/works/OL4110556W/Beginning_Flash_Game_Programming_For_Dummies"
},
{
"main": "The Infinite and the Final Cause for Creation",
"sub": "Emanuel Swedenborg",
"url": "https://openlibrary.org/works/OL33307W/Outlines_of_a_philosophical_argument_on_the_infinite"
},
{
"main": "Compilers: Principles, Techniques, and Tools (1st ed)",
"sub": "Alfred V. Aho",
"url": "https://openlibrary.org/works/OL3509433W/Compilers_principles_techniques_and_tools"
},
{
"main": "Hypermedia Systems",
"sub": "Carson Gross",
"url": "https://openlibrary.org/works/OL38674782W/Hypermedia_Systems?edition=key%3A/books/OL53364657M"
}
]
}
}

View file

@ -1,60 +1,5 @@
# books # books
My favorite book is always the last one I read (unless it sucked) My favorite book is always the last one I read (unless it sucked)
## completed
Individual books, series, and manga I read and enjoyed enough to keep in my <json-data src="/books/books.json" show="list"></json-data>
collection
* [I am a Strange Loop](https://openlibrary.org/works/OL8067922W/I_Am_a_Strange_Loop?edition=key%3A/books/OL24948194M) -
_Douglas R. Hofstadter_
* [2001 a Space Odyssey (series)](https://openlibrary.org/books/OL18674505M/2001) -
_Arthur C. Clarke_
* [Zeros and Ones](https://openlibrary.org/works/OL937516W/Zeros_and_Ones) -
_Sadie Plant_
* [Xenofeminism](https://openlibrary.org/works/OL20586475W/Xenofeminism) -
_Helen Hester_
* [Daodejing (Wang Pi's commentary)](https://openlibrary.org/works/OL26585958W/Translation_of_Lao-Tzu%27s_Tao_Te_Ching_and_Wang_Pi%27s_Commentary?edition=key%3A/books/OL37483524M) -
_Lao-Tzu_
* [Groundwork for the Metaphysics of Morals](https://openlibrary.org/works/OL99843W/Grundlegung_zur_Metaphysik_der_Sitten) -
_Immanuel Kant_
* [The Burn Journals](https://openlibrary.org/works/OL8043765W/The_Burn_Journals) -
_Brent Runyon_
* [The Hitch Hikers Guide to the Galaxy (series)](https://openlibrary.org/works/OL2163649W/The_Hitch_Hiker%27s_Guide_to_the_Galaxy?edition=key%3A/books/OL32838419M) -
_Douglas Adams_
* [Six of Crows (duology)](https://openlibrary.org/works/OL17332479W/Six_of_Crows?edition=key%3A/books/OL32178549M) -
_Leigh Bardugo_
* [Berserk (series)](https://openlibrary.org/works/OL8988597W/Berserk_Vol._1) -
_三浦建太郎_
* [Hunter x Hunter (series)](https://openlibrary.org/works/OL8215148W/Hunter_x_Hunter_Volume_1) -
_冨樫 義博_
## backlog
Works sitting on my shelf right now waiting to be read
* [Gödel, Escher, Bach](https://openlibrary.org/works/OL716850W/G%C3%B6del_Escher_Bach) -
_Douglas R. Hofstadter_
* [Snow Crash](https://openlibrary.org/works/OL38501W/Snow_Crash) -
_Neal Stephenson_
* [Dune](https://openlibrary.org/works/OL893415W/Dune?edition=key%3A/books/OL26242482M) -
_Frank Herbert_
* [Catch 22](https://openlibrary.org/works/OL29300587W/Catch_22) -
_Joseph Heller_
* [The End of History and the Last Man](https://openlibrary.org/works/OL2670501W/The_End_of_History_and_the_Last_Man) -
_Francis Fukuyama_
* [Spiritual Writings](https://openlibrary.org/works/OL112700W/Provocations?edition=key%3A/books/OL3319828M) -
_Søren Kierkegaard_
* [Gravity's Rainbow](https://openlibrary.org/works/OL2636675W/Gravity%27s_Rainbow) -
_Thomas Pynchon_
* [Beyond Good and Evil](https://openlibrary.org/works/OL24784277W/Beyond_Good_and_Evil) -
_Friedrich Nietzsche_
## novelties
Books I will probably never read, but were interesting
enough to collect anyway
* [Raster Graphics Handbook](https://openlibrary.org/works/OL16444194W/Raster_graphics_handbook?edition=key%3A/books/OL2849584M) -
_Van Nostrand Reinhold_
* [Fanged Noumena](https://openlibrary.org/works/OL20705619W/Fanged_Noumena) -
_Nick Land_
* [Beginning Flash Game Programming for Dummies](https://openlibrary.org/works/OL4110556W/Beginning_Flash_Game_Programming_For_Dummies) -
_Andy Harris_
* [The Infinite and the Final Cause for Creation](https://openlibrary.org/works/OL33307W/Outlines_of_a_philosophical_argument_on_the_infinite) -
_Emanuel Swedenborg_
* [Compilers: Principles, Techniques, and Tools (1st ed)](https://openlibrary.org/works/OL3509433W/Compilers_principles_techniques_and_tools) -
_Alfred V. Aho_
* [Hypermedia Systems](https://openlibrary.org/works/OL38674782W/Hypermedia_Systems?edition=key%3A/books/OL53364657M) -
_Carson Gross_

View file

@ -46,37 +46,12 @@ table, th, td {
align-content: center; align-content: center;
} }
a { a, a:visited {
color: #df3e23; color: #df3e23;
/* font-style: italic; */
font-weight: bold; font-weight: bold;
text-decoration: none; text-decoration: none;
} }
a:visited {
color: #df3e23;
font-style: italic;
text-decoration: none;
}
a:focus:before,a:active:before,a:hover:before {
content: "[";
font-style: normal;
color: black;
outline: none;
outline-color: transparent;
outline-style: none;
}
a:focus:after,a:active:after,a:hover:after {
content: "]";
font-style: normal;
color: black;
outline: none;
outline-color: transparent;
outline-style: none;
}
p,ul { p,ul {
margin-top: 0.3em; margin-top: 0.3em;
} }
@ -109,7 +84,11 @@ figcaption {
line-height: 110%; line-height: 110%;
} }
img { img[src] {
border-radius: 0.25em;
}
figure img {
display: block; display: block;
width: 100% width: 100%
} }

16
src/hyperspace/index.md Normal file
View file

@ -0,0 +1,16 @@
# hyperspace
## interesting sites
* [dimden](https://dimden.dev/)
* [zenmai studio](https://zenmaistudio.com/)
* [oddity commoddity](https://odditycommoddity.neocities.org/)
* [texture town](https://textures.neocities.org/)
* [cabbage sorter](https://cabbagesorter.neocities.org/)
* [mr bashful](https://mrbashful.com/)
* [sad girls club](https://sadgirlsclub.wtf/)
* [BJ's website](https://beedge.neocities.org/)
* [angels are mathematical](https://angelsaremathematical.neocities.org/)
* [psychocool](https://psychcool.org/links)
* [nenrikido](https://nenrikido.neocities.org/)
* [incessantpain](https://incessantpain.neocities.org/)
## cool webrings
* [neocratives](http://neocreatives.byethost5.com/)

View file

@ -6,11 +6,19 @@ 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 bachellors in Computer Science from the [University of Texas at San
Antonio](https://utsa.edu). Antonio](https://utsa.edu).
## site map ## site map
* [my git server](https://git.lgatlin.dev/logan) - _personal code forge_ * [my git server](https://git.lgatlin.dev/logan) - _Private forgejo instance_
* [software](/software) - _thoughts on programming_ * [software](/software) - _Thoughts on programming_
* [books](/books) - _reading corner_ * [books](/books) - _Reading corner_
* [music](/music) - _sick tunes_ * [music](/music) - _Sick tunes_
* [toybox](/toys) - _awesome web apps_ * [toybox](/toys) - _Awesome web apps_
* [hyperspace](/hyperspace) - _everything world wide web_ * [hyperspace](/hyperspace) - _Everything world wide web_
## meta
* [server info](/server-info.html) - _Technical information about this server_
* [style guide](/style-guide.html) - _Formatting rules for this site_
<section>
<img src="favicon.gif" style="width: 10em;"> <br>
<em>If you're not remembered, then you never existed</em>
</section>

View file

@ -1,10 +1,18 @@
async function figureGrid(jsonURL) { class JsonData extends HTMLElement {
const response = await fetch(jsonURL); static observedAttributes = ["src", "show"];
const json = await response.json(); constructor() {
super();
}
static grid(json) {
let html = ""; let html = "";
for (const headerName in json) { for (const headerName in json) {
html = html.concat("<section>") html = html.concat(`
let entries = json[headerName]; <h2>${headerName}</h2>
<p>${json[headerName].desc || ""}</p>
<section>
`);
let entries = json[headerName].items || [];
for (let i = 0; i < entries.length; i++) { for (let i = 0; i < entries.length; i++) {
let entry = entries[i]; let entry = entries[i];
html = html.concat( html = html.concat(
@ -20,20 +28,58 @@ async function figureGrid(jsonURL) {
html = html.concat("</section>") html = html.concat("</section>")
} }
return html; return html;
} }
class FigureGrid extends HTMLElement { static list(json) {
static observedAttributes = ["src"]; let html = "";
constructor() { for (const headerName in json) {
super(); html = html.concat(`
<h2>${headerName}</h2>
<p>${json[headerName].desc || ""}</p>
`);
let entries = json[headerName].items || [];
html = html.concat("<ul>")
for (let i = 0; i < entries.length; i++) {
let entry = entries[i];
html = html.concat(`<li>
<a href="${entry.url}">
<b>${entry.main}</b>
</a> -
<em>${entry.sub}</em>
</li>`);
}
html = html.concat("</ul>")
}
return html;
}
async connectedCallback() {
if (this.src == undefined) {
this.innerHTML = "src is undefined";
return;
}
const response = await fetch(this.src);
const json = await response.json();
switch(this.show) {
case "grid":
this.innerHTML = JsonData.grid(json);
break;
case "list":
this.innerHTML = JsonData.list(json);
break;
default:
break;
};
} }
async attributeChangedCallback(name, oldValue, newValue) { async attributeChangedCallback(name, oldValue, newValue) {
if (name == "src") { if (name == "src") {
this.innerHTML = await figureGrid(newValue); this.src = newValue;
} else if (name == "show") {
this.show = newValue;
} }
} }
} }
customElements.define("figure-grid", FigureGrid); customElements.define("json-data", JsonData);

View file

@ -1,5 +1,6 @@
{ {
"chill": [ "chill": {
"items": [
{ {
"main": "Cosmos", "main": "Cosmos",
"sub": "Yuji Ohno", "sub": "Yuji Ohno",
@ -50,8 +51,10 @@
"sub": "CASIOPEA", "sub": "CASIOPEA",
"url": "/res/albums/mint_jams.webp" "url": "/res/albums/mint_jams.webp"
} }
], ]
"experimental": [ },
"experimental": {
"items": [
{ {
"main": "Departing", "main": "Departing",
"sub": "Jesus Molina", "sub": "Jesus Molina",
@ -92,8 +95,10 @@
"sub": "Chuck Salamone", "sub": "Chuck Salamone",
"url": "/res/albums/hylics2.webp" "url": "/res/albums/hylics2.webp"
} }
], ]
"electronic": [ },
"electronic": {
"items": [
{ {
"main": "H.A.Q.Q.", "main": "H.A.Q.Q.",
"sub": "Liturgy", "sub": "Liturgy",
@ -134,8 +139,10 @@
"sub": "Graham Kartna", "sub": "Graham Kartna",
"url": "/res/albums/tmp2.webp" "url": "/res/albums/tmp2.webp"
} }
], ]
"high energy": [ },
"high energy": {
"items": [
{ {
"main": "Each and Every Word Leaves Me Here Alone", "main": "Each and Every Word Leaves Me Here Alone",
"sub": "Foreground Eclipse", "sub": "Foreground Eclipse",
@ -161,8 +168,10 @@
"sub": "Polyphia", "sub": "Polyphia",
"url": "/res/albums/new_levels_new_devils.webp" "url": "/res/albums/new_levels_new_devils.webp"
} }
], ]
"misc": [ },
"misc": {
"items": [
{ {
"main": "27 Demos", "main": "27 Demos",
"sub": "Margo Guryan ", "sub": "Margo Guryan ",
@ -204,4 +213,5 @@
"url": "/res/albums/oncle_jazz.webp" "url": "/res/albums/oncle_jazz.webp"
} }
] ]
}
} }

View file

@ -3,4 +3,4 @@ Music is a huge passion of mine. I prefer listening to albums in full from
start to finish in order. My favorite albums are usually experimental, unique, start to finish in order. My favorite albums are usually experimental, unique,
or have a particular theme they explore or have a particular theme they explore
<figure-grid src="/music/albums.json"></figure-grid> <json-data src="/music/albums.json" show="grid"></json-data>

Binary file not shown.

14
src/server-info.md Normal file
View file

@ -0,0 +1,14 @@
# server info
## hardware
I host this website locally on an [Intel
NUC](https://www.intel.com/content/dam/support/us/en/documents/mini-pcs/NUC8i3BE_NUC8i5BE_NUC8i7BE_TechProdSpec.pdf).
It runs an i3-8109U 4 core 3.6 GHz processor, 32 GB of RAM, and 120 GB SSD
storage.
## software
Pages and resources are served using Apache. I write pages using a custom
subset of markup, which gets compiled to static HTML files using my [simple
build system](https://git.lgatlin.dev/logan/mdconvert). Deployments are handled
automatically using git hooks. I host my own [forgejo](https://forgejo.org/)
git instance on the same machine, which makes continuous integration simple and
fast

34
src/style-guide.md Normal file
View file

@ -0,0 +1,34 @@
# style guide
Having a consistent design language is very important to me. This document lays
out specific stylistic rules for pages on this site. Human error is always a
factor, and so these rules are more prescription than description
## headings
One heading should appear at the top of every page. Text should contain only
lowercase ascii alphabetic characters. It should represent the title of the
page, and match the URL tail (substituting spaces for hyphens, and sans
file extension)
## subheadings
Pages may have any number of subheadings under the top level heading. Text
should contain only lowercase ascii alphabetic characters. A subheading must
never be immediately followed by another subheading
## paragraphs
Paragraph text should be written in complete grammatically correct sentences,
and may use any non-emoji unicode characters. The last sentence in a paragraph
should not end in a period if the paragraph is followed by anything other than
another paragraph
## hyperlinks
Hyperlinks may appear inline in any text other than headings and subheadings.
The hyperlink text should be descriptive of the page it is linking to, and
never the same as the link itself (e.g. [logan's site](/) not
[https://lgatlin.dev/](/)). Internal links should have the same text as the
page title they link to. Hyperlinks should be used liberally, and regularly
audited for dead or redirected targets
## lists
List items should begin with a title that is all lowercase, optionally followed
by a hyphen ('-') and a subtitle or attribution. The subtitle or attribution
should start with a capital letter and contain no punctuation
## collage
A collage consists of a set of images, optionally with a title and subtitle
below each image. Collages should not be on a fixed grid, and should rearrange
themselves to best fit the screen dimensions. Image titles may contain
hyperlinks, but images may never be hyperlinks themselves