Compare commits
32 Commits
1bb05ad1fc
...
master
Author | SHA1 | Date | |
---|---|---|---|
2f45cbb11a | |||
a6a0f815f3 | |||
e430c3d24b | |||
fc2d5a7e3e | |||
286fda6018 | |||
26d5aef4f1 | |||
7489719607 | |||
c1a902017d | |||
c92bce611c | |||
73f6868684 | |||
8eba934270 | |||
c4e95ac10e | |||
dc16b5988a | |||
e79dbfeb91 | |||
66b7951ee2 | |||
a0a866fab5 | |||
15b1a6791c | |||
ba5552c5d0 | |||
83cbbcf5ce | |||
c80437a6b4 | |||
67c83bf85a | |||
a32d24a086 | |||
1afa6886ed | |||
c6cb5baa54 | |||
dceea8511f | |||
0e0fcec728 | |||
437d9d3743 | |||
07527f8e33 | |||
85d40b1570 | |||
2cf3906c4b | |||
f5fe72a2a1 | |||
1704ae6a5c |
76
phpsg.sh
76
phpsg.sh
@ -27,19 +27,35 @@ set -euo pipefail
|
||||
SOURCE_DIR="src"
|
||||
OUTPUT_DIR="output"
|
||||
JOBS=1
|
||||
SERVER_FLAG=0
|
||||
|
||||
function print_usage() {
|
||||
echo "$0 [-o <output dir>] [-s <source dir>] [-j <num>]"
|
||||
echo "$0 -S [-o <output dir>]"
|
||||
}
|
||||
|
||||
while getopts "o:s:j:h" opt
|
||||
function print_help() {
|
||||
printf "PHP Site Generator\n\n"
|
||||
printf "SYNOPSIS:\n"
|
||||
print_usage
|
||||
|
||||
printf "\nOPTIONS:\n"
|
||||
printf "\t-o <output dir> Output directory\n"
|
||||
printf "\t-s <source dir> Source directory\n"
|
||||
printf "\t-j <num> Number of jobs to run\n"
|
||||
printf "\t-S Run a server on localhost:8080\n"
|
||||
printf "\t-h Show help information\n"
|
||||
printf "\n"
|
||||
}
|
||||
|
||||
while getopts "o:s:j:Sh" opt
|
||||
do
|
||||
case "$opt" in
|
||||
o)
|
||||
OUTPUT_DIR="${OPTARG}"
|
||||
OUTPUT_DIR="$(realpath --relative-base=./ "${OPTARG}")"
|
||||
;;
|
||||
s)
|
||||
SOURCE_DIR="${OPTARG}"
|
||||
SOURCE_DIR="$(realpath --relative-base=./ "${OPTARG}")"
|
||||
;;
|
||||
j)
|
||||
JOBS="${OPTARG}"
|
||||
@ -50,8 +66,11 @@ do
|
||||
exit 1
|
||||
fi
|
||||
;;
|
||||
S)
|
||||
SERVER_FLAG=1
|
||||
;;
|
||||
h)
|
||||
print_usage
|
||||
print_help
|
||||
exit
|
||||
;;
|
||||
*)
|
||||
@ -61,44 +80,59 @@ do
|
||||
esac
|
||||
done
|
||||
|
||||
if [ $SERVER_FLAG -eq 1 ]
|
||||
then
|
||||
php -S localhost:8080 -t "$OUTPUT_DIR"
|
||||
exit
|
||||
fi
|
||||
|
||||
# Make these variables visible within parallel
|
||||
export OUTPUT_DIR
|
||||
export SOURCE_DIR
|
||||
|
||||
while IFS= read -r -d '' dir
|
||||
do
|
||||
OUT_DIR="${OUTPUT_DIR}/${dir:${#SOURCE_DIR}}"
|
||||
if ! [ -d "$OUT_DIR" ]
|
||||
then
|
||||
mkdir -p "${OUTPUT_DIR}/${dir:${#SOURCE_DIR}}"
|
||||
fi
|
||||
done < <(find "$SOURCE_DIR" -mindepth 1 -type d -print0)
|
||||
|
||||
function process_file() {
|
||||
file="$1"
|
||||
local file="$1"
|
||||
local DEST_FILE="${OUTPUT_DIR}/${file/#${SOURCE_DIR}\//}"
|
||||
local DEST_DIR
|
||||
if [[ $file = *.php ]]
|
||||
then
|
||||
DEST_FILE="${OUTPUT_DIR}/${file:${#SOURCE_DIR}:-4}"
|
||||
if ! [ "$file" -nt "$DEST_FILE" ]
|
||||
DEST_FILE="${DEST_FILE::-4}"
|
||||
DEST_DIR="$(dirname "$DEST_FILE")"
|
||||
if ! [ -d "$DEST_DIR" ]
|
||||
then
|
||||
return
|
||||
mkdir -p "$DEST_DIR"
|
||||
fi
|
||||
echo -n "Generating $DEST_FILE ... "
|
||||
php "$file" > "$DEST_FILE"
|
||||
echo "done"
|
||||
else
|
||||
DEST_FILE="${OUTPUT_DIR}/${file:${#SOURCE_DIR}}"
|
||||
if ! [ "$file" -nt "$DEST_FILE" ]
|
||||
DEST_DIR="$(dirname "$DEST_FILE")"
|
||||
if ! [ -d "$DEST_DIR" ]
|
||||
then
|
||||
return
|
||||
mkdir -p "$DEST_DIR"
|
||||
fi
|
||||
echo -n "Copying target $DEST_FILE ... "
|
||||
cp "$file" "$DEST_FILE"
|
||||
echo "done"
|
||||
fi
|
||||
}
|
||||
# Make function usable to parallel
|
||||
|
||||
function delete_file() {
|
||||
local file="$1"
|
||||
FILE_PATH=$(realpath --relative-base=./ "$OUTPUT_DIR/$file")
|
||||
echo "Deleting file $FILE_PATH"
|
||||
rm "$FILE_PATH"
|
||||
}
|
||||
|
||||
# Make functions usable to parallel
|
||||
export -f process_file
|
||||
export -f delete_file
|
||||
|
||||
find "$SOURCE_DIR" -type f -not -name '*.cfg.php' |
|
||||
parallel -j"${JOBS}" process_file
|
||||
|
||||
SOURCE_FILE_LIST=$(cd "$SOURCE_DIR" && find . -type f -and -not -name '*.cfg.php' | sed 's/.php$//')
|
||||
OUTPUT_FILE_LIST=$(cd "$OUTPUT_DIR" && find . -type f)
|
||||
|
||||
echo "${SOURCE_FILE_LIST[@]}" "${OUTPUT_FILE_LIST[@]}" | tr ' ' '\n' | sort | uniq -u |
|
||||
parallel -j"${JOBS}" delete_file
|
||||
|
@ -11,7 +11,7 @@ getting rid of the need for me to navigate web UIs. Something that annoyed me
|
||||
with GitLab, Github, NotABug, and alike, is that they make use of web
|
||||
interfaces for tasks like pull requests, creating repos, issue trackers, etc.
|
||||
when most of these can be done with the same tool: a mailing list. I've already
|
||||
gone over this before in <a href="/blog/2017-05-02-patch-files.html" >my post on patch
|
||||
gone over this before in <a href="/blog/2017-05-02-patch-files" >my post on patch
|
||||
files</a>. What's more, now to create new repos I can just use a script I have
|
||||
made.</p>
|
||||
|
||||
@ -27,4 +27,4 @@ alternative to git depending on how things go.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -86,7 +86,7 @@ merry way abusing people's data. But there's still something you can do
|
||||
about this. If you are truly worried about how your data is being used
|
||||
by these massive companies, look into decentralized alternatives. I have
|
||||
mentioned a few on the <a
|
||||
href="https://themusicinnoise.net/decentralized.html"
|
||||
href="https://themusicinnoise.net/decentralized"
|
||||
>Decentralized page</a> of my website, but you can find a much more
|
||||
complete list on <a href="https://prism-break.org/en/" target="_blank"
|
||||
>Prism-Break</a> (although not all are decentralized... but most are).
|
||||
@ -97,4 +97,4 @@ corporations will have over your data.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$title = "dwm & sxhkd";
|
||||
$title = "dwm & sxhkd";
|
||||
$description = "Using sxhkd with dwm to complete the UNIX way.";
|
||||
$created = "2019-12-23";
|
||||
$updated = "2019-12-23";
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
$title = "Recipe: Pollo Picantito";
|
||||
$description = "A spicy chicken & rice dish.";
|
||||
$description = "A spicy chicken & rice dish.";
|
||||
$created = "2020-01-13";
|
||||
$updated = "2020-01-13";
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$title = "New Category & Content";
|
||||
$title = "New Category & Content";
|
||||
$description = "An introduction to the new 'Religion' category, and a short exposition of my conversion to the Catholic Faith.";
|
||||
$created = "2020-03-11";
|
||||
$updated = "2020-03-11";
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$title = "Sin & Hell";
|
||||
$title = "Sin & Hell";
|
||||
$description = "Perhaps the most controversial and scandalizing topic of the Faith are the issues of Sin and Hell, which makes us wonder why an all loving God would permit Sin or constitute something as a Sin, and then consequently condemn us to Hell for our sinning. Clarity is needed, but it cannot be found by beating around the bush.";
|
||||
$created = "2020-12-05";
|
||||
$updated = "2020-12-12";
|
||||
|
@ -90,7 +90,7 @@ Christ's Church.</p>
|
||||
|
||||
<ol class="refs" >
|
||||
<li id="r1" >
|
||||
<a href="2020-07-18-why-the-traditional-latin-mass.html" >
|
||||
<a href="2020-07-18-why-the-traditional-latin-mass" >
|
||||
"Why the Traditional Latin Mass" Blog Post
|
||||
</a>
|
||||
</li>
|
||||
@ -98,4 +98,4 @@ Christ's Church.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -33,7 +33,7 @@ income and the Gini Coefficient.</p>
|
||||
|
||||
<figure>
|
||||
<img
|
||||
src="https://media.themusicinnoise.net/imgs/blog/income-inequality-vs-median-income.png"
|
||||
src="/imgs/blog/income-inequality-vs-median-income.png"
|
||||
title="Income Inequality vs. Median Income"
|
||||
alt="Income Inequality vs. Median Income Graph" />
|
||||
<figcaption>
|
||||
@ -112,4 +112,4 @@ fix the right thing.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?php
|
||||
$title = "Taizé: Experience & Liturgy";
|
||||
$title = "Taizé: Experience & Liturgy";
|
||||
$description = "After recently having spent a week in the Taizé Community in France, I wanted to write an article about my experience, as well as noting what I was able to reverse engineer about the liturgy they follow for their prayers.";
|
||||
$created = "2021-08-24";
|
||||
$updated = "2021-08-25";
|
||||
|
@ -52,7 +52,7 @@ needed a place to rant about something stupid.</p>
|
||||
|
||||
<ol class="refs" >
|
||||
<li id="r1" >
|
||||
<a href="/blog/2019-07-26-the-cancer-which-is-pre-installed-applications.html" >
|
||||
<a href="/blog/2019-07-26-the-cancer-which-is-pre-installed-applications" >
|
||||
"The Cancer which is Pre-Installed Applications" on The Music in
|
||||
Noise Blog
|
||||
</a>
|
||||
@ -61,4 +61,4 @@ needed a place to rant about something stupid.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -48,7 +48,7 @@ themselves furthest from God, that by His grace they may be lead to Him.</p>
|
||||
<h2>References</h2>
|
||||
<ol class="refs" >
|
||||
<li id="r1" >
|
||||
<a href="https://themusicinnoise.net/blog/2020-12-12-what-is-love.html" >
|
||||
<a href="https://themusicinnoise.net/blog/2020-12-12-what-is-love" >
|
||||
"What is Love?" on The Music in Noise
|
||||
</a>
|
||||
</li>
|
||||
@ -56,4 +56,4 @@ themselves furthest from God, that by His grace they may be lead to Him.</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -265,7 +265,7 @@ you.
|
||||
|
||||
<ol class="refs" >
|
||||
<li id="r1" >
|
||||
<a href="/blog/2022-06-07-adoration.html" >
|
||||
<a href="/blog/2022-06-07-adoration" >
|
||||
"Adoration" on The Music in Noise
|
||||
</a>
|
||||
</li>
|
||||
@ -273,4 +273,4 @@ you.
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
||||
?>
|
||||
|
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
$title = "Religion & Politics";
|
||||
$description = "An essay on the relationship between religion & politics, and how one's religious values may be legitimate in political conversation.";
|
||||
$title = "Religion & Politics";
|
||||
$description = "An essay on the relationship between religion and politics, and how one's religious values may be legitimate in political conversation.";
|
||||
$created = "2024-02-15";
|
||||
$updated = "2024-02-15";
|
||||
?>
|
||||
|
6
src/blog/2025-02-27-static-site-generation.cfg.php
Normal file
6
src/blog/2025-02-27-static-site-generation.cfg.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
$title = "Static Site Generation";
|
||||
$description = "My new way of generating my website (again).";
|
||||
$created = "2025-02-27";
|
||||
$updated = "2025-02-27";
|
||||
?>
|
57
src/blog/2025-02-27-static-site-generation.html.php
Normal file
57
src/blog/2025-02-27-static-site-generation.html.php
Normal file
@ -0,0 +1,57 @@
|
||||
<?php
|
||||
require 'config.php';
|
||||
require '2025-02-27-static-site-generation.cfg.php';
|
||||
require 'templates/blog-header.php';
|
||||
?>
|
||||
|
||||
<p>
|
||||
Over the course of the decade (maybe more) that this website has been around
|
||||
I've gone through a few different frameworks and infrastructure for it. Although
|
||||
usually this would be going back-and-forth between PHP and some static site
|
||||
generator. For a while I've used Saait,<sup><a href="#r1" >[1]</a></sup> which
|
||||
was perfect for my goal of simplicity, but was not at all flexible enough for
|
||||
what I wanted. It seems to be intended for a website that contains a single page
|
||||
and then a bunch of blog posts (not my setup), and so for a while I had a
|
||||
somewhat jury-rigged setup.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Seeing this as an issue, I decided to try my hand at writing my own static site
|
||||
generator. There were a few failed projects like this, but I normally ran into a
|
||||
few errors normally because of the language I would try to write the program in.
|
||||
There was a time where I would try in Rust just for the heck of it, but I would
|
||||
get bogged down by the compiler whining at me. Later I would try again in Bash,
|
||||
but that was silly because of all the limitations that Bash presents (even Saait
|
||||
isn't written completely in Bash). I finally started working on one in C (in a
|
||||
private repository at the moment), but at this point in my life I'm much too
|
||||
busy to actually work much on it.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Ultimately, with all this going on, I decided it was time to try out static site
|
||||
generation with PHP. Confused? Just run the PHP program on one of your PHP
|
||||
scripts. It outputs the exact same thing. All I needed to do really was to write
|
||||
a script that would go through all the PHP code in my website and output it as
|
||||
an HTML file (or XML in the case of RSS and Atom feeds). The only caveat was
|
||||
going to be my blog, which could get messy because of how I would need to access
|
||||
certain metadata about my blog posts (e.g. title or date) in order to generate
|
||||
both the blog page (to generate the page automatically) or the RSS and Atom
|
||||
feeds. This I solved by simply having files suffixed with <code>.cfg.php</code>
|
||||
which would not be processed.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
All this added up to the <code>phpsg.sh</code> script<sup><a href="r2">[2]</a></sup>,
|
||||
which I had added to my repository. It's licensed under the Zlib license, if you
|
||||
want to use it for your own websites. Hopefully I may continue to develop my
|
||||
static site generator in C, but until that's done, this is a decent substitute.
|
||||
</p>
|
||||
|
||||
<ol class="refs" >
|
||||
<li id="r1" ><a href="https://codemadness.org/saait.html" target="_blank" >Saait: a boring HTML page generator - Codemadness</a></li>
|
||||
<li id="r2" ><a href="https://code.ortegas.org/nortega/themusicinnoise-site/src/commit/07527f8e33aa6ed2ffc303c971f383190a7925aa/phpsg.sh" target="_blank" >themusicinnoise-site/phpsg.sh at 07527f8e33aa6ed2ffc303c971f383190a7925aa - themusicinnoise-site - Ortega Code</a></li>
|
||||
</ol>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
$title = "Medieval Society and the Tripartite Soul";
|
||||
$description = "Understanding Medieval Society as the implementation of Plato's ideal.";
|
||||
$created = "2025-03-08";
|
||||
$updated = "2025-03-08";
|
||||
?>
|
@ -0,0 +1,62 @@
|
||||
<?php
|
||||
require 'config.php';
|
||||
require '2025-03-08-medieval-society-and-the-tripartite-soul.cfg.php';
|
||||
require 'templates/blog-header.php';
|
||||
?>
|
||||
|
||||
<p>
|
||||
In Plato's <i>Republic</i> he argues that the soul is composed of three parts:
|
||||
the logical, the spirited, and the appetitive. The logical (or rational) part is
|
||||
that which cares for and seeks the truth. The spirited that part by which we are
|
||||
impassioned by what we could (for the sake of simplicity) call emotions, such as
|
||||
anger or joy. The appetitive that which is concerned with matters of material
|
||||
appetite, such as food, sex, and other such pleasures. He also argues that these
|
||||
three parts, if the soul is to be well-ordered, ought to be placed in a
|
||||
hierarchy where the logical rules over the spirited and the appetitive, and the
|
||||
spirited is subject to the logical and commands the appetite.
|
||||
</p>
|
||||
|
||||
<p>So far, all of this should seem to make sense, especially to a Catholic who
|
||||
understands that we first seek God (i.e. Truth) and subject our whole being to
|
||||
Him; we then rule over our passions, not to quench them, but to direct them to
|
||||
that which is conducive to God's glory, which often involves (especially now
|
||||
during the penitential season of Lent) the control of the appetite. But Plato
|
||||
goes on to say that what can be found in the soul may also be found in the city
|
||||
(i.e. society): that it too has these three parts and ought be ordered so. The
|
||||
argument I would like to make is that Medieval Society (i.e. Christendom)
|
||||
represented this order. With its imperfections, certainly, but nonetheless I
|
||||
think it the case that Medieval Society functioned under this model.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is generally well known that the Medieval Society was divided into three main
|
||||
parts: the Church, the rulers, and the workers. Of these three it seems quite
|
||||
evident how they line up with the parts of the soul. The Church represents the
|
||||
logical, not because it is primarily made up of philosophers, but because its
|
||||
primary concern is with the Truth, i.e. God who is the highest truth. The rulers
|
||||
are the spirited, as being both warriors and rulers made them seekers of glory,
|
||||
but namely they were the only ones capable of establishing order based on higher
|
||||
ideals. The workers were those concerned with the more mundane and merely
|
||||
necessary affairs of food and crafts. My argument is thus that in the Middle
|
||||
Ages society was organized such that the Church ruled of the rulers and the
|
||||
workers, and the rulers subjected themselves to the Church and commanded the
|
||||
workers.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
To modern audiences this may be strange considering that the highest authority
|
||||
within a kingdom was considered to be its king, but this is because in today's
|
||||
secular society we do not understand how the Church could influence society (and
|
||||
indeed its governance) without necessarily forming a part of the governing body
|
||||
(i.e. what we now call the State). Medieval Society took religion seriously,
|
||||
thus understanding that God's representatives on Earth carried real authority
|
||||
thought ought not be disregarded, especially as it pertains to matters of faith
|
||||
and morals. If not for this it would have been impossible for popes to have
|
||||
convoked the entirety of Christendom to fight in the Crusades. Thus it was not
|
||||
necessary that the highest authority in a kingdom be a cleric, for all kings
|
||||
recognized the highest authority on Earth to be none other than God himself.
|
||||
</p>
|
||||
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
@ -12,7 +12,7 @@ require 'config.php';
|
||||
<?php
|
||||
$dir_files = scandir(dirname(__FILE__), SCANDIR_SORT_DESCENDING);
|
||||
foreach($dir_files as $file_info) {
|
||||
if(!str_ends_with($file_info, ".cfg.php"))
|
||||
if(!str_ends_with($file_info, ".cfg.php") or str_starts_with($file_info, "draft_"))
|
||||
continue;
|
||||
|
||||
require dirname(__FILE__) . "/" . $file_info;
|
||||
|
6
src/blog/draft_ai-is-in-the-cave.cfg.php
Normal file
6
src/blog/draft_ai-is-in-the-cave.cfg.php
Normal file
@ -0,0 +1,6 @@
|
||||
<?php
|
||||
$title = "AI Is in the Cave";
|
||||
$description = "Delving into the (apparent) mystery of Large Language Models (a.k.a. AI) and why none of them are actually intelligent.";
|
||||
$created = "2025-03-13";
|
||||
$updated = "2025-03-13";
|
||||
?>
|
168
src/blog/draft_ai-is-in-the-cave.html.php
Normal file
168
src/blog/draft_ai-is-in-the-cave.html.php
Normal file
@ -0,0 +1,168 @@
|
||||
<?php
|
||||
require 'config.php';
|
||||
require 'draft_ai-is-in-the-cave.cfg.php';
|
||||
require 'templates/blog-header.php';
|
||||
?>
|
||||
<p>
|
||||
For your average technological layman most digital technologies seem to pretty
|
||||
much be magic. Somehow a bunch of ones and zeros can be transformed into a movie
|
||||
which is streamed over cables and even thin-air until it reaches my tablet and
|
||||
is transformed to something actually recognizable on the screen. So it should
|
||||
come as no surprise that when it comes to Large Language Models (LLMs, a.k.a.
|
||||
AI) the usual amazement and mystification of technology reached new peaks as
|
||||
folks started speculating that perhaps this is truly the point where computers
|
||||
can pass the Turing Test, and the more enthusiastic among these would go
|
||||
further and say that perhaps even the machines could gain
|
||||
conciousness<sup><a href="#n1" >(1)</a></sup> if they have not already, all
|
||||
ultimately raising the question of whether we have reached the point of
|
||||
Singularity.<sup><a href="#n2" >(2)</a></sup> In fact, we could say that the
|
||||
capabilities of LLMs are so amazing that even some of the CEOs of these
|
||||
companies are suggesting they either have or may soon truly achieve
|
||||
consciousness.<sup><a href="#r1" >[1]</a></sup> However, if you were to ask
|
||||
these people how we can know that LLMs have reached this point the test
|
||||
provided is generally a very unsophisticated one: if it can ape human behavior,
|
||||
it must have an intellect at the same level as a human.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Now, for anyone who has some familiarity with Pro-Life apologetics, this kind
|
||||
of reasoning to determine personhood sounds extremely familiar, but is now
|
||||
being applied in the reverse. It is the attribution of personhood on the basis
|
||||
of what the thing <em>can do</em> in a specific stage of its development rather
|
||||
than on the basis of what <em>kind of being</em> the thing is. In the case of
|
||||
the unborn it is used to claim they do not have personhood because at that
|
||||
stage of their development they cannot do certain things, while in the case of
|
||||
LLMs it is used to claim they do have personhood because they can do these
|
||||
things (at least those things which we associate with the intellect). All this
|
||||
because our modern materialist culture cannot actually understand the concept
|
||||
of a <em>kind</em> of being, for all being is merely an assortment of atoms
|
||||
that just so happen to organize themselves in such a way that a conscious being
|
||||
is formed. Thus, to form other conscious beings all you have to do is put the
|
||||
same kinds of atoms together in the same pattern and you can reproduce life!
|
||||
And not any sort of life, but rational life at that. Furthermore, in the case
|
||||
of LLMs, it would seem that it is not even necessary for it to be the same
|
||||
kinds of atoms in the same pattern at all, but instead we can replace neurons
|
||||
and alike with transistors and other electronic elements, coded to interact
|
||||
with each other to do the same thing human beings have been doing for tens of
|
||||
thousands of years, and what pretty much most animals have been able to do as
|
||||
well: pattern recognition and replication.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
The fact of the matter is that LLMs may seem, from a purely superficial
|
||||
standpoint, like a child who is slowly learning to speak. In the past few years
|
||||
we have seen drastic improvements as many of the tell-tale signs have been
|
||||
smoothed out of the algorithms. But even as they become indistinguishable from
|
||||
the product of actual human work, that does not mean that the means of arriving
|
||||
at that product are the same, and thus the value of the product itself is not
|
||||
the same. So we must ask ourselves: how <em>do</em> these LLMs work?
|
||||
</p>
|
||||
|
||||
<h2>The Man Who “Learned” Chinese</h2>
|
||||
|
||||
<p>
|
||||
It is not hard to find explanations on the Web that explain in a very technical
|
||||
manner how these LLMs work, but for most people these explanations are as good
|
||||
as a neuroscientist explaining how the brain works (which, at least for me,
|
||||
would be pretty useless). Luckily, it is not necessary to know how all the
|
||||
gears in an analog watch are interconnected versus the circuits in a digital
|
||||
watch in order to understand the principle of an analog watch's movement is
|
||||
kinetic energy and components pushing one another, whereas with the digital
|
||||
watch it is electrical signals passed through logical circuit components. The
|
||||
specifics do not really matter for these purposes. Therefore, for LLMs, I would
|
||||
like to offer an explanation of this principle through analogy which may be
|
||||
easier for people to understand.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Imagine there is a man who is a monolingual English speaker. Furthermore, he
|
||||
has no knowledge of grammatical concepts which would allow him to think
|
||||
abstractly about his language, much less any foreign language. Now let us say
|
||||
you gave this man hundreds, maybe thousands, or maybe even millions of years to
|
||||
look over Chinese texts. Some of them are books, fiction or non-fiction, some
|
||||
are articles, some are conversations, others are instruction manuals, etc. All
|
||||
sorts of texts of practically any kind. After such a long time he begins to
|
||||
notice some patterns, where normally certain symbols are followed by certain
|
||||
other symbols. And after all this time you begin to train him: you give him a
|
||||
text in Chinese and he has to try to return the proper pattern of symbols which
|
||||
ought to follow the ones you gave him. You, the one who knows Chinese, judge
|
||||
whether the response makes sense, and if so you give him positive feedback
|
||||
which tells him he did a good job (and will likely return similar responses for
|
||||
similar prompts), and if not you give him negative feedback which tells him he
|
||||
did a bad job (and will be less likely to return similar responses for similar
|
||||
prompts). After all this time, you finally have trained this man to the point
|
||||
where if any Chinese person were to speak with him over text prompts he could
|
||||
respond as if he spoke perfect Chinese and was truly having a conversation or
|
||||
writing meaningful texts. But is he?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
If you were to actually ask this man (in English) whether he had any idea what
|
||||
he was saying, he would obviously reply with a flat “Of course not,” but if you
|
||||
were to ask him in Chinese I do not think any of us would doubt that he would
|
||||
simply reply that he does, even though he clearly does not. The man has not
|
||||
actually learned Chinese, but rather to mimic Chinese. The reason for this is
|
||||
that he is not capable of doing the very thing that language is meant to do:
|
||||
convey <em>meaning</em>. Sure, a Chinese speaker may find meaning in the texts
|
||||
he writes, but that meaning is not his meaning. This language is no longer one
|
||||
rational agent communicating his ideas to another rational agent, but merely a
|
||||
single rational agent trying to induce a meaning into a text that wasn't
|
||||
infused with meaning to begin with.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
It is from this understanding that some of the various flaws of LLMs begin to
|
||||
make sense. For example, the reason why they cannot accurately cite sources is
|
||||
because, firstly, they do not know what a source even is, but secondly, because
|
||||
it is simply looking back into its data and checking what usually follows
|
||||
within that context with the parameters of “citing the source,” which is why it
|
||||
so often simply makes them up. The truth is that its source is <em>all</em> its
|
||||
data mashed together probabilistically based on the input prompt and the
|
||||
context of the overall “conversation.”
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Getting back, however, to a question raised earlier about the level of
|
||||
consciousness of these LLMs, although in the analogy given above the man surely
|
||||
has a rational soul and a human intellect, it is also evident how it is not
|
||||
necessary to make use of these higher faculties in order to do what these
|
||||
machines can do: it is merely pattern recognition and probabilistic
|
||||
computation. This is something that even the beasts could do if sufficiently
|
||||
trained (think of the example of a parrot). The machine has no concept of the
|
||||
<em>meaning</em> symbolized by these words; in fact, it does not see them as
|
||||
symbols at all, but tokens with numerical values. And if it cannot comprehend
|
||||
meaning, then it certainly cannot reason on the basis of meaning. What is more,
|
||||
this is not simply a question of needing more training or more data, it is a
|
||||
matter of the process itself; for no matter how much you train the man in the
|
||||
analogy with more data and better pattern recognition techniques, he never will
|
||||
have actually learned Chinese until he starts to associate meaning those
|
||||
symbols and is thus able to reason a response instead of merely guessing what
|
||||
tokens go next.
|
||||
</p>
|
||||
|
||||
<h2>Here Be Demons</h2>
|
||||
|
||||
<h2>Hammers Are for Nails</h2>
|
||||
|
||||
<h2>Resources</h2>
|
||||
<h3>Notes</h3>
|
||||
<ol class="notes" >
|
||||
<li id="n1" >
|
||||
Some people confuse the Turing Test to be an indicator that a machine
|
||||
<em>has</em> reached conciousness, but this is a misunderstanding. The
|
||||
test merely indicates that in a blind-folded scenario a human cannot
|
||||
tell whether they are talking to another human or a machine, usually via
|
||||
a text prompt.
|
||||
</li>
|
||||
<li id="n2" >
|
||||
Singularity in this context is understood as a point-of-no-return past
|
||||
which the advances of technological complexity are beyond our control.
|
||||
</li>
|
||||
</ol>
|
||||
<h3>References</h3>
|
||||
<ol class="refs" >
|
||||
<li id="r1" ><a href="https://arstechnica.com/ai/2025/03/anthropics-ceo-wonders-if-future-ai-should-have-option-to-quit-unpleasant-tasks/" target="_blank" >Anthropic CEO floats idea of giving AI a “quit job” button, sparking skepticism - Ars Technica</a></li>
|
||||
</ol>
|
||||
<?php
|
||||
require 'templates/blog-footer.php';
|
||||
?>
|
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
|
||||
$title = "Blog";
|
||||
$description = "A collection of posts on miscellaneous subjects.";
|
||||
$keywords = "blog, catholicism, religion, faith, computers, programming, lifestyle, bible, scripture";
|
||||
|
||||
require "config.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
<h2>Feeds</h2>
|
||||
@ -14,11 +15,11 @@ require "templates/header.php";
|
||||
<?php
|
||||
$dir_files = scandir(dirname(__FILE__), SCANDIR_SORT_DESCENDING);
|
||||
foreach($dir_files as $file_info) {
|
||||
if(!str_ends_with($file_info, ".cfg.php"))
|
||||
if(!str_ends_with($file_info, ".cfg.php") or str_starts_with($file_info, "draft_"))
|
||||
continue;
|
||||
|
||||
require dirname(__FILE__) . "/" . $file_info;
|
||||
$post_url = str_replace(".cfg.php", ".html", $file_info);
|
||||
$post_url = str_replace(".cfg.php", "", $file_info);
|
||||
?>
|
||||
<li><time><?= $created ?></time> - <a href="<?= $post_url ?>" ><?= $title ?></a></li>
|
||||
<?php
|
||||
|
@ -12,7 +12,7 @@ require 'config.php';
|
||||
<?php
|
||||
$dir_files = scandir(dirname(__FILE__), SCANDIR_SORT_DESCENDING);
|
||||
foreach($dir_files as $file_info) {
|
||||
if(!str_ends_with($file_info, ".cfg.php"))
|
||||
if(!str_ends_with($file_info, ".cfg.php") or str_starts_with($file_info, "draft_"))
|
||||
continue;
|
||||
|
||||
require dirname(__FILE__) . "/" . $file_info;
|
||||
|
@ -1,9 +1,10 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
|
||||
$title = "Contact";
|
||||
$description = "Directory of mediums I can be contacted by, as well as a link to my PGP key.";
|
||||
$keywords = "email, pgp, irc, contact";
|
||||
|
||||
require "config.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
|
||||
@ -38,6 +39,12 @@ to encrypt your e-mails following their very simple instructions.</p>
|
||||
</ul>
|
||||
</ul>
|
||||
|
||||
<h2>Matrix</h2>
|
||||
<p>Alias: @nortega:matrix.org</p>
|
||||
<ul>
|
||||
<li>#debian:matrix.debian.social</li>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
require "templates/footer.php"
|
||||
?>
|
||||
|
BIN
src/imgs/blog/income-inequality-vs-median-income.png
Normal file
BIN
src/imgs/blog/income-inequality-vs-median-income.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 7.0 KiB |
@ -1,7 +1,7 @@
|
||||
<?php
|
||||
$title = "Home Page";
|
||||
|
||||
require "config.php";
|
||||
|
||||
$title = "Home";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
<img
|
||||
|
@ -1,95 +0,0 @@
|
||||
<?php
|
||||
$title = "Poetry";
|
||||
$description = "A collection of some of my poems.";
|
||||
$keywords = "poetry, religion, catholicism";
|
||||
|
||||
require "config.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
<p>I'm not truly super into writing poetry, or reading it for that
|
||||
matter, but every now and then I do like to read certain special poems,
|
||||
and even write some poetry of my own. That being said, it's truly not
|
||||
all that different from writing song lyrics. I guess my point is don't
|
||||
expect much.</p>
|
||||
|
||||
<ul>
|
||||
<li><a href="#concedeme-un-deseo" >Concédeme Un Deseo</a></li>
|
||||
<li><a href="#marys-eukaristia" >Mary's Eukaristia</a></li>
|
||||
<li><a href="#mi-aportacion" >Mi Aportación</a></li>
|
||||
</ul>
|
||||
|
||||
<h2 id="concedeme-un-deseo" >Concédeme Un Deseo</h2>
|
||||
<p>Cielo de la noche,<br />
|
||||
belleza como la mujer celeste.<br />
|
||||
Brillo de estrellas lejanas<br />
|
||||
fuegos violentos y tranquilos.</p>
|
||||
|
||||
<p>Tu consistencia me alivia<br />
|
||||
de los vientos turbulentos.<br />
|
||||
Con los cambios más mínimos<br />
|
||||
como para captar mi imaginación.</p>
|
||||
|
||||
<p>¿Cuántos misterios guardas?<br />
|
||||
¿Tantos como el Libro del Amor?<br />
|
||||
¿Cuántas luces tienes<br />
|
||||
que brillan como el sol?</p>
|
||||
|
||||
<p>Tu oscuridad no la temo<br />
|
||||
porque sé que no está vacía,<br />
|
||||
sino repleta de anomalías<br />
|
||||
que aún no llego a comprender.</p>
|
||||
|
||||
<p>Concédeme ser una estrella en tu cielo.<br />
|
||||
Un granito en la galaxia que ilumina la noche.<br />
|
||||
Concédeme estar contigo para siempre<br />
|
||||
en ese reino de paz y consistencia.</p>
|
||||
|
||||
<h2 id="marys-eukaristia" >Mary's Eukaristia</h2>
|
||||
<p>Oh Mary, oh holy Mother, who knows our Lord so well.<br />
|
||||
How did it feel to keep Him in your womb, so close to your heart?<br />
|
||||
Were you sad when you had birthed Him, that He had exited from your belly?<br />
|
||||
(Or) did you rejoice as you could finally hold Him in your arms?<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.</p>
|
||||
|
||||
<p>Oh Mary, oh holy Mother, who accompanied our Lord in His Passion.<br />
|
||||
How did you endure the horror of seeing your Son suffer?<br />
|
||||
Yet, despite the pain that it caused in your heart, you did not look away.<br />
|
||||
What sorrow you must have felt, your baby boy lying dead in your arms.<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.</p>
|
||||
|
||||
<p>Oh Mary, oh holy Mother, who had faith in the glorious resurrection of our Lord.<br />
|
||||
How great was your joy when the Good News spread like a shining light!<br />
|
||||
Your face illuminated with a smile that cannot be contained.<br />
|
||||
How wonderful did it feel, your Son on your tongue, as He returned to your belly, from whence He came?<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.</p>
|
||||
|
||||
<p>Amen.</p>
|
||||
|
||||
<h2 id="mi-aportacion" >Mi Aportación</h2>
|
||||
<p>Cuando te ignoraba, Señor,<br />
|
||||
no te olvidabas de mí.<br />
|
||||
Cuando erraba, Señor,<br />
|
||||
me intentaste corregir.<br />
|
||||
Al arrepentirme, Señor,<br />
|
||||
tuviste misericordia de mí.</p>
|
||||
|
||||
<p>Yo soy un inmerecido<br />
|
||||
de tu caridad y tu amor.<br />
|
||||
Que aunque yo no te de nada<br />
|
||||
me das todo lo que preciso.<br />
|
||||
¿Cómo puedo yo pagar<br />
|
||||
mi deuda contigo?</p>
|
||||
|
||||
<p>Tratar a mis hermanos<br />
|
||||
con caridad y amor.<br />
|
||||
Mostrarles la misma misericordia<br />
|
||||
que mostraste ante mi rebelión.<br />
|
||||
Corregirles fraternalmente<br />
|
||||
pensando en su salvación.</p>
|
||||
|
||||
<p>Aun no es suficiente,<br />
|
||||
pero es mi aportación.</p>
|
||||
|
||||
<?php
|
||||
require "templates/footer.php"
|
||||
?>
|
3
src/poetry/001-mi-aportacion.cfg.php
Normal file
3
src/poetry/001-mi-aportacion.cfg.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$title = "Mi aportación";
|
||||
?>
|
43
src/poetry/001-mi-aportacion.html.php
Normal file
43
src/poetry/001-mi-aportacion.html.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
require "001-mi-aportacion.cfg.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
|
||||
<div class="poem" >
|
||||
<p>
|
||||
Cuando te ignoraba, Señor,<br />
|
||||
no te olvidabas de mí.<br />
|
||||
Cuando erraba, Señor,<br />
|
||||
me intentaste corregir.<br />
|
||||
Al arrepentirme, Señor,<br />
|
||||
tuviste misericordia de mí.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Yo soy un inmerecido<br />
|
||||
de tu caridad y tu amor.<br />
|
||||
Que aunque yo no te de nada<br />
|
||||
me das todo lo que preciso.<br />
|
||||
¿Cómo puedo yo pagar<br />
|
||||
mi deuda contigo?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Tratar a mis hermanos<br />
|
||||
con caridad y amor.<br />
|
||||
Mostrarles la misma misericordia<br />
|
||||
que mostraste ante mi rebelión.<br />
|
||||
Corregirles fraternalmente<br />
|
||||
pensando en su salvación.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Aun no es suficiente,<br />
|
||||
pero es mi aportación.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
require "templates/footer.php"
|
||||
?>
|
3
src/poetry/002-concedeme-un-deseo.cfg.php
Normal file
3
src/poetry/002-concedeme-un-deseo.cfg.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$title = "Concédeme un deseo";
|
||||
?>
|
45
src/poetry/002-concedeme-un-deseo.html.php
Normal file
45
src/poetry/002-concedeme-un-deseo.html.php
Normal file
@ -0,0 +1,45 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
require "002-concedeme-un-deseo.cfg.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
<div class="poem" >
|
||||
<p>
|
||||
Cielo de la noche,<br />
|
||||
belleza como la mujer celeste.<br />
|
||||
Brillo de estrellas lejanas<br />
|
||||
fuegos violentos y tranquilos.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Tu consistencia me alivia<br />
|
||||
de los vientos turbulentos.<br />
|
||||
Con los cambios más mínimos<br />
|
||||
como para captar mi imaginación.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
¿Cuántos misterios guardas?<br />
|
||||
¿Tantos como el Libro del Amor?<br />
|
||||
¿Cuántas luces tienes<br />
|
||||
que brillan como el sol?
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Tu oscuridad no la temo<br />
|
||||
porque sé que no está vacía,<br />
|
||||
sino repleta de anomalías<br />
|
||||
que aún no llego a comprender.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Concédeme ser una estrella en tu cielo.<br />
|
||||
Un granito en la galaxia que ilumina la noche.<br />
|
||||
Concédeme estar contigo para siempre<br />
|
||||
en ese reino de paz y consistencia.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
require 'templates/footer.php';
|
||||
?>
|
3
src/poetry/003-marys-eukaristia.cfg.php
Normal file
3
src/poetry/003-marys-eukaristia.cfg.php
Normal file
@ -0,0 +1,3 @@
|
||||
<?php
|
||||
$title = "Mary's Eukaristia";
|
||||
?>
|
39
src/poetry/003-marys-eukaristia.html.php
Normal file
39
src/poetry/003-marys-eukaristia.html.php
Normal file
@ -0,0 +1,39 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
require "003-marys-eukaristia.cfg.php";
|
||||
require "templates/header.php";
|
||||
?>
|
||||
|
||||
<div class="poem" >
|
||||
<p>
|
||||
Oh Mary, oh holy Mother, who knows our Lord so well.<br />
|
||||
How did it feel to keep Him in your womb, so close to your heart?<br />
|
||||
Were you sad when you had birthed Him, that He had exited from your belly?<br />
|
||||
(Or) did you rejoice as you could finally hold Him in your arms?<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Oh Mary, oh holy Mother, who accompanied our Lord in His Passion.<br />
|
||||
How did you endure the horror of seeing your Son suffer?<br />
|
||||
Yet, despite the pain that it caused in your heart, you did not look away.<br />
|
||||
What sorrow you must have felt, your baby boy lying dead in your arms.<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Oh Mary, oh holy Mother, who had faith in the glorious resurrection of our Lord.<br />
|
||||
How great was your joy when the Good News spread like a shining light!<br />
|
||||
Your face illuminated with a smile that cannot be contained.<br />
|
||||
How wonderful did it feel, your Son on your tongue, as He returned to your belly, from whence He came?<br />
|
||||
Oh Mary, oh holy Mother, teach me how to receive your Son.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
Amen.
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<?php
|
||||
require 'templates/footer.php';
|
||||
?>
|
35
src/poetry/index.html.php
Normal file
35
src/poetry/index.html.php
Normal file
@ -0,0 +1,35 @@
|
||||
<?php
|
||||
require "config.php";
|
||||
|
||||
$title = "Poetry";
|
||||
$description = "A collection of some of my poems.";
|
||||
$keywords = "poetry, religion, catholicism";
|
||||
|
||||
require "templates/header.php";
|
||||
?>
|
||||
|
||||
<p>I'm not truly super into writing poetry, or reading it for that
|
||||
matter, but every now and then I do like to read certain special poems,
|
||||
and even write some poetry of my own. That being said, it's truly not
|
||||
all that different from writing song lyrics. I guess my point is don't
|
||||
expect much.</p>
|
||||
|
||||
<ul>
|
||||
<?php
|
||||
$dir_files = scandir(dirname(__FILE__), SCANDIR_SORT_DESCENDING);
|
||||
foreach($dir_files as $file_info) {
|
||||
if(!str_ends_with($file_info, ".cfg.php") or str_starts_with($file_info, "draft_"))
|
||||
continue;
|
||||
|
||||
require dirname(__FILE__) . "/" . $file_info;
|
||||
$post_url = str_replace(".cfg.php", "", $file_info);
|
||||
?>
|
||||
<li><a href="<?= $post_url ?>" ><?= $title ?></a></li>
|
||||
<?php
|
||||
}
|
||||
?>
|
||||
</ul>
|
||||
|
||||
<?php
|
||||
require "templates/footer.php"
|
||||
?>
|
4
src/robots.txt
Normal file
4
src/robots.txt
Normal file
@ -0,0 +1,4 @@
|
||||
User-agent: *
|
||||
Disallow: /contact
|
||||
Disallow: /docs
|
||||
Disallow: /imgs
|
@ -87,6 +87,10 @@ footer {
|
||||
border-top: 1px solid;
|
||||
}
|
||||
|
||||
div.poem p {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
ol.refs {
|
||||
padding-left: 5px;
|
||||
}
|
||||
@ -122,11 +126,11 @@ sup {
|
||||
line-height: 80%;
|
||||
}
|
||||
|
||||
figure {
|
||||
/*margin: 0 auto 0 auto;*/
|
||||
/*text-align: center;*/
|
||||
/*width: 65%;*/
|
||||
}
|
||||
/*figure {
|
||||
margin: 0 auto 0 auto;
|
||||
text-align: center;
|
||||
width: 65%;
|
||||
}*/
|
||||
|
||||
figcaption {
|
||||
font-size: 14px;
|
||||
|
@ -19,10 +19,10 @@
|
||||
<nav>
|
||||
<a href="/" >Home</a>
|
||||
<a href="/blog/" >Blog</a>
|
||||
<a href="/poetry.html" >Poetry</a>
|
||||
<a href="/poetry/" >Poetry</a>
|
||||
<a href="https://code.ortegas.org/nortega/" >Code</a>
|
||||
<a href="https://odysee.com/@nortega:7?r=FnizT7ACmJrTdw6HQJxAVGgFcHGN6oFy&sunset=lbrytv" >Videos</a>
|
||||
<a href="/contact.html" >Contact</a>
|
||||
<a href="/contact" >Contact</a>
|
||||
</nav>
|
||||
<main>
|
||||
<h1 class="page-title" ><?= $title ?> - <?= $created ?></h1>
|
||||
|
@ -19,10 +19,10 @@
|
||||
<nav>
|
||||
<a href="/" >Home</a>
|
||||
<a href="/blog/" >Blog</a>
|
||||
<a href="/poetry.html" >Poetry</a>
|
||||
<a href="/poetry/" >Poetry</a>
|
||||
<a href="https://code.ortegas.org/nortega/" >Code</a>
|
||||
<a href="https://odysee.com/@nortega:7?r=FnizT7ACmJrTdw6HQJxAVGgFcHGN6oFy&sunset=lbrytv" >Videos</a>
|
||||
<a href="/contact.html" >Contact</a>
|
||||
<a href="/contact" >Contact</a>
|
||||
</nav>
|
||||
<main>
|
||||
<h1><?= $title ?></h1>
|
||||
|
Reference in New Issue
Block a user