Compare commits

..

3 Commits

Author SHA1 Message Date
33f73f81ed Pagination, feed update, slash pages 2025-12-13 17:25:52 -06:00
c5ce302fee Add now burning entries 2025-12-13 17:24:39 -06:00
843c9a09a4 New posts 2025-12-13 17:24:27 -06:00
26 changed files with 190 additions and 17 deletions

View File

@@ -2,8 +2,6 @@ TODO:
Investigate pagination for /blog/
Integrate recipe structured data for recipe type articles
Add "Now" to RSS feed.
Font Axes, Fraunces:
--------------------
opsz: 9-144 (Optical Size)

View File

@@ -172,7 +172,7 @@ export default {
iconURL: "/img/wafrn.svg",
},
],
weatherSymbol: "🍁",
weatherSymbol: "",
webrings: [
{
name: "Fediring",

View File

@@ -1,7 +1,7 @@
<section class="postlist microblog-list">
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
<div class="postlist-item-container">
{% for post in postslist | reverse %}
{% for post in postslist %}
<article class="postlist-item">
<div class="post-copy">

View File

@@ -0,0 +1,12 @@
{% set numPages = pagination.pages | length %}
{% if pagination.pageNumber > 0 %}
<a href="/{{ paginationRootDir }}/{% if pagination.pageNumber > 1%}page-{{ pagination.pageNumber }}/{% endif %}">
<button type="button">← Previous</button>
</a>
{% endif %}
{% if pagination.pageNumber < numPages - 1 %}
<a href="/{{ paginationRootDir }}/page-{{ pagination.pageNumber + 2 }}/">
<button type="button">{% if pagination.pageNumber == 0%}More{% else %}Next{% endif %} →</button>
</a>
{% endif %}

View File

@@ -1,7 +1,7 @@
<section class="postlist{% if postListTypeMicroblog %} microblogList{% endif %}">
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
<div class="postlist-item-container">
{% for post in postslist | reverse %}
{% for post in postslist %}
<article class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
{% if not postListTypeMicroblog %}

View File

@@ -3,10 +3,11 @@ layout: layouts/base.njk
title: Nathan Upchurch | AI
structuredData: none
---
# AI Statement
## Is AI used for this website?
Absolutely no prose, code, or image that comprises a part the content of this website, nor any code that comprises the website itself was generated from AI products, also known as 'ocean-boiling plagiarism machines'. You may rest assured that this will not change.
# AI
Certified generative AI hater here. This website and all content herein is 100% guaranteed AI slop free: code, prose images, music, et cetera.
[![Michael Scott from the US version of The Office shaking his head and saying Hmm, nope; don't like that.](/img/the-office-no.gif "#StopTheSlop")](/img/the-office-no.gif)
## AI Permissions
I do my utmost to ensure that my work is not hoovered wholesale and regurgitated by AI products by including an [ai.txt file](/ai.txt) and disallowing known crawlers in my [robots.txt file](/robots.txt), but just in case it will ever become meaningful in any legal sense, I'd like to make it clear here that I do not grant permission for any content on this website to be used as training data for any AI project, or for any portion of this website to be scraped by bots associated with AI projects.

7
content/blank/blank.md Normal file
View File

@@ -0,0 +1,7 @@
---
layout: layouts/base.njk
title: Nathan Upchurch | Blank
structuredData: none
---
This page was intentionally left blank.

View File

@@ -2,8 +2,15 @@
layout: layouts/base.njk
title: "The Stochastic Bletherist | The Personal Blog of Nathan Upchurch"
structuredData: none
postlistHeaderText: "Whats New:"
pagination:
data: collections.posts
generatePageOnEmptyData: true
size: 10
reverse: true
permalink: "blog/{% if pagination.pageNumber > 0 %}page-{{ pagination.pageNumber + 1 }}/{% endif %}index.html"
paginationRootDir: blog
---
{% if pagination.pageNumber == 0 %}
<h1>The Stochastic Bletherist</h1>
<p class="page-block nodropcap">
@@ -16,5 +23,25 @@ The personal blog of Nathan Upchurch, where he writes about everything from <a h
<button type="button">Blogroll »</button>
</a>
</p>
{% set postslist = collections.posts %}
<h2>Whats New:</h2>
{% else %}
<h1>The Stochastic Bletherist Blog</h1>
<p class="page-block nodropcap">
Writing about everything from <a href="/tags/storytime">personal stories</a> to <a href="/tags/gnu-linux">tech</a>, <a href="/tags/vegan-cooking">food</a>, and <a href="/tags/incense">incense</a>.<br />
<a href="/tags/">
<button type="button">Topics »</button>
</a>
<a href="../blogroll/">
<button type="button">Blogroll »</button>
</a>
</p>
<h2>More posts:</h2>
{% endif %}
{% set postslist = pagination.items %}
{% include "postslist.njk" %}
{% include "permalinkButtons.njk" %}

View File

@@ -0,0 +1,16 @@
---
title: "Incense Review: Faircense Vanille-Benzoe"
description: "Reviewing the Vanille-Benzoe incense sticks from Faircense."
date: 2025-12-13
tags:
- Incense
- Incense Review
synopsis: "Reviewing the Vanille-Benzoe incense sticks from Faircense."
mastodon_id: "115714827196492988"
---
These sticks appear to be made of masala hand-rolled onto a rather thick bamboo splint. The scent on the stick is fairly muted for an Indian-style stick. This usually indicates more of a reliance on whole-botanicals rather than oils and other concentrates. In the burn, the benzoin is very prominent, revealing a bit of that plastic note that benzoin can have at high percentages. There is a warm vanilla note also, but I wish it was stronger against the benzoin. I do tend to like vanilla incense, but vanilla really isn't the focus here: there's none of that tobacco and dried-fruit richness that can come with vanilla-forward sticks. I also detect something of a nutmeg, stale-cinnamon, and general baking-spice note, a play-doh note, and, although quiet, the scent of the rather thick burning splint that supports the masala.
The fragrance strength is reasonable; strong, but not so much that I can't share a room with it (although I do have the door open and the ceiling fan on low); the fragrance strength is probably on par with Tennendo's vanilla sticks. I prefer benzoin as a supporting player, so I don't know that I would choose to buy this stick myself, but I'm not mad at it either.
This stick was kindly sent to me by Irene of [rauchfahne.de](https://blog.rauchfahne.de/en/), whose review [can be found here](https://blog.rauchfahne.de/en/2024/08/24/pema-of-tibet-faircense-amber-vanille-benzoe-en).

View File

@@ -0,0 +1,17 @@
---
title: "Incense Review: PremaNature Amber Deluxe"
description: "Reviewing the Amber Deluxe incense sticks from PremaNature."
date: 2025-12-13
tags:
- Incense
- Incense Review
synopsis: "Reviewing the Amber Deluxe incense sticks from PremaNature."
mastodon_id: "115714827196492988"
---
These sticks appear to be made of a masala hand-rolled on a bamboo splint with a light dusting of wood powder. In the burn there is a prominent sandalwood fragrance that strikes me as very natural; it has that sort of mineral and/or metallic top-note that you find when putting exceptionally oily sandalwood chips on the heater. In the background I find a gentle barnyard animalic note that reminds me of gold ambergris. On top of this is a melange of bright white
floral, bergamot, and white musk notes that provide contrast and a light, complex, and gently fruity acidity to the sweet, woody base.
The stick projects plenty, but I haven't yet found the strength overwhelming even in my small apartment, currently hermetically sealed for another bitter Chicago winter. The brighter notes do tend to crawl into my nose and sit there, leaving a cooling sensation in my nostrils much like a menthol cigarette. This is usually a sign that the fragrance is far too strong, but I'm having such a nice time that I'm not apt to complain about it.
This stick was kindly sent to me by Irene of [rauchfahne.de](https://blog.rauchfahne.de/en/), whose review [can be found here](https://blog.rauchfahne.de/en/2025/10/11/premanature-amber-deluxe-en/). This stick was also reviewed [on Ratnagandh](https://ratnagandh.wordpress.com/2025/10/10/premanature-amber-deluxe/).

View File

@@ -4,6 +4,12 @@ title: Nathan Upchurch | Changelog
structuredData: none
---
# Changelog
* 2025-12-08
* Paginated [once-burned](/once-burned) and [blog](/blog).
* 2025-12-02
* Added [/ai](/ai) [slashpage](https://slashpages.net/) a la [the /ai 'manifesto'](https://www.bydamo.la/p/ai-manifesto).
* Added [/blank](/blank) [slashpage](https://slashpages.net/).
* Added [/referrals](/referrals) [slashpage](https://slashpages.net/).
* 2025-11-28
* Added styling for [guestbook](/guestbook) replies now that [the reply feature](https://codeberg.org/meadowingc/guestbooks/issues/25) is live.
* The [main RSS feed](/feed/feed.xml) now includes [now](/now) entries.

View File

@@ -0,0 +1,7 @@
---
title: Moon Waiting Cloud Lavender
manufacturer: Kunmeido
date: 2025-12-08 11:15:00
time: 11:15 AM
---

View File

@@ -0,0 +1,7 @@
---
title: Musk
manufacturer: "The Mothers Fragrances"
date: 2025-12-08 13:15:00
time: 1:15 PM
---

View File

@@ -0,0 +1,7 @@
---
title: Reiryokoh
manufacturer: Kunmeido
date: 2025-12-04 11:48:00
time: 11:48 AM
---

View File

@@ -0,0 +1,7 @@
---
title: Shirohato
manufacturer: Kyukyodo
date: 2025-12-04 09:47:00
time: 9:47 AM
---

View File

@@ -0,0 +1,7 @@
---
title: Suifu
manufacturer: Yamadamatsu
date: 2025-12-02 18:25:00
time: 6:25 PM
---
Holy hell this is an absolute camphor bomb!

View File

@@ -0,0 +1,7 @@
---
title: Sumire
manufacturer: Tennendo
date: 2025-12-02 17:39:00
time: 5:39 PM
---

View File

@@ -0,0 +1,7 @@
---
title: Vanille-Benzoe
manufacturer: Faircense
date: 2025-12-2 15:25:00
time: 3:25 PM
---

View File

@@ -0,0 +1,7 @@
---
title: White Cloud (Hakuun)
manufacturer: Shoyeido
date: 2025-12-01 12:12:00
time: 12:12 PM
---

View File

@@ -8,7 +8,7 @@ Not much of tremendous interest has been going on lately; I took the week off be
During this week off I've mostly been catching up on sleep debt, doing a little work on my website, and playing Far Cry 6, which I'm finally starting to get into. I've also plucked up the courage to start experimenting with absolutes in incense for certain notes that are difficult to impossible to achieve with whole-plants (at least by any method I'm aware of). I have started with Damask rose absolute; it's gorgeous, but not cheap by any means. This exercise is also helping me understand that when I eventually release a little incense for sale, it's likely going to have to be expensive. It's just a fact that in order to make high-quality natural incense, predominantly from whole-plant ingredients, you simply have to use baller aromatics. For instance, Damask rose absolute alone looks like it's going to add something like $0.50 *per gram* of incense, and that's not the half of it. I recently got my hands on some nice sandalwood (Santalum album) that costs just under $2.00 per gram. Of course, you can get a very nice Australian sandalwood (Santalum spicatum) for $0.03 per gram[^1], but that may or may not work for whatever fragrance you are trying to make. Don't get me started on agarwood. I was never going to be making commodity incense anyway, but this is a bit of a wake-up call. The experimentation was spurred by an extraordinary assortment of incense and aromatic samples kindly sent to me by Irene of [rauchfahne.de](https://blog.rauchfahne.de/en/) which included an oakmoss absolute alongside a sample of the lichen itself—very exciting as I've been dying to experiment with oakmoss. I also plan to mill some cultivated Cambodian agarwood "skins" into powder to see how it performs in combustible incense soon. I really hope this doesn't wind up being a waste of money!
I've been reading as well; I finally finished *The Peripheral,* which has taken me a very long time as I didn't find it to be the most engaging read. I found the oddly clipped dialogue for the American characters irritating, and the story hard to follow. Since, I've been reading an English translation of "From the New World[^2]" as I thought the anime was incredible. The prose isn't stunning, and it's an absolute exposition-fest, but I'm enjoying it anyway.
I've been reading as well; I finally finished *The Peripheral,* which has taken me a very long time as I didn't find it to be the most engaging read. I found the oddly clipped dialogue for the American characters irritating, and the story hard to follow. Since, I've been reading an English translation of *From the New World*[^2] as I thought the anime was incredible. The prose isn't stunning, and it's an absolute exposition-fest, but I'm enjoying it anyway.
As my baseline level of anxiety has fallen a bit this week, I realize that I have really needed some time to just mill about: free of obligation (for the most part). Life has been stressful lately; among other things, the building I'm renting in is being sold, so I'm almost certainly going to be leaving within the next year. The indignity of having strangers traipse through your home oohing and aahing, hemming and hawing about the place where you live is pretty hard to bear, so I'm glad that's over at least. I really don't know how people can do it: walking through someone's space thinking about what you'll do with it once you displace them, or imagining how much of their income you can reasonably get away with skimming because you have more money than they do. It's disgusting, anti-human behavior, and I think of every single one of the people who set foot in this house for this reason as a villain. The new owner (providing the sale goes through) says she intends to continue to rent the place out, but I know that the current rental income from the place won't cover the mortgage, so rent is going to have to increase dramatically even if this is true. The reason I moved here in the first place was for the cheap rent, so that's out the window. Some of the people who live downstairs have been here for a decade; and now they're going to be forced to leave the neighborhood they've been a part of for all of that time. The neighbors are selling too, horrible grey-brick condos are being built, and what was once a lovely, affordable, largely Latine neighborhood by the river is losing its character piece by piece. How long before all of the friendly old ladies have to find somewhere else to go to every Sunday when their church is priced off of this street[^3]? How long before the cafe selling $6 empanadas is forced to relocate, close, or start selling $15 empanadas? It's too sad for words. The current landlord seemed delighted by this, however, referring to long-time residents of the neighborhood as "riffraff," before making out like a bandit with close to half a million dollars for a shit-hole house that she inherited, presumably did not pay a penny for, and certainly didn't maintain. Hell, the appraiser had to say something before she even thought to check that there were working carbon monoxide alarms downstairs. Anyway, as salty as I am about all of this, I'm slowly coming to terms with it and preparing to move on.

View File

@@ -2,18 +2,26 @@
layout: layouts/base.njk
title: "Nathan Upchurch | Once Burned: Incense I've burning in the past."
structuredData: none
pagination:
data: collections.onceBurned
generatePageOnEmptyData: true
size: 20
permalink: "once-burned/{% if pagination.pageNumber > 0 %}page-{{ pagination.pageNumber + 1 }}/{% endif %}index.html"
paginationRootDir: once-burned
---
{% set burning = collections.nowBurning | last %}
<h1>Previous “Now Burning” Entries:</h1>
{% set postsCount = collections.nowBurning | removeMostRecent | length %}
{% set postsCount = pagination.items | length %}
{% if postsCount > 0 %}
{% set postslist = collections.nowBurning | removeMostRecent %}
{% set postslist = pagination.items %}
{% set showPostListHeader = false %}
{% include "incenseList.njk" %}
{% else %}
<p>Nothings here yet!</p>
{% endif %}
{% include "permalinkButtons.njk" %}
<a href="/now-burning/">
<button type="button">Latest »</button>
</a>

View File

@@ -0,0 +1,12 @@
---
layout: layouts/base.njk
title: Nathan Upchurch | Referrals
structuredData: none
---
# Referrals / Affiliate Links
Here are some referral links to services / products that I use and recommend. Yes, I do get a kickback if you buy something using these links.
## Web Hosting, Storage, and VPS
I like [Interserver](https://www.interserver.net/r/745483). They've always been quick to resolve any issues, I like the dashboard with integrated VNC, and their storage VPS' are super cheap.

View File

@@ -11,11 +11,12 @@ structuredData: none
<li>
<a href="/about">About</a>
<ul>
<li><a href="/about/AI">AI</a></li>
<li><a href="/ai">AI</a></li>
<li><a href="/about/colophon">Colophon</a></li>
<li><a href="/about/privacy">Privacy</a></li>
</ul>
</li>
<li><a href="/blank">Blank</a></li>
<li>
<a href="/blog">Blog</a>
<ul>
@@ -29,7 +30,9 @@ structuredData: none
<li><a href="/galleries">Galleries</a></li>
<li><a href="/guestbook">Guestbook</a></li>
<li><a href="/incense">Incense</a></li>
<li><a href="/links">Links</a></li>
<li><a href="/now">Now</a></li>
<li><a href="/referrals">Referrals</a></li>
<li>Special
<ul>
<li><a href="/special/flying-toasters/">Flying Toasters</a></li>

View File

@@ -34,5 +34,5 @@ Heres everything Ive posted tagged “{{ tag }}.” Want to be notified wh
</a>
</p>
{% set postslist = collections[ tag ] %}
{% set postslist = collections[ tag ] | reverse %}
{% include "postslist.njk" %}

View File

@@ -66,6 +66,15 @@ export default async function (eleventyConfig) {
});
});
eleventyConfig.addCollection("onceBurned", async (collectionApi) => {
const arr = [...collectionApi.getFilteredByTag("nowBurning")].sort(
function (a, b) {
return b.date - a.date;
},
);
return arr.slice(1, arr.length);
});
// Transforms
eleventyConfig.addTransform("prettier", function (content, outputPath) {
if (outputPath && outputPath.endsWith(".html")) {
@@ -105,6 +114,7 @@ export default async function (eleventyConfig) {
return DateTime.fromJSDate(dateObj, { zone: "utc" }).toFormat("yyyy-LL-dd");
});
// Remove most recent item added to array
eleventyConfig.addFilter("removeMostRecent", (arr) => {
return arr.slice(0, arr.length - 1);
});

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 MiB