22 Commits

Author SHA1 Message Date
4918558893 Tweak styles to make things work nicely with "page-looking things"
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-22 23:22:24 -07:00
25f8e31fd3 Finish draft
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-22 22:48:12 -07:00
f92b8bcab1 Add initial draft of Pynchon before repurposing
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-22 21:01:11 -07:00
98e2e7da6c Update theme with i18n stuff
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-19 17:55:47 -07:00
f57e3d370b Bump theme version
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-19 17:06:51 -07:00
8795003ce7 Fix submodule links in SPA part 6 which got out of sync with the code
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-19 17:05:43 -07:00
487681df16 Move bergamot.css and writing.css into theme
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-18 22:11:44 -07:00
51964e1d9f Add fingerprinting and integrity to custom CSS
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-18 21:46:58 -07:00
3695dd561f Update theme
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-18 21:36:15 -07:00
38ae57792a Move files into new Hugo format 2026-05-18 21:01:15 -07:00
0b9612f138 Tweak config.toml and .gitignore per Codex's suggestions
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-18 21:00:39 -07:00
ffca10f447 Update theme
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-12 22:05:23 -07:00
e1efe0f406 Update theme and add thumbnails where available
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-05-06 18:57:32 -07:00
99c9890c99 Remove explicit 'type' since it's set by convention
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-23 16:43:38 -07:00
98c91dd643 Update theme
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-19 00:37:19 -07:00
73f8c787c9 Merge all writing layouts into a single one
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-19 00:17:33 -07:00
4a29854f7b Add descriptions to the void and spiders. 2026-04-18 23:49:14 -07:00
ac3804530c Add custom style for spirits. 2026-04-18 23:48:09 -07:00
8b9886cc8f Finalize draft of spirits 2026-04-18 23:46:12 -07:00
d672464de8 Add first complete draft
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-18 22:30:21 -07:00
bcca964381 Add initial draft of spirits
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-18 11:09:47 -07:00
bd10207cd2 Add missing images
Signed-off-by: Danila Fedorin <danila.fedorin@gmail.com>
2026-04-05 16:23:45 -07:00
49 changed files with 504 additions and 285 deletions

5
.gitignore vendored
View File

