done
This commit is contained in:
parent
0314b6a427
commit
16128c6279
53 changed files with 713 additions and 75 deletions
Binary file not shown.
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-black.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-black.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-bold.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-bold.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-light.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-light.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-medium.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-medium.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-regular.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-regular.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-semibold.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-semibold.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-thin.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-thin.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-ultrabold.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-ultrabold.woff2
Normal file
Binary file not shown.
BIN
assets/fonts/ftaurebesh/ftaurebesh-ultralight.woff2
Normal file
BIN
assets/fonts/ftaurebesh/ftaurebesh-ultralight.woff2
Normal file
Binary file not shown.
|
@ -3,14 +3,14 @@
|
|||
font-style: normal;
|
||||
font-weight: 500;
|
||||
font-display: block;
|
||||
src: url("FTAurebesh-Medium.woff2") format("woff2");
|
||||
size-adjust: 150%;
|
||||
src: url("ftaurebesh-medium.woff2") format("woff2");
|
||||
size-adjust: 125%;
|
||||
}
|
||||
@font-face {
|
||||
font-family: FTAurebesh;
|
||||
font-style: normal;
|
||||
font-weight: 700;
|
||||
font-display: block;
|
||||
src: url("FTAurebesh-Bold.woff2") format("woff2");
|
||||
size-adjust: 150%;
|
||||
src: url("ftaurebesh-bold.woff2") format("woff2");
|
||||
size-adjust: 125%;
|
||||
}
|
||||
|
|
271
assets/site.css
271
assets/site.css
|
@ -2,15 +2,18 @@
|
|||
@import url(fonts/ftaurebesh/ftaurebesh.css);
|
||||
|
||||
:root {
|
||||
--ecru: hsla(46, 56%, 65%, 1);
|
||||
--wenge: hsla(288, 6%, 33%, 1);
|
||||
--cordovan: hsla(354, 30%, 44%, 1);
|
||||
--isabelline: hsla(40, 26%, 93%, 1);
|
||||
--c-highlight: hsla(0, 0%, 100%, 87.5%);
|
||||
--c-dark: hsl(217, 17%, 21%);
|
||||
--c-accent: hsl(14, 62%, 53%);
|
||||
--c-light: hsl(217, 17%, 85%);
|
||||
|
||||
--c-text-light: var(--c-highlight);
|
||||
--c-text-dark: var(--c-dark);
|
||||
|
||||
box-sizing: border-box;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
height: 100%;
|
||||
min-height: 100%;
|
||||
flex-grow: 1;
|
||||
padding: 0;
|
||||
font-size: 16px;
|
||||
|
@ -28,43 +31,154 @@
|
|||
--s3: calc(var(--s2) * var(--ratio));
|
||||
--s4: calc(var(--s3) * var(--ratio));
|
||||
--s5: calc(var(--s4) * var(--ratio));
|
||||
--content-width: clamp(87.5vw, 30rem, 100vw - 1rem);
|
||||
--content-width: clamp(75vw, 40rem, 100vw - 3rem);
|
||||
--inset: calc(50vw - var(--content-width) / 2);
|
||||
}
|
||||
|
||||
*, :after, :before {
|
||||
@media (prefers-color-scheme: dark) {
|
||||
:root {
|
||||
--c-highlight: hsl(217, 9%, 32%);
|
||||
--c-dark: hsl(217, 9%, 8%);
|
||||
--c-accent: hsl(14, 62%, 53%);
|
||||
--c-light: hsl(217, 9%, 16%);
|
||||
|
||||
--c-text-light: hsla(0, 0%, 100%, 75%);
|
||||
--c-text-dark: hsla(0, 0%, 100%, 75%);
|
||||
}
|
||||
}
|
||||
|
||||
::selection {
|
||||
background: var(--c-accent);
|
||||
color: var(--c-text-light);
|
||||
}
|
||||
|
||||
*,
|
||||
:after,
|
||||
:before {
|
||||
box-sizing: inherit;
|
||||
font-family: inherit;
|
||||
text-decoration-color: color-mix(in srgb, currentColor 50%, transparent);
|
||||
text-decoration-thickness: 0.1rem;
|
||||
transition: color ease 0.1s;
|
||||
}
|
||||
|
||||
body {
|
||||
position: relative;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
z-index: 1;
|
||||
flex-grow: 1;
|
||||
padding: 0;
|
||||
margin: 0;
|
||||
font-family: Inter, sans-serif;
|
||||
background-color: var(--isabelline);
|
||||
color: var(--wenge);
|
||||
border: 0.5rem solid var(--cordovan);
|
||||
background-color: var(--c-light);
|
||||
color: var(--c-text-dark);
|
||||
}
|
||||
|
||||
@media screen {
|
||||
body {
|
||||
border: 0.5rem solid var(--c-accent);
|
||||
&::before {
|
||||
content: "";
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
pointer-events: none;
|
||||
inset: -0.5rem;
|
||||
bottom: calc(1px - 0.5rem);
|
||||
border-radius: 1.3rem 1.3rem 1rem 1rem;
|
||||
border: 0.5rem solid var(--c-accent);
|
||||
}
|
||||
}
|
||||
body > footer {
|
||||
position: relative;
|
||||
z-index: 1;
|
||||
background-color: var(--c-accent);
|
||||
color: var(--c-text-light);
|
||||
padding: 0 1ch 0;
|
||||
border-radius: 0.5rem 0.5rem 0 0;
|
||||
}
|
||||
body > footer::before {
|
||||
content: "";
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
height: calc(1rem - 1px);
|
||||
width: 1rem;
|
||||
margin: 0 0 -0.5rem -0.5rem;
|
||||
border-bottom-left-radius: 1rem;
|
||||
bottom: 1px;
|
||||
border: 0.5rem solid var(--c-accent);
|
||||
left: 100%;
|
||||
border-width: 0 0 0.5rem 0.5rem;
|
||||
}
|
||||
body > footer::after {
|
||||
content: "";
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
height: calc(1rem - 1px);
|
||||
width: 1rem;
|
||||
margin: 0 -0.5rem -0.5rem 0;
|
||||
border-bottom-right-radius: 1rem;
|
||||
bottom: 1px;
|
||||
border: 0.5rem solid var(--c-accent);
|
||||
right: 100%;
|
||||
border-width: 0 0.5rem 0.5rem 0;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
a {
|
||||
color: inherit;
|
||||
}
|
||||
a:link {
|
||||
text-decoration: underline;
|
||||
a[href] {
|
||||
text-decoration-line: underline;
|
||||
}
|
||||
a[href]:hover,
|
||||
a[href]:focus-visible,
|
||||
label:hover,
|
||||
label:focus-visible {
|
||||
text-decoration-color: var(--c-accent);
|
||||
}
|
||||
|
||||
section {
|
||||
margin-top: 1rem;
|
||||
}
|
||||
|
||||
.footnote-item:target, .footnote-ref :target {
|
||||
animation: ping 1s ease-out;
|
||||
&, a {
|
||||
text-decoration-color: var(--c-accent);
|
||||
};
|
||||
}
|
||||
|
||||
@keyframes ping {
|
||||
0% {
|
||||
border-radius: 50%;
|
||||
background-color: var(--c-accent);
|
||||
box-shadow: var(--c-accent) 0 0 1rem 4rem;
|
||||
}
|
||||
100% {
|
||||
border-radius: 50%;
|
||||
background-color: transparent;
|
||||
box-shadow: transparent 0 0 0rem 0rem;
|
||||
}
|
||||
100% {
|
||||
border-radius: initial;
|
||||
}
|
||||
}
|
||||
|
||||
li::marker {
|
||||
color: color-mix(in lch, currentcolor 50%, transparent)
|
||||
color: color-mix(in srgb, currentcolor 50%, transparent);
|
||||
}
|
||||
li > aside {
|
||||
aside {
|
||||
display: inline-block;
|
||||
margin-left: 1ch;
|
||||
font-size: var(--s-1);
|
||||
}
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
padding-left: 0;
|
||||
ul, ol {
|
||||
ul,
|
||||
ol {
|
||||
padding-left: 2em;
|
||||
}
|
||||
}
|
||||
|
@ -75,13 +189,21 @@ p {
|
|||
}
|
||||
}
|
||||
|
||||
sup {
|
||||
font-size: var(--s-1);
|
||||
margin-top: -0.2em;
|
||||
}
|
||||
|
||||
body > header {
|
||||
background-color: var(--wenge);
|
||||
color: var(--isabelline);
|
||||
padding: 0 var(--inset);
|
||||
background-color: var(--c-dark);
|
||||
color: var(--c-text-light);
|
||||
padding: 0 var(--inset) 0.5rem;
|
||||
border-radius: 0.5rem 0.5rem 0 0;
|
||||
margin-bottom: 0.5rem;
|
||||
nav {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
align-items: baseline;
|
||||
flex-wrap: wrap;
|
||||
padding-top: 0.5rem;
|
||||
gap: 1ch;
|
||||
|
@ -91,35 +213,112 @@ body > header {
|
|||
}
|
||||
}
|
||||
}
|
||||
@media print {
|
||||
:root {
|
||||
--c-highlight: white
|
||||
--c-dark: white;
|
||||
--c-accent: black;
|
||||
--c-light: white;
|
||||
|
||||
--c-text-light: black;
|
||||
--c-text-dark: black;
|
||||
font-size: 12pt;
|
||||
}
|
||||
body > header > nav {
|
||||
display: none;
|
||||
}
|
||||
a[href^='http']::after {
|
||||
content: ' (' attr(href) ')';
|
||||
}
|
||||
}
|
||||
|
||||
body > footer {
|
||||
text-align: center;
|
||||
font-size: var(--s-1);
|
||||
margin: auto var(--inset) 0 auto;
|
||||
}
|
||||
|
||||
.header-meta {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
font-size: var(--s-1);
|
||||
> * + *::before {
|
||||
content: "-";
|
||||
padding: 0 0.5ch;
|
||||
}
|
||||
}
|
||||
|
||||
.nav-categories {
|
||||
display: flex;
|
||||
flex-direction: row;
|
||||
flex-wrap: wrap;
|
||||
gap: 1ch;
|
||||
}
|
||||
|
||||
label {
|
||||
cursor: pointer;
|
||||
text-decoration: underline;
|
||||
> input[type='radio'] {
|
||||
text-decoration-line: underline;
|
||||
> input[type="radio"] {
|
||||
visibility: hidden;
|
||||
position: fixed;
|
||||
bottom: 110%;
|
||||
}
|
||||
}
|
||||
label:has(input[type='radio']:checked) {
|
||||
color: var(--ecru);
|
||||
.nav-language-button {
|
||||
margin-left: 0.5ch;
|
||||
position: relative;
|
||||
z-index: 0;
|
||||
&:has(input[type="radio"]:checked) {
|
||||
padding-inline: 0.25rem;
|
||||
color: var(--c-text-dark);
|
||||
&::before {
|
||||
content: "";
|
||||
z-index: -1;
|
||||
position: absolute;
|
||||
top: -0.25rem;
|
||||
right: 0;
|
||||
bottom: -0.25rem;
|
||||
left: 0;
|
||||
border-radius: 0.25rem;
|
||||
background-color: var(--c-highlight);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
[data-font=aurebesh] {
|
||||
[data-font="aurebesh"] {
|
||||
font-family: FTAurebesh;
|
||||
line-height: 1.25;
|
||||
ul > li {
|
||||
list-style-type: square;
|
||||
}
|
||||
}
|
||||
[data-font=english] {
|
||||
[data-font="english"] {
|
||||
font-family: Inter;
|
||||
}
|
||||
|
||||
h1,h2,h3,h4 {
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
font-weight: 700;
|
||||
margin: 1rem calc(-0.5rem - var(--inset)) 0;
|
||||
padding: 0 calc(0.5rem + var(--inset));
|
||||
&:hover .header-anchor {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
main {
|
||||
h1,h2,h3,h4 {
|
||||
background-image: linear-gradient(50deg, var(--ecru) 0%, var(--ecru) calc(var(--inset) * 0.25), transparent calc(var(--inset) + 12rem))
|
||||
h1,
|
||||
h2,
|
||||
h3,
|
||||
h4 {
|
||||
background-image: linear-gradient(
|
||||
50deg,
|
||||
var(--c-highlight) 0%,
|
||||
var(--c-highlight) calc(var(--inset) * 0.25),
|
||||
transparent calc(var(--inset) + 12rem)
|
||||
);
|
||||
}
|
||||
padding: 0 var(--inset);
|
||||
}
|
||||
|
@ -130,5 +329,19 @@ h2 {
|
|||
font-size: var(--s2);
|
||||
}
|
||||
h3 {
|
||||
font-size: var(--s3);
|
||||
font-size: var(--s1);
|
||||
}
|
||||
.header-anchor {
|
||||
position: absolute;
|
||||
transform: translateX(-100%);
|
||||
margin-left: -0.2ch;
|
||||
opacity: 0;
|
||||
transition: opacity ease-in 0.1s;
|
||||
&::before {
|
||||
content: "#";
|
||||
}
|
||||
}
|
||||
|
||||
.item-summary {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
|
|
|
@ -1,9 +1,27 @@
|
|||
const fs = require("fs");
|
||||
const path = require("path");
|
||||
const md = require("markdown-it");
|
||||
const mdAnchor = require("markdown-it-anchor");
|
||||
const mdFootnote = require("markdown-it-footnote");
|
||||
const prettier = require("prettier");
|
||||
|
||||
module.exports = (config) => {
|
||||
const slugify = config.getFilter("slugify");
|
||||
const url = config.getFilter("url");
|
||||
const mdLib = md({
|
||||
html: true,
|
||||
breaks: true,
|
||||
linkify: true,
|
||||
typographer: true,
|
||||
})
|
||||
.use(mdAnchor, {
|
||||
permalink: mdAnchor.permalink.ariaHidden({
|
||||
placement: "before",
|
||||
symbol: "",
|
||||
}),
|
||||
})
|
||||
.use(mdFootnote)
|
||||
config.setLibrary("md", mdLib);
|
||||
config.addPassthroughCopy("assets");
|
||||
|
||||
// collection from music folder
|
||||
|
@ -22,7 +40,7 @@ module.exports = (config) => {
|
|||
return {
|
||||
data: {
|
||||
title: base,
|
||||
tags: ['music'],
|
||||
tags: ["music"],
|
||||
},
|
||||
url: url(absUrl),
|
||||
};
|
||||
|
@ -30,6 +48,23 @@ module.exports = (config) => {
|
|||
return musicFiles;
|
||||
});
|
||||
|
||||
config.addTransform("prettier", (content, outputPath) => {
|
||||
if (typeof outputPath !== 'string') {
|
||||
return content
|
||||
}
|
||||
const extname = path.extname(outputPath);
|
||||
switch (extname) {
|
||||
case ".html":
|
||||
case ".css":
|
||||
case ".json":
|
||||
// Strip leading period from extension and use as the Prettier parser.
|
||||
const parser = extname.replace(/^./, "");
|
||||
return prettier.format(content, { parser });
|
||||
default:
|
||||
return content;
|
||||
}
|
||||
})
|
||||
|
||||
return {
|
||||
dir: {
|
||||
input: "site",
|
||||
|
|
|
@ -10,6 +10,9 @@
|
|||
"author": "Joshua Seigler",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"@11ty/eleventy": "^2.0.1"
|
||||
"@11ty/eleventy": "^2.0.1",
|
||||
"markdown-it-anchor": "^9.0.1",
|
||||
"markdown-it-footnote": "^4.0.0",
|
||||
"prettier": "^3.3.1"
|
||||
}
|
||||
}
|
||||
|
|
50
pnpm-lock.yaml
generated
50
pnpm-lock.yaml
generated
|
@ -11,6 +11,15 @@ importers:
|
|||
'@11ty/eleventy':
|
||||
specifier: ^2.0.1
|
||||
version: 2.0.1
|
||||
markdown-it-anchor:
|
||||
specifier: ^9.0.1
|
||||
version: 9.0.1(@types/markdown-it@14.1.1)(markdown-it@13.0.2)
|
||||
markdown-it-footnote:
|
||||
specifier: ^4.0.0
|
||||
version: 4.0.0
|
||||
prettier:
|
||||
specifier: ^3.3.1
|
||||
version: 3.3.1
|
||||
|
||||
packages:
|
||||
|
||||
|
@ -75,6 +84,15 @@ packages:
|
|||
resolution: {integrity: sha512-5/kmIOY9FF32nicXH+5yLNTX4NJ4atl7jRgqAJuIn/iyDFXBktOKDxCvyGE/EzmF4ngSUvjXxQUQlQiZ5lfw+w==}
|
||||
engines: {node: '>=10'}
|
||||
|
||||
'@types/linkify-it@5.0.0':
|
||||
resolution: {integrity: sha512-sVDA58zAw4eWAffKOaQH5/5j3XeayukzDk+ewSsnv3p4yJEZHCCzMDiZM8e0OUrRvmpGZ85jf4yDHkHsgBNr9Q==}
|
||||
|
||||
'@types/markdown-it@14.1.1':
|
||||
resolution: {integrity: sha512-4NpsnpYl2Gt1ljyBGrKMxFYAYvpqbnnkgP/i/g+NLpjEUa3obn1XJCur9YbEXKDAkaXqsR1LbDnGEJ0MmKFxfg==}
|
||||
|
||||
'@types/mdurl@2.0.0':
|
||||
resolution: {integrity: sha512-RGdgjQUZba5p6QEFAVx2OGb8rQDL/cPRG7GiedRzMcJ1tYnUANBncjbSB1NRGwbvjcPeikRABz2nshyPk1bhWg==}
|
||||
|
||||
'@types/minimatch@3.0.5':
|
||||
resolution: {integrity: sha512-Klz949h02Gz2uZCMGwDUSDS1YBlTdDDgbWHi+81l29tQALUtvz4rAYi5uoVhE5Lagoq6DeqAUlbrHvW/mXDgdQ==}
|
||||
|
||||
|
@ -500,6 +518,15 @@ packages:
|
|||
resolution: {integrity: sha512-zobTr7akeGHnv7eBOXcRgMeCP6+uyYsczwmeRCauvpvaAltgNyTbLH/+VaEAPUeWBT+1GuNmz4wC/6jtQzbbVA==}
|
||||
engines: {node: '>=12'}
|
||||
|
||||
markdown-it-anchor@9.0.1:
|
||||
resolution: {integrity: sha512-cBt7aAzmkfX8X7FqAe8EBryiKmToXgMQEEMqkXzWCm0toDtfDYIGboKeTKd8cpNJArJtutrf+977wFJTsvNGmQ==}
|
||||
peerDependencies:
|
||||
'@types/markdown-it': '*'
|
||||
markdown-it: '*'
|
||||
|
||||
markdown-it-footnote@4.0.0:
|
||||
resolution: {integrity: sha512-WYJ7urf+khJYl3DqofQpYfEYkZKbmXmwxQV8c8mO/hGIhgZ1wOe7R4HLFNwqx7TjILbnC98fuyeSsin19JdFcQ==}
|
||||
|
||||
markdown-it@13.0.2:
|
||||
resolution: {integrity: sha512-FtwnEuuK+2yVU7goGn/MJ0WBZMM9ZPgU9spqlFs7/A/pDIUNSOQZhUgOqYCficIuR2QaFnrt8LHqBWsbTAoI5w==}
|
||||
hasBin: true
|
||||
|
@ -638,6 +665,11 @@ packages:
|
|||
resolution: {integrity: sha512-JcEmHlyLK/o0uGAlj65vgg+7LIms0xKXe60lcDOTU7oVX/3LuEuLwrQpW3VJ7de5TaFKiW4kWkaIpJL42FEgxQ==}
|
||||
engines: {node: '>=12.0.0'}
|
||||
|
||||
prettier@3.3.1:
|
||||
resolution: {integrity: sha512-7CAwy5dRsxs8PHXT3twixW9/OEll8MLE0VRPCJyl7CkS6VHGPSlsVaWTiASPTyGyYRyApxlaWTzwUxVNrhcwDg==}
|
||||
engines: {node: '>=14'}
|
||||
hasBin: true
|
||||
|
||||
promise-each@2.2.0:
|
||||
resolution: {integrity: sha512-67roqt1k3QDA41DZ8xi0V+rF3GoaMiX7QilbXu0vXimut+9RcKBNZ/t60xCRgcsihmNUsEjh48xLfNqOrKblUg==}
|
||||
|
||||
|
@ -936,6 +968,15 @@ snapshots:
|
|||
escape-string-regexp: 2.0.0
|
||||
lodash.deburr: 4.1.0
|
||||
|
||||
'@types/linkify-it@5.0.0': {}
|
||||
|
||||
'@types/markdown-it@14.1.1':
|
||||
dependencies:
|
||||
'@types/linkify-it': 5.0.0
|
||||
'@types/mdurl': 2.0.0
|
||||
|
||||
'@types/mdurl@2.0.0': {}
|
||||
|
||||
'@types/minimatch@3.0.5': {}
|
||||
|
||||
a-sync-waterfall@1.0.1: {}
|
||||
|
@ -1341,6 +1382,13 @@ snapshots:
|
|||
|
||||
luxon@3.4.4: {}
|
||||
|
||||
markdown-it-anchor@9.0.1(@types/markdown-it@14.1.1)(markdown-it@13.0.2):
|
||||
dependencies:
|
||||
'@types/markdown-it': 14.1.1
|
||||
markdown-it: 13.0.2
|
||||
|
||||
markdown-it-footnote@4.0.0: {}
|
||||
|
||||
markdown-it@13.0.2:
|
||||
dependencies:
|
||||
argparse: 2.0.1
|
||||
|
@ -1465,6 +1513,8 @@ snapshots:
|
|||
posthtml-parser: 0.11.0
|
||||
posthtml-render: 3.0.0
|
||||
|
||||
prettier@3.3.1: {}
|
||||
|
||||
promise-each@2.2.0:
|
||||
dependencies:
|
||||
any-promise: 0.1.0
|
||||
|
|
3
site/_includes/-footer.njk
Normal file
3
site/_includes/-footer.njk
Normal file
|
@ -0,0 +1,3 @@
|
|||
<footer>
|
||||
© Joshua Seigler 2024 - present
|
||||
</footer>
|
|
@ -1,17 +1,15 @@
|
|||
<header>
|
||||
<nav>
|
||||
<div>
|
||||
<div class="nav-categories">
|
||||
<a href="{{ "/" | url }}">joshua.seigler.net</a>
|
||||
{% for name, collection in collections %}
|
||||
{% if name !== "all" %}
|
||||
<a href="{{ ["/", name ,"/"] | join("") | url }}">/{{name | capitalize }}</a>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
<a href="{{ "/posts" | url }}">/posts</a>
|
||||
<a href="{{ "/timeline" | url }}">/timeline</a>
|
||||
<a href="{{ "/recipes" | url }}">/recipes</a>
|
||||
<a href="{{ "/music" | url }}">/music</a>
|
||||
</div>
|
||||
<aside>
|
||||
Language:
|
||||
<label data-font="english">English <input type="radio" name="language" value="english"/></label>
|
||||
<label data-font="aurebesh">Aurebesh <input type="radio" name="language" value="aurebesh"/></label>
|
||||
<label class="nav-language-button" data-font="english">English<input type="radio" name="language" value="english"/></label>
|
||||
<label class="nav-language-button" data-font="aurebesh">Aurebesh<input type="radio" name="language" value="aurebesh"/></label>
|
||||
<script type="text/javascript">
|
||||
const initialLanguage = localStorage.getItem("language") ?? 'english'
|
||||
document.body.setAttribute('data-font', initialLanguage);
|
||||
|
@ -29,4 +27,12 @@
|
|||
</aside>
|
||||
</nav>
|
||||
<h1>{{ tag | capitalize if tag else title }}</h1>
|
||||
<div class="header-meta">
|
||||
{%-if author -%}
|
||||
<author>{{ author }}</author>
|
||||
{%- endif -%}
|
||||
{%- if dateString -%}
|
||||
<date>{{ dateString }}</date>
|
||||
{%- endif -%}
|
||||
</div>
|
||||
</header>
|
||||
|
|
|
@ -10,10 +10,11 @@ title: Joshua's Homepage
|
|||
<link rel="stylesheet" href="{{ "/assets/site.css" | url }}"/>
|
||||
<title>{{ tag | capitalize if tag else title }} - joshua.seigler.net</title>
|
||||
</head>
|
||||
<body data-font="english">
|
||||
<body data-font="english" data-path="{{page.url}}">
|
||||
{% include "-header.njk" %}
|
||||
<main>
|
||||
{{ content | safe }}
|
||||
</main>
|
||||
{% include "-footer.njk" %}
|
||||
</body>
|
||||
</html>
|
||||
|
|
18
site/_includes/collection.njk
Normal file
18
site/_includes/collection.njk
Normal file
|
@ -0,0 +1,18 @@
|
|||
---
|
||||
layout: "base.njk"
|
||||
eleventyComputed:
|
||||
title: "{{ page.fileSlug | capitalize }}"
|
||||
---
|
||||
{{ content | safe }}
|
||||
{% set tag = page.fileSlug %}
|
||||
{% if collections[tag] %}
|
||||
<section>
|
||||
{% for item in collections[tag] | reverse %}
|
||||
<article class="item-summary">
|
||||
<a href="{{ item.url }}">{{ item.data.title }}</a>
|
||||
{% if item.data.dateString %}<aside>{{item.data.dateString}}</aside>{% endif %}
|
||||
<p class="item-summary-description">{{ item.data.description }}</p>
|
||||
</article>
|
||||
{% endfor %}
|
||||
</section>
|
||||
{% endif %}
|
|
@ -1,4 +1,4 @@
|
|||
---
|
||||
layout: base.njk
|
||||
---
|
||||
{{ content | safe }}
|
||||
{{ content | safe }}
|
|
@ -1,13 +0,0 @@
|
|||
---
|
||||
layout: "base.njk"
|
||||
pagination:
|
||||
data: collections
|
||||
size: 1
|
||||
alias: tag
|
||||
filter:
|
||||
- all
|
||||
permalink: /{{ tag | slugify }}/
|
||||
---
|
||||
{% for item in collections[ tag ] | reverse %}
|
||||
- [{{ item.data.title }}]({{ item.url }}){% if item.data.dateString %}<aside>{{item.data.dateString}}</aside>{% endif %}
|
||||
{% endfor %}
|
|
@ -3,18 +3,23 @@ layout: base
|
|||
title: Home
|
||||
---
|
||||
|
||||
{% for name, collection in collections %}
|
||||
{% if name !== "all" %}
|
||||
<p>I'm Joshua Seigler, a homeschooled kid born in the 80s. I've watched technology advance from dial-up and Geocities pages, to federated social media and decentralized autonomous organizations.</p>
|
||||
<p>After a period exploring cryptocurrencies and building web development skills, I dove into political philosophy, focusing on economics, conspiracy, and truth-seeking generally.</p>
|
||||
<p>In an effort to make sense of the tremendous social shifts that occurred in 2019/2020, I started learning about symbolism and mysticism, trying to escape an obsolete materialistic mindset. In 2021 I returned to faith in Jesus and joined an Eastern Orthodox church.</p>
|
||||
<p>If you would like to reach me, you can <a href="mailto:joshua@seigler.net?subject=found+your+website">send me electronic mail</a>. Or for a closer look at my professional history, try my <a href="/timeline">timeline</a>.<p>
|
||||
|
||||
{%- for name, collection in collections -%}
|
||||
{%- if name not in ["all", "timeline", "pages"] -%}
|
||||
<h2>{{name | capitalize }}</h2>
|
||||
<ul>
|
||||
{% for item in collection %}
|
||||
{%- for item in collection | reverse -%}
|
||||
<li>
|
||||
<a href="{{item.url}}">{{item.data.title}}</a>
|
||||
{% if item.data.dateString %}
|
||||
{%- if item.data.dateString -%}
|
||||
<aside>{{item.data.dateString}}</aside>
|
||||
{% endif %}
|
||||
{%- endif -%}
|
||||
</li>
|
||||
{% endfor %}
|
||||
{%- endfor -%}
|
||||
</ul>
|
||||
{% endif %}
|
||||
{% endfor %}
|
||||
{%- endif -%}
|
||||
{%- endfor -%}
|
||||
|
|
1
site/pages/music.md
Normal file
1
site/pages/music.md
Normal file
|
@ -0,0 +1 @@
|
|||
These are songs chanted during certain Orthodox services. I created them with MuseScore from multiple sources, scanned or sung.
|
5
site/pages/pages.json
Normal file
5
site/pages/pages.json
Normal file
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"layout": "collection.njk",
|
||||
"tags": ["pages"],
|
||||
"permalink": "/{{ page.fileSlug }}/"
|
||||
}
|
3
site/pages/posts.md
Normal file
3
site/pages/posts.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
permalink: false
|
||||
---
|
1
site/pages/recipes.md
Normal file
1
site/pages/recipes.md
Normal file
|
@ -0,0 +1 @@
|
|||
These are my best recipes, the ones people ask for at potlucks:
|
3
site/pages/timeline.md
Normal file
3
site/pages/timeline.md
Normal file
|
@ -0,0 +1,3 @@
|
|||
---
|
||||
permalink: false
|
||||
---
|
82
site/posts/2020-07-02--authority-consents-blind-spot.md
Normal file
82
site/posts/2020-07-02--authority-consents-blind-spot.md
Normal file
|
@ -0,0 +1,82 @@
|
|||
---
|
||||
title: Authority - Consent's Blind Spot
|
||||
description: Authority is the idea that certain people are justified in violating consent. This belief allows people to force others to do what they want with a clear conscience.
|
||||
---
|
||||
|
||||
Consent occurs when an individual voluntarily agrees to the proposal or desires of another. It comes from the concept that who should decide what happens to your person, is you.
|
||||
|
||||
There are two ways people interact: with consent, and without it. Some people care a lot about consent, but overall, most take whichever route is easiest, or more convenient.
|
||||
|
||||
People respect consent in most of their face-to-face dealings with others. Violating someone’s consent in person is usually met with resistance, possibly very strong resistance with a long-lasting impact. But there are covert ways to violate consent, so that the target must not notice the violation---or if they do notice, they must be unable to determine who is to blame.
|
||||
|
||||
Pretty much everyone has had circumstances where they did something because another person, or group of people, compelled their compliance. Classic examples include paying taxes, being drafted, and avoiding certain activities, beliefs, or substances.
|
||||
|
||||
Here are some popular excuses for violating consent that you may have seen:
|
||||
|
||||
> I am actually helping you.
|
||||
|
||||
> You like some of the things I do, so you must accept this as well.
|
||||
|
||||
> Everyone else lets me do this.
|
||||
|
||||
> Everyone else said it was okay if I do this.
|
||||
|
||||
> I am doing this, but someone else is responsible for my actions.
|
||||
|
||||
> You agreed to this by being born here.
|
||||
|
||||
> I am allowed to do this.
|
||||
|
||||
That last one combines all the others into one argument, called authority. This is the idea that certain people are justified in violating consent. Usually there is a vaguely religious ceremony associated with the granting of authority---something like a holy document, large gatherings of people, formal outfits, or important sounding titles.
|
||||
|
||||
Sometimes consensual relationships are described as involving authority, such as a boss at work having "authority" over an employee---but the difference is clear: if the boss says to do something but the employee no longer consents, they could exit that relationship.
|
||||
Sometimes people refer to an expert as an "authority" on a certain matter, but this definition is also not of use here. I refer to authority here as the ability to act upon another's person, without regard for consent.
|
||||
|
||||
One problem with authority is that all the people on earth are humans. There's nobody better than humans who would obviously deserve special treatment, nor is there some obviously superior category of human, so people expect some excuse for how an ordinary person obtains authority.
|
||||
|
||||
In certain belief systems, the excuse was "God chose me and made me worthy." Contemporarily, the claim is based on "the will of the people". Whoever wins a special regional popularity competition is considered to have authority over everyone in that region, even people who disagree.
|
||||
|
||||
You would think acting on someone in a way they don’t allow is difficult, but people are impressed by ceremonies of authority, and they are confused by the way everyone involved claims that their actions are someone else’s responsibility. Even if people manage to see through the tricks they are usually still afraid to resist authority out of a belief that nobody will help them. So almost everyone obeys.
|
||||
|
||||
## Solutions
|
||||
|
||||
Once you have seen through this trick, what can you do?
|
||||
|
||||
### Look for ways to sidestep authority altogether.
|
||||
|
||||
Since very few people accept _absolute_ authority, there are all kinds of limitations to its scope. If you can find ways to move your activities to areas of life that are not "covered" by authority, you will be able to ignore it more.
|
||||
|
||||
- [How to Opt Out of the Technocratic State (PDF)](https://theconsciousresistance.com/wp-content/uploads/2020/01/How_to_Opt_Out_of_the_Technocratic_State.pdf) by Derrick Broze
|
||||
- [An Agorist Primer (PDF)](http://www.kopubco.com/pdf/An_Agorist_Primer_by_SEK3.pdf) by Samuel Edward Konkin III
|
||||
- [The Seasteading Institute](https://www.seasteading.org/)
|
||||
|
||||
### Teach other people how to see these tricks more clearly.
|
||||
|
||||
Relatively few people claim to have authority. If even a moderate fraction of people resist authoritarian demands, it becomes impossible to compel them all by force.
|
||||
|
||||
- [Playlist: Thomasz Kaye Animations](https://www.youtube.com/playlist?list=PL4jzSARXHuuwhBfzGNYhSVE4gJ8zmRnTH)
|
||||
- [Foundation for Economic Education](https://fee.org/stories)
|
||||
|
||||
### Promote alternatives that respect consent.
|
||||
|
||||
For every authority-based solution to a problem, there is a more effective consensual solution, and usually the consensual way of doing things is already being used somewhere, and has lower costs and better outcomes.
|
||||
|
||||
- [The Machinery of Freedom (PDF)](http://daviddfriedman.com/The_Machinery_of_Freedom_.pdf) [(Ebook)](http://daviddfriedman.com/The_Machinery_of_Freedom.prc) [(Video)](https://www.youtube.com/watch?v=jTYkdEU_B4o) by David D Friedman
|
||||
|
||||
### Use the ceremonies of authority against itself.
|
||||
|
||||
If someone with authority asks your opinion on some topic, steer them away from choices that violate consent. It may even be appropriate to support people who seek positions of authority if you believe they will prevent it from being used, but don't be surprised if their encounter with power changes their values.
|
||||
|
||||
- [Libertarian Party](https://lp.org/)
|
||||
|
||||
### Surround yourself with people who care about consent.
|
||||
|
||||
If you know the people around you care about consent, then when someone claiming authority makes demands of the community, it will be much safer to ignore the demands since you would not be alone.
|
||||
|
||||
- [Free State Project](https://www.fsp.org/)
|
||||
|
||||
## Additional Resources
|
||||
|
||||
- [The Problem of Political Authority (Chapter 1)](https://spot.colorado.edu/~huemer/1.htm) [(Amazon)](https://amzn.to/2AyQxw0) by Michael Huemer
|
||||
- [The Most Dangerous Superstitition (PDF)](https://ia601208.us.archive.org/27/items/236222899TheMostDangerousSuperstitionLarkenRose2011/the-most-dangerous-superstition-larken-rose-20111.pdf) by Larken Rose
|
||||
- [The Law](http://bastiat.org/en/the_law.html) by Frédéric Bastiat
|
25
site/posts/2021-04-03--trivium.md
Normal file
25
site/posts/2021-04-03--trivium.md
Normal file
|
@ -0,0 +1,25 @@
|
|||
---
|
||||
title: 'The Trivium: A Tool for Learning Anything'
|
||||
description: An ancient methodology for learning, which formed the basis of classical education in the Middle Ages and Rennaisance.
|
||||
---
|
||||
|
||||
Information today has become siloed. It's a common belief that little, if any, expertise from one field of knowledge transfers over to other fields. But there is a forgotten tool that anyone can use to confidently approach new subjects and problems: the _Trivium_.
|
||||
|
||||
The ancients considered the liberal arts to be composed of seven parts. First was a foundation called the _trivium_, composed of grammar, logic, and rhetoric. Following that was the _quadrivium_, which was arithmetic, geometry, music, and astronomy (numbers, numbers in space, numbers in time, numbers in time and space). The trivium (literally, "three ways"), is a framework for learning.
|
||||
|
||||
## Grammar
|
||||
Grammar is about gaining knowledge: collecting information, without judgment or analysis. It answers the questions "Who, what, where, and when?" This is possibly the most important step, since (depending on what you study) essential information may not be readily available.
|
||||
|
||||
## Logic
|
||||
Logic is about gaining understanding. It answers "why?" This is the foundation for relating to the world. It has three components: filtration, correlation, and analysis. It places the information gathered into context, and eliminates inconsistency and resolves conflicting perspectives.
|
||||
|
||||
## Rhetoric
|
||||
Rhetoric is about acting wisely: the application of knowledge and understanding, put into correct action. It answers "how?"
|
||||
|
||||
Methodically applying this method provides a clear next step when encountering any unfamiliar topic. This is a powerful tool for methodically determining the best way to achieve your goals.
|
||||
|
||||
## Resources
|
||||
|
||||
- [Trivium Binder Project](https://triviumbinder.blogspot.com/)
|
||||
- [Tragedy and Hope: Five page summary of the Trivium](http://www.scribd.com/doc/59477946/Trivium-Method-of-Critical-Thinking-and-Creative-Problem-Solving)
|
||||
- [Shadows of the trivium in narrow disciplines](https://www.scribd.com/document/33744483/Trivium-Method-of-Thinking-vs-Other-Methodologies)
|
60
site/posts/2021-05-26--needs-based-communication.md
Normal file
60
site/posts/2021-05-26--needs-based-communication.md
Normal file
|
@ -0,0 +1,60 @@
|
|||
---
|
||||
title: Needs-based communication
|
||||
description: How to connect with others through shared human needs
|
||||
---
|
||||
|
||||
Needs-based communication (usually called non-violent communication or NVC™) is a way of understanding yourself and others with a unique insight: everyone has their own personal reactions to the world, but people have the same basic needs. We recognize those needs in other people, and that common connection can allow us to communicate clearly when there is conflict.
|
||||
|
||||
**Needs** are universal to humanity. They are common drives that we all experience, and this universality makes them perfect for connecting with each other. Some broad categories of needs are the needs for: connection, physical well-being, honesty, play, peace, autonomy, and meaning. Needs can also be specific: a need for clarity, nurturing, integrity, trust, space, etc. Needs are abstract, not connected to people or actions. For example, peace is a need, muting TV commercials is not. Here is [a partial list of needs](https://www.cnvc.org/training/resource/needs-inventory) from the Center for Non-Violent Communication (CNVC).
|
||||
|
||||
Everything _anyone_ does is an attempt to meet a need. None of these universal needs is wrong or inherently harmful, although sometimes the strategies we use can be.
|
||||
|
||||
**Conflict** happens when our needs aren't met. We get stuck in conflict when we mix up needs and strategies. Needs never conflict with each other, only strategies do.
|
||||
|
||||
When we experience conflict or negative feelings, that indicates that there is an unmet need. In an attempt to end a conflict, we often settle on unsatisfying resolutions:
|
||||
|
||||
1. We suppress the need and move on, painfully leaving the problem unaddressed.
|
||||
2. We come to an uneasy agreement about who is the winner and who is the loser, and the loser gives up on meeting their need. The immediate conflict is over, but the problem is not really resolved.
|
||||
3. We escalate, expanding the conflict in an attempt to win, at the other's expense if necessary.
|
||||
|
||||
These resolutions can happen despite our best intentions, as a result of not understanding what's happening as we fight. A very common mistake is to confuse needs and strategies.
|
||||
|
||||
**Strategies** are things we do to meet our needs. In contrast to needs, which are abstract and universal, strategies are personal, specific, and widely varied.
|
||||
|
||||
For example, consider the need for self-expression. There are as many strategies as there are people and situations: singing, writing, talking, composing, dressing a certain way... and on and on.
|
||||
|
||||
Jumping into a conflict strategy-first is bound to cause problems if that strategy doesn't meet others' needs as well as your own. The way past conflict is for everyone involved to understand each others' needs, and _then_ work together to find a strategy to meet those needs.
|
||||
|
||||
So, **how do you figure out your own needs?**
|
||||
|
||||
Negative feelings are a sign that you have an unmet need. Unfortunately, most of us have learned to bundle in certain judgments and name them as feelings. For example, I might think I am feeling _abandoned_, but really this is a feeling of disconnectedness, vulnerability, loneliness, or something else, combined with a judgment that someone else has made me feel that way.
|
||||
|
||||
The truth is that the same situation can affect people very differently. This means that feelings must come from a person's own response to things. In order to see your feelings clearly, it is important to take ownership of them as _your_ feelings rather than something caused by the world around you. I have found this to be very challenging, but also incredibly rewarding.
|
||||
|
||||
Once you have an honest name for what you are feeling, think about what need sparked the feeling.
|
||||
|
||||
There is a (kind of clunky) formula for requesting help meeting a need without tacking on strategies, demands, judgments, or other baggage. As the exercise becomes more habitual, you won't need the formula, and can accomplish the same thing more naturally.
|
||||
|
||||
Here it is:
|
||||
|
||||
> When _[observation]_, I felt _[feeling]_ because I was having a need for _[need]_. (possibly also a request:) Are you willing to _[action]_?
|
||||
|
||||
In the spirit of communicating without judgments, the observation should be strictly focused on facts, with no mind-reading or attribution at all. Sharing your feelings in addition to the need can help the other person recognize the need and how it affects you. If the other person understands the need, you can also make a request for some specific action to help meet your need.
|
||||
|
||||
It is very important that the action you request be feasible, concrete, and specific. Asking someone to change their behavior forever, think a certain way, etc is too much. The request should also really, truly be a request and not a demand. A "No!" should be as welcome as a "Yes!" because the goal is to find a strategy that meets your needs _and_ theirs.
|
||||
|
||||
There is a (similarly clunky) pattern for discovering someone else's needs. As you listen to them, you will probably get an idea for how they feel, and you may be able to guess what need they are experiencing. You can ask:
|
||||
|
||||
> When you _[observation]_ do you feel _[feeling]_ because you are having a need for _[need]_? (possibly also:) Right now, would you like me to _[action]_?
|
||||
|
||||
Like the other formula, this is just a beginning point, almost too rough to use except for training your responses and replacing old communication habits.
|
||||
|
||||
These are two sides of the same coin, a pattern that draws a line from the stimulus, some observation, through the needs, towards a solution. Even if you guess wrong, just focusing on someone's feelings and needs demonstrates that you are really interested in their problem.
|
||||
|
||||
Even without explicitly using this pattern (observation ➔ feeling ➔ need ➔ request), just by thinking about needs (your own and others') you can untangle conflict and see other people with much more empathy. Maybe that reckless driver is having a need for excitement and power, and zipping around you was the best strategy they could come up with. Just seeing past the image of others as enemies or obstacles can make the world much less hostile, by revealing them to be real humans, people you might be able to connect with. This way of thinking can also be a path to growth as you take ownership of your feelings and see your needs clearly.
|
||||
|
||||
Some resources for exploring these ideas more:
|
||||
|
||||
- [The Right Words and Beyond](http://www.therightword.info/)
|
||||
- **Nonviolent Communication: a language of life** by Marshall Rosenberg
|
||||
- [The Center for Nonviolent Communication](https://www.cnvc.org/)
|
22
site/posts/2021-10-16--embracing-mysticism.md
Normal file
22
site/posts/2021-10-16--embracing-mysticism.md
Normal file
|
@ -0,0 +1,22 @@
|
|||
---
|
||||
title: Embracing Mysticism
|
||||
description: Society is moving from a materialistic era into a mystical one. I describe my attempt to gain mystical proficiency.
|
||||
---
|
||||
|
||||
Logical arguments no longer work. This has been especially visible in the pandemic response in 2020. If you dug even a little below the surface of any mainstream narrative in the past two years, you likely found points of disagreement. But showing people scientific papers, charts, statistical analysis, or other types of evidence accomplishes nothing, or worse it invites accusations of being part of the Other Team, one of those backwards, wrong, stupid people.
|
||||
|
||||
In mid-2020 Vin Armani (now Cyprian) started calling this change "The Dim Age"[^1]. He suggested that most people still see the world as exclusively physical, oblivious to patterns of reality that are plainly obvious to more mystically aware people.
|
||||
|
||||
In an attempt to remedy my newfound illiteracy, I started exploring symbolism, which as I understood it dealt with identifying and understanding meaning. I found Jonathan Pageau's project [The Symbolic World](https://thesymbolicworld.com/), which has some very accessible videos breaking down movies and other pop culture artifacts from a symbolic perspective [^2]. These commentaries did not seem arbitrary or speculative, but pointed to cultural trends that I couldn't un-see once I understood them. I binged a bunch more of his material, including eventually a book his brother Mattheiu wrote, _The Language of Creation: Cosmic Symbolism in Genesis_[^3]. Through this I discovered a side of reality I had been almost completely oblivious to, and what's more, an aspect of my faith which had somehow completely passed me by.
|
||||
|
||||
From there I started listening to the [Lord of Spirits](https://www.ancientfaith.com/podcasts/lordofspirits) podcast. I learned that commonplace, obvious understanding of existence as material _and spiritual_ has been mostly lost, displaced by modern confidence that the material world is the limit of reality, over which sovereign mankind rules. The ancient faith of Christianity, known now as "Eastern Orthodoxy", corresponds with reality, especially spiritual patterns of reality as we see more plainly every week, better than anything else I know.
|
||||
|
||||
## Additional thoughts
|
||||
|
||||
For a while I think my highest values have been freedom and truth. A desire to be solely responsible for myself, and a desire to understand myself and the world fully and accurately. But I didn't realize that my chief obstacle is hardly megacorps and governments: I am ruled by my own out-of-control desires: for comfort, pleasure, control, satisfaction, even self-mastery. In a paradise where my every whim was manifested, I would still be a slave to desire, consuming and _wanting_ more and more.
|
||||
|
||||
Investigating eastern orthodoxy, this ancient Christianity, revealed a better path to freedom and truth: aiming higher. Every action and choice is in service to something. Instead of serving little tyrannical gods like comfort or pleasure, or potentially nobler gods like a country or even a "liberty movement", I will attempt to serve the Most High.
|
||||
|
||||
[^1]: [Free Man Beyond The Wall episode 478: We've Entered The 'Dim Age'](https://freemanbeyondthewall.libsyn.com/episode-478)
|
||||
[^2]: [Symbolism and Propaganda in Popular Culture](https://thesymbolicworld.com/videos/symbolism-propaganda-in-popular-culture/), [The Fall of Loki (Into the Multiverse)](https://thesymbolicworld.com/videos/the-fall-of-loki-into-the-multiverse/)
|
||||
[^3]: [Amazon](https://smile.amazon.com/Language-Creation-Symbolism-Genesis-Commentary/dp/1981549331), ISBN 978-1981549337
|
10
site/posts/2023-07-14--finally-a-coherent-worldview.md
Normal file
10
site/posts/2023-07-14--finally-a-coherent-worldview.md
Normal file
|
@ -0,0 +1,10 @@
|
|||
---
|
||||
title: Finally, a Coherent Worldview
|
||||
description: Why did I think I could figure everything out on my own?
|
||||
---
|
||||
|
||||
Around the time of my previous post, I had just been received into the Orthodox church. Since then I have found it to be everything I was looking for, and a great deal more. There is such a wealth of wisdom, going back thousands of years. And it was all there, un-seen, un-read, as far as I was concerned not existing at all! It seems impossible to me that I was so unaware of these treasures by chance.
|
||||
|
||||
Father Seraphim Rose, Saint Paisios, Saint Porphyrios, Elder Thaddeus of Vitovnica - to name only a few! - lived in this world, recently. They speak plainly and lovingly about modern and familiar concerns. Their example and guidance are a priceless treasure! And not only they help me, but participating in the tradition of the Orthodox Church has... I don't even know how to say it all. I have experienced how the prodigal son felt when he took a few trembling steps back to his father, and instead of the rejection or anger he had earned, he received joyful, unearned forgiveness. His father _ran_ to him while he was still far away!
|
||||
|
||||
Here is what I know, now from experience: Jesus Christ is life and truth and love. To look for life, or truth, or love apart from Him is pointless! It's a contradiction, like looking for light by marching into the shadows. God made me, and He loves me more than I love myself. Because this is true, I want to do everything His way, even if I don't understand it at first.
|
|
@ -1,5 +0,0 @@
|
|||
---
|
||||
title: First post
|
||||
---
|
||||
|
||||
It's my first post!
|
5
site/posts/2024-06-05--redesign.md
Normal file
5
site/posts/2024-06-05--redesign.md
Normal file
|
@ -0,0 +1,5 @@
|
|||
---
|
||||
title: Site design updated
|
||||
---
|
||||
|
||||
I remade the site with [11ty](https://www.11ty.dev/). I was looking for an updated style, and also the framework I used before now has a lot of unmaintained or outdated dependencies.
|
|
@ -6,5 +6,6 @@ module.exports = {
|
|||
tags: ["posts"],
|
||||
eleventyComputed: {
|
||||
dateString: ({ page }) => DateTime.fromJSDate(page.date, { zone: 'utc' }).toLocaleString(DateTime.DATE_FULL)
|
||||
}
|
||||
},
|
||||
author: "Joshua Seigler"
|
||||
};
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Corn Casserole
|
||||
description: An easy sweet cornbread casserole with a vegan variation
|
||||
---
|
||||
|
||||
## Ingredients
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
---
|
||||
title: Sloppy Joes
|
||||
description: A summertime favorite, great over hot dogs
|
||||
---
|
||||
## Ingredients
|
||||
|
||||
|
@ -10,7 +11,7 @@ title: Sloppy Joes
|
|||
- 1 Tablespoon chopped parsley
|
||||
- 1 Tablespoon Worcestershire sauce
|
||||
- v2 Tablespoons brown sugar
|
||||
- 2 Tablespoons vinegar
|
||||
- 2 Tablespoons apple cider vinegar
|
||||
- 1/2 cup chopped onion
|
||||
- 1/2 cup Ketchup
|
||||
- 1 cup water
|
||||
|
@ -22,4 +23,6 @@ title: Sloppy Joes
|
|||
1. Simmer 20 minutes or until thickened, stirring occasionally.
|
||||
1. Refrigerate overnight, serve hot.
|
||||
|
||||
Recipe originally from Connie Henderson, Charlottesville, VA
|
||||
## Notes
|
||||
If you don't have onion you can substitute 1/2 tablespoon onion powder.
|
||||
Recipe originally from Connie Henderson of Charlottesville, VA
|
||||
|
|
4
site/timeline/1983.md
Normal file
4
site/timeline/1983.md
Normal file
|
@ -0,0 +1,4 @@
|
|||
---
|
||||
title: Hello World
|
||||
time: 1983
|
||||
---
|
8
site/timeline/1985-1998.md
Normal file
8
site/timeline/1985-1998.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Homeschooled
|
||||
time: 1985-1998
|
||||
description: |
|
||||
Reading, field trips, spelling bees. Developing interest in math, art, and computers. As long as I stayed ahead of the baseline public school standards, I could explore whatever interested me. What a great beginning.
|
||||
|
||||
Big thanks to my parents for nurturing my appetite for learning. Thanks also to my brothers for teaching me patience and conflict resolution!
|
||||
---
|
6
site/timeline/1998.md
Normal file
6
site/timeline/1998.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: First community college course
|
||||
time: 1998
|
||||
description: |
|
||||
"Calculus with Analytic Geometry I". I showed my teacher a Newton's method root-finder program I made for my TI-83 calculator, and at the end of class she surprised me by having me demonstrate it to the class. When I asked why she hadn't given me any warning, she asked, "Would that have made you less nervous?"
|
||||
---
|
6
site/timeline/1999-2001.md
Normal file
6
site/timeline/1999-2001.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: PVCC - Associate’s in science
|
||||
time: 1999-2001
|
||||
description: |
|
||||
Highlights include a public speaking class and an excellent Java programming class, my introduction to object-oriented programming. I have such fond memories of the teachers here and their dedicated enthusiasm.
|
||||
---
|
6
site/timeline/2001-2004.md
Normal file
6
site/timeline/2001-2004.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: RPI - Bachelor’s in Math & Computer Science
|
||||
time: 2001-2004
|
||||
description: |
|
||||
My first time living away from home. Aside from the education, I connected with a lot of people who have remained important in my life.
|
||||
---
|
8
site/timeline/2004-2008.md
Normal file
8
site/timeline/2004-2008.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Part time teacher / E-learning Technician
|
||||
time: 2004-2008
|
||||
description: |
|
||||
After a couple semesters as a part time math instructor at my old community college, I switched to a role supporting instructors with remote learning, software assistance, and classroom technology.
|
||||
|
||||
This is also when my love of board games really exploded. Local friends had an extensive game collection and we used to play until late at night.
|
||||
---
|
6
site/timeline/2008-2010.md
Normal file
6
site/timeline/2008-2010.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Exploring
|
||||
time: 2008-2010
|
||||
description: |
|
||||
This includes about a year of small-business home computer repair, as well as some valuable time improving my communication skills at a satellite TV tech support center.
|
||||
---
|
8
site/timeline/2010-2013.md
Normal file
8
site/timeline/2010-2013.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Junior software engineer @ Oakleaf / Waste Management
|
||||
time: 2010-2013
|
||||
description: |
|
||||
This Microsoft based company was a good first step into corporate development. I was exposed to a variety of development roles, and began building a personal specialization in front-end development.
|
||||
|
||||
Also, shortly after moving for this job, I met my wife!
|
||||
---
|
8
site/timeline/2013-2017.md
Normal file
8
site/timeline/2013-2017.md
Normal file
|
@ -0,0 +1,8 @@
|
|||
---
|
||||
title: Application engineer @ XPO Logistics
|
||||
time: 2013-2017
|
||||
description: |
|
||||
Microsoft environment, Agile methodology. This fully front-end focused role highlighted the value of investing in myself and building a skillset focused around my strengths and interests.
|
||||
|
||||
Outside of work, I began deeply researching cryptocurrencies and economics and using open source web development tools for personal projects.
|
||||
---
|
6
site/timeline/2017-2020.md
Normal file
6
site/timeline/2017-2020.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Software developer @ Dash Core Group
|
||||
time: 2017-2020
|
||||
description: |
|
||||
After some successful freelance work, I became a full time contractor, working remotely. I was fortunate to sometimes travel to interesting places to represent Dash or to meet up worldwide with other developers. My focus here was on web development, React Native app development, and JavaScript API testing and documentation. The contract was ended due to an extended crypto price slump in 2019-2020.
|
||||
---
|
6
site/timeline/2020-2021.md
Normal file
6
site/timeline/2020-2021.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Senior software engineer @ HubSpot
|
||||
time: 2020-2021
|
||||
description: |
|
||||
Back in the corporate world, using my experience to develop React projects in an agile environment. I began building my mentoring and team management abilities, as well as sharpening my JavaScript and React skills.
|
||||
---
|
6
site/timeline/2021-2022.md
Normal file
6
site/timeline/2021-2022.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Senior software engineer @ Prenda
|
||||
time: 2021-2022
|
||||
description: |
|
||||
This is at the intersection of many interests, including learning, communication, and decentralized solutions. Prenda has an excellent culture that fosters humility and recognizes others' humanity.
|
||||
---
|
6
site/timeline/2023-present.md
Normal file
6
site/timeline/2023-present.md
Normal file
|
@ -0,0 +1,6 @@
|
|||
---
|
||||
title: Founding software engineer @ Capabuild
|
||||
time: 2022-present
|
||||
description: |
|
||||
Capabuild makes web and mobile software for disaster recovery companies. Here I have been able to capitalize on my front-end, React Native and THREE.js experience. This is the youngest company I've joined and the role with the largest responsibility so far. It's exciting!
|
||||
---
|
12
site/timeline/index.njk
Normal file
12
site/timeline/index.njk
Normal file
|
@ -0,0 +1,12 @@
|
|||
---
|
||||
layout: base.njk
|
||||
tags: timeline
|
||||
permalink: timeline/index.html
|
||||
title: Timeline
|
||||
---
|
||||
{% for item in collections.timeline | reverse %}
|
||||
{% if item.data.title !== "Timeline" %}
|
||||
<h3 id="{{item.data.time}}"><a class="header-anchor" href="#{{item.data.time}}" aria-hidden="true"></a>{{ item.data.title }} <aside>{{item.data.time}}</aside></h3>
|
||||
<p>{{ item.data.description }}</p>
|
||||
{% endif %}
|
||||
{% endfor %}
|
4
site/timeline/timeline.11tydata.js
Normal file
4
site/timeline/timeline.11tydata.js
Normal file
|
@ -0,0 +1,4 @@
|
|||
module.exports = {
|
||||
tags: ["timeline"],
|
||||
permalink: false,
|
||||
};
|
Loading…
Add table
Add a link
Reference in a new issue