Compare commits
60 Commits
1494d22859
...
main
Author | SHA1 | Date | |
---|---|---|---|
f9f6542597 | |||
e962fd1ebe | |||
23bee4569d | |||
087aa4ee5a | |||
85b4e2e994 | |||
65b68b3600 | |||
7e4c8fdebc | |||
e40d145225 | |||
bf3d60fdc2 | |||
b444b59533 | |||
2ac26f935a | |||
af04f61821 | |||
8a48f677f6 | |||
a3f1d04921 | |||
4fa562d0fe | |||
5df418eb2e | |||
6fe844486e | |||
d38da8fc37 | |||
46f83c4c24 | |||
81e76f3da0 | |||
92fd1289d1 | |||
47b31e38a2 | |||
c63c5fc53a | |||
94023ca08a | |||
5e174152da | |||
bba85933ec | |||
7e9c86117c | |||
6405d9e23a | |||
04cadecd1d | |||
a1217cf4e2 | |||
fd584e37ee | |||
6f623db77f | |||
88b9446e28 | |||
26c535c7c6 | |||
1df625911b | |||
579b00c520 | |||
e490fa9f28 | |||
16b9b06d7e | |||
648c6d48b1 | |||
cf88fe5ab8 | |||
82eaa31b61 | |||
2a7946d260 | |||
fc4c791e5a | |||
7b9cd3a156 | |||
e8eb8c9bc9 | |||
3871a05833 | |||
698fe4b7c6 | |||
bb8197af28 | |||
236a7ccbd5 | |||
ab831e429a | |||
286d3b7bdf | |||
37fde394a0 | |||
54c02ac7a6 | |||
b90aca5a10 | |||
83a28b4929 | |||
4a133c6ece | |||
3033111803 | |||
902382b027 | |||
2312514f3f | |||
87a0627f24 |
@ -12,6 +12,25 @@ export default {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
name: "Collectives / Compilations",
|
||||||
|
blogs: [
|
||||||
|
{
|
||||||
|
title: "Bear Blog Discover",
|
||||||
|
feedUrl: "https://bearblog.dev/discover/feed/?lang=en",
|
||||||
|
url: "https://bearblog.dev/discover/",
|
||||||
|
description:
|
||||||
|
"ʕ•ᴥ•ʔ Bear is a privacy-first, no-nonsense, super-fast blogging platform. Bear's discovery feed lists trending articles from the Bear blogosphere.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Freethought Blogs",
|
||||||
|
feedUrl: "https://freethoughtblogs.com/feed/",
|
||||||
|
url: "https://freethoughtblogs.com/",
|
||||||
|
description:
|
||||||
|
"Freethoughtblogs is an open platform for freethought writers. We are skeptics and critics of dogma and authoritarianism, and in addition, we recognize that the nonexistence of deities entails a greater commitment to human values, and in particular, an appreciation of human diversity and equality. We are for feminism, against racism, for diversity, against inequity. Our network of blogs is designed to encourage independent thinking and individual autonomy — freethoughtblogs.com is a vehicle for giving vocal secularists a venue for discussion of their values and interests.",
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
name: "Comics",
|
name: "Comics",
|
||||||
blogs: [
|
blogs: [
|
||||||
@ -181,6 +200,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"The Design Blog is a carefully curated platform for design and creative inspiration featuring works of designers, studios, and creatives from around the world.",
|
"The Design Blog is a carefully curated platform for design and creative inspiration featuring works of designers, studios, and creatives from around the world.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Toxel",
|
||||||
|
feedUrl: "https://feeds.feedburner.com/toxel",
|
||||||
|
url: "https://www.toxel.com/",
|
||||||
|
description:
|
||||||
|
"Toxel.com is a daily design, inspiration and technology blog dedicated to showcasing the best creative products and designs from all over the world.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "TypeOff.",
|
title: "TypeOff.",
|
||||||
feedUrl: "https://www.typeoff.de/rss",
|
feedUrl: "https://www.typeoff.de/rss",
|
||||||
@ -206,6 +232,13 @@ export default {
|
|||||||
{
|
{
|
||||||
name: "Food & Beverage",
|
name: "Food & Beverage",
|
||||||
blogs: [
|
blogs: [
|
||||||
|
{
|
||||||
|
title: "A Tea Addict's Journal",
|
||||||
|
feedUrl: "https://marshaln.com/feed/",
|
||||||
|
url: "https://marshaln.com",
|
||||||
|
description:
|
||||||
|
"This blog got started in 2006 on Xanga as an attempt to write down what I thought about the teas I was drinking. At that point I had been a serious tea drinker for at least six or seven years, but until then, I never really thought much about it. I thought that by writing down my thoughts, it would help me organize my ideas about tea, and in doing so, I hoped to reach an audience who were like minded tea drinkers. My hunch that there were a lot more tea drinkers out there in the West was right, and through this blog I have met quite a number of like-minded individuals, some of whom have become very good friends. I hope that, if nothing else, my musings here will help you find a better tea experience – life’s too short to be drinking bad tea.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Cocktail Doodle",
|
title: "Cocktail Doodle",
|
||||||
feedUrl: "https://cocktaildoodle.substack.com/feed",
|
feedUrl: "https://cocktaildoodle.substack.com/feed",
|
||||||
@ -213,6 +246,19 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"A charming (but perhaps abandoned) blog from cocktail expert Luke Andrews.",
|
"A charming (but perhaps abandoned) blog from cocktail expert Luke Andrews.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Cwyn's Death by Tea",
|
||||||
|
feedUrl: "https://deathbytea.blogspot.com/feeds/posts/default",
|
||||||
|
url: "https://deathbytea.blogspot.com/",
|
||||||
|
description: "Straight up tea talk.",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "Essence of Tea Blog",
|
||||||
|
feedUrl: "https://essenceoftea.com/blogs/blog.atom",
|
||||||
|
url: "https://essenceoftea.com/blogs/blog",
|
||||||
|
description:
|
||||||
|
"We are tea lovers - a couple, David Collen and Yingxi Chen, who shared a wish to make good teas available to fellow tea lovers around the world.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Sarah's Vegan Kitchen",
|
title: "Sarah's Vegan Kitchen",
|
||||||
feedUrl: "https://sarahsvegankitchen.com/feed/",
|
feedUrl: "https://sarahsvegankitchen.com/feed/",
|
||||||
@ -220,6 +266,20 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"Sarah has years of recipes including complex staples like vegan cultured butter.",
|
"Sarah has years of recipes including complex staples like vegan cultured butter.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Tea DB",
|
||||||
|
feedUrl: "https://teadb.org/feed/",
|
||||||
|
url: "https://teadb.org/",
|
||||||
|
description:
|
||||||
|
"TeaDB is a website and podcast started by friends and tea lovers James Schergen and Denny Chapin. James and Denny are business partners professionally, running websites in tea-unrelated industries (AllTreatment, TheraThink). We invite you to learn alongside us in our tea journeys!",
|
||||||
|
},
|
||||||
|
{
|
||||||
|
title: "white2tea",
|
||||||
|
feedUrl: "https://white2tea.com/blogs/blog.atom",
|
||||||
|
url: "https://white2tea.com/blogs/blog",
|
||||||
|
description:
|
||||||
|
"white2tea was created by passionate Puer devotees with over two decades of experience.",
|
||||||
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@ -341,6 +401,13 @@ export default {
|
|||||||
url: "https://incenseinthewind.blogspot.com/",
|
url: "https://incenseinthewind.blogspot.com/",
|
||||||
description: "Incense reviews, rankings, and information.",
|
description: "Incense reviews, rankings, and information.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Justine the Incenseur",
|
||||||
|
feedUrl: "https://justinetheincenseur.substack.com/feed",
|
||||||
|
url: "https://justinetheincenseur.substack.com/",
|
||||||
|
description:
|
||||||
|
"I am Justine Crane, natural perfumer and incenseur. I created the course content at the Natural Perfume Academy online, and the owner/operator of the Scented Djinn Apothecary & Thurifercorum. I’m also half of the in-person teaching duo, The Rebel Perfumers, with my teaching partner, Cher Lynn of Essential Oil Apothecary. I’m using this space to write about everything natural perfume and incense related. There will be some shameless plugging of my businesses, as well as tons of information about NP and incense. Let’s do this.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Kikoh Incense",
|
title: "Kikoh Incense",
|
||||||
feedUrl: "https://kikohincense.com/blogs/news.atom",
|
feedUrl: "https://kikohincense.com/blogs/news.atom",
|
||||||
@ -394,6 +461,13 @@ export default {
|
|||||||
{
|
{
|
||||||
name: "LGBTQ+",
|
name: "LGBTQ+",
|
||||||
blogs: [
|
blogs: [
|
||||||
|
{
|
||||||
|
title: "Assigned Media",
|
||||||
|
feedUrl: "https://www.assignedmedia.org/?format=rss",
|
||||||
|
url: "https://www.assignedmedia.org/",
|
||||||
|
description:
|
||||||
|
"Mainstream coverage of transgender life is falling short, while transphobic propaganda on the right grows louder and more insistent every day. Assigned publishes factual, up to date, responsible coverage of trans issues, allowing trans people and our allies to separate the truth from the lies and build a response to anti-trans hate that achieves dignity and equality for trans people in the US and beyond.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Uncloseted Media",
|
title: "Uncloseted Media",
|
||||||
feedUrl: "https://www.unclosetedmedia.com/feed",
|
feedUrl: "https://www.unclosetedmedia.com/feed",
|
||||||
@ -420,6 +494,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"High-quality journalism which challenges power, inspires change and builds leadership among groups underrepresented in the media. (Predominantly U.K. focused)",
|
"High-quality journalism which challenges power, inspires change and builds leadership among groups underrepresented in the media. (Predominantly U.K. focused)",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Rest of World",
|
||||||
|
feedUrl: "https://restofworld.org/feed/latest",
|
||||||
|
url: "https://restofworld.org/",
|
||||||
|
description:
|
||||||
|
"Rest of World is a nonprofit publication that challenges expectations about whose experiences with technology matter. We connect the dots across a rapidly evolving digital world, through on-the-ground reporting in places typically overlooked and underestimated.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Techdirt",
|
title: "Techdirt",
|
||||||
feedUrl: "https://www.techdirt.com/feed/",
|
feedUrl: "https://www.techdirt.com/feed/",
|
||||||
@ -445,6 +526,13 @@ export default {
|
|||||||
url: "https://popular.info/",
|
url: "https://popular.info/",
|
||||||
description: "News for people who give a damn.",
|
description: "News for people who give a damn.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Prism",
|
||||||
|
feedUrl: "https://prismreports.org/feed/",
|
||||||
|
url: "https://prismreports.org",
|
||||||
|
description:
|
||||||
|
"Prism is an independent and nonprofit news outlet led by journalists of color. We report from the ground up and at the intersections of injustice. Together, our journalists go where justice requires. Activists, thought leaders, decision-makers, and all those who believe in justice for all come to Prism for deep reporting and honest insights on the most pressing injustices of our time—delivered through the lens of those who are most impacted.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Reveal from the Center for Investigative Reporting",
|
title: "Reveal from the Center for Investigative Reporting",
|
||||||
feedUrl: "https://revealnews.org/feed",
|
feedUrl: "https://revealnews.org/feed",
|
||||||
@ -452,6 +540,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"Democracy faces an unprecedented threat from an authoritarian movement built on lies and contempt for the rule of law. The first and most critical defense of democracy—a robust, independent free press—has been missing in action. Corporate and billionaire media owners have shied away from confrontation, engaged in false equivalence, and sought to curry favor with Donald Trump. It is hardly surprising that readers and viewers are fleeing from these outlets. Americans need an alternative. The Contrarian is that alternative: unflinching, unapologetic, and unwavering in its commitment to truth-telling.",
|
"Democracy faces an unprecedented threat from an authoritarian movement built on lies and contempt for the rule of law. The first and most critical defense of democracy—a robust, independent free press—has been missing in action. Corporate and billionaire media owners have shied away from confrontation, engaged in false equivalence, and sought to curry favor with Donald Trump. It is hardly surprising that readers and viewers are fleeing from these outlets. Americans need an alternative. The Contrarian is that alternative: unflinching, unapologetic, and unwavering in its commitment to truth-telling.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "The 74",
|
||||||
|
feedUrl: "https://www.the74million.org/feed/",
|
||||||
|
url: "https://www.the74million.org/",
|
||||||
|
description:
|
||||||
|
"The 74 is a nonprofit news organization covering America’s education system from early childhood through college and career.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "The Contrarian",
|
title: "The Contrarian",
|
||||||
feedUrl: "https://themarkup.org/feeds/rss.xml",
|
feedUrl: "https://themarkup.org/feeds/rss.xml",
|
||||||
@ -478,6 +573,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
"Designer, front-end developer and the founder of Set Studio and Piccalilli.",
|
"Designer, front-end developer and the founder of Set Studio and Piccalilli.",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "Bardo Burner",
|
||||||
|
feedUrl: "https://bardoburner.com/feed/",
|
||||||
|
url: "https://bardoburner.com",
|
||||||
|
description:
|
||||||
|
"Way back when blogs were called e-zines – the mid-90s – we made one called Bardo Burner… Sadly, our day-to-day lives got in the way of that labour of love and we jacked it in after a couple of years. Here we are again, reviving the old name just because, but this time primarily exploring issues related to healthy, sustainable living, which for us is strongly rooted in veganism… you’ll find articles here covering everything from cruelty-free cake and vegan restaurants to yoga and Pilates.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "Darek Kay",
|
title: "Darek Kay",
|
||||||
feedUrl: "https://darekkay.com/atom.xml",
|
feedUrl: "https://darekkay.com/atom.xml",
|
||||||
@ -589,6 +691,13 @@ export default {
|
|||||||
description:
|
description:
|
||||||
'ProPublica is an independent, nonprofit newsroom that produces investigative journalism with moral force. (Thanks to <a href="https://werd.io/2024/non-profit-newsrooms-that-speak-to-power">werd.io</a> for the recommendation.)',
|
'ProPublica is an independent, nonprofit newsroom that produces investigative journalism with moral force. (Thanks to <a href="https://werd.io/2024/non-profit-newsrooms-that-speak-to-power">werd.io</a> for the recommendation.)',
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
title: "The Appeal",
|
||||||
|
feedUrl: "https://theappeal.org/theappeal",
|
||||||
|
url: "https://theappeal.org",
|
||||||
|
description:
|
||||||
|
"The Appeal is a nonprofit news organization that envisions a world in which systems of support and care, not punishment, create public safety. The Appeal’s journalism exposes the harms of a criminal legal system entrenched in centuries of systemic racism. We equip people with the information necessary to make change, and we elevate solutions that emerge from the communities most affected by policing, jails, and prisons in the U.S.",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
title: "The 19th",
|
title: "The 19th",
|
||||||
feedUrl: "https://19thnews.org/feed/",
|
feedUrl: "https://19thnews.org/feed/",
|
||||||
|
@ -35,17 +35,26 @@ export default {
|
|||||||
linkDisplay: "Galleries",
|
linkDisplay: "Galleries",
|
||||||
linkURL: "/galleries/",
|
linkURL: "/galleries/",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
iconURL: "/img/icons/breeze/story-editor.svg",
|
||||||
|
linkDisplay: "Guestbook",
|
||||||
|
linkURL: "/guestbook/",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
iconURL: "/img/icons/breeze/news-subscribe.svg",
|
iconURL: "/img/icons/breeze/news-subscribe.svg",
|
||||||
linkDisplay: "Life Updates",
|
linkDisplay: "Life Updates",
|
||||||
linkURL: "/now/",
|
linkURL: "/now/",
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
iconURL: "/img/burn.svg",
|
||||||
|
linkDisplay: "Now Burning",
|
||||||
|
linkURL: "/now-burning/",
|
||||||
|
},
|
||||||
{
|
{
|
||||||
iconURL: "/img/icons/breeze/document-edit-sign.svg",
|
iconURL: "/img/icons/breeze/document-edit-sign.svg",
|
||||||
linkDisplay: "Quizzes",
|
linkDisplay: "Quizzes",
|
||||||
linkURL: "/quizzes/",
|
linkURL: "/quizzes/",
|
||||||
},
|
},
|
||||||
|
|
||||||
{
|
{
|
||||||
iconURL: "/img/icons/breeze/map-globe.svg",
|
iconURL: "/img/icons/breeze/map-globe.svg",
|
||||||
linkDisplay: "Sitemap",
|
linkDisplay: "Sitemap",
|
||||||
|
@ -11,5 +11,6 @@
|
|||||||
{% endfor %}
|
{% endfor %}
|
||||||
{% endif %}
|
{% endif %}
|
||||||
<a href="/sitemap/">Sitemap</a>
|
<a href="/sitemap/">Sitemap</a>
|
||||||
|
<a href="/special/flying-toasters" style="color: var(--background-color); text-decoration: none;">Fly</a>
|
||||||
</p>
|
</p>
|
||||||
</footer>
|
</footer>
|
||||||
|
29
_includes/incenseList.njk
Normal file
29
_includes/incenseList.njk
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
<section class="postlist microblog-list">
|
||||||
|
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
|
||||||
|
<div class="postlist-item-container">
|
||||||
|
{% for post in postslist | reverse %}
|
||||||
|
<article class="postlist-item">
|
||||||
|
|
||||||
|
<div class="post-copy">
|
||||||
|
<h3>
|
||||||
|
{% if post.data.title %}{{ post.data.title | safe }}{% else %}?{% endif %}{% if post.data.manufacturer %}, {{ post.data.manufacturer | safe }}{% endif %}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="post-metadata">
|
||||||
|
<div class="post-metadata-copy">
|
||||||
|
<p>
|
||||||
|
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% if post.content %}
|
||||||
|
<div class="microblog-comment">
|
||||||
|
{{ post.content | safe }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<hr>
|
||||||
|
{% endfor %}
|
||||||
|
</div>
|
||||||
|
</section>
|
@ -3,6 +3,6 @@ layout: layouts/base.njk
|
|||||||
showPostListHeader: yep
|
showPostListHeader: yep
|
||||||
---
|
---
|
||||||
<h1>I'm Nathan; welcome friend.</h1>
|
<h1>I'm Nathan; welcome friend.</h1>
|
||||||
<p class="nodropcap page-block">My name is Nathan Upchurch, and this is my personal website and blog, where I write about all sorts of <a href="/tags">things</a> that I find interesting. On this website, you can learn more <a href="about">about me</a>, see <a href="now">what I’ve been up to lately</a>, <a href="blog">read my blog</a>, look at some <a href="galleries">pictures</a>, or explore the <a href="sitemap">sitemap</a> to see what else you can do here.</p>
|
<p class="nodropcap page-block">My name is Nathan Upchurch, and this is my personal website and blog, where I write about all sorts of <a href="/tags">things</a> that I find interesting. On this website, you can learn more <a href="about">about me</a>, sign my <a href="guestbook">guestbook</a>, see <a href="now">what I’ve been up to lately</a>, <a href="blog">read my blog</a>, look at some <a href="galleries">pictures</a>, or explore the <a href="sitemap">sitemap</a> to see what else you can do here.</p>
|
||||||
|
|
||||||
{{ content | safe }}
|
{{ content | safe }}
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
{% for link in metadata.navigatorLinks %}
|
{% for link in metadata.navigatorLinks %}
|
||||||
<div class="navigatorItem">
|
<div class="navigatorItem">
|
||||||
<a href="{{ link.linkURL }}">
|
<a href="{{ link.linkURL }}">
|
||||||
<img src="{{ link.iconURL }}">
|
<img alt="" src="{{ link.iconURL }}">
|
||||||
<p>{{ link.linkDisplay }}</p>
|
<p>{{ link.linkDisplay }}</p>
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
@ -1,26 +1,45 @@
|
|||||||
<section class="postlist">
|
<section class="postlist{% if postListTypeMicroblog %} microblogList{% endif %}">
|
||||||
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
|
{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
|
||||||
<div class="postlist-item-container">
|
<div class="postlist-item-container">
|
||||||
{% for post in postslist | reverse %}
|
{% for post in postslist | reverse %}
|
||||||
<article class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
|
<article class="postlist-item{% if post.url == url %} postlist-item-active{% endif %}">
|
||||||
|
|
||||||
|
{% if not postListTypeMicroblog %}
|
||||||
<a href="{{ post.url }}" class="postlist-link">
|
<a href="{{ post.url }}" class="postlist-link">
|
||||||
<div class="post-image-container">
|
<div class="post-image-container">
|
||||||
<img class="post-image" {% if post.data.imageURL %} src="{{ post.data.imageURL }}" alt="{{ post.data.imageAlt }}" {% else %} src="{{ metadata.defaultPostImageURL }}" alt="{{ metadata.defaultPostImageAlt }}"{% endif %}>
|
<img class="post-image" {% if post.data.imageURL %} src="{{ post.data.imageURL }}" alt="{{ post.data.imageAlt }}" {% else %} src="{{ metadata.defaultPostImageURL }}" alt="{{ metadata.defaultPostImageAlt }}"{% endif %}>
|
||||||
</div>
|
</div>
|
||||||
</a>
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="post-copy">
|
<div class="post-copy">
|
||||||
|
{% if not postListTypeMicroblog %}
|
||||||
<a href="{{ post.url }}" class="postlist-link">
|
<a href="{{ post.url }}" class="postlist-link">
|
||||||
|
{% endif %}
|
||||||
<h3>
|
<h3>
|
||||||
{% if post.data.title %}{{ post.data.title | safe }}{% else %}<code>{{ post.url }}</code>{% endif %}
|
{% if post.data.title %}{{ post.data.title | safe }}{% else %}?{% endif %}
|
||||||
</h3>
|
</h3>
|
||||||
|
{% if not postListTypeMicroblog %}
|
||||||
</a>
|
</a>
|
||||||
|
{% endif %}
|
||||||
|
|
||||||
<div class="post-metadata">
|
<div class="post-metadata">
|
||||||
<div class="post-metadata-copy">
|
<div class="post-metadata-copy">
|
||||||
<p>
|
<p>
|
||||||
|
{% if not postListTypeMicroblog %}
|
||||||
{% if post.data.author %}
|
{% if post.data.author %}
|
||||||
{% if post.data.author.url %}<a href="{{ post.data.author.url }}">{% endif %}{% if post.data.author.name %}By {{ post.data.author.name }}{% endif %}{% if post.data.author.url %}</a> • {% endif %}{% else %}<a href="{{ metadata.author.url }}">By {{ metadata.author.name }}</a> • {% endif %}<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}</time>
|
{% if post.data.author.url %}
|
||||||
|
<a href="{{ post.data.author.url }}">
|
||||||
|
{% endif %}
|
||||||
|
{% if post.data.author.name %}
|
||||||
|
By {{ post.data.author.name }}
|
||||||
|
{% endif %}
|
||||||
|
{% if post.data.author.url %}</a> •
|
||||||
|
{% endif %}
|
||||||
|
{% else %}<a href="{{ metadata.author.url }}">By {{ metadata.author.name }}</a> •
|
||||||
|
{% endif %}
|
||||||
|
{% endif %}
|
||||||
|
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
||||||
</p>
|
</p>
|
||||||
<ul>
|
<ul>
|
||||||
{%- for tag in post.data.tags | filterTagList %}
|
{%- for tag in post.data.tags | filterTagList %}
|
||||||
|
@ -1,13 +1,15 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/base.njk
|
layout: layouts/base.njk
|
||||||
|
title: Nathan Upchurch | About
|
||||||
eleventyNavigation:
|
eleventyNavigation:
|
||||||
key: About
|
key: About
|
||||||
order: 2
|
order: 2
|
||||||
---
|
---
|
||||||
<article>
|
<article>
|
||||||
<h1>About me and my website.</h1>
|
<h1>About me and my website.</h1>
|
||||||
<p class="page-block nodropcap">I’m a prolific vegan home cook, classical trombonist, incense maker, a <abbr title="Free/Libre Open Source Software">FLOSS</abbr> enthusiast, daily GNU/Linux user and unabashed <a href="https://kde.org/">KDE</a> stan, designer, programmer, music producer, print lover, and human with too many interests and too little time. This is my little corner of the internet where I talk about whatever I like without worrying about maintaining a ‘personal brand’, or constraining subject matter to topics which might help advance my career or establish me as a ‘thought leader’. I’m here to express myself and have fun writing about topics I enjoy. If you’d like to learn more about my professional accomplishments and work, I’ll link my professional website here when I get around to it.</p>
|
<p class="page-block nodropcap">I’m a prolific vegan home cook, classical trombonist, incense maker, a <abbr title="Free/Libre Open Source Software">FLOSS</abbr> enthusiast, designer, programmer, music producer, print lover, and human with too many interests and too little time.<br><br>
|
||||||
|
This is my little corner of the internet where I talk about whatever I like without worrying about maintaining a ‘personal brand’, or constraining my writing to topics which might help advance my career or establish me as a ‘thought leader’. I’m here to express myself and have fun writing about topics I enjoy.<br><br>
|
||||||
|
If you’d like to learn more about my professional accomplishments and work, I’ll link my professional website here when I get around to it.</p>
|
||||||
<a href="./colophon/">
|
<a href="./colophon/">
|
||||||
<button type="button">Colophon »</button>
|
<button type="button">Colophon »</button>
|
||||||
</a>
|
</a>
|
||||||
|
@ -1,13 +1,13 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/base.njk
|
layout: layouts/base.njk
|
||||||
title: Nathan Upchurch | Blog
|
title: "The Stochastic Bletherist | The Personal Blog of Nathan Upchurch"
|
||||||
structuredData: none
|
structuredData: none
|
||||||
postlistHeaderText: "What’s New:"
|
postlistHeaderText: "What’s New:"
|
||||||
---
|
---
|
||||||
<h1>My personal blog.</h1>
|
<h1>The Stochastic Bletherist</h1>
|
||||||
|
|
||||||
<p class="page-block nodropcap">
|
<p class="page-block nodropcap">
|
||||||
I write about whatever I like here, 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 />
|
The personal blog of Nathan Upchurch, where he writes 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/">
|
<a href="/tags/">
|
||||||
<button type="button">Topics »</button>
|
<button type="button">Topics »</button>
|
||||||
|
@ -0,0 +1,286 @@
|
|||||||
|
---
|
||||||
|
title: "Poaster: Solving SSG Microblogging Ergonomics with Ruby and KDialog"
|
||||||
|
description: "Trying to make it a little less brutal to make small, frequent posts on SSGs."
|
||||||
|
date: 2025-06-08
|
||||||
|
tags:
|
||||||
|
- Site Updates
|
||||||
|
- Eleventy
|
||||||
|
- KDE
|
||||||
|
synopsis: "Trying to make it a little less brutal to make small, frequent posts on SSGs."
|
||||||
|
imageURL: "/img/poaster/poaster_icon.svg"
|
||||||
|
imageAlt: "An icon featuring a red toaster with the Ruby diamond on it popping out a sheet with the Markdown logo on it as though it were toast."
|
||||||
|
mastodon_id: "114650833104413858"
|
||||||
|
---
|
||||||
|
|
||||||
|
Anyone familiar with my blog will know that I like to write about incense. A reader wrote to me some time ago asking about what sticks I've been enjoying lately, and it occurred to me that it might be a nice thing to have a "now listening" type feature on my website, so that fellow incense heads could get a sense of the types of incense I like. After all, while I write plenty of incense reviews, they represent only a small percentage of the sticks, cones, powders, woods, and resins I'm burning or heating from day to day. (If you're here for my incense content, feel free to skip this one and head to [/now-burning](/now-burning) to see the new feature!)
|
||||||
|
|
||||||
|
## The issue of ergonomics
|
||||||
|
|
||||||
|
While it would have been simple enough for me to build a microblogging feature into my [Eleventy](https://www.11ty.dev/) website, the trouble was *wanting to use it* after it was built. Unlike using a {{ "CMS" | abbr("Content Management System") | safe }} such as WordPress to make a website, I knew of no nice interface for Eleventy, or for that matter any {{ "SSG" | abbr("Static Site Generator") | safe }}, that would help me create a post and publish it online without opening an {{ "IDE" | abbr("Integrated Development Environment") | safe }}[^1] and using the command line. Instead, the process looks something like this:
|
||||||
|
|
||||||
|
[ every time I decide to make a tiny status update. Also, I just noticed that I totally screwed up the frontmatter for that post.")](/img/poaster/ergonomics_fail.webp)
|
||||||
|
|
||||||
|
As big of a nerd as I am, I'm just not going to want to do that multiple times a day for what amounts to a status post. This lead me to *scour* the internet looking for a solution: something that I could run on my own desktop or laptop that could build my site locally and push changes to my website, hosted the old fashioned way: as a bunch of text files sitting on a server accessible via {{ "SFTP" | abbr("SSH File Transfer Protocol") | safe }}. No needless complexity like running Eleventy on the server, or using a host like Netlify.[^2] Surely there'd be something, right? Surely, the realm of SSGs can't be without at least one nice, local user interface that people can use without being a web developer?
|
||||||
|
|
||||||
|
## An attempt to fix the problem
|
||||||
|
|
||||||
|
In the end, I did find one answer to the problem: [Publii](https://getpublii.com/). Publii seems to be made predominantly with end-users in mind, however. It's not just a local[^3] CMS, it's an SSG in its own right, which does me no good as I can't make it work with my website[^4]. So after coming up with nothing *I* could use, I gave the idea a rest for a while until I had the epiphany that I could solve the problem with a simple script using KDE's [KDialog](https://invent.kde.org/utilities/kdialog) to provide a rudimentary UI. So that's what I did.
|
||||||
|
|
||||||
|
The idea was simple: a [wizard](https://en.wikipedia.org/wiki/Wizard_(software))-like experience that guides the user through the creation of a microblog / status post. Post types and the data they collect should be customized by the user via a JSON configuration file. After the post data is collected from the user, the script should execute a user-defined build command as well as a user-defined command to sync the static files to the server.
|
||||||
|
## Building "Poaster"
|
||||||
|
|
||||||
|
For some reason, I decided to write my script in Ruby, a language for which I once completed a course before promptly forgetting everything I knew about it. I would have had a much easier time using JavaScript and Node, which I am much more familiar with and have successfully used for similar purposes. Why I did not is anyone's guess. All this to say: please do not make (too much) fun of my shitty little script, which I have dubbed "Poaster."
|
||||||
|
|
||||||
|
I started with the JSON configuration file, `/Poaster/config/config.json`:
|
||||||
|
|
||||||
|
```json
|
||||||
|
{
|
||||||
|
"buildCommand": "npx @11ty/eleventy",
|
||||||
|
"postTypes": [
|
||||||
|
{
|
||||||
|
"name": "Now Burning",
|
||||||
|
"postUnitName": "incense",
|
||||||
|
"contentEnabled": true,
|
||||||
|
"frontMatter": [
|
||||||
|
{
|
||||||
|
"name": "title"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "manufacturer"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "date"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"name": "time"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"postDirectory": "/post/output/dir"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"uploadCommand": "rsync -av --del /local/path/to/site/output
|
||||||
|
username@my.server:/remote/path/to/public/site/files",
|
||||||
|
"siteDirectory": "/local/path/to/site/repo"
|
||||||
|
}
|
||||||
|
```
|
||||||
|
Here, the user can specify as many post types as they like, each with their own output directory. Each post type can also collect as many pieces of frontmatter as the user cares to specify.
|
||||||
|
|
||||||
|
The first thing the script needed to do was ask the user which post type they want to create, so I referenced the [KDialog tutorial](https://develop.kde.org/docs/administration/kdialog/) and wrote a method to handle that `/Poaster/lib/spawn_radio_list.rb`:
|
||||||
|
``` ruby
|
||||||
|
def spawn_radio_list(title, text, options_arr)
|
||||||
|
command = %(kdialog --title "#{title}" --radiolist "#{text}")
|
||||||
|
options_arr.each_with_index do |option, i|
|
||||||
|
command += %( #{i} "#{option}" off)
|
||||||
|
end
|
||||||
|
`#{command}`
|
||||||
|
end
|
||||||
|
```
|
||||||
|
I wrote a few more methods in `/Poaster/lib` to spawn toast notifications, input boxes, create directories if they don't exist, and write files:
|
||||||
|
`/Poaster/lib/spawn_toast.rb`:
|
||||||
|
``` ruby
|
||||||
|
def spawn_toast(title, text, seconds)
|
||||||
|
`kdialog --title "#{title}" --passivepopup "#{text}" #{seconds}`
|
||||||
|
end
|
||||||
|
```
|
||||||
|
`/Poaster/lib/spawn_input_box.rb`:
|
||||||
|
``` ruby
|
||||||
|
def spawn_input_box(title, text)
|
||||||
|
`kdialog --title "#{title}" --inputbox "#{text}"`
|
||||||
|
end
|
||||||
|
```
|
||||||
|
`/Poaster/lib/ensure_dir_exists.rb`:
|
||||||
|
``` ruby
|
||||||
|
def ensure_dir_exists(directory_path)
|
||||||
|
unless Dir.exist?(directory_path)
|
||||||
|
FileUtils.mkdir_p(directory_path)
|
||||||
|
spawn_toast 'Directory Created', %(Poaster created #{directory_path}.), 10
|
||||||
|
end
|
||||||
|
end
|
||||||
|
```
|
||||||
|
`/Poaster/lib/write_file.rb`:
|
||||||
|
``` ruby
|
||||||
|
def write_file(directory, name, extension, content)
|
||||||
|
post_file = File.new(%(#{directory}/#{name}.#{extension}), 'w+')
|
||||||
|
post_file.syswrite(content)
|
||||||
|
post_file.close
|
||||||
|
end
|
||||||
|
```
|
||||||
|
All I had to do then was tie it all together in `/Poaster/poaster.rb`:
|
||||||
|
``` ruby
|
||||||
|
#!/usr/bin/env ruby
|
||||||
|
require 'json'
|
||||||
|
require 'fileutils'
|
||||||
|
require './lib/spawn_input_box'
|
||||||
|
require './lib/spawn_radio_list'
|
||||||
|
require './lib/spawn_toast'
|
||||||
|
require './lib/ensure_dir_exists'
|
||||||
|
require './lib/write_file'
|
||||||
|
|
||||||
|
config_data = JSON.parse(File.read('./config/config.json'))
|
||||||
|
dialog_title_prefix = 'Poaster'
|
||||||
|
|
||||||
|
# Populate types_arr with post types
|
||||||
|
post_types_arr = []
|
||||||
|
config_data['postTypes'].each do |type|
|
||||||
|
post_types_arr.push(type['name'])
|
||||||
|
end
|
||||||
|
|
||||||
|
# Display post list dialog to user
|
||||||
|
post_type = config_data['postTypes'][Integer(spawn_radio_list(dialog_title_prefix, 'Select a post type:', post_types_arr))]
|
||||||
|
|
||||||
|
# Set the word we will use to refer to the post
|
||||||
|
post_unit = post_type['postUnitName']
|
||||||
|
|
||||||
|
# Collect frontmatter from user
|
||||||
|
frontmatter = []
|
||||||
|
post_type['frontMatter'].each do |item|
|
||||||
|
frontmatter.push({ item['name'] => spawn_input_box(%(#{dialog_title_prefix} - Enter Frontmatter'), %(Enter #{post_unit} #{item['name']}:)) })
|
||||||
|
end
|
||||||
|
|
||||||
|
# Collect post content from user
|
||||||
|
post_content = spawn_input_box %(#{dialog_title_prefix} - Enter Content), %(Enter #{post_unit} content:)
|
||||||
|
|
||||||
|
# Make sure the output folder exists
|
||||||
|
post_directory = post_type['postDirectory']
|
||||||
|
ensure_dir_exists(post_directory)
|
||||||
|
|
||||||
|
# Create post string
|
||||||
|
post = %(---\n)
|
||||||
|
post_id = ''
|
||||||
|
frontmatter.each_with_index do |item, i|
|
||||||
|
post += %(#{item.keys[0]}: #{item[item.keys[0]]})
|
||||||
|
post_id += %(#{item[item.keys[0]].chomp}#{i == frontmatter.length - 1 ? '' : '_'})
|
||||||
|
end
|
||||||
|
post += %(---\n#{post_content})
|
||||||
|
|
||||||
|
# Write post string to file and notify user
|
||||||
|
post_file_name = %(#{post_type['name']}_#{post_id.chomp})
|
||||||
|
post_extension = 'md'
|
||||||
|
|
||||||
|
write_file post_directory, post_file_name, post_extension, post
|
||||||
|
spawn_toast 'File Created', %(Poaster created #{post_file_name}#{post_extension} at #{post_directory}.), 10
|
||||||
|
|
||||||
|
# Run build and upload commands
|
||||||
|
`cd #{config_data['siteDirectory']} && #{config_data['buildCommand']} && #{config_data['uploadCommand']}`
|
||||||
|
```
|
||||||
|
|
||||||
|
## Burning now
|
||||||
|
There is a lot that this script should do that it doesn't, but for now, it's still a handy wee utility for SSG users on GNU/Linux systems running KDE who want to make creating quick status-type posts a little less painful. Just make sure KDialog is installed (as well as Ruby, naturally), clone [the repo](https://upchur.ch/gitea/n_u/Poaster), create `/Poaster/config/config.json` to meet your needs using the example as a reference and you're off to the races! I've even made a silly little toaster icon using assets from some of the KDE MimeType icons that you can use if you want to make a `.desktop` file so that you can click an icon on your app launcher to start the script.
|
||||||
|
|
||||||
|
[](/img/poaster/app-menu.webp)
|
||||||
|
|
||||||
|
My `poaster.desktop` file looks something like this:
|
||||||
|
``` bash
|
||||||
|
[Desktop Entry]
|
||||||
|
Exec=/path/to/poaster.rb
|
||||||
|
GenericName[en_US]=Create a post with Poaster.
|
||||||
|
GenericName=Create a post with Poaster.
|
||||||
|
Icon=/path/to/poaster_icon.svg
|
||||||
|
Name=Poaster
|
||||||
|
NoDisplay=false
|
||||||
|
Path=/path/to/repo/
|
||||||
|
StartupNotify=true
|
||||||
|
Terminal=false
|
||||||
|
Type=Application
|
||||||
|
```
|
||||||
|
Here's the script in action:
|
||||||
|
<figure><div style="position: relative;"><iframe title="A video showing Poaster being launched from the terminal. The script brings up a series of text input boxes for each piece of frontmatter specified in the configuration file." width="560" height="315" src="https://makertube.net/videos/embed/p8oopZXaLNUXNpBQGY9q4k" frameborder="0" allowfullscreen="" sandbox="allow-same-origin allow-scripts allow-popups allow-forms"></iframe></div><figcaption>The ease! The convenience!</figcaption></figure>
|
||||||
|
|
||||||
|
To build the new "now burning" incense microblog feature, I created two new pages. [/now-burning](/now-burning) shows the latest entry:
|
||||||
|
|
||||||
|
``` html
|
||||||
|
---
|
||||||
|
layout: layouts/base.njk
|
||||||
|
title: "Nathan Upchurch | Now Burning: What incense I'm burning at the moment."
|
||||||
|
structuredData: none
|
||||||
|
postlistHeaderText: "What I've been burning:"
|
||||||
|
---
|
||||||
|
{% raw %}{% set burning = collections.nowBurning | last %}
|
||||||
|
|
||||||
|
<h1>Now Burning:</h1>
|
||||||
|
<article class="post microblog-post">
|
||||||
|
<img class="microblog-icon" src="/img/censer.svg">
|
||||||
|
<div class="microblog-status">
|
||||||
|
<h2 class="">{{ burning.data.title }}{% if burning.data.manufacturer %}, {{ burning.data.manufacturer }}{% endif %}, {{ burning.date | niceDate }}, {{ burning.data.time }}</h2>
|
||||||
|
{% if burning.content %}
|
||||||
|
<div class="microblog-comment">
|
||||||
|
{{ burning.content | safe }}
|
||||||
|
</div>
|
||||||
|
{% endif %}{% endraw %}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<a href="/once-burned/">
|
||||||
|
<button type="button">Previous Entries »</button>
|
||||||
|
</a>
|
||||||
|
```
|
||||||
|
…and [/once-burned](/once-burned) shows past entries:
|
||||||
|
``` html
|
||||||
|
---
|
||||||
|
layout: layouts/base.njk
|
||||||
|
title: "Nathan Upchurch | Once Burned: Incense I've burning in the past."
|
||||||
|
structuredData: none
|
||||||
|
---
|
||||||
|
{% raw %}{% set burning = collections.nowBurning | last %}
|
||||||
|
|
||||||
|
<h1>Previous “Now Burning” Entries:</h1>
|
||||||
|
{% set postsCount = collections.nowBurning | removeMostRecent | length %}
|
||||||
|
{% if postsCount > 0 %}
|
||||||
|
{% set postslist = collections.nowBurning | removeMostRecent %}
|
||||||
|
{% set showPostListHeader = false %}
|
||||||
|
{% include "incenseList.njk" %}
|
||||||
|
{% else %}
|
||||||
|
<p>Nothing’s here yet!</p>
|
||||||
|
{% endif %}{% endraw %}
|
||||||
|
<a href="/now-burning/">
|
||||||
|
<button type="button">Latest »</button>
|
||||||
|
</a>
|
||||||
|
```
|
||||||
|
…using a post-listing include built specifically for microblogging:
|
||||||
|
|
||||||
|
``` html
|
||||||
|
<section class="postlist microblog-list">
|
||||||
|
{% raw %}{% if postlistHeaderText %}<h2>{{ postlistHeaderText }}</h2>{% endif %}
|
||||||
|
<div class="postlist-item-container">
|
||||||
|
{% for post in postslist | reverse %}
|
||||||
|
<article class="postlist-item">
|
||||||
|
|
||||||
|
<div class="post-copy">
|
||||||
|
<h3>
|
||||||
|
{% if post.data.title %}{{ post.data.title | safe }}{% else %}?{% endif %}{% if post.data.manufacturer %}, {{ post.data.manufacturer | safe }}{% endif %}
|
||||||
|
</h3>
|
||||||
|
|
||||||
|
<div class="post-metadata">
|
||||||
|
<div class="post-metadata-copy">
|
||||||
|
<p>
|
||||||
|
<time datetime="{{ post.date | htmlDateString }}">{{ post.date | niceDate }}{% if post.data.time %}—{{ post.data.time }}{% endif %}</time>
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
{% if post.content %}
|
||||||
|
<div class="microblog-comment">
|
||||||
|
{{ post.content | safe }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<hr>
|
||||||
|
{% endfor %}{% endraw %}
|
||||||
|
</div>
|
||||||
|
</section>
|
||||||
|
```
|
||||||
|
And that's about it! There's a lot to do to make the script a little less fragile, such as passing along build / upload error messages, allowing for data validation via regex, et cetera. I'm sure I'll get to it at some point. If Poaster is useful to you, however, and you'd like to submit a patch to improve it, [please do let me know](../../me/).
|
||||||
|
|
||||||
|
[^1]: Yes, I am aware that [Kate](https://kate-editor.org/) isn't *technically*
|
||||||
|
an IDE.
|
||||||
|
|
||||||
|
[^2]: At risk of sounding crabbit and behind the times, I don't know why web
|
||||||
|
development has to be so damned complicated these days. Like, an entire fancy
|
||||||
|
for-profit infrastructural platform that exists just to host static websites?
|
||||||
|
It seems nuts to me.
|
||||||
|
|
||||||
|
[^3]: Thank christ. Why does everything need to run in the cloud when we
|
||||||
|
already have computers at home?
|
||||||
|
|
||||||
|
[^4]: I did however use it to very quickly set up a nice looking blog site for
|
||||||
|
my partner.
|
||||||
|
|
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
title: "A Plebeian’s Review of The Witcher 3: Wild Hunt"
|
||||||
|
description: "I tried really, really hard to get into this game."
|
||||||
|
date: 2025-05-04
|
||||||
|
tags:
|
||||||
|
- Gaming
|
||||||
|
- Game Review
|
||||||
|
synopsis: "I tried really, really hard to get into this game."
|
||||||
|
imageURL: /img/witcher_3/witcher3_en_screenshot_screenshot_13_1920x1080_1433341624.webp
|
||||||
|
imageAlt: "A screenshot of Geralt's scowling face."
|
||||||
|
mastodon_id: "114451612149600574"
|
||||||
|
---
|
||||||
|
The Witcher 3: Wild Hunt is a fantasy RPG in which you play as ~~Ged~~ ~~Gerd~~ ~~Gerald~~ Geralt, a super masculine generic-white-man protagonist who grumbles everything he says like Batman. Hopefully you like Geribald, because you don't get to customize him in any way. You'll control Gabriel from a third-person perspective, awkwardly hovering over his right shoulder as he trudges around wherever it is that he lives. The map is large, so in order to spare you too much trudgery Giovanni has a horse that he can ride insofar as it doesn't get stuck on any rocks, stumps, shrubbery, or especially stout blades of grass. The horse is named after an insect of some kind.
|
||||||
|
|
||||||
|
As he rides about the scenery, Grayson will run into all sorts of gurgling monsters that he will attempt to defeat by swinging one of his two swords at them: one silver, which is good for some monsters, and one steel, which is good for others, for some reason. He also has a crossbow with a fire-rate that may well be slower than his refractory period[^1]. Oh, and Gavin is also a witcher, not to be confused with something so compelling as a witch. This means that he can sometimes shoot different colored lights from his hand, and has some sort of smell-o-vision a la [Dog's Life for PS2](https://www.youtube.com/watch?v=GcHKPjCGAX4). Combat is mostly an exercise in clicking wildly while watching needlessly acrobatic sword-swinging animations play.
|
||||||
|
|
||||||
|
I am told that the *proper* way to play this game is on the hardest difficulty, wherein the player will have the pleasure of milling about collecting various herbs and other ingredients in order to create a variety of potions and sword…oils…(?) without which completing the game is impossibly difficult. After repeatedly dying during an introductory mission escorting some sort of demon baby ten meters up a dirt path I chose instead to set the game difficulty to "Just the Story," which somehow still finds me killed time and time again on missions that the game recommends for players at or below my level.
|
||||||
|
|
||||||
|
Unlike, say, Skyrim, talking to NPCs rarely nets Gerardo more than a wet cough, so quests are to be found at job-boards posted at each human settlement. You might think that this would discourage exploration and lower the sense of immersion in the game, but after thirteen hours of game-play to date I can say with confidence that yes, in fact it does. So in a world seemingly devoid of any interesting discoveries to be made, if guiding Roach the horse from obstruction to obstruction across the landscape while vaguely sad music plays isn't enough to keep you interested in the open world of The Witcher 3, you can skip the rather beautiful scenery altogether via the fast-travel system.
|
||||||
|
|
||||||
|
When the few of us who aren't utterly enamored with this game say anything to that effect, we're often dismissed as pedestrian and told that it's *all about the story,* so let's get into that. What I know so far is that Gideon's adopted daughter was nicked by some folk in hoods. Why? I couldn't tell you. I'm stuck trying to kill a werewolf in "Just the Story" mode so that I can progress the story. Maybe I need to craft a sword-oil or something. Honestly, I don't know that I can be bothered.
|
||||||
|
|
||||||
|
[^1]: I hear we'll find out later in the game.
|
@ -0,0 +1,70 @@
|
|||||||
|
---
|
||||||
|
title: "An Evening with “America’s Best Incense:” Wild Berry"
|
||||||
|
description: "I review $40 worth of Wild Berry incense in an evening."
|
||||||
|
date: 2025-08-09
|
||||||
|
tags:
|
||||||
|
- Incense
|
||||||
|
- Incense Review
|
||||||
|
synopsis: "I review $40 worth of Wild Berry incense in an evening."
|
||||||
|
imageURL: "/img/wildBerry/wild_berry_incense_sticks.webp"
|
||||||
|
imageAlt: "Several packs of incense sticks with a ruler on top showing a stick length significantly below eleven inches, as well as some three plus inches of uncoated bamboo stick."
|
||||||
|
mastodon_id: "115007567342939989"
|
||||||
|
---
|
||||||
|
In a [recent post](https://incenseinthewind.blogspot.com/2025/08/rasbihari-lal-absolute-oud.html?sc=1754495465540#c8441585320216937517), our friend Steve of Incense in The Wind described those with an aversion to perfume-dipped incense sticks as *prejudiced*. This has invited some self reflection. Dear reader, I think I may have been called out[^1].
|
||||||
|
|
||||||
|
It is true that I typically enjoy incense made out of, well, incense, but hell, maybe it's time to challenge this *blatant elitism*! After all, aren't incense sticks carefully constructed from sawdust, Elmer's glue, and various mysterious liquids named after [illicit substances](https://web.archive.org/web/20210910075942/https://www.stoutmonk.com/image/cache/data/Flute-Cannabish-250x250.jpg) and [public figures](https://web.archive.org/web/20250116044541/https://www.theculturalexchangeshop.com/details.php?id=4933) just as valid?! It's time to check my privilege, confront my prejudices, and find out. Yes, my friend, I've had the Ossetra caviar slapped out of my mouth, and no sooner than the blini landed on my Persian rug (crème fraîche down) have I set off to my nearest [Waffle House](https://knowyourmeme.com/memes/subcultures/waffle-house) for a real, honest, down-to-earth, working-man's meal. Folks, I am *excited* about this one. In this article we're putting down our highfalutin Japanese sticks and exploring “America’s Best Incense[^2]:” [Wild Berry](https://wild-berry.com/).
|
||||||
|
|
||||||
|
Wild Berry sells an *incredible* variety of fragrances, and I've chosen six of them: some fruits, some resins, and some fragrances that I'd expect to be more like compositions rather than single notes. When placing the order, I noticed that the website sold resealable bags for a dollar or two. Not wanting to waste money, and figuring they wouldn't mind parting with ten cents worth of plastic for a $40 order, I entered a note asking whether they could throw in a few, provided the bags the incense came in by default couldn't be resealed.
|
||||||
|
|
||||||
|
As I brought my laundry basket downstairs earlier today I checked the front porch for parcels. Jackpot. I've got the apartment to myself and nothing better to do, so I figure I'll order a takeaway, binge-watch some [Foundation](https://www.rottentomatoes.com/tv/foundation), and try some of "America's Best" incense sticks while my laundry thumps around in the drier. I open the box, plonk it on the coffee table and began to rifle through the selection. Not a resealable bag in sight. Great; now the smell of this stuff is going to be slowly leeching into my apartment for time immemorial. I do however get a sticker and five sample sticks of "Mango Passion."
|
||||||
|
|
||||||
|
[](/img/wildBerry/wild_berry_incense_sticks.webp)
|
||||||
|
|
||||||
|
The "eleven inch" sticks all come markedly short of eleven inches, and they each have some three-plus inches of bare bamboo stick. Some appear to be machine extruded while others show a coating gradient typical with powder-coated sticks. Strange. I start with a strawberry cone:
|
||||||
|
|
||||||
|
## Strawberry (Cones)
|
||||||
|
I'm *sure* I had these before. I have a feeling they may have been among the incense I picked up from a gas station near my school that I used to frequent not only for [the drinks with the wee glass lizards on them](https://www.reddit.com/media?url=https%3A%2F%2Fi.redd.it%2Feaqi1o3yv2441.jpg)[^3], but for their gargantuan incense display. The cones have surprisingly little fragrance before they are burned. Upon lighting, they produce a large amount of smoke. There is a sweet, strikingly artificial, strawberry-like fragrance in the burn. It's reminds me of a strawberry juice-box or fruit snack that's 99% apple juice with a hint of strawberry essence. But mostly, I smell the charcoal and some accelerant. The smell is nostalgic, but not good by any stretch. My throat is already feeling slightly irritated; an inauspicious start. Moving on swiftly.
|
||||||
|
|
||||||
|
## Coconut
|
||||||
|
These have a very strong fragrance on the stick. It's sweet and acidic, almost more like a piña colada that coconut. It smells quite delicious. This fragrance is also inducing some nostalgia for me. On lighting, an aggressively sooty flame leaps to cover the first centimeter or so of the stick; oil appears to emerge from the stick directly beneath the flame. The fragrance upon extinguishing the flame is shocking. It's *foul*: vaporized wax, burning plastic, and some odd fishy note with a hint of artificial coconut. It's the kind of smell that makes you feel that your lifespan is being reduced. I put the stick out in short order.
|
||||||
|
|
||||||
|
## Frankincense
|
||||||
|
I was keen to try this one; I wanted to know how close it would be to its namesake. Not remotely, as it happens. You ever walk into a Joann or Michaels craft store around Christmas? That's what this stick smells like. Sickly sweet, artificially spicy—a bit like like rum-raisin ice-cream and men's spray-on deodorant with a hint of Play-Doh. Since that coconut stick put the fear of god into me, I've decided to start burning these sticks far, far away from where I'm sitting. The kitchen will do. I place the burner on wooden prep table in my kitchen. I hold my breath while lighting and quickly scuttle off back to the couch to watch Brother Day try to keep the empire afloat. I have no doubt the fragrance will find me there. To my surprise, this rather powerful fragrance actually comes through reasonably well in the burn; it's definitely not as abominable as the coconut. Still, I have to put it out before long.
|
||||||
|
|
||||||
|
Around this point my takeaway arrives, so I decide to take a break. I cast my eyes onto the open package as I eat. It smells like someone's eating a fruit salad in a perfume shop. I consider moving it.
|
||||||
|
|
||||||
|
## Dragon's Blood
|
||||||
|
Like frankincense, my collection of something like 100 fragrant materials in various jars, bags, bottles, and tubes includes dragon's blood. That's the thing about resins: they're real substances that people own, and so if you name an incense stick after them, people are going to know when you're fibbing. This stick smells like baking spice and tart fruit, which is confusingly close to how I might describe actual dragon's blood resin, but it still somehow smells nothing like it. There is also a benzoin-like sweetness on the unlit stick. The fragrance in the burn is mercifully close to that of the unlit stick, but like the others, it comes along with a boat-load of off-notes. As with the Frankincense, this very strong fragrance quickly became too much.
|
||||||
|
|
||||||
|
I'm feeling a touch dejected. I knew this incense was going to be bad, but I had hoped it would be bad in a fun way, like a fast-food hamburger, or a toy from a cereal box. So far it's just been a bit depressing.
|
||||||
|
|
||||||
|
## Orange Creamsicle
|
||||||
|
But, dear reader, hope springs eternal; the fragrance on this stick is fantastic. It's synthetic and too strong in a fun way, like candy. It's actually quite impressive—there's a sharp orange note, more orange oil than flesh, with a creamy, lactonic vanilla ice-cream note. As for the burn, well, if you buy these just stick them in a jar and pretend they're part of a reed diffuser. The off-notes are tremendous. Orange oil becomes bitter, burning pith. The experience is sickeningly underlined by an eerily unchanged vanilla ice-cream note like a music box playing sweetly amid artillery fire.
|
||||||
|
|
||||||
|
## Opium (Sticks)
|
||||||
|
Wow; this is bringing me right back to my teenage bedroom. The fragrance on the unlit stick is powerful: a trepidatious sniff draws a cough from my battle-worn lungs. By now, I'm too tired to attempt to work out the constituent notes of this composition, but it's not bad. It actually comes through surprisingly cleanly, at least compared to the others I've tried so far[^4]. I wonder whether the sheer strength of this stick isn't just overpowering any lurking off-notes waiting to soak into the carpet. In any case, I might go so far as to burn this one again on purpose. Outdoors, of course, but still.
|
||||||
|
|
||||||
|
## Strawberry (Sticks)
|
||||||
|
At this point, my nasal passages are beginning to feel as though I've [french-inhaled](https://media1.giphy.com/media/v1.Y2lkPTc5MGI3NjExbTVyeWJ3ZTI3aWlnbG9nOHR0eGdyM29hOTRzeW5rbGUxdnIwZmFtciZlcD12MV9pbnRlcm5hbF9naWZfYnlfaWQmY3Q9Zw/xTiTnlbIZkWZDrKqgo/giphy.gif) my way through a pack of [menthol Newports](https://en.wikipedia.org/wiki/Newport_(cigarette)#/media/File:Newport_cigarettes.jpg). I steel myself; I will press on. Although disappointed by the strawberry cones, I somehow still have hope for the sticks. The smell is markedly more complex. It's a combination of strawberry candy and a rather uncanny impression of the sad, cucumbery strawberries they grow here in the U.S. I swear I can even smell the little green leaf at the top. When lit, however, this stick offers major off-notes with a hint of strawberry candy, like a fire in a sweet-shop.
|
||||||
|
|
||||||
|
## Opium (Cones)
|
||||||
|
Now so close to the end, my mind and body are crying out for rest. Like the sticks, this is a competent composition that has enough strength to overpower the stink that seems to be inherent in this brand. Beyond the smell, I find it interesting how wildly inconsistently these Wild Berry cones are shaped. From a company that puts out such volume, I expected production to be such an exercise in precision and efficiency that there would be no room for even the slightest deviation; I've seen more consistent output from even very small incense makers. I wonder why this is as I whisk away the censer containing the burning cone into another room.
|
||||||
|
|
||||||
|
[\" in case you thought you were **really** getting your money's worth.")](/img/wildBerry/wild_berry_opium_incense_cones.webp)
|
||||||
|
|
||||||
|
## Free Sample: Mango Passion
|
||||||
|
As I reach my final task, my spirits are low; my nose a ragged wanderer on his sun-blistered belly, inching towards a verdant oasis after untold hours in the quivering heat, prostrate before the silent might of the dunes. I light a stick.
|
||||||
|
|
||||||
|
How dearly I wish these sticks had been a handful of resealable bags. The fragrance of the unlit stick is pleasant enough: bright passion fruit and mango, per the name. It actually manages to come through relatively intact in the burn too, but all of those unpleasant smells we've come to expect alongside it really ruin the experience. This time the fire is in a Garnier Fructis production facility. With this out of the way, I am free.
|
||||||
|
|
||||||
|
## Conclusion
|
||||||
|
I don't expect you to believe me, but I *did not* intend this article to be a hit-piece. I had anticipated a [Review Brah](https://en.wikipedia.org/wiki/TheReportOfTheWeek) style affair, where I got to sample some inelegant but fine enough incense sticks in fun fragrances. I had hoped that together we could take a dip into what would turn out to be the murky but cool waters of American commodity incense and emerge refreshed, if a touch muddy. Instead, I feel that we've come away with [brain-eating amobea](https://www.cdc.gov/naegleria/about/index.html).
|
||||||
|
|
||||||
|
While Wild Berry's fragrances have left me distressed and unsatisfied, this experience has also left me with many questions. Beyond its products, I find that I've developed a lingering fascination surrounding the company itself. Wild Berry isn't just another big anonymous incense-maker, it has *lore*. From the company's [Duloc](https://youtu.be/p1zQHvvgXOs?si=CuLazpB9jRuXpNBW&t=31)-style [wooden puppet display](https://www.youtube.com/watch?v=F6Kf-ocYmBI), to zany antics such as [dragging employees around on pallet jacks](https://youtu.be/IJHtDyMV03o?si=pfMNMX6R6UYxrs_W&t=35), the more I learn the greater my curiosity. Why do precisely none of the [company vlogs](https://www.youtube.com/playlist?list=PLJEWn3HV8JpN4MDB_srqcB8LQitKtEcBX) show anyone burning incense in their offices? What are they hiding in those five unavailable videos? What on earth is [going on here](https://www.youtube.com/@123WIldberry/), and what is a "[Buxom Busam](https://www.youtube.com/watch?v=zStV6vwjQYk)?"
|
||||||
|
|
||||||
|
As for the incense itself, I'm flummoxed. How can something of such irredeemably poor quality be so ubiquitous? I admit I have come to deeply resent spending $40 on incense I've described in terms of war, but I also can't help but feel that this endeavor has made me party to one of the great mysteries of our time. Filled with a sense of both wonder and horror in the face of it, I've found myself staring at a [rotating](https://en.wikipedia.org/wiki/File:8-cell-orig.gif) [tesseract](https://en.wikipedia.org/wiki/Tesseract), beautiful in its incomprehensibility. And who knows? After a bout of therapy to overcome the trauma I've experienced tonight, I may eventually be able to put some of these sticks into service on the porch as bug-repellent.
|
||||||
|
|
||||||
|
[^1]: Obligatory disclaimer assuring you that I'm being tongue-in-cheek and I am in no way salty at anyone.
|
||||||
|
[^2]: The scare quotes are, I kid you not, included in their official branding.
|
||||||
|
[^3]: I typically try not to make too much of a show of my impeccable taste, but I fear that may be impossible in this instance.
|
||||||
|
[^4]: A very, very low bar.
|
29
content/blog/hono-sandalwood-incense-review.md
Normal file
29
content/blog/hono-sandalwood-incense-review.md
Normal file
@ -0,0 +1,29 @@
|
|||||||
|
---
|
||||||
|
title: "Incense Review: Hono Sandalwood"
|
||||||
|
description: "Checking out some sticks from a local store selling Japanese incense."
|
||||||
|
date: 2025-04-19
|
||||||
|
tags:
|
||||||
|
- Incense
|
||||||
|
- Incense Review
|
||||||
|
synopsis: "Checking out some sticks from a local store selling Japanese incense."
|
||||||
|
imageURL: /img/hono_sandalwood/hono_sandalwood_square.webp
|
||||||
|
imageAlt: "A closeup photo of the small hono Sandalwood box atop a neat row of incense sticks, beside a small shiny white ceramic burner. The burner is plain, and square, with a small hole in the middle in which to insert an incense stick."
|
||||||
|
mastodon_id: "114367576630950761"
|
||||||
|
---
|
||||||
|
I'm forever keeping my eyes peeled for brick-and-mortar stores in my city that sell decent incense, particularly Japanese incense. As such, I was delighted to discover [Five Elements Home](https://www.fiveelementshome.com/) in the beautiful Chicago neighborhood of Andersonville. On my first visit to the store, I darted right past the beautiful imported Japanese ceramics and textiles to the incense section.
|
||||||
|
|
||||||
|
My taste in incense is fairly traditional. I tend to enjoy incense that makes use of natural, whole-plant ingredients, and compositions based around classic aromatic woods, spices, herbs, and resins. I did feel a touch let down then upon discovering that the collection at Five Elements Home is decidedly modern. On display are hibi incense matches, paper incense, and sticks with fragrances such as coffee, citrus, and white peach, which are impossible to make with traditional ingredients and processes. As a result, while my partner and I have visited on a few occasions since to buy tea, it was only recently that I decided to take a gamble on some of the incense on offer. I picked up a couple of boxes, including an adorable wee box of hono Sandalwood.
|
||||||
|
|
||||||
|
The box, which folds open like a tiny carton of cigarettes, contains thirty little sticks and a small ceramic burner not unlike the ones that come in various Nippon Kodo offerings. Only eight centimeters long apiece, the short sticks are very fragrant out of the box: spice, sandalwood, and a hint of something rather cool—camphor, perhaps? The sticks smell like everything you want in a traditional Japanese style incense stick, but the pungency gives me pause.
|
||||||
|
|
||||||
|
[](/img/hono_sandalwood/hono_sandalwood_w.webp)
|
||||||
|
|
||||||
|
In the burn, Hono Sandalwood opens with an unfortunately powerful hit of burnt sugar. I always try to withhold judgment on a stick until the first ash has fallen; off-notes upon lighting are not at all uncommon.[^1] Still, the strength of this off-note stunned me for a moment. What followed was was mostly spice (predominantly clove, to my nose) and a strong creamy note of Indian sandalwood.[^2] The cooling aspect of the unlit sticks was lost, which came as no surprise as the amount of camphor needed to come through in the burn, although still minuscule, tends to make unlit sticks sing of that characteristic 'frozen-onions' fragrance that borneol imparts.[^3] There is a subtle sweetness present, which I assume is just from the sandalwood as I don't detect the round, vanillic complexity of benzoin.
|
||||||
|
|
||||||
|
This is not a stick I want to sit next to as it burns. The fragrance is powerful, and accompanied by the sort of off-notes I'd expect from a cheaper oil-based incense. That burnt-sugar note I mentioned earlier continues quietly throughout the burn also. The fragrance easily fills my office, and it lingers in the room for a while after the stick is extinguished. From a distance, it's not unpleasant; the fragrance itself is inoffensive. I'm actually quite happy to have one of these burning at the far end of the room; my qualm is only that if I was happy to contend with all of these off-notes, I could achieve a similar result by burning a centimeter of a much cheaper Indian style sandalwood stick, rather than paying eighteen US dollars for a very small box of very small sticks of Japanese incense.
|
||||||
|
|
||||||
|
One of the gentlemen manning the store mentioned to me that everything in in stock was imported directly to the store from Japan, and is otherwise largely unavailable in the U.S. I love this idea, but still—while these hono sticks aren't going to gather dust in my incense drawer—I expect I may find myself wishing I could have just picked up a box of Shunkohdo Sarasoju for my sandalwood fix instead.
|
||||||
|
|
||||||
|
[^1]: For example Baieido's Kobunboku, a favorite at the moment, emits a brief note when lit that reminds me of cigarettes.
|
||||||
|
[^2]: Reminiscent of Nippon Kodo's Kayuragi Sandalwood sticks, which are also almost certainly oil-based, but I very much enjoy nonetheless.
|
||||||
|
[^3]: Looking at you again, Kobunboku.
|
@ -0,0 +1,31 @@
|
|||||||
|
---
|
||||||
|
title: "Incense Cigarettes? Reviewing Boy Vienna’s 11:11 Incense Sticks"
|
||||||
|
description: "Taking a look at Boy Vienna's viral cigarette incense sticks."
|
||||||
|
date: 2025-05-08
|
||||||
|
tags:
|
||||||
|
- Incense
|
||||||
|
- Incense Review
|
||||||
|
imageURL: /img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_2.webp
|
||||||
|
imageAlt: "What appears to be a pack of cigarettes labeled 11:11. There is also a card featuring the brand name Boy Vienna and a temporary tattoo featuring an image of a lipstick-print and the brand name."
|
||||||
|
synopsis: "Taking a look at Boy Vienna's viral cigarette incense sticks."
|
||||||
|
mastodon_id: "114462578542598320"
|
||||||
|
---
|
||||||
|
[Boy Vienna](https://boyvienna.com/) is a brand from fashion designer and multi-media artist [Afaf Fi Seyam](https://www.instagram.com/zeopatra) that has been receiving attention on [TikTok](https://www.tiktok.com/@boyvienna/video/7366977382508514603) and [Instagram](https://www.instagram.com/zeopatra/reel/DAyIy2Lv0RQ/) for its incense cigarettes. I knew I was going to have to try these sticks the minute they found their way onto my screen—it would seem that [everyone else felt the same way](https://www.instagram.com/zeopatra/p/DJHP0a3NnlI/), as when I made my way to the web store most of Boy Vienna's incense varieties were sold out. For 35 {{ "USD" | abbr("United States Dollars") | safe }}, I was able to snag a box of the 11:11 variety, listed as containing a blend of sage, lavender, and rosemary.
|
||||||
|
|
||||||
|
[](/img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_2.webp)
|
||||||
|
|
||||||
|
Knowing what I do about incense making, I didn't expect much from these fragrance-wise; I'm not too proud to admit that the novelty of the format and packaging was the main draw here, and barring some qualms about the typesetting, I'm here for it. It's cute. The box looks good on my coffee table, and the format is fun. But speaking of appearances, I do wish I could have gotten my hands on a box from Boy Vienna's [collaboration with athletic apparel brand Wolven](https://web.archive.org/web/20250506164206/https://wolventhreads.com/cdn/shop/files/Incense_0001_IMG_99913_1080x.jpg?v=1705074215), which reminds me of the [Sobranie Black Russian](https://web.archive.org/web/20250506164824/https://cdn.shopify.com/s/files/1/0786/5205/products/pin_514254851190026968_grande.jpg?v=1535441863) and [Djarum Black Kretek clove cigarettes](https://web.archive.org/web/20220216044852/https://www.ciggiesworld.ch/wp-content/uploads/2017/07/Djarum-Black-Kretek-Clove-Cigarette-Wallpaper.jpg) I once (regrettably) enjoyed using to rupture my alveoli.
|
||||||
|
|
||||||
|
[](/img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_1.webp)
|
||||||
|
|
||||||
|
The cigarette format also comes with some distinct advantages. If you do happen to have an ashtray laying around, these sticks will be very convenient. Not having an appropriate burner on hand can be a problem for even those who use incense regularly. Because all of my burners are meant for much smaller Japanese and Chinese style sticks, on the odd occasion I have an Indian-style agarbatti stick to burn I inevitably find myself scrambling around the house looking for some way to secure it. The cigarette-format sticks also light easily, burn consistently, and the ash falls within a small area which helps to keep things clean.
|
||||||
|
|
||||||
|
[, I don't have an ashtray handy.")](/img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_4.webp)
|
||||||
|
|
||||||
|
I was impressed with the fragrance from the trio of herbs immediately upon opening the package; they are clearly high quality ingredients. The lavender especially sings—it's downright juicy. As for the burn, well it turns out that much of that characteristic cigarette smell comes from the paper. This hit me as soon as I lit a stick (which felt very strange without putting the cigarette to my lips). If you've ever burned a bundle of sage, burning a stick of 11:11 is not far removed from the experience. Sage is the predominant note, with occasional bursts of lavender and a good measure of rosemary, with a screaming acrid note of burning-plant matter and cigarettes. Far too much for my small living room, these sticks are very smoky, both in terms of the smell and the literal smoke output, while also being bright, turpenous, and somehow leathery. It reminds me at once of the tail-end of a long night out after one too many pints, while also evoking a cruise down a sunny Texan country road in a hot car with leather seats alongside a friend who indulges too often in both cigarettes and perfume. A good time in both cases, only you're feeling a bit sick.
|
||||||
|
|
||||||
|
[](/img/boy_vienna_11_11/boy_vienna_11_11_incense_cigarette_sticks_5.webp)
|
||||||
|
|
||||||
|
While I'm not generally in favor of introducing ingredients into incense—such as paper or large amounts of wood binder—that don't somehow add to, enhance, or improve the fragrance, I recognize that the format is the key selling point here, so I don't expect it to change. What I would like to see, however, is some sort of temperature regulation in these sticks. Like putting a chunk of apple in your tobacco pouch, any number of strategies would go a long way towards reducing the harshness of these sticks: a little resin added to the mixture; using a little more pressure when loading; including a fairly oily or resinated fragrant wood as a base; or grinding ingredients more finely. I have a feeling that those used to less controlled methods of burning incense (charcoal, herb bundles, lighting Palo Santo sticks, et cetera) likely won't mind the smoky, acrid notes of plant-matter burning very quickly, but as for myself, I don't imagine I'll light one of these indoors again. I can appreciate a smoky Tibetan stick as much as anyone, but 11:11 was just a bit much for me. That said, when my partner came into the living room after I had burned a stick, they noted that the room smelled nice, so there you go.
|
||||||
|
|
||||||
|
Overall, do I regret spending $35 on eighteen Boy Vienna's 11:11 cigarette incense sticks? I don't think so, although it does smart a little that for nine dollars less I could have picked up a box of Minorien's very good [Jinko Fu-In](https://kikohincense.com/collections/minorien-incense-kikoh/products/jinko-fu-in-aloeswood-incense?variant=39598350762072) sticks. Will I be buying them again? Probably not, but I had fun trying them, and that's really all I was after.
|
11
content/blog/introducing-the-stochastic-bletherist.md
Normal file
11
content/blog/introducing-the-stochastic-bletherist.md
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
---
|
||||||
|
title: "At Last, My Blog Has a Name!"
|
||||||
|
description: "New name, who dis?"
|
||||||
|
date: 2025-07-13
|
||||||
|
tags:
|
||||||
|
- Site Updates
|
||||||
|
synopsis: "New name, who dis??"
|
||||||
|
mastodon_id: "114848297332289745"
|
||||||
|
---
|
||||||
|
|
||||||
|
Since I started writing here in earnest, I've been enchanted by the idea of having a proper name for my humble blog. I didn't dare put too much thought into it until recently; the task seemed too intimidating. There's a lot to think about after all: Do you choose something dry and professional, at risk of sounding pompous or grandiose? Something pithy, at risk of sounding too cutesy? Or something funny, at risk of not being taken seriously? Well, dear readers, by combining a five dollar word, a play on words, and some perhaps lightly distasteful humor, I've somehow managed to encapsulate all three options in arriving at a name for my blog that is, perhaps unfortunately, very *me.* Introducing: *[The Stochastic Bletherist](/blog)*!
|
18
content/blog/perfumery-islamophobia.md
Normal file
18
content/blog/perfumery-islamophobia.md
Normal file
@ -0,0 +1,18 @@
|
|||||||
|
---
|
||||||
|
title: "On the Recent Controversy Surrounding a Certain Perfumery. "
|
||||||
|
description: "The difference between critique and denigration."
|
||||||
|
date: 2025-07-13
|
||||||
|
tags:
|
||||||
|
- Quick Thoughts
|
||||||
|
- Incense
|
||||||
|
synopsis: "The difference between critique and denigration."
|
||||||
|
---
|
||||||
|
Someone recently shared with me transcripts and audio recordings that have been going around of comments that are alleged to have been made by the owner of a well-regarded perfumery. This owner also recently published a video on the matter. I am not going to mention names, but I am sure many in the fragrance and incense community are already aware of the situation. I'm seeing a lot of anger online, as well as a number of people coming to the owners' defense. Having seen what I have, here are my thoughts.
|
||||||
|
|
||||||
|
First of all, I'm an anti-theist. I don't believe that *any* religion is inherently deserving of respect, let alone beyond critique or reproach. As this situation involves religion, I was expecting to see yet another case of hypersensitive believers becoming upset at a simple criticism. But there is a difference between criticism and denigration, and while ideas may not be owed respect simply because they exist, I believe that people are. What I saw and heard was not critique. It was outright insult and denigration in the most inflammatory terms possible.
|
||||||
|
|
||||||
|
There is a key difference between innocent commentary on a particular worldview (even if contentious), and outright insulting an entire group of people, their beliefs, their cultures, and their countries of origin. The language and talking points I saw, in particular the parroting of right-wing anti-immigrant rhetoric aimed at Muslims, struck me not as critique, but racism. Further, to harbor the beliefs espoused in these recordings and transcripts regarding a demographic while also directly marketing products to them seems especially contemptible.
|
||||||
|
|
||||||
|
In the video addressing the situation, the individual concerned pointed out that these statements were taken out of context. It is difficult to imagine how context could possibly excuse the statements I read and heard, but they were indeed presented without context. Regardless, rather than make a genuine apology which includes an acknowledgement of the harm caused, they opined on how unfortunate it was that their remarks were made public, and chose to shut down comments when people began to share some of the remarks that are alleged to have been made.
|
||||||
|
|
||||||
|
We all make mistakes. Sometimes people make remarks in anger that they don't mean, or we phrase our arguments in ways that are hurtful and unproductive. In my mind, there's still room for that to be the case here. But the first step towards growth and forgiveness is a sincere apology: naming your mistake openly, acknowledging the harm it caused, and taking steps to rectify that harm. While I am not in the group harmed by this situation, the rhetoric purported to have been espoused here does harm individuals who I respect and care for. Thus, while it's not my place to offer forgiveness, I will not be purchasing anything from this individual until such time as an earnest apology has been offered, and steps have been taken to rectify the harm caused. If I do not see this effort, I must believe that this individual stands by the statements they are alleged to have made, and as we have come to learn, [funding people funds their beliefs](https://www.advocate.com/news/jk-rowling-anti-trans-organization).
|
@ -14,6 +14,10 @@ author:
|
|||||||
name: "Nathan Upchurch"
|
name: "Nathan Upchurch"
|
||||||
profilePic: "/img/CN20191025_301_Srt_SQUARE_crop.jpg"
|
profilePic: "/img/CN20191025_301_Srt_SQUARE_crop.jpg"
|
||||||
---
|
---
|
||||||
|
::: info
|
||||||
|
Update 2025-06-24: You can buy the final extruder, replacement nozzles, and accessories from outside of China via [SuperBuy](https://www.superbuy.com/en/page/buy/?url=https%3A%2F%2Fdetail.1688.com%2Foffer%2F750437159209.html). For a side by side comparison of some of the extruders, see [this picture](/img/extruders/comparison1.webp) and [this picture](/img/extruders/comparison2.webp): the aluminum and stainless extruders are near identical in diameter, but the aluminum model is shorter.
|
||||||
|
:::
|
||||||
|
|
||||||
Given that hobbyist incense making hasn't exactly been all the rage since the tang dynasty, finding good incense-making equipment for small-scale home production can be a bit of a tribulation. If you make Chinese or Japanese style coreless incense, one of the first hurdles on the way to kitting out your very own mini incense workshop is choosing a manual extruder. Now that I finally feel confident that I've overcome this particular hurdle, here's what I've learned:
|
Given that hobbyist incense making hasn't exactly been all the rage since the tang dynasty, finding good incense-making equipment for small-scale home production can be a bit of a tribulation. If you make Chinese or Japanese style coreless incense, one of the first hurdles on the way to kitting out your very own mini incense workshop is choosing a manual extruder. Now that I finally feel confident that I've overcome this particular hurdle, here's what I've learned:
|
||||||
|
|
||||||
## Where to Find a Suitable Extruder
|
## Where to Find a Suitable Extruder
|
||||||
|
@ -4,11 +4,14 @@ description: "You always hope that your favorite musicians will retire before th
|
|||||||
date: 2025-03-28
|
date: 2025-03-28
|
||||||
tags:
|
tags:
|
||||||
- Music
|
- Music
|
||||||
- "TW: SA"
|
|
||||||
synopsis: "You always hope that your favorite musicians will retire before they do anything too embarrassing."
|
synopsis: "You always hope that your favorite musicians will retire before they do anything too embarrassing."
|
||||||
imageURL: /img/till.webp
|
imageURL: /img/till.webp
|
||||||
imageAlt: A black and white photo of Till Lindemann looking sad.
|
imageAlt: A black and white photo of Till Lindemann looking sad.
|
||||||
|
mastodon_id: "114270477560168817"
|
||||||
---
|
---
|
||||||
|
::: info
|
||||||
|
Content Warning: Misogyny; Mention of sexual assault.
|
||||||
|
:::
|
||||||
Over his storied career, Till Lindemann has been given a lot of grace. Both he, as a lyricist, and the Neue Deutsche Härte powerhouse he fronts, have made some questionable decisions over the years. Many of these missteps might perhaps be chalked up to the era, such as the unfortunate fat-suits in Rammstein's *Keine Lust* music video. We might also see the red-face in *Amerika* as ignorance rather than malice, given it was donned by a group some 5,000 miles away from the peoples being insulted, and in 2004, no less. Likewise, as a queer Rammstein fan I always saw *Mann gegen Mann* as a statement on the ridiculousness inherent in the rabid homophobia that was common at the time. The trouble with satire, however, is that you can never be perfectly sure whose side is being satirized, and Lindemann's later work threatens to cast an unflattering light upon lyrics written decades ago.
|
Over his storied career, Till Lindemann has been given a lot of grace. Both he, as a lyricist, and the Neue Deutsche Härte powerhouse he fronts, have made some questionable decisions over the years. Many of these missteps might perhaps be chalked up to the era, such as the unfortunate fat-suits in Rammstein's *Keine Lust* music video. We might also see the red-face in *Amerika* as ignorance rather than malice, given it was donned by a group some 5,000 miles away from the peoples being insulted, and in 2004, no less. Likewise, as a queer Rammstein fan I always saw *Mann gegen Mann* as a statement on the ridiculousness inherent in the rabid homophobia that was common at the time. The trouble with satire, however, is that you can never be perfectly sure whose side is being satirized, and Lindemann's later work threatens to cast an unflattering light upon lyrics written decades ago.
|
||||||
|
|
||||||
In 2015, you didn't have to be on the bleeding edge of contemporary thought on matters of social justice to recognize that *Ladyboy* and *Fat* of Till Lindemann and Peter Tägtgren's *Skills in Pills* was, to put it mildly, problematic. Still, Rammstein has never taken itself too seriously; it didn't seem terribly incongruent or damning that Till would opt to play the clown in an ill-advised politically-incorrect shock-rock album that, let us admit, did contain the odd banger. Till's attempts at a contemporary *Leah Sublime[^1]* certainly ring hollow compared to much his lyrics for Rammstein—which, while also often juvenile and shocking, explore themes of love, lust, obsession, gender, and the body in interesting and compelling ways—but never have I felt that they betray anything more insidious than a blurry view of the boundaries of poor taste. Further, Rammstein detractors have so long 'spent spouting the tide'[^2] of satanic-panic style criticism and speculation as to the group's messaging and politics, that it was eventually forced to be quite frank on the matter. As Lewis Twilby reported in Edinburgh University's history, classics, and archaeology magazine, *[Retrospect Journal](https://retrospectjournal.com/2019/10/20/deutschland-by-rammstein-a-look-at-cultural-memory-in-germany/)*:
|
In 2015, you didn't have to be on the bleeding edge of contemporary thought on matters of social justice to recognize that *Ladyboy* and *Fat* of Till Lindemann and Peter Tägtgren's *Skills in Pills* was, to put it mildly, problematic. Still, Rammstein has never taken itself too seriously; it didn't seem terribly incongruent or damning that Till would opt to play the clown in an ill-advised politically-incorrect shock-rock album that, let us admit, did contain the odd banger. Till's attempts at a contemporary *Leah Sublime[^1]* certainly ring hollow compared to much his lyrics for Rammstein—which, while also often juvenile and shocking, explore themes of love, lust, obsession, gender, and the body in interesting and compelling ways—but never have I felt that they betray anything more insidious than a blurry view of the boundaries of poor taste. Further, Rammstein detractors have so long 'spent spouting the tide'[^2] of satanic-panic style criticism and speculation as to the group's messaging and politics, that it was eventually forced to be quite frank on the matter. As Lewis Twilby reported in Edinburgh University's history, classics, and archaeology magazine, *[Retrospect Journal](https://retrospectjournal.com/2019/10/20/deutschland-by-rammstein-a-look-at-cultural-memory-in-germany/)*:
|
||||||
|
39
content/blog/what-ive-been-going-with-incense-lately.md
Normal file
39
content/blog/what-ive-been-going-with-incense-lately.md
Normal file
@ -0,0 +1,39 @@
|
|||||||
|
---
|
||||||
|
title: "What I’ve Been Doing with Incense Lately"
|
||||||
|
description: "New sticks, faster build development, percolating, and something coming soon?"
|
||||||
|
date: 2025-07-12
|
||||||
|
tags:
|
||||||
|
- Incense
|
||||||
|
- Incense Making
|
||||||
|
synopsis: "New sticks, faster build development, percolating, and something coming soon?"
|
||||||
|
imageURL: /img/what_ive_been_doing_with_incense_lately/dropper.webp
|
||||||
|
imageAlt: "A brass incense powder dropper with a bamboo lid and a tapered nozzle beside a brass hammer, a spoon, and a tray filled with white ash and several burned trails. All of this is on top of my messy work table."
|
||||||
|
mastodon_id: "114848206538212433"
|
||||||
|
---
|
||||||
|
It's been a while since I've written about incense making; to be honest, things have slowed down a little. It's been pretty hot in Chicago lately—I find that my sense of smell is dulled as the temperature and humidity rises. Unfortunately my apartment is very poorly insulated, so I've been burning, testing, and experimenting less as a result. The heat hasn't put me off entirely though; here's what I've been up to.
|
||||||
|
|
||||||
|
## Speeding up the creative process
|
||||||
|
I've picked up a device[^1] designed to help you make Chinese incense seals, whereby a design, or seal, of incense powder is burned atop a layer of ash. The kit I ordered came with a bag of ash, a ceramic tray, a brass dropper, and a small brass hammer with a detachable plastic tip.
|
||||||
|
|
||||||
|
[](/img/what_ive_been_doing_with_incense_lately/dropper.webp)
|
||||||
|
|
||||||
|
I didn't buy this for casual incense burning, but to speed up the process of creating an incense build, or blend. Rather than painstakingly making an impression in a bed of ash and filling it with incense powder using a tiny spoon, I have taken to using the dropper to quickly lay a trail of incense powder down for rapid iteration.
|
||||||
|
|
||||||
|
## Beau Soir
|
||||||
|
With six one-gram iterations using this technique, I managed to develop a new build for a stick I'm calling "Beau Soir," after the [utterly beautiful melody](https://www.youtube.com/watch?v=xKCcFxBP2o0&list=RDxKCcFxBP2o0). The fragrance is designed to evoke a walk through a garden on a cool evening: moist soil; cool air; greenery; gentle floral notes. In addition to being the first build I've developed with my swish new dropper (an excellent experience), I am using some new and exciting ingredients: namely musk root, plus a type of rhubarb. This is also another effort on my part to incorporate *actual flowers* into incense. This is a difficult task without introducing a bundle of off-notes, and as a result, it's something not many Japanese-style incense makers do. I have Dave of [The World Makes Scents](https://theworldmakesscents.com/) to thank for this. He put in the work of figuring out a particular species of rose that actually works well in incense, then processing it into an extremely high quality powder using a ball mill so that none of the fragrance is lost to heat. This powder doesn't confer a rose-oil or rose-water-like strength, but it does add a subtle, hard to describe (almost fluffy? marshmallowy?) floral note that adds something special to a build. I'm fairly pleased with Beau Soir, with a couple of positive reviews in already. But at this point, I'm just about burned out on smelling the stuff, so I'm going to send out some samples soon to gather some more opinions before I do anything more with it.
|
||||||
|
|
||||||
|
## Percolating
|
||||||
|
It is a fact, though, that some ingredients simply do not play nicely in the burn, at least less some obscure Chinese processing techniques that I am not privy to. For instance, I recently ordered a bag of chamomile to try; a trail of ten percent chamomile to ninety percent sandalwood was already acrid, with only a subtle chamomile note. What is a humble incense maker to do? Well, I've had some success with tinctures; soaking six grams of Juniperus virginiana in a fluid ounce of lavender tincture and letting the liquid evaporate results in a *very* fragrant wood powder with a clear lavender note even a year later. Tinctures are expensive to buy though, and they take forever to make, so I've decided to give percolation a try. Instead of macerating a material for months like a traditional tincture, you can make a percolated extract in around 24 hours. They are meant to be much stronger too.
|
||||||
|
|
||||||
|
[](/img/what_ive_been_doing_with_incense_lately/percolator.webp)
|
||||||
|
|
||||||
|
The procedure begins by hydrating your material in whatever menstruum you've chosen (190 proof Everclear for me), adding just enough so that the texture becomes like wet sand, and letting it absorb for an hour. Then you load it into a device called a "dropping funnel," which is functionally an upside down bottle with the bottom cut off. After gently packing the material evenly, you carefully pour in the rest of your menstruum and let it reach the bottom of the funnel before sealing off the stopcock and letting the mixture macerate for 24 hours. When this step is complete, you allow the liquid to drain into a container, only opening the stopcock enough for a single drop to fall every one to three seconds.
|
||||||
|
|
||||||
|
My first clumsy attempt with 200g menstruum and 100g chamomile netted me ~100ml of potent chamomile extract, which I was pretty pleased about, so I've got some rose root in the drop funnel as we speak—another ingredient that doesn't smell especially nice when you set it on fire.
|
||||||
|
|
||||||
|
## Drop soon?
|
||||||
|
Some time ago, I had an offer to sell some of my incense in a friend's webstore, a very kind offer that I'd like to take advantage of, but I just haven't been set up for it. Well, I've been working on that. I've now got a {{ "DBA" | abbr("Doing Business As: an officially registered name for a person or a business other than their full legal name or business name.") | safe }}[^2], and I'm working on the branding to match. I know this all sounds very official, but my intention is only to do a drop every now and then rather than making a real enterprise out of incense making[^3], something that is simply out of reach at the moment. While I intend to keep things small, I still want to set things up to the best of my ability. That said, don't get too excited; it'll likely be a while yet!
|
||||||
|
|
||||||
|
[^1]: I managed to dig up the link to buy the thing too: [here's where to go if you want one](https://www.aliexpress.us/item/3256806931365339.html). It looks like you have to purchase the hammer and tray separately. Kin Objects [also sells one](https://kinobjects.com/products/incense-powder-dropper-kit?variant=41578587193367).
|
||||||
|
[^2]: And no, I'm not saying what it is yet!
|
||||||
|
[^3]: Honestly, I don't know whether I'd want to; I want to be sure that something I do for joy and artistic expression doesn't become a source of stress.
|
@ -6,6 +6,7 @@ tags:
|
|||||||
- Incense
|
- Incense
|
||||||
- Incense Review
|
- Incense Review
|
||||||
synopsis: "Florals are a notoriously difficult incense category. Today I'm taking a look at Yi-Xin Craft Incense's Pikake Jasmine sticks."
|
synopsis: "Florals are a notoriously difficult incense category. Today I'm taking a look at Yi-Xin Craft Incense's Pikake Jasmine sticks."
|
||||||
|
mastodon_id: "114303689771167166"
|
||||||
---
|
---
|
||||||
In June of 2024, I purchased Pikake Jasmine of Yi-Xin Craft Incense's floral *Faces in Bloom* collection. I was immediately impressed with it, but I was suspicious about how the Jasmine fragrance was achieved, and so wanted to see if the fragrance diminished over time before penning a review. I am happy to report that, close to a year later, Yi-Xin's Pikake Jasmine remains as impressive as ever.
|
In June of 2024, I purchased Pikake Jasmine of Yi-Xin Craft Incense's floral *Faces in Bloom* collection. I was immediately impressed with it, but I was suspicious about how the Jasmine fragrance was achieved, and so wanted to see if the fragrance diminished over time before penning a review. I am happy to report that, close to a year later, Yi-Xin's Pikake Jasmine remains as impressive as ever.
|
||||||
|
|
||||||
@ -15,7 +16,7 @@ In the burn, the stick opens up with a beautiful sandalwood note: creamy, and sl
|
|||||||
|
|
||||||
Typical of Ken's work, this stick is also very clean, with no notable binder notes, smokiness, or acrid off-notes, even when you are sitting very close to the lit stick. Incense makers of any ilk will know how difficult this can be to achieve. I also appreciate the balance here; the fragrance doesn't even approach that sharp, cloying place that less expertly prepared floral incense tends to go. Building up in the room, the impression is predominantly that of a slightly cooler, floral sandalwood. While some sticks tend to undulate between notes, staving off olfactory fatigue, these are quite consistent and so greatly benefit from decent air circulation in the room; in fact, I rather prefer to have them burning in a room that I'm going in and out of frequently during what is quite a short but very enjoyable burn time.
|
Typical of Ken's work, this stick is also very clean, with no notable binder notes, smokiness, or acrid off-notes, even when you are sitting very close to the lit stick. Incense makers of any ilk will know how difficult this can be to achieve. I also appreciate the balance here; the fragrance doesn't even approach that sharp, cloying place that less expertly prepared floral incense tends to go. Building up in the room, the impression is predominantly that of a slightly cooler, floral sandalwood. While some sticks tend to undulate between notes, staving off olfactory fatigue, these are quite consistent and so greatly benefit from decent air circulation in the room; in fact, I rather prefer to have them burning in a room that I'm going in and out of frequently during what is quite a short but very enjoyable burn time.
|
||||||
|
|
||||||
Overall, Yi-Xin's Pikake Jasmine is an excellent entry into the notoriously difficult floral category of incense. As is often the case with Ken's work, this incense could serve as an excellent reference for incense makers exploring what floral incense can be, and for those who simply enjoy burning incense, it's about as good of a floral expression as you can get in combustible incense, built on top of high-quality aromatic woods. Simple, approachable, and well-executed, I'd be happy to recommend this incense to anyone. My only regret is that I've run out.
|
Overall, Yi-Xin's Pikake Jasmine is an excellent entry into the notoriously difficult floral category of incense. As is often the case with Ken's work, this incense could serve as a reference for incense makers exploring what floral incense can be, and for those who simply enjoy burning incense, it's about as good of a floral expression as you can get in combustible incense, built on top of high-quality aromatic woods. Simple, approachable, and well-executed, I'd be happy to recommend this incense to anyone. My only regret is that I've run out.
|
||||||
|
|
||||||
[^1]: The last trail-burn test I performed with jasmine flowers smelled more like Marmite than jasmine!
|
[^1]: The last trail-burn test I performed with jasmine flowers smelled more like Marmite than jasmine!
|
||||||
[^2]: Many non-extract incense ingredients such as actual powdered woods, flowers, and resins don't have much fragrance until the stick is lit. It's not uncommon for natural, whole-plant based incense to have close to no fragrance at all before lighting, especially after it has aged.
|
[^2]: Many non-extract incense ingredients such as actual powdered woods, flowers, and resins don't have much fragrance until the stick is lit. It's not uncommon for natural, whole-plant based incense to have close to no fragrance at all before lighting, especially after it has aged.
|
||||||
|
@ -8,7 +8,7 @@ permalink: /blogroll/nathanUpchurchBlogroll.opml
|
|||||||
<ownerName>Nathan Upchurch</ownerName>
|
<ownerName>Nathan Upchurch</ownerName>
|
||||||
</head>
|
</head>
|
||||||
<body>{% for category in blogroll.categories %}
|
<body>{% for category in blogroll.categories %}
|
||||||
<outline id="{{ category.name }}" text="{{ category.name }}">{% for blog in category.blogs %}
|
<outline text="{{ category.name }}">{% for blog in category.blogs %}
|
||||||
<outline
|
<outline
|
||||||
text="{{ blog.title }}"
|
text="{{ blog.title }}"
|
||||||
description="{{ blog.description }}"
|
description="{{ blog.description }}"
|
||||||
|
@ -4,10 +4,17 @@ title: Nathan Upchurch | Blogroll
|
|||||||
structuredData: none
|
structuredData: none
|
||||||
---
|
---
|
||||||
<h1>Blogroll</h1>
|
<h1>Blogroll</h1>
|
||||||
<p class="nodropcap page-block">Here are some of the blogs I subscribe to. You can click the RSS icon next to each to subscribe using <a href="../about-feeds/">your newsreader</a>, or import all of them at once by downloading and importing this convenient <a href="./nathanUpchurchBlogroll.opml" download>.opml file</a>.</p>
|
<p class="nodropcap">Here are some blogs and independent news outlets I like to read. You can click the RSS icon next to each to subscribe using <a href="../about-feeds/">your newsreader</a>, or import all of them at once by downloading and importing this convenient <a href="./nathanUpchurchBlogroll.opml" download>.opml file</a>.</p>
|
||||||
|
<p class="page-block">
|
||||||
|
<em>Skip to category:
|
||||||
|
{% for category in blogroll.categories %}
|
||||||
|
<a href="#{{ category.name | slugify }}">{{ category.name }}</a>{% if loop.last %}.{% else %},{% endif %}
|
||||||
|
{% endfor %}
|
||||||
|
</em></p>
|
||||||
|
|
||||||
{% for category in blogroll.categories %}
|
{% for category in blogroll.categories %}
|
||||||
<section class="blogroll">
|
<section class="blogroll">
|
||||||
<h2>{{ category.name }}:</h2>
|
<h2 id="{{ category.name | slugify }}">{{ category.name }}:<a class="header-anchor" href="#{{ category.name | slugify }}">#</a></h2>
|
||||||
{% for blog in category.blogs %}
|
{% for blog in category.blogs %}
|
||||||
<div class="blogroll-category-group">
|
<div class="blogroll-category-group">
|
||||||
<a href="{{ blog.url }}"><h3>{{ blog.title }}</h3></a>
|
<a href="{{ blog.url }}"><h3>{{ blog.title }}</h3></a>
|
||||||
|
@ -4,6 +4,31 @@ title: Nathan Upchurch | Changelog
|
|||||||
structuredData: none
|
structuredData: none
|
||||||
---
|
---
|
||||||
# Changelog
|
# Changelog
|
||||||
|
* 2025-08-14
|
||||||
|
* Implemented a [guestbook](/guestbook/).
|
||||||
|
* 2025-07-29
|
||||||
|
* Added [The 74](https://www.the74million.org/) to the [blogroll](/blogroll).
|
||||||
|
* 2025-07-14
|
||||||
|
* Added [Assigned](https://www.assignedmedia.org), [Prism](https://prismreports.org), [Rest of World](https://restofworld.org), and [The Appeal](https://theappeal.org/) to the [blogroll](/blogroll).
|
||||||
|
* Updated the [blogroll](/blogroll), adding a "skip to category" section, and adding direct links to all section headers.
|
||||||
|
* Removed "id" attribute from categories in [blogroll](/blogroll) [OPML](/blogroll/nathanUpchurchBlogroll.opml).
|
||||||
|
* Updated [/wish](/wish).
|
||||||
|
* 2025-07-13
|
||||||
|
* Renamed the [blog](/blog), updated [/about](/about), and added [Bardo Burner](https://bardoburner.com/) to the [blogroll](/blogroll).
|
||||||
|
* 2025-07-10
|
||||||
|
* Added [Toxel](https://www.toxel.com/) to the [blogroll](/blogroll).
|
||||||
|
* 2025-07-02
|
||||||
|
* Added [A Tea Addict's Journal](https://marshaln.com), [Bear Blog Discover](https://bearblog.dev/discover/), [Essence of Tea Blog](https://essenceoftea.com/blogs/blog), [Tea DB](https://teadb.org/), and [white2tea](https://white2tea.com/blogs/blog) to the [blogroll](/blogroll).
|
||||||
|
* 2025-06-26
|
||||||
|
* Added [Justine the Incenseur](https://justinetheincenseur.substack.com) to the [blogroll](/blogroll).
|
||||||
|
* 2025-06-24
|
||||||
|
* Implemented info boxes.
|
||||||
|
* 2025-06-09
|
||||||
|
* Added [Freethought Blogs](https://freethoughtblogs.com/) and [Cwyn's Death by Tea](https://deathbytea.blogspot.com/) to the [blogroll](/blogroll).
|
||||||
|
* 2025-06-06
|
||||||
|
* Implement [/now-burning](/now-burning/) and [/once-burned](/once-burned/).
|
||||||
|
* 2025-04-19
|
||||||
|
* Improve post list image sizing on mobile.
|
||||||
* 2025-04-08
|
* 2025-04-08
|
||||||
* Updated the [index page](/) with a new "navigator" feature, and removed the post lists for a cleaner look.
|
* Updated the [index page](/) with a new "navigator" feature, and removed the post lists for a cleaner look.
|
||||||
* On the individual [tag](/tags/) pages: got rid of the big RSS logo, tweaked the text a little, added a "subscribe" button, and moved the buttons above the post list.
|
* On the individual [tag](/tags/) pages: got rid of the big RSS logo, tweaked the text a little, added a "subscribe" button, and moved the buttons above the post list.
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/403.njk
|
layout: layouts/403.njk
|
||||||
permalink: 403.html
|
permalink: error/403.html
|
||||||
title: Nathan Upchurch | 403
|
title: Nathan Upchurch | 403
|
||||||
structuredData: none
|
structuredData: none
|
||||||
eleventyExcludeFromCollections: true
|
eleventyExcludeFromCollections: true
|
@ -1,6 +1,6 @@
|
|||||||
---
|
---
|
||||||
layout: layouts/404.njk
|
layout: layouts/404.njk
|
||||||
permalink: 404.html
|
permalink: error/404.html
|
||||||
title: Nathan Upchurch | 404
|
title: Nathan Upchurch | 404
|
||||||
structuredData: none
|
structuredData: none
|
||||||
eleventyExcludeFromCollections: true
|
eleventyExcludeFromCollections: true
|
3
content/error/error.11tydata.js
Normal file
3
content/error/error.11tydata.js
Normal file
@ -0,0 +1,3 @@
|
|||||||
|
export default {
|
||||||
|
layout: "layouts/post.njk",
|
||||||
|
};
|
@ -10,6 +10,7 @@ pagination:
|
|||||||
- tagList
|
- tagList
|
||||||
- gallery
|
- gallery
|
||||||
- galleryImages
|
- galleryImages
|
||||||
|
- nowBurning
|
||||||
addAllPagesToCollections: true
|
addAllPagesToCollections: true
|
||||||
eleventyComputed:
|
eleventyComputed:
|
||||||
title: “{{ tag }}”
|
title: “{{ tag }}”
|
||||||
@ -29,6 +30,7 @@ permalink: "/feeds/{{ tag | slugify }}.xml"
|
|||||||
<email>{{ metadata.author.email }}</email>
|
<email>{{ metadata.author.email }}</email>
|
||||||
</author>
|
</author>
|
||||||
{%- for post in postslist | reverse %}
|
{%- for post in postslist | reverse %}
|
||||||
|
{% if post.url %}
|
||||||
{% set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.url) }}{% endset %}
|
{% set absolutePostUrl %}{{ post.url | htmlBaseUrl(metadata.url) }}{% endset %}
|
||||||
{% if post.data.imageURL %}{% set imageURL %}{{ post.data.imageURL | htmlBaseUrl(metadata.url) }}{% endset %}{% endif %}
|
{% if post.data.imageURL %}{% set imageURL %}{{ post.data.imageURL | htmlBaseUrl(metadata.url) }}{% endset %}{% endif %}
|
||||||
{% set defaultImageURL %}{{ metadata.defaultPostImageURL | htmlBaseUrl(metadata.url) }}{% endset %}
|
{% set defaultImageURL %}{{ metadata.defaultPostImageURL | htmlBaseUrl(metadata.url) }}{% endset %}
|
||||||
@ -45,5 +47,6 @@ permalink: "/feeds/{{ tag | slugify }}.xml"
|
|||||||
</image>
|
</image>
|
||||||
<content type="html">{{ post.templateContent | transformWithHtmlBase(absolutePostUrl, post.url) }}</content>
|
<content type="html">{{ post.templateContent | transformWithHtmlBase(absolutePostUrl, post.url) }}</content>
|
||||||
</entry>
|
</entry>
|
||||||
|
{% endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
</feed>
|
</feed>
|
||||||
|
55
content/guestbook.njk
Normal file
55
content/guestbook.njk
Normal file
@ -0,0 +1,55 @@
|
|||||||
|
---
|
||||||
|
layout: layouts/base.njk
|
||||||
|
title: Nathan Upchurch | Guestbook
|
||||||
|
structuredData: none
|
||||||
|
---
|
||||||
|
<h1>Sign My Guestbook</h1>
|
||||||
|
<!-- Guestbook Script -->
|
||||||
|
<script async src="https://guestbooks.meadow.cafe/resources/js/embed_script/835/script.js"></script>
|
||||||
|
|
||||||
|
<!-- Guestbook Form -->
|
||||||
|
<div id="guestbooks___guestbook-form-container">
|
||||||
|
<form id="guestbooks___guestbook-form"
|
||||||
|
action="https://guestbooks.meadow.cafe/guestbook/835/submit"
|
||||||
|
method="post">
|
||||||
|
|
||||||
|
<label for="name">Your name:</label>
|
||||||
|
<div class="guestbooks___input-container">
|
||||||
|
<input type="text"
|
||||||
|
id="name"
|
||||||
|
name="name"
|
||||||
|
required>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<label for="website">Your website (optional):</label>
|
||||||
|
<div class="guestbooks___input-container">
|
||||||
|
<input type="url"
|
||||||
|
id="website"
|
||||||
|
name="website">
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div id="guestbooks___challenge-answer-container"></div>
|
||||||
|
|
||||||
|
<label for="text">Your message:</label>
|
||||||
|
<div class="guestbooks___input-container">
|
||||||
|
<textarea id="text"
|
||||||
|
name="text"
|
||||||
|
rows="4"
|
||||||
|
style="width: 100%; box-sizing: border-box; resize: vertical;"
|
||||||
|
required></textarea>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<button type="submit">Sign Guestbook</button>
|
||||||
|
<div id="guestbooks___error-message"></div>
|
||||||
|
</form>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Attribution (optional but appreciated!) -->
|
||||||
|
<div id="guestbooks___guestbook-made-with" style="text-align: right; margin-top: 10px;">
|
||||||
|
<small>Powered by <a href="https://guestbooks.meadow.cafe" target="_blank">Guestbooks</a></small>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<!-- Messages Section -->
|
||||||
|
<hr/>
|
||||||
|
<h2 id="guestbooks___guestbook-messages-header">Messages</h2>
|
||||||
|
<div id="guestbooks___guestbook-messages-container"></div>
|
@ -3,10 +3,5 @@ layout: layouts/home.njk
|
|||||||
eleventyNavigation:
|
eleventyNavigation:
|
||||||
key: Home
|
key: Home
|
||||||
order: 1
|
order: 1
|
||||||
numberOfLatestPostsToShow: 3
|
|
||||||
numberOfNowPostsToShow: 1
|
|
||||||
numberOfGalleriesToShow: 1
|
|
||||||
numberOfQuizzesToShow: 1
|
|
||||||
hideGalleryDescriptions: 1
|
|
||||||
---
|
---
|
||||||
{% include "navigator.njk" %}
|
{% include "navigator.njk" %}
|
||||||
|
23
content/now-burning.njk
Normal file
23
content/now-burning.njk
Normal file
@ -0,0 +1,23 @@
|
|||||||
|
---
|
||||||
|
layout: layouts/base.njk
|
||||||
|
title: "Nathan Upchurch | Now Burning: What incense I'm burning at the moment."
|
||||||
|
structuredData: none
|
||||||
|
postlistHeaderText: "What I've been burning:"
|
||||||
|
---
|
||||||
|
{% set burning = collections.nowBurning | last %}
|
||||||
|
|
||||||
|
<h1>Now Burning:</h1>
|
||||||
|
<article class="post microblog-post">
|
||||||
|
<img class="microblog-icon" src="/img/censer.svg">
|
||||||
|
<div class="microblog-status">
|
||||||
|
<h2 class="">{{ burning.data.title }}{% if burning.data.manufacturer %}, {{ burning.data.manufacturer }}{% endif %}, {{ burning.date | niceDate }}, {{ burning.data.time }}</h2>
|
||||||
|
{% if burning.content %}
|
||||||
|
<div class="microblog-comment">
|
||||||
|
{{ burning.content | safe }}
|
||||||
|
</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</article>
|
||||||
|
<a href="/once-burned/">
|
||||||
|
<button type="button">Previous Entries »</button>
|
||||||
|
</a>
|
7
content/now-burning/Now Burning_1.md
Normal file
7
content/now-burning/Now Burning_1.md
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: "Moss Garden (Nokiba)"
|
||||||
|
manufacturer: "Shoyeido"
|
||||||
|
date: 2025-06-06 19:12:00
|
||||||
|
time: 7:12 PM
|
||||||
|
---
|
||||||
|
Love this stick. Absolute classic.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: A chunk of Palo Santo that I lit on fire
|
||||||
|
manufacturer:
|
||||||
|
date: 2025-06-08 22:40:00
|
||||||
|
time: 10:40 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Agarwood, Hmarkhawlien
|
||||||
|
manufacturer: Rising Phoenix
|
||||||
|
date: 2025-06-19 17:08:00
|
||||||
|
time: 5:08 PM
|
||||||
|
---
|
||||||
|
Thanks Bonnie!
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Assam
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-17 14:22:00
|
||||||
|
time: 2:22 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: "Awaji Island Koh-shi Coffee"
|
||||||
|
manufacturer: Kunjudo
|
||||||
|
date: 2025-06-08 17:00:00
|
||||||
|
time: 5:00 PM
|
||||||
|
---
|
||||||
|
As Sol pointed out, it smells like burnt kettle corn, but I've got a lot of it to get through.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Beau Soir
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-06-08
|
||||||
|
time: 10:00 AM
|
||||||
|
---
|
||||||
|
A blend I've been working on containing some interesting ingredients like Musk Root and Turkey Rhubarb.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Beau Soir
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-06-10 16:58:00
|
||||||
|
time: 4:48 PM
|
||||||
|
---
|
||||||
|
Still trying to understand the character of this one. I'm fairly certain I like it though.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Cherry Blossoms (Kyozakura)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-06-15 11:16:00
|
||||||
|
time: 11:16 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Christmas Tree
|
||||||
|
manufacturer: The World Makes Scents
|
||||||
|
date: 2025-06-28 11:50:00
|
||||||
|
time: 11:50 AM
|
||||||
|
---
|
||||||
|
Love this stuff.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Christmas Tree
|
||||||
|
manufacturer: The World Makes Scents
|
||||||
|
date: 2025-08-07 11:06:00
|
||||||
|
time: 11:06 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Compassion
|
||||||
|
manufacturer: Espirit de la Nature
|
||||||
|
date: 2025-07-17 11:21:00
|
||||||
|
time: 11:21 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Everyday Aloes
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-06-12 17:05:00
|
||||||
|
time: 5:05 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Everyday Aloes
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-04 17:13:00
|
||||||
|
time: 5:13 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Floral Palo
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-07-02 14:42:00
|
||||||
|
time: 2:42 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Floral Palo
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-07-21 10:10:00
|
||||||
|
time: 10:10 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Floral Palo
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-8-8 10:29:00
|
||||||
|
time: 10:29 AM
|
||||||
|
---
|
||||||
|
Not even ten o'clock and I'm already in need of some stress relief because the landlord is being a nightmare.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Fu-In Byakudan
|
||||||
|
manufacturer: Minorien
|
||||||
|
date: 2025-06-13 12:04:00
|
||||||
|
time: 12:04 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Fu-In Byakudan
|
||||||
|
manufacturer: Minorien
|
||||||
|
date: 2025-06-24 22:34:00
|
||||||
|
time: 10:34 PM
|
||||||
|
---
|
||||||
|
Decadent.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hawaiian Summer
|
||||||
|
manufacturer: Incense Apprentice
|
||||||
|
date: 2025-06-20 15:25:00
|
||||||
|
time: 3:26 PM
|
||||||
|
---
|
||||||
|
Excited to try out Sara's work from her [brand new webstore](https://incenseapprentice.substack.com/p/incense-apprentice-has-a-web-store)!
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hawaiian Summer
|
||||||
|
manufacturer: Incense Apprentice
|
||||||
|
date: 2025-06-25 14:38:00
|
||||||
|
time: 2:38 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hidden Valley Orchid
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-17 14:58:00
|
||||||
|
time: 2:58 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hojari A
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-25 16:32:00
|
||||||
|
time: 4:32 PM
|
||||||
|
---
|
||||||
|
Received as a sample alongside Hojari B.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hojari B
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-25 17:32:00
|
||||||
|
time: 5:32 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hojari
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-06-11 17:17:00
|
||||||
|
time: 5:17 PM
|
||||||
|
---
|
||||||
|
A rejected stick I made with washed hojari frankincense and a little too much eucalyptus leaf.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hojari
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-07-02 13:12:00
|
||||||
|
time: 1:12 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Hojari
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-07-29 12:09:00
|
||||||
|
time: 12:09 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Jinko Daikoboku
|
||||||
|
manufacturer: Seikado
|
||||||
|
date: 2025-06-11 09:57:00
|
||||||
|
time: 9:57 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Kheoun’s Blend
|
||||||
|
manufacturer: The World Makes Scents
|
||||||
|
date: 2025-07-29 14:30:00
|
||||||
|
time: 2:30 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Kobunboku
|
||||||
|
manufacturer: Baieido
|
||||||
|
date: 2025-06-06 20:00:00
|
||||||
|
time: 8:00 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Kobunboku
|
||||||
|
manufacturer: Baieido
|
||||||
|
date: 2025-06-25 22:41:00
|
||||||
|
time: 10:41 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Magnifiscents Blue Topaz
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-06-16 10:34:00
|
||||||
|
time: 10:34 AM
|
||||||
|
---
|
||||||
|
A bit sweet and powdery for my taste, but I don't mind it.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Magnifiscents Obsidian
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-07-01 20:58:00
|
||||||
|
time: 8:48 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Matsu no Tomo (Friend of Pine)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-08-09 17:03:00
|
||||||
|
time: 5:05 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Morning Star Vanilla
|
||||||
|
manufacturer: Nippon Kodo
|
||||||
|
date: 2025-07-31 10:55:00
|
||||||
|
time: 10:55 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Morning Star Vanilla
|
||||||
|
manufacturer: Nippon Kodo
|
||||||
|
date: 2025-08-08 11:25:00
|
||||||
|
time: 11:25 AM
|
||||||
|
---
|
||||||
|
Among the first Japanese incense sticks I ever tried, I've been using this stuff to calm down for twenty years.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Moss Garden (Nokiba)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-07-09 08:37:00
|
||||||
|
time: 8:37 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Moss Garden (Nokiba)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-07-14 12:43:00
|
||||||
|
time: 12:43 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Moss Garden (Nokiba)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-08-14 13:05:00
|
||||||
|
time: 1:05 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: "Moss Garden (Nokiba)"
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-06-13 21:13:00
|
||||||
|
time: 9:13 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Official Rammstein Incense Cones
|
||||||
|
manufacturer: KNOX
|
||||||
|
date: 2025-06-18 11:46:00
|
||||||
|
time: 11:46 AM
|
||||||
|
---
|
||||||
|
Surprisingly nice.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Pure Australian Sandalwood
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-06-18 10:26:00
|
||||||
|
time: 10:26 AM
|
||||||
|
---
|
||||||
|
Just a plain santalum spicatum stick I extruded myself, bound with some guar gum.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Reiryokoh
|
||||||
|
manufacturer: Kunmeido
|
||||||
|
date: 2025-06-09 11:50:00
|
||||||
|
time: 11:50 AM
|
||||||
|
---
|
||||||
|
Big fan of that curry note.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Reiryokoh
|
||||||
|
manufacturer: Kunmeido
|
||||||
|
date: 2025-07-14 11:32:00
|
||||||
|
time: 11:32 AM
|
||||||
|
---
|
||||||
|
Fancied something stimulating for this Monday morning as I drink some ripe pu'er.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Rosewood
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-06-21 16:00:00
|
||||||
|
time: 4:00 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Sarasoju
|
||||||
|
manufacturer: Shunkohdo
|
||||||
|
date: 2025-06-16 12:15:00
|
||||||
|
time: 12:15 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Sarasoju
|
||||||
|
manufacturer: Shunkohdo
|
||||||
|
date: 2025-07-04 11:19:00
|
||||||
|
time: 11:19 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: "Satya Sai Baba Nag Champa"
|
||||||
|
manufacturer: Shrinivas Sugandhalaya LLP
|
||||||
|
date: 2025-06-08 14:00:00
|
||||||
|
time: 2:00 PM
|
||||||
|
---
|
||||||
|
The nostalgia!
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Some sort of orthodox incense
|
||||||
|
manufacturer: Scents of Earth
|
||||||
|
date: 2025-06-25 12:35:00
|
||||||
|
time: 12:34 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Suzaku
|
||||||
|
manufacturer: Gyokushodo
|
||||||
|
date: 2025-06-24 12:33:00
|
||||||
|
time: 12:33 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Suzaku
|
||||||
|
manufacturer: Gyokushodo
|
||||||
|
date: 2025-07-23 13:39:00
|
||||||
|
time: 1:39 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Suzaku
|
||||||
|
manufacturer: Gyokushodo
|
||||||
|
date: 2025-08-06 11:53:00
|
||||||
|
time: 11:53 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Texas Red Cedar
|
||||||
|
manufacturer: The World Makes Scents
|
||||||
|
date: 2025-06-16 14:04:00
|
||||||
|
time: 2:04 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Tree of Life
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-07-27 12:24:00
|
||||||
|
time: 12:25 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Unnamed Palo Santo and Rose Incense
|
||||||
|
manufacturer: Myself
|
||||||
|
date: 2025-06-18 14:00:00
|
||||||
|
time: 2:00 PM
|
||||||
|
---
|
||||||
|
A stick combining palo santo with sandalwood, rose (thanks Irene), and benzoin (thanks Bonnie), resulting in a sweet, warm, palo santo forward incense with a delicate floral character.
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Vanilla
|
||||||
|
manufacturer: Tennendo
|
||||||
|
date: 2025-06-27 22:09:00
|
||||||
|
time: 10:09 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Waterwheel Cedar
|
||||||
|
manufacturer: Tennendo
|
||||||
|
date: 2025-06-22 21:13:00
|
||||||
|
time: 9:13 PM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: Weeping Cypress
|
||||||
|
manufacturer: Yi-Xin Craft Incense
|
||||||
|
date: 2025-08-01 10:02:00
|
||||||
|
time: 10:02 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: White Cloud (Hakuun)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-06-14 10:30:00
|
||||||
|
time: 10:30 AM
|
||||||
|
---
|
||||||
|
|
@ -0,0 +1,7 @@
|
|||||||
|
---
|
||||||
|
title: White Cloud (Hakuun)
|
||||||
|
manufacturer: Shoyeido
|
||||||
|
date: 2025-08-04 12:16:00
|
||||||
|
time: 12:16 PM
|
||||||
|
---
|
||||||
|
|
6
content/now-burning/now-burning.11tydata.js
Normal file
6
content/now-burning/now-burning.11tydata.js
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export default {
|
||||||
|
tags: ["nowBurning"],
|
||||||
|
layout: "layouts/base.njk",
|
||||||
|
permalink: false,
|
||||||
|
structuredData: "none",
|
||||||
|
};
|
@ -1,6 +1,4 @@
|
|||||||
export default {
|
export default {
|
||||||
tags: [
|
tags: ["now"],
|
||||||
"now"
|
layout: "layouts/post.njk",
|
||||||
],
|
|
||||||
"layout": "layouts/post.njk",
|
|
||||||
};
|
};
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
---
|
---
|
||||||
title: Welp, it's a New Year.
|
title: Welp, it’s a New Year.
|
||||||
description: …and what a year it's been already.
|
description: …and what a year it’s been already.
|
||||||
synopsis: …and what a year it's been already.
|
synopsis: …and what a year it’s been already.
|
||||||
date: 2025-01-23
|
date: 2025-01-23
|
||||||
imageURL: /img/IMG_20250122_172636_762_copy.webp
|
imageURL: /img/IMG_20250122_172636_762_copy.webp
|
||||||
imageAlt: A closeup of a Braun wristwatch.
|
imageAlt: A closeup of a Braun wristwatch.
|
||||||
|
15
content/now/now_2025_07_02.md
Normal file
15
content/now/now_2025_07_02.md
Normal file
@ -0,0 +1,15 @@
|
|||||||
|
---
|
||||||
|
title: Is it July Already?
|
||||||
|
description: What's happening.
|
||||||
|
synopsis: What's happening.
|
||||||
|
date: 2025-07-02
|
||||||
|
imageURL: /img/pexels-rovenimages-com-344613-949592_copy.webp
|
||||||
|
imageAlt: Fireworks in the night sky.
|
||||||
|
---
|
||||||
|
In my last entry I noted that I was trying to be a little less salty this year, and I'm pleased to say that it's paying off. I'm also trying to tackle some of the value judgments / statements that pop into my head by reminding myself to phrase things in a more productive way. For example, I recently had a discussion with my brother in Vietnam on how my moral nihilism aligns with my veganism. During the discussion, I found myself resorting to terms like "good," "bad," "better," and "worse," terms which really muddy the waters when you're speaking about this particular topic. As a result, I am trying to remember to describe the *effects* of something rather than using words that abstract away the mechanism by which said thing impacts the world. I'm sure this won't be advisable or practical 100% of the time, but I suppose I'll just have to do my best and use my judgment.
|
||||||
|
|
||||||
|
I haven't touched the Google data analytics course in a while; I mean to get back to it, but I found myself falling into a common pattern with this course. I quickly become bored and frustrated when courses are slow, or spend lots of time on simple things. This probably says something about my past experiences with educators, but I also often feel patronized by courses. For instance, I don't need a lesson in breaking things down into steps. It seems to me that this skill is something that people will either already bring to the table when they enroll in a course like this, or if they have reached adulthood without the ability to exercise computational thinking, perhaps this area of study isn't suited for them? In any case, I find it frustrating to have to spend hours of my life on something like this. I'm also not a total newcomer to some of the skills under the data analytics umbrella. I've used data many times in my personal and professional life. As one example, in a previous role for a coffee chain making its first entry into the USA, I used sales data to model the impact of payment processor rates in a spreadsheet. Because of this, I was not only able to save the company money, I was actually able to choose a payment processor for our US operations that would, on average, *lose money* for every payment they processed for us (low ticket totals are very dangerous for fixed percentage processors, as [Square found out with Starbucks](https://www.bloomberg.com/news/articles/2015-10-15/square-shows-path-to-recovery-from-money-losing-starbucks-deal)). I'll just have to keep trying with this course. Goodness knows I need to work on my tolerance for drudgery.
|
||||||
|
|
||||||
|
I haven't managed to get back to the UK yet, which makes me sad. The xenophobic, anti-immigrant UK government has made spousal visa requirements so onerous that it's extremely difficult to pull off unless you are wealthy. In the absolute best case, Sol and I would have to spend months apart, and I would have to give up my job and attempt to find one in the UK that pays well above the national average salary. I don't have any idea what the job market is like over there at the minute, but I'm not hearing good things. If I had £100,000 in the bank, we could literally be over there in six months, but for average working people, it's an absolute gauntlet. we don't have any wealthy family who can help us, and we live in an expensive city. Even if we lived out in Cheapsville, Indiana, we couldn't possibly save enough to meet the financial requirement. On top of that, there is also the horrific transphobic legislation in the UK and other signs that fascism is encroaching more quickly every day just like it is in the USA. Sad isn't the word, really. I'm furious.
|
||||||
|
|
||||||
|
I've been steadily improving my incense making practice. At this point, I have a number of stick builds that I'm proud of and receive good reviews. I think my blending skills have really advanced, and I'm slowly working towards scaling up enough that I can put out the occasional release for sale. Somewhat disappointingly for me as a former print broker, it doesn't look like it's going to be feasible for me to do short packaging print runs, so packaging may look like a simple paper tube and a label. A big bugbear for me at the moment is making sure sticks dry straight. It's difficult for me to control the temperature and humidity in my space such that some amount of warping is inevitable. I wish it didn't bother me as much as it does; after all, this is to be expected when you're not working out of some big facility. I'm also working on a foray into the world of percolated extracts, which I hope to create from materials that don't play nicely in combustible incense. I'm still also trying to process this category of material in such a way that is can be used in sticks; I recently attempted a lacto-ferment of rosa damascena, which unfortunately went moldy. I'll try again when I get another bag of rose petals.
|
19
content/once-burned/index.njk
Normal file
19
content/once-burned/index.njk
Normal file
@ -0,0 +1,19 @@
|
|||||||
|
---
|
||||||
|
layout: layouts/base.njk
|
||||||
|
title: "Nathan Upchurch | Once Burned: Incense I've burning in the past."
|
||||||
|
structuredData: none
|
||||||
|
---
|
||||||
|
{% set burning = collections.nowBurning | last %}
|
||||||
|
|
||||||
|
<h1>Previous “Now Burning” Entries:</h1>
|
||||||
|
{% set postsCount = collections.nowBurning | removeMostRecent | length %}
|
||||||
|
{% if postsCount > 0 %}
|
||||||
|
{% set postslist = collections.nowBurning | removeMostRecent %}
|
||||||
|
{% set showPostListHeader = false %}
|
||||||
|
{% include "incenseList.njk" %}
|
||||||
|
{% else %}
|
||||||
|
<p>Nothing’s here yet!</p>
|
||||||
|
{% endif %}
|
||||||
|
<a href="/now-burning/">
|
||||||
|
<button type="button">Latest »</button>
|
||||||
|
</a>
|
@ -22,7 +22,13 @@ structuredData: none
|
|||||||
<li><a href="/me">Contact</a></li>
|
<li><a href="/me">Contact</a></li>
|
||||||
<li><a href="/feed/feed.xml">Feed</a></li>
|
<li><a href="/feed/feed.xml">Feed</a></li>
|
||||||
<li><a href="/galleries">Galleries</a></li>
|
<li><a href="/galleries">Galleries</a></li>
|
||||||
|
<li><a href="/guestbook">Guestbook</a></li>
|
||||||
<li><a href="/now">Now</a></li>
|
<li><a href="/now">Now</a></li>
|
||||||
|
<li>Special
|
||||||
|
<ul>
|
||||||
|
<li><a href="/special/flying-toasters/">Flying Toasters</a></li>
|
||||||
|
</ul>
|
||||||
|
</li>
|
||||||
<li><a href="/tags">Tags</a></li>
|
<li><a href="/tags">Tags</a></li>
|
||||||
<li><a href="/wish">Wishes</a></li>
|
<li><a href="/wish">Wishes</a></li>
|
||||||
<li><a href="/quizzes">Quizzes</a></li>
|
<li><a href="/quizzes">Quizzes</a></li>
|
||||||
|
@ -5,10 +5,12 @@ eleventyExcludeFromCollections: true
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||||
{%- for page in collections.all %}
|
{%- for page in collections.all %}
|
||||||
|
{% if page.url %}
|
||||||
{% set absoluteUrl %}{{ page.url | htmlBaseUrl(metadata.url) }}{% endset %}
|
{% set absoluteUrl %}{{ page.url | htmlBaseUrl(metadata.url) }}{% endset %}
|
||||||
<url>
|
<url>
|
||||||
<loc>{{ absoluteUrl }}</loc>
|
<loc>{{ absoluteUrl }}</loc>
|
||||||
<lastmod>{{ page.date | htmlDateString }}</lastmod>
|
<lastmod>{{ page.date | htmlDateString }}</lastmod>
|
||||||
</url>
|
</url>
|
||||||
|
{% endif %}
|
||||||
{%- endfor %}
|
{%- endfor %}
|
||||||
</urlset>
|
</urlset>
|
||||||
|
BIN
content/special/flying-toasters/After Dark 3.0 - OMTW.mp3
Normal file
BIN
content/special/flying-toasters/After Dark 3.0 - OMTW.mp3
Normal file
Binary file not shown.
38
content/special/flying-toasters/base.css
Normal file
38
content/special/flying-toasters/base.css
Normal file
@ -0,0 +1,38 @@
|
|||||||
|
/* apply a natural box layout model to all elements */
|
||||||
|
*,
|
||||||
|
*:before,
|
||||||
|
*:after {
|
||||||
|
-moz-box-sizing: border-box;
|
||||||
|
-webkit-box-sizing: border-box;
|
||||||
|
box-sizing: border-box;
|
||||||
|
}
|
||||||
|
html,
|
||||||
|
body {
|
||||||
|
background-color: #111;
|
||||||
|
margin: 0;
|
||||||
|
height: 100%;
|
||||||
|
width: 100%;
|
||||||
|
overflow: hidden;
|
||||||
|
}
|
||||||
|
|
||||||
|
/* Hide only visually, but have it available for screenreaders & for SEO purposes. See h5bp.com/v */
|
||||||
|
.visuallyhidden {
|
||||||
|
border: 0;
|
||||||
|
clip: rect(0 0 0 0);
|
||||||
|
height: 1px;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
padding: 0;
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix:before,
|
||||||
|
.clearfix:after {
|
||||||
|
content: " ";
|
||||||
|
display: table;
|
||||||
|
}
|
||||||
|
|
||||||
|
.clearfix:after {
|
||||||
|
clear: both;
|
||||||
|
}
|
BIN
content/special/flying-toasters/img/favicon.png
Normal file
BIN
content/special/flying-toasters/img/favicon.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 464 B |
BIN
content/special/flying-toasters/img/toast0.gif
Normal file
BIN
content/special/flying-toasters/img/toast0.gif
Normal file
Binary file not shown.
After Width: | Height: | Size: 500 B |
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user