@@ -1 +1,6 @@
**/build/* **/build/*
.DS_Store
/.hugo_build.lock
/.hugo_cache/
/public/
/resources/

View File

@@ -1,174 +0,0 @@
@import "variables.scss";
@import "mixins.scss";
.bergamot-exercise {
counter-increment: bergamot-exercise;
.bergamot-root {
border: none;
padding: 0;
margin-top: 1em;
}
.bergamot-exercise-label {
.bergamot-exercise-number::after {
content: "Exercise " counter(bergamot-exercise);
font-weight: bold;
text-decoration: underline;
}
}
.bergamot-button {
@include bordered-block;
padding: 0.25em;
padding-left: 1em;
padding-right: 1em;
background-color: inherit;
display: inline-flex;
align-items: center;
justify-content: center;
transition: 0.25s;
font-family: $font-body;
@include var(color, text-color);
&.bergamot-hidden {
display: none;
}
.feather {
margin-right: 0.5em;
}
}
.bergamot-play {
.feather { color: $primary-color; }
&:hover, &:focus {
.feather { color: lighten($primary-color, 20%); }
}
}
.bergamot-reset {
.feather { color: #0099CC; }
&:hover, &:focus {
.feather { color: lighten(#0099CC, 20%); }
}
svg {
fill: none;
}
}
.bergamot-close {
.feather { color: tomato; }
&:hover, &:focus {
.feather { color: lighten(tomato, 20%); }
}
}
.bergamot-button-group {
margin-top: 1em;
}
}
.bergamot-root {
@include bordered-block;
padding: 1em;
.bergamot-section-heading {
margin-bottom: 0.5em;
font-family: $font-body;
font-style: normal;
font-weight: bold;
font-size: 1.25em;
}
.bergamot-section {
margin-bottom: 1em;
}
textarea {
display: block;
width: 100%;
height: 10em;
resize: none;
}
input[type="text"] {
width: 100%;
@include textual-input;
}
.bergamot-rule-list {
display: flex;
flex-direction: row;
flex-wrap: wrap;
justify-content: center;
}
.bergamot-rule-list katex-expression {
margin-left: .5em;
margin-right: .5em;
flex-grow: 1;
flex-basis: 0;
}
.bergamot-rule-section {
.bergamot-rule-section-name {
text-align: center;
margin: 0.25em;
font-weight: bold;
}
}
.bergamot-proof-tree {
overflow: auto;
}
.bergamot-error {
@include bordered-block;
padding: 0.5rem;
border-color: tomato;
background-color: rgba(tomato, 0.25);
margin-top: 1rem;
}
.bergamot-selector {
button {
@include var(background-color, background-color);
@include var(color, text-color);
@include bordered-block;
padding: 0.5rem;
font-family: $font-body;
border-style: dotted;
&.active {
border-color: $primary-color;
border-style: solid;
font-weight: bold;
}
&:not(:first-child) {
border-bottom-left-radius: 0;
border-top-left-radius: 0;
}
&:not(:last-child) {
border-bottom-right-radius: 0;
border-top-right-radius: 0;
border-right-width: 0;
}
}
button.active + button {
border-left-color: $primary-color;
border-left-style: solid;
}
margin-bottom: 1rem;
}
.bergamot-no-proofs {
text-align: center;
}
}

View File

@@ -1,47 +0,0 @@
@import "variables.scss";
body {
background-color: #1c1e26;
--text-color: white;
font-family: $font-code;
}
h1, h2, h3, h4, h5, h6 {
text-align: left;
font-family: $font-code;
}
h1::after {
content: "(writing)";
font-size: 1rem;
margin-left: 0.5em;
position: relative;
bottom: -0.5em;
color: $primary-color;
}
nav .container {
justify-content: flex-start;
a {
padding-left: 0;
margin-right: 1em;
}
}
.header-divider {
visibility: hidden;
}
hr {
height: auto;
border: none;
&::after {
content: "* * *";
color: $primary-color;
font-size: 2rem;
display: block;
text-align: center;
}
}

View File

@@ -1,7 +1,5 @@
baseURL = "https://danilafe.com" baseURL = "https://danilafe.com"
theme = "vanilla" theme = "vanilla"
pygmentsCodeFences = true
pygmentsUseClasses = true
summaryLength = 20 summaryLength = 20
defaultContentLanguage = 'en' defaultContentLanguage = 'en'
@@ -22,6 +20,9 @@ defaultContentLanguage = 'en'
home = ["html","rss","toml"] home = ["html","rss","toml"]
[markup] [markup]
[markup.highlight]
codeFences = true
noClasses = false
[markup.tableOfContents] [markup.tableOfContents]
endLevel = 4 endLevel = 4
ordered = false ordered = false

View File

@@ -130,7 +130,7 @@ by one, leading to another `suc n` in the final type. This makes sense because i
Here's my definition of `Graph`s written using `Fin`: Here's my definition of `Graph`s written using `Fin`:
{{< codelines "Agda" "agda-spa/Language/Graphs.agda" 24 39 >}} {{< codelines "Agda" "agda-spa/Language/Graphs.agda" 23 38 >}}
I explicitly used a `size` field, which determines how many nodes are in the I explicitly used a `size` field, which determines how many nodes are in the
graph, and serves as the upper bound for the edge indices. From there, an graph, and serves as the upper bound for the edge indices. From there, an
@@ -176,7 +176,7 @@ we will connect each of the outputs of one to each of the inputs of the other.
This is defined by the operation `g₁ ↦ g₂`, which sequences two graphs `g₁` and `g₂`: This is defined by the operation `g₁ ↦ g₂`, which sequences two graphs `g₁` and `g₂`:
{{< codelines "Agda" "agda-spa/Language/Graphs.agda" 72 83 >}} {{< codelines "Agda" "agda-spa/Language/Graphs.agda" 71 82 >}}
The definition starts out pretty innocuous, but gets a bit complicated by the The definition starts out pretty innocuous, but gets a bit complicated by the
end. The sum of the numbers of nodes in the two operands becomes the new graph end. The sum of the numbers of nodes in the two operands becomes the new graph
@@ -238,7 +238,7 @@ operation when combining the sub-CFGs of the "if" and "else" branches of an
`if`/`else`, which both follow the condition, and both proceed to the code after `if`/`else`, which both follow the condition, and both proceed to the code after
the conditional. the conditional.
{{< codelines "Agda" "agda-spa/Language/Graphs.agda" 59 70 >}} {{< codelines "Agda" "agda-spa/Language/Graphs.agda" 58 69 >}}
Everything here is just concatenation; we pool together the nodes, edges, Everything here is just concatenation; we pool together the nodes, edges,
inputs, and outputs, and the main source of complexity is the re-indexing. inputs, and outputs, and the main source of complexity is the re-indexing.
@@ -250,12 +250,12 @@ from the graph for `while` loops I showed above; the reason for that is that
I currently don't include the conditional expressions in my CFG. This is a I currently don't include the conditional expressions in my CFG. This is a
limitation that I will address in future work. limitation that I will address in future work.
{{< codelines "Agda" "agda-spa/Language/Graphs.agda" 85 95 >}} {{< codelines "Agda" "agda-spa/Language/Graphs.agda" 84 94 >}}
Given these thee operations, I construct Control Flow Graphs as follows, where Given these thee operations, I construct Control Flow Graphs as follows, where
`singleton` creates a new CFG node with the given list of simple statements: `singleton` creates a new CFG node with the given list of simple statements:
{{< codelines "Agda" "agda-spa/Language/Graphs.agda" 122 126 >}} {{< codelines "Agda" "agda-spa/Language/Graphs.agda" 121 125 >}}
Throughout this, I've been liberal to include empty CFG nodes as was convenient. Throughout this, I've been liberal to include empty CFG nodes as was convenient.
This is a departure from the formal definition I gave above, but it makes This is a departure from the formal definition I gave above, but it makes

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 471 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 132 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 134 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 187 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 110 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 265 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 68 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 287 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

View File

@@ -1,7 +1,10 @@
--- ---
title: "On Spiders" title: "On Spiders"
date: 2026-03-22T01:03:00-05:00 date: 2026-03-22T01:03:00-05:00
type: onspiders description: "Whenever I stay still, I feel the spiders weave their webs around me."
custom_css:
- style.scss
body_start_partial: "spiderweb.html"
--- ---
``` ```

View File

@@ -0,0 +1,144 @@
---
title: "Everything's Touch"
date: 2026-05-14T18:01:27-07:00
draft: true
custom_css:
- style.scss
---
{{< halfpage >}}
## Everything's Touch
"Do you guys have any deuterium water?", he said to a baffled lab manager.
"You know, heavy water?"
"No... We don't have that...". She didn't recognize him as a student.
"Do you know where I can get some?", continued his barrage of questions,
"What's a good chemical company? How do I go about ordering heavy water from them?"
What could this guy possibly have to do with heavy water? Why is he so determined?
When he finally turned and left empty-handed, she breathed a sigh of relief.
Until, that is, another man arrived and made the same request: he wanted heavy water.
Again, the lab manager refused him. For the rest of the day, she had
a knot in her stomach. Having failed once, in order to remain under the radar,
had some shadowy cabal switched representatives, and tried again to attain
their goal?
Uneasy still the lab manager had dinner, opening YouTube™ on her phone to pass
the time. On the front page, a video was waiting for her: "the ice cube
is too heavy!". When frozen, you see, heavy water sinks instead of floating.
There was no plot. Two men, having both seen this video, had independently
decided to replicate the trick. On the same day, believing it was their
free will, they visited the same lab and spoke to the same lab manager.
They felt the touch.
---
> Roland too became conscious of the wind, as his mortality had never allowed him.
> Discovered it so. ...so joyful, that the arrow must veer into it.
>
> -- Thomas Pynchon, *Gravity's Rainbow*
Today, we live amidst an invisible ocean, but not in a physical sense;
its tides don't pull us out to sea or push us towards the shore; no
warm undercurrents alternate with cool water as we bob in the waves.
Standing on a hiking trail and looking out at the path ahead, the world
might look exactly as it had forty years ago. However, the ocean is
there, mediated by
{{< /halfpage >}}
{{< halfpage >}}
electromagnetism instead of fluid. Looking up at the sky,
nowadays we are reminded of this by the numerous hurtling dots delivering
the internet to practically every corner of the planet.
Reminded are we of its existence, too, when we hear it speak; when people talk
about Geese and Velvet Underground; when friends repeat nearly verbatim the
top post on /r/bald; when men show up to a teaching lab and ask for deuterium.
Sometimes, these ideas are deliberately planted. Sometimes, they are analogous
to your classic trends™. Sometimes, they just appear. An enormous behemoth
stirs deep beneath the waves, and we sway with the current.
---
> If it is in working order, what is it meant to do? The engineers
> who built it . . . never knew there were any further steps to be taken.
> Their design was "finalized", and they could forget it.
>
> -- Thomas Pynchon, *Gravity's Rainbow*
In _The Age of Surveillance Capitalism_, Shoshana Zuboff
powerfully reframes the actions of tech giants like Google
from the perspective of _behavioral surplus_. Google
and Meta's gluttony for traffic patterns, written sentiment, satellite data,
identified faces seen by smart glasses, all of it is the endless hunger of an
influence-machine. Zuboff decries the "priests of the shadow texts",
Skinnerian manipulators bent on seizing human agency for utopian or,
more likely, capitalistic ends.
I don't think that's the whole picture.
The surveillance-manipulation machine, running at incredible scale and
nudging us every moment we search or share or scroll, is ultimately
unconcerned with truth. Truth is secondary to human behavior. While it
reaches and connects a double-digit percentage of the world's population,
the machine lacks any constraint or fundamental purpose beyond engagement.
It's driven by unfathomably large probabilistic models entangled through
several orders of interactions with other models.
This enormous amalgamation, joined nowadays by (probably) well-intentioned
and only-moderately-grounded-in-reality AI™ agents™, is armed with state-of-the-art
tools and unprecedented influence. With "engagement" its only loose target,
it ceaselessly perturbs our daily thoughts like Maxwell's demon. Whole
cliques of people revisit old shows, "discover" a new band, and try Science™.
{{< /halfpage >}}
{{< halfpage >}}
---
Among _Gravity's Rainbow_'s
numerous subjects and themes is an intricate and densely
connected network of markets, influences, and hidden agendas that overlays
the political conflicts of World War 2. Individuals pursued their own economic
gains; dealers replaced cocaine with powdered milk; Phoebus intentionally limited
the lifetimes of lightbulbs; a man dressed like a Rocket smuggled hash past
an international gathering on behalf of one Sour Bummer. All of this, though, the whole system, took
on the life of its own: it was the Rocket-state. It acted in ways that were
inscrutable, mysterious, and yet behind which, in moments of panic or paranoia,
one could suspect intent.
The Rocket-state, as Pynchon described it, may or may not have existed.
It certainly does not exist today. However, beyond Zuboff's cycle of
dispossession, beyond the powerful surveillance state exposed by Snowden,
today lies the Attention-state. It is the entity stirring occasionally under
the surface of the internet's ocean.
I think this is the missing piece. Yes, Google and Meta are selling your
Gmail inbox's contents to the highest bidder. Yes, the US government is
in on this. Yeah, Meta's Ray-Bans™ are going to be cataloguing every face
you encounter on the street, and yeah, the age verification laws are probably
going to be used to further associate your identity with the rest of
your data point-cloud. But these are just glimpses of the larger system.
Those "priests of the shadow texts" are like GR's Freemasons: they perform
the rituals, but the magic is elsewhere.
This is the closest we've ever been to a truly "unified consciousness".
We've built ourselves a noosphere, but it's not what we thought it would
be. It's not _just_ the "world at our fingertips".
It's not entirely a reflection of human minds. There is an impurity,
an additional active force that decides which whispers are carried across
the ocean and which shouts succumb to the inverse-square law.
There it sits, this impurity, mixed in with most human knowledge, with the
immediate awareness of nearly every event as it occurs in most of the developed
world. It coats our facts like film, and when an acquaintance hands you
his packaged opinion, it remains in his handprints, and your heart sinks
like deuterium ice.
{{< /halfpage >}}

View File

@@ -0,0 +1,93 @@
@import "variables.scss";
@import "margin.scss";
body {
text-align: left;
background-color: white;
color: black;
/* reset to light mode */
@each $varName, $varDefault in $css-vars {
--#{$varName}: #{$varDefault};
}
}
h1, h2, h3, h4, h5, h6 {
font-family: "Times New Roman"
}
h2 {
font-size: 18pt;
margin-bottom: 0.2in;
}
.warning {
max-width: $container-width;
}
.halfpage {
width: 5.5in;
height: 8.5in;
padding: 0.25in;
box-sizing: border-box;
border: $standard-border;
flex-shrink: 0;
margin: 0.25in;
h2 {
display: block;
}
@media screen and (max-width: 5.5in) {
width: auto;
height: auto;
margin: 0;
border-left: none;
border-right: none;
}
}
p {
margin-top: 0;
margin-bottom: 0.1in;
}
html .container {
max-width: 12in;
position: static;
&:not(main) {
@include below-two-margins {
padding: 0 $container-min-padding 0 $container-min-padding;
}
}
}
main.container {
font-family: "Times New Roman";
font-size: 12pt;
line-height: 14pt;
display: flex;
box-sizing: border-box;
flex-wrap: wrap;
justify-content: left;
& > h2 {
display: none; /* copied title is on the page */
}
@media screen and (max-width: 5.5in) {
display: block;
}
@media screen and (max-width: 12in) {
justify-content: center;
}
}
hr {
padding-top: 0.1in;
padding-bottom: 0.1in;
line-height: 0.1in;
}

View File

@@ -0,0 +1,207 @@
---
title: "Persistence of Vision"
date: 2026-04-18T23:26:00-07:00
description: "Humid air swirls with colorful spirits."
custom_css:
- style.scss
---
Humid air swirls with colorful spirits. They trace its invisible currents
in spirals through open spaces, cling to branches, drip down stone faces
and, awakened by the first beams of the rising sun, ooze newly out of trees
like sap. Lulls of wind leave them gliding gently downward to be picked up
again. From a distance, eddies of the spirits' malleable confetti travel
along plains. With translucent jellylike hands and fingers they wave at
each other in passing or hold each other in breeze-perturbed waltzes. Big
luminescent white eyes take in with wonder and awe the only day they are
ever to see.
Among them, Hex. An exception within the colorful milieu, he remembers, if
vaguely, the mornings that precede this one. He feels an unbroken thread
of identity dissolved somewhere within his red-pink body.
Spirits disappear at
dusk, bursting like soap bubbles while the last rays of the setting sun
still caress from behind horizon-clouds the darkening sky. They are born
each day, leaping with passing fish out of streams and accumulating in
drops of dew. An apple doesn't fall far from the tree, and a spirit from
its genitive landscape. Again and again Hex encounters similar motifs.
Take Molly, who hangs now with Hex from a grapevine, the both of them agitated
by the wind resembling pennants on some carnival string. The
first Molly he met, who serves now for him as a departure point for a whole
lineage of kindred spirits, was a deep red: she was born during a Fire.
That day, overburdened clouds covered the sky like dense wool and
unleashed after much unwanted loitering their promised downpour and
lightning. Flames spread quickly through the birch forest beneath. The
Fire raged for days, sucking in the surrounding atmosphere its gluttony
and spewing it upwards mingled with ash. A haze of purple, pink, orange
and yellow replaced the thunderclouds.
Hex was swept then by the Fire's incessant breath towards the birches.
Flames danced among charred silhouettes that used to be trees.
A great many spirits were being born, sizzling out of ember-glowing
stumps and erupting in geysers above the flickering dance to drift upwards
like hot-air balloons. Molly was among them.
They sat together on a ledge. His pink hand held hers. By some trick of
their geometry, the surrounding cliffs gave them refuge from the wind. Hex
sensed for what felt like the first time the weight of his body, a sort of
agency. He wanted Molly to understand. He kept stumbling, espousing one
flawed analogy after another, sketches of a painting that he didn't know
how to finish, unable to get across the _feeling_, no, "comfort" isn't
quite right, nor is "boldness", nor... She might have vaguely understood.
Molly herself wanted weightlessness; he saw the spark in
her eye when she talked of waking up in the arms of a great column of air,
carried up towards the ash-filled sky, one of the first that day to glimpse
the whole ball of the sun. She spoke heatedly of the warmth and excitement,
but also of the danger, of the many ways in which the Fire was capable of
reclaiming the lives it just spawned. That's what she was doing, her face
lit from behind him by the setting sun, when the first Molly popped out
of existence.
For days the Fire and its remnants precipitated reddish spirits among whom
Hex often heard tales of burning, rising, destruction. Thoughts
of the Fire were in the air, exchanged by passerby spirits carried in
currents for brief moments along similar trajectories. He found a Molly
and reminded her of the day before, and saw that same spark in her
eyes. They spent that day rolling like tumbleweeds through a nearby valley,
talking in voices oscillating with their rotation.
Recent days replaced the dying Fire with anxious winds. Though the sun at times
still paints fields white-gold and turns trees' leaves to verdant haloes,
the air feels heavy. Newborn spirits are a deep blue. Molly's latest iteration
is an iridescent cornflower-cyan. Words that used to evoke in her a subtle smile,
imagery that resonated with her, things that Hex has long since learned to
sprinkle into their chats to see her light up --- all this seems now to have lost
its potency. A knot forms in his stomach at the swelling thought that soon he
will have nothing to say at all.
It's the wind. It strengthens even now, augmented with dust, fragments
of bark, torn leaves, fireflies. Dark clouds in the distance turn in circles
on a pillow of rain-streak straw. Colored spirit-dots rush with helpless
violence on the horizon. The storm draws nearer.
They talk --- Hex still clumsily searching for words --- but it is becoming
harder and harder to hear. The sky is polluted at first by pioneering clouds,
then enveloped completely. The sun is shut out. The rain, not straw anymore
but billowing sheets, beats against their faces. There is no way to see
and speak except by facing away from this relentless onslaught. Water runs
in miniature rivers down their faces. Their hands tightly grip their
anchor-vine.
Hex goes first. Slapped in the face with surprising force by a flying branch,
he loses his grip and is carried immediately downwind. Molly grabs him
with dexterity but halves thereby her own hold on the branch and mere
seconds later is dislodged herself. The two cling to each other for a few
moments before impacting rock and bouncing in different directions.
Having joined the assembly of dislodged detritus Hex tumbles upwards.
Ground alternates with sky in his vision, interspersed occasionally with
glimpses of Molly's cyan. In a customary spirit gesture he reaches out his
hands for something to grab but finds nothing but raindrops and hail. All
the while he accelerates towards the clouds, his gravity bizarrely
inverted; precipitation and debris increasingly obscure ground. At
breakneck speed a yellow spirit beaten to foam whizzes past him to collide
into a wind-blue byflyer in a pine explosion spewing polychrome droplets.
The newly-acquainted pair exchange introductions that Hex can't make out
over a deafening howling.
With each crazed revolution around his axis he glances heavier objects in
his vicinity. An entire birch, a survivor of the Fire unceremoniously
uprooted by the Wind, scoops him with its willowy fingers and finally
dilutes his momentum. The act of moving his head reacquires its familiar
meaning. Hex dares to look around. Searchlight sunbeams pierce blackened
clouds in rapid sweeps; lightning retaliates against the incursions in
blinding, sprawling nets. Glimpses of brown flicker behind dense clouds
and curtains of rain. Its orderly guidance of gravity and sunlight
replaced by disagreeing gusts, a new forest orbiting an unseen center
points in all directions at once. There is no sign of Molly.
Above is indistinguishable now from below, and left from right. Directions
other than _inward_ lose their meanings. Inward too flies Hex's
birch-mount, and he with it. Lightning-lit glimpses of brown stretch
finally into a continuous window.
A vast beige clot levitates among the clouds, its colossal mass allowing
it the luxury of unshakeable inertia. Dozens of armlike appendages
protrude from its core, enormous in size compared to a single spirit's but
spindly relative to the whole. A meteor of pine still engaged in
conversation impacts the planetoid, sending a ripple through its body and
forming a crown that is pulled as if by surface tension into a crater that
rapidly narrows into nothing. A green band lingers on the giant's surface,
then assimilates into the whole.
The colossus endlessly speaks. Its low voice rumbles in competition with
thunder. Hex is shaking either in feverish terror or in resonance
with the creature's speech. "`nonlinear turbulence approximated with
a third-order term,`" it espouses in a choral superposition of
spirit-voices, "`a butterfly with no wing scales climbs yet towards the
cosmos`". Then suddenly a flash of lucidity: "`selena, the wind, the
wind's everywhere...`". In the pauses between its phrases and words,
a rebellious mutter of overlapping conversations reasserts itself only to
drown again in the giant's estimation of language. Its arm grasp the air
in that same customary gesture but there is an uncanniness to their
movement; Hex can't help but suspect that the intent behind them is
entirely alien.
With a sluggish wave "hello" towards no-one in particular, the giant sends
Hex's tree into a new spiral just as the cycles of sunbeams all arrive at
their individual troughs. The darkness drops again. The world spins
dizzyingly around him while he clutches desperately for stability. When
his vessel rights itself again, veering through some aerodynamic mystery
into a semblance of stability, he listens once more to the colossus'
endless tirade. At some point it must have given way to thunder. Specks of
brown flicker in the distance. A spot of cornflower bobs nearby.
Molly rides unsteadily on her own arborous steed. She has already spotted
him, and waves excitedly, then reaches out her hand. It is now or never.
Hex plants his feet on his birch, having finally found his sea legs in the
atmospheric ocean. He feels his outwards-directed weight, tries to stand,
wobbles, tries again. At last he musters whatever spring his sloshing body
is capable of, and leaps.
The spring turns out more than sufficient; he arrives with momentum to
spare, grabbing Molly but dealing the final blow to her tentative hold on
her tree and setting them both once again at the storm's mercy. She smiles
and tries to speak, but he still can't hear. Hex wonders if she is
remembering the Fire's column that lifted her that first day above the
clouds. During his own birth, the flames had already cooled, but the hot
air's purposeful ascent was not unlike the storm's lateral tug. But wait,
he was born before Molly...
Their eternity suspended in the directionless void gives way. Features of
the landscape drift into view. Rain abates; clouds part. Lightning turns
to distant flashes in the corners of their eyes and thunder's rumble
fades. Still nearly weightless they remain swirling in the air until by
some trick of their geometry familiar cliffs cut off the wind altogether
and leave them to splash with their remaining speed into their ledge.
They sit together in silence. His red-pink hand holds hers. For some time,
they watch the landscape. Water drops from trees disturbed by wind as if
from green straggler clouds. The setting sun colors the clearing horizon
peach. The air is cool and crisp. Spirits form from pools of rainwater,
flow along streams, and point luminescent eyes in wonder at the departing
hurricane. An umber newborn's first words: "Magnificent! I just hope the
butterflies are safe." Another responds, "I'm glad the turbulence is dying
down".
Molly and Hex have not moved from where they were deposited by the last of
the storm's force, and this time he squints against sunlight that streams
from behind her.
"That was the strongest wind we've ever had! I'm glad I found you," Molly
says. "There was so much chaos, but you seemed _at ease_ in the end.
I guess it turned out pretty fun, but after all that floating, isn't it
good to have some _weight_ again?" He can tell she's hinting at something,
but he has no idea what that might be. Instead, he brings up the colossus
in the clouds. What is it like to think the melange of thoughts of all
spirits, each life enveloping the next like onion layers and tinting the
final image? When it speaks its words, does it know what it means?
Hex still can't find the right words. Molly saw the giant, but didn't
think too much of it. He wants her to feel the mystery, the awe, the
unease at its incomprehensible gestures. This is what he is doing, his
face lit from behind her by the setting sun, when Hex pops again out of
existence, leaving behind a gentle scent of soap.

View File

@@ -0,0 +1,25 @@
$color-muted-plum: #3d2b3d;
$color-ashy-orange: #4a3428;
$color-storm: darken(#1e2a3d, 5%);
html {
background-color: $color-storm;
}
body {
background-image: linear-gradient(
180deg,
$color-storm 0%,
$color-muted-plum 5%,
$color-ashy-orange 15%,
$color-storm 100%,
);
}
code {
background: none;
border: none;
padding: 0;
font-family: serif;
font-variant-caps: small-caps;
}

View File

@@ -1,7 +1,9 @@
--- ---
title: "Untitled Short Story" title: "Untitled Short Story"
date: 2024-08-01T20:31:18-07:00 date: 2024-08-01T20:31:18-07:00
type: thevoid description: "The Everpresent Void was first discovered at a children's birthday party."
custom_css:
- style.scss
--- ---
> I'm losing my edge to the art-school Brooklynites in little jackets and\ > I'm losing my edge to the art-school Brooklynites in little jackets and\

View File

@@ -1,5 +1,5 @@
{ {
"agda-spa": "https://dev.danilafe.com/DanilaFe/agda-spa/src/commit/828b652d3b9266e27ef7cf5a8a7fb82e3fd3133f", "agda-spa": "https://dev.danilafe.com/DanilaFe/agda-spa/src/commit/913121488069a20cdfd40777a8777eb3744c415e",
"aoc-2020": "https://dev.danilafe.com/Advent-of-Code/AdventOfCode-2020/src/commit/7a8503c3fe1aa7e624e4d8672aa9b56d24b4ba82", "aoc-2020": "https://dev.danilafe.com/Advent-of-Code/AdventOfCode-2020/src/commit/7a8503c3fe1aa7e624e4d8672aa9b56d24b4ba82",
"blog-static-flake": "https://dev.danilafe.com/Nix-Configs/blog-static-flake/src/commit/67b47d9c298e7476c2ca211aac5c5fd961637b7b", "blog-static-flake": "https://dev.danilafe.com/Nix-Configs/blog-static-flake/src/commit/67b47d9c298e7476c2ca211aac5c5fd961637b7b",
"compiler": "https://dev.danilafe.com/DanilaFe/bloglang/src/commit/137455b0f4365ba3fd11c45ce49781cdbe829ec3", "compiler": "https://dev.danilafe.com/DanilaFe/bloglang/src/commit/137455b0f4365ba3fd11c45ce49781cdbe829ec3",

View File

@@ -0,0 +1,4 @@
<svg class="spiderweb" viewBox="0 0 197.21727 106.16592">
{{ $spiderweb := resources.Get "svg/spiderweb.svg" | resources.Fingerprint }}
<use href="{{ $spiderweb.Permalink }}#mainlayer"></use>
</svg>

After

Width:  |  Height:  |  Size: 207 B

View File

@@ -0,0 +1,2 @@
{{ $style := resources.Get "scss/donate.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}">

View File

@@ -0,0 +1,2 @@
{{ $style := resources.Get "scss/gmachine.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}">

View File

@@ -0,0 +1,3 @@
<div class="halfpage">
{{ .Inner | markdownify }}
</div>

View File

@@ -0,0 +1,2 @@
{{ $style := resources.Get "scss/stack.scss" | css.Sass | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $style.Permalink }}" integrity="{{ $style.Data.Integrity }}">

View File

@@ -1,25 +0,0 @@
{{- /* Note: changing the baseof template because the title, tags, etc. of a regular post are still valid. */ -}}
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
{{- partial "head.html" . -}}
<body>
{{ $writingcss := resources.Get "scss/writing.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $writingcss.Permalink }}">
{{ $spidercss := resources.Get "scss/onspiders.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $spidercss.Permalink }}">
<svg class="spiderweb" viewBox="0 0 197.21727 106.16592">
<use href="{{ (resources.Get "svg/spiderweb.svg").Permalink }}#mainlayer"></use>
</svg>
{{- partial "header.html" . -}}
<div class="container"><hr class="header-divider"></div>
<main class="container">
{{- if .Draft -}}
{{- partial "warning.html" (i18n "postDraft") -}}
{{- end -}}
{{- block "main" . }}{{- end }}
</main>
{{- block "after" . }}{{- end }}
</body>
</html>

View File

@@ -1,2 +0,0 @@
{{ $style := resources.Get "scss/donate.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $style.Permalink }}">

View File

@@ -1,2 +0,0 @@
{{ $style := resources.Get "scss/gmachine.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $style.Permalink }}">

View File

@@ -1,2 +0,0 @@
{{ $style := resources.Get "scss/stack.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $style.Permalink }}">

View File

@@ -1,22 +0,0 @@
{{- /* Note: changing the baseof template because the title, tags, etc. of a regular post are still valid. */ -}}
<!DOCTYPE html>
<html lang="{{ .Site.Language.Lang }}">
{{- partial "head.html" . -}}
<body>
{{ $writingcss := resources.Get "scss/writing.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $writingcss.Permalink }}">
{{ $voidcss := resources.Get "scss/thevoid.scss" | css.Sass | resources.Minify }}
<link rel="stylesheet" href="{{ $voidcss.Permalink }}">
{{- partial "header.html" . -}}
<div class="container"><hr class="header-divider"></div>
<main class="container">
{{- if .Draft -}}
{{- partial "warning.html" (i18n "postDraft") -}}
{{- end -}}
{{- block "main" . }}{{- end }}
</main>
{{- block "after" . }}{{- end }}
</body>
</html>