Add new post - 2026-01-12

This commit is contained in:
glenneth 2026-01-13 05:55:41 +03:00
parent dc4a5654ab
commit c05e54f009
35 changed files with 4944 additions and 4629 deletions

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content=""Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard""> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-04-08-glove80-review"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-04-08-glove80-review">
<title>"Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard" - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>["personal", "tech", "keyboards", "glove80"]</span> <span>Tech</span>
<span></span> <span></span>
<time datetime=""2024-04-08 16:50"">Invalid Date</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard"</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime=""2024-04-08 16:50"">"2024-04-08 16:50"</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By "Glenn Thompson"</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">["personal"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"tech"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"keyboards"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"glove80"]</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h2>In the quest for the ultimate ergonomic keyboard, aesthetics often take a backseat to functionality. Yet, when I first laid eyes on the Glove80, I was struck by its elegant design—a refreshing departure from the utilitarian look typical of many ergonomic keyboards. Unlike the retro vibes of the Kinesis Advantage or the DIY aesthetics of most Dactyls, the Glove80 boasts a modern, sleek appearance that complements the contemporary design language of Apple, Google, and LG devices. With its clean lines and visually appealing legends, the Glove80 not only promises ergonomic comfort but does so with style, standing out amidst a sea of competitors.</h2> <hr>
<h2>title: &quot;Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard&quot;<br>author: &quot;Glenn Thompson&quot;<br>date: &quot;2024-04-08 16:50&quot;<br>tags: [&quot;personal&quot;, &quot;tech&quot;, &quot;keyboards&quot;, &quot;glove80&quot;]</h2>
<h2>In the quest for the ultimate ergonomic keyboard, aesthetics often take a backseat to functionality. Yet, when I first laid eyes on the Glove80, I was struck by its elegant design—a refreshing departure from the utilitarian look typical of many ergonomic keyboards. Unlike the retro vibes of the Kinesis Advantage or the DIY aesthetics of most Dactyls, the Glove80 boasts a modern, sleek appearance that complements the contemporary design language of Apple, Google, and LG devices. With its clean lines and visually appealing legends, the Glove80 not only promises ergonomic comfort but does so with style, standing out amidst a sea of competitors.</h2>
<p>As my career trajectory veered from being an integral member of an electrical engineering team to assuming the role of Deputy Project Manager, the nature of my daily activities underwent a significant transformation. The hands-on tasks of yesteryears were gradually replaced by a deluge of documentations—writing, reviewing, and endless typing. This shift brought with it an unwelcome companion: discomfort in my hands and wrists, a stark reminder of the ergonomic pitfalls of conventional keyboards. It was in this context that my quest for a more ergonomic typing solution began, leading me towards the world of ALICE layout keyboards, with the <a href="https://www.keychron.com/products/keychron-q10-pro-alice-layout-qmk-via-wireless-custom-mechanical-keyboard"><strong>Q10 Pro</strong> by Keychron</a> being my initial foray into this new realm.</p> <p>As my career trajectory veered from being an integral member of an electrical engineering team to assuming the role of Deputy Project Manager, the nature of my daily activities underwent a significant transformation. The hands-on tasks of yesteryears were gradually replaced by a deluge of documentations—writing, reviewing, and endless typing. This shift brought with it an unwelcome companion: discomfort in my hands and wrists, a stark reminder of the ergonomic pitfalls of conventional keyboards. It was in this context that my quest for a more ergonomic typing solution began, leading me towards the world of ALICE layout keyboards, with the <a href="https://www.keychron.com/products/keychron-q10-pro-alice-layout-qmk-via-wireless-custom-mechanical-keyboard"><strong>Q10 Pro</strong> by Keychron</a> being my initial foray into this new realm.</p>
<p>However, the relief was partial, and the shadow of wrist strain persisted, urging me to delve deeper into the ergonomic keyboard universe. My search for a truly ergonomic solution brought me to the doorstep of the <a href="https://www.moergo.com"><strong>Glove80</strong> by MoErgo</a>. Boasting a unique split design, concave key wells, and a commitment to ergonomics that seemed almost tailor-made for my situation, the Glove80 held the promise of being the oasis I was desperately seeking in the desert of my wrist discomfort.</p> <p>However, the relief was partial, and the shadow of wrist strain persisted, urging me to delve deeper into the ergonomic keyboard universe. My search for a truly ergonomic solution brought me to the doorstep of the <a href="https://www.moergo.com"><strong>Glove80</strong> by MoErgo</a>. Boasting a unique split design, concave key wells, and a commitment to ergonomics that seemed almost tailor-made for my situation, the Glove80 held the promise of being the oasis I was desperately seeking in the desert of my wrist discomfort.</p>
<p>This journey from an ALICE layout keyboard user to a Glove80 enthusiast was not just about finding a better typing tool; it was about embracing a healthier typing posture and redefining my interaction with computers. After a month of integrating the Glove80 into my workflow, I&#39;m ready to share my insights and experiences. This review will explore the initial adaptation period, the impact on my wrist health, and whether the Glove80 lives up to its promise as an ergonomic game-changer.</p> <p>This journey from an ALICE layout keyboard user to a Glove80 enthusiast was not just about finding a better typing tool; it was about embracing a healthier typing posture and redefining my interaction with computers. After a month of integrating the Glove80 into my workflow, I&#39;m ready to share my insights and experiences. This review will explore the initial adaptation period, the impact on my wrist health, and whether the Glove80 lives up to its promise as an ergonomic game-changer.</p>
@ -125,9 +124,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Rollercoaster Week: From Amman to Newcastle, and back again"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-01-amman-newcastle-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-01-amman-newcastle-journey">
<title>A Rollercoaster Week: From Amman to Newcastle, and back again - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>work, travel</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-05-01 17:40:58+03:00">May 1, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>3 min read</span> <span>3 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Rollercoaster Week: From Amman to Newcastle, and back again</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-05-01 17:40:58+03:00">2024-05-01 17:40:58+03:00</time> <time datetime=""></time>
<span></span> <span></span>
<span>3 min read</span> <span>3 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">work</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">travel</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>Two weeks ago was a whirlwind of events, taking me from the conforting embrace of Amman, Jordan to the vibrant streets of Newcastle, England. It was a journey filled with highs and lows, professional achievements, and personal challenges.</p> <hr>
<h2>title: A Rollercoaster Week: From Amman to Newcastle, and back again<br>author: Glenn Thompson<br>date: 2024-05-01 17:40:58+03:00<br>tags: work, travel</h2>
<p>Two weeks ago was a whirlwind of events, taking me from the conforting embrace of Amman, Jordan to the vibrant streets of Newcastle, England. It was a journey filled with highs and lows, professional achievements, and personal challenges.</p>
<h2>The Journey Begins</h2> <h2>The Journey Begins</h2>
<p>It all started on a Monday morning in Amman as I embarked on a journey to attend a Quality Control (QC) conference in Newcastle. The anticipation of presenting my work at an international forum filled me with excitement and nerves. The conference was scheduled for just one day, but the impact it had on me would last much longer.</p> <p>It all started on a Monday morning in Amman as I embarked on a journey to attend a Quality Control (QC) conference in Newcastle. The anticipation of presenting my work at an international forum filled me with excitement and nerves. The conference was scheduled for just one day, but the impact it had on me would last much longer.</p>
<h2>A Successful Presentation</h2> <h2>A Successful Presentation</h2>
@ -118,9 +117,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-15-hugo-to-haunt"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-15-hugo-to-haunt">
<title>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, keyboards, glove80</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-05-15 10:30">May 15, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-05-15 10:30">2024-05-15 10:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">keyboards</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">glove80</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1> <hr>
<h2>title: Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix<br>author: Glenn Thompson<br>date: 2024-05-15 10:30<br>tags: personal, tech, keyboards, glove80</h2>
<h1>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1>
<p>Hello there! I&#39;m Glenn Thompson, and today, I want to share a significant part of my recent journey into the world of Scheme, GNU Guix, and static site generation.</p> <p>Hello there! I&#39;m Glenn Thompson, and today, I want to share a significant part of my recent journey into the world of Scheme, GNU Guix, and static site generation.</p>
<h2>Discovering Scheme with System Crafters</h2> <h2>Discovering Scheme with System Crafters</h2>
<p>My journey began with a desire to dive deeper into programming languages and their ecosystems. I am a member of the <a href="https://systemcrafters.net/community/">System Crafters Community</a>, and its founder, David Wilson, announced a short four week course as an introduction to Guile Scheme. The course, <a href="https://systemcrafters.net/courses/hands-on-guile-scheme-beginners/">Hands-On Guile Scheme for Beginners</a>, provided me with a robust introduction to Guile Scheme, a language that emphasizes simplicity and elegance. David&#39;s clear explanations and practical examples made learning Scheme both engaging and approachable.</p> <p>My journey began with a desire to dive deeper into programming languages and their ecosystems. I am a member of the <a href="https://systemcrafters.net/community/">System Crafters Community</a>, and its founder, David Wilson, announced a short four week course as an introduction to Guile Scheme. The course, <a href="https://systemcrafters.net/courses/hands-on-guile-scheme-beginners/">Hands-On Guile Scheme for Beginners</a>, provided me with a robust introduction to Guile Scheme, a language that emphasizes simplicity and elegance. David&#39;s clear explanations and practical examples made learning Scheme both engaging and approachable.</p>
@ -340,9 +339,9 @@ meta {
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Journey Through GNU Guix: From Installation to Returning to Arch Linux"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-07-26-gnu-guix-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-07-26-gnu-guix-journey">
<title>A Journey Through GNU Guix: From Installation to Returning to Arch Linux - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, gnu, guix, swaywm, nvidia</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-07-26 10:30">July 26, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-07-26 10:30">2024-07-26 10:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">gnu</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guix</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">swaywm</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">nvidia</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1> <hr>
<h2>title: A Journey Through GNU Guix: From Installation to Returning to Arch Linux<br>author: Glenn Thompson<br>date: 2024-07-26 10:30<br>tags: personal, tech, gnu, guix, swaywm, nvidia</h2>
<h1>A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1>
<p>As a long-time user of Arch Linux, I decided to explore the world of GNU Guix to see if it could better suit my needs, especially with my growing interest in functional package management. The journey was insightful, filled with learning experiences, but ultimately led me back to the reliable shores of Arch. Here&#39;s a detailed account of my venture into GNU Guix, adding non-GNU channels, dealing with Nvidia drivers, running SwayWM, and the eventual retreat to Arch.</p> <p>As a long-time user of Arch Linux, I decided to explore the world of GNU Guix to see if it could better suit my needs, especially with my growing interest in functional package management. The journey was insightful, filled with learning experiences, but ultimately led me back to the reliable shores of Arch. Here&#39;s a detailed account of my venture into GNU Guix, adding non-GNU channels, dealing with Nvidia drivers, running SwayWM, and the eventual retreat to Arch.</p>
<h2>Installation of GNU Guix</h2> <h2>Installation of GNU Guix</h2>
<p>The installation process of GNU Guix was straightforward, thanks to the well-documented guide provided on their official website. Here&#39;s a quick rundown of the steps I followed:</p> <p>The installation process of GNU Guix was straightforward, thanks to the well-documented guide provided on their official website. Here&#39;s a quick rundown of the steps I followed:</p>
@ -168,9 +167,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Journey into Scheme"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-09-24-scheme-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-09-24-scheme-journey">
<title>A Journey into Scheme - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, guile, scheme, gnu, development</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-09-24 09:30">September 24, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Journey into Scheme</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-09-24 09:30">2024-09-24 09:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">scheme</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">gnu</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>My Journey into Scheme: Building a Simple Symlink Manager with Guile Scheme</h1> <hr>
<h2>title: A Journey into Scheme<br>author: Glenn Thompson<br>date: 2024-09-24 09:30<br>tags: personal, tech, guile, scheme, gnu, development</h2>
<h1>My Journey into Scheme: Building a Simple Symlink Manager with Guile Scheme</h1>
<h2>Introduction</h2> <h2>Introduction</h2>
<p>I&#39;ve spent my career as an electrical engineer, not a software developer. However, my recent journey in to GNU/Liniux required a tool for managing symlinks, and that&#39;s how I began learning Scheme—specifically Guile Scheme. I&#39;m writing this post to share how I built <code>stash</code>, a utility that mimics GNU Stow&#39;s functionality, and how my learning journey was shaped by David Wilson&#39;s &quot;Hands-On Guile Scheme for Beginners&quot; course from System Crafters, more about this below.</p> <p>I&#39;ve spent my career as an electrical engineer, not a software developer. However, my recent journey in to GNU/Liniux required a tool for managing symlinks, and that&#39;s how I began learning Scheme—specifically Guile Scheme. I&#39;m writing this post to share how I built <code>stash</code>, a utility that mimics GNU Stow&#39;s functionality, and how my learning journey was shaped by David Wilson&#39;s &quot;Hands-On Guile Scheme for Beginners&quot; course from System Crafters, more about this below.</p>
<h2>How I Started with Scheme</h2> <h2>How I Started with Scheme</h2>
@ -166,9 +165,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="Beyond Theory: Building Practical Tools with Guile Scheme"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-12-03-practical-scheme"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-12-03-practical-scheme">
<title>Beyond Theory: Building Practical Tools with Guile Scheme - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>tech, guile, scheme, development, functional-programming</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-12-03 10:00">December 3, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">Beyond Theory: Building Practical Tools with Guile Scheme</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-12-03 10:00">2024-12-03 10:00</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">scheme</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">functional-programming</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>Beyond Theory: Building Practical Tools with Guile Scheme</h1> <hr>
<h2>title: Beyond Theory: Building Practical Tools with Guile Scheme<br>author: Glenn Thompson<br>date: 2024-12-03 10:00<br>tags: tech, guile, scheme, development, functional-programming</h2>
<h1>Beyond Theory: Building Practical Tools with Guile Scheme</h1>
<h2>Introduction</h2> <h2>Introduction</h2>
<p>A few months ago, I shared my journey into learning Scheme through building <code>stash</code>, a symlink manager. Since then, I&#39;ve discovered that the gap between learning Scheme and applying it to real-world problems is where the most valuable lessons emerge. This post explores what I&#39;ve learned about building practical tools with Guile Scheme, sharing both successes and challenges along the way.</p> <p>A few months ago, I shared my journey into learning Scheme through building <code>stash</code>, a symlink manager. Since then, I&#39;ve discovered that the gap between learning Scheme and applying it to real-world problems is where the most valuable lessons emerge. This post explores what I&#39;ve learned about building practical tools with Guile Scheme, sharing both successes and challenges along the way.</p>
<h2>The Power of Modular Design</h2> <h2>The Power of Modular Design</h2>
@ -246,9 +245,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -3,11 +3,11 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way."> <meta name="description" content="">
<meta property="og:title" content="From Hugo to Haunt to Custom: My Journey in Static Site Generation"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content="A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way."> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-01-02-from-haunt-to-custom"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-01-02-from-haunt-to-custom">
<title>From Hugo to Haunt to Custom: My Journey in Static Site Generation - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,11 +68,11 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>web, development, javascript, static-site, haunt, guile, hugo</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-01-02">January 2, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>4 min read</span> <span>5 min read</span>
</div> </div>
</div> </div>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">From Hugo to Haunt to Custom: My Journey in Static Site Generation</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-01-02">2025-01-02</time> <time datetime=""></time>
<span></span> <span></span>
<span>4 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">web</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">javascript</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">static-site</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">haunt</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">hugo</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>My journey with static site generators has been one of continuous learning and evolution. It started with Hugo, transitioned through Haunt, and has now led me to build my own custom solution. Each step of this journey has taught me valuable lessons about web development, programming languages, and the importance of understanding the tools we use.</p> <hr>
<h2>title: From Hugo to Haunt to Custom: My Journey in Static Site Generation<br>date: 2025-01-02<br>tags: web, development, javascript, static-site, haunt, guile, hugo<br>description: A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way.</h2>
<p>My journey with static site generators has been one of continuous learning and evolution. It started with Hugo, transitioned through Haunt, and has now led me to build my own custom solution. Each step of this journey has taught me valuable lessons about web development, programming languages, and the importance of understanding the tools we use.</p>
<h2>The Hugo Beginning</h2> <h2>The Hugo Beginning</h2>
<p>Like many &quot;bloggers&quot;, I started with Hugo, a popular static site generator known for its speed and extensive theme ecosystem. Hugo served its purpose well, providing a robust platform for my blog with ready-made themes and a strong community.</p> <p>Like many &quot;bloggers&quot;, I started with Hugo, a popular static site generator known for its speed and extensive theme ecosystem. Hugo served its purpose well, providing a robust platform for my blog with ready-made themes and a strong community.</p>
<h2>The Transition to Haunt</h2> <h2>The Transition to Haunt</h2>
@ -175,9 +174,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -3,11 +3,11 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes."> <meta name="description" content="">
<meta property="og:title" content="My Development Environment in 2025: From Editor to Deployment"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content="A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes."> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-08-my-dev-environment-2025"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-08-my-dev-environment-2025">
<title>My Development Environment in 2025: From Editor to Deployment - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>development, guix, tools, workflow, productivity, web</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-03-08">March 8, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">My Development Environment in 2025: From Editor to Deployment</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-03-08">2025-03-08</time> <time datetime=""></time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guix</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tools</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">workflow</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">productivity</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">web</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h2>Introduction</h2> <hr>
<h2>title: My Development Environment in 2025: From Editor to Deployment<br>date: 2025-03-08<br>tags: development, guix, tools, workflow, productivity, web<br>description: A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes.</h2>
<h2>Introduction</h2>
<p>The tools we use shape how we work. Over the years, my development environment has evolved alongside my technical journey through different programming languages, paradigms, and projects. This post offers a snapshot of my current setup in early 2025, detailing the choices I&#39;ve made and why they work for me.</p> <p>The tools we use shape how we work. Over the years, my development environment has evolved alongside my technical journey through different programming languages, paradigms, and projects. This post offers a snapshot of my current setup in early 2025, detailing the choices I&#39;ve made and why they work for me.</p>
<h2>System Foundation: ArcoLinux with GNU Guix</h2> <h2>System Foundation: ArcoLinux with GNU Guix</h2>
<p>My journey to <a href="https://guix.gnu.org/">GNU Guix</a> began through my exploration of Scheme programming, as I detailed in my <a href="/content/posts/2024-07-26-gnu-guix-journey.html">GNU Guix Journey</a> post. While I initially experimented with Guix System, I&#39;ve settled on a hybrid approach: running Guix as a package manager on top of ArcoLinux (an Arch-based distribution).</p> <p>My journey to <a href="https://guix.gnu.org/">GNU Guix</a> began through my exploration of Scheme programming, as I detailed in my <a href="/content/posts/2024-07-26-gnu-guix-journey.html">GNU Guix Journey</a> post. While I initially experimented with Guix System, I&#39;ve settled on a hybrid approach: running Guix as a package manager on top of ArcoLinux (an Arch-based distribution).</p>
@ -301,9 +300,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,10 +4,10 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content=""Lessons Learned: One Year with a Custom Static Site Generator""> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-12-lessons-learned-custom-ssg"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-12-lessons-learned-custom-ssg">
<title>"Lessons Learned: One Year with a Custom Static Site Generator" - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>[web, development, javascript, static-site, lessons]</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-03-13">March 13, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Lessons Learned: One Year with a Custom Static Site Generator"</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-03-13">2025-03-13</time> <time datetime=""></time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">[web</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">javascript</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">static-site</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">lessons]</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>It&#39;s been just over a year since I <a href="/content/posts/2025-01-02-from-haunt-to-custom.html">transitioned from Haunt to my own custom static site generator</a> for this website. What started as an experiment to gain more control over my publishing workflow has evolved into a valuable learning experience that has shaped how I approach web development projects.</p> <hr>
<h2>title: &quot;Lessons Learned: One Year with a Custom Static Site Generator&quot;<br>date: 2025-03-13<br>tags: [web, development, javascript, static-site, lessons]</h2>
<p>It&#39;s been just over a year since I <a href="/content/posts/2025-01-02-from-haunt-to-custom.html">transitioned from Haunt to my own custom static site generator</a> for this website. What started as an experiment to gain more control over my publishing workflow has evolved into a valuable learning experience that has shaped how I approach web development projects.</p>
<p>In this post, I&#39;ll share the key lessons I&#39;ve learned and insights I&#39;ve gained from building and maintaining my own static site generator. While the technical details are interesting, the real value has been in the broader lessons about software development, user experience, and the balance between complexity and simplicity.</p> <p>In this post, I&#39;ll share the key lessons I&#39;ve learned and insights I&#39;ve gained from building and maintaining my own static site generator. While the technical details are interesting, the real value has been in the broader lessons about software development, user experience, and the balance between complexity and simplicity.</p>
<h2>The Journey of Evolution</h2> <h2>The Journey of Evolution</h2>
<h3>From Simple Beginnings</h3> <h3>From Simple Beginnings</h3>
@ -174,9 +173,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -126,9 +126,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -251,9 +251,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en" class="bg-base-bg">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."">
<meta property="og:title" content=""Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work"">
<meta property="og:description" content=""After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2026-01-12-asteroid-radio">
<title>"Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work" - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
.prose-palenight {
--tw-prose-body: #bfc7d5;
--tw-prose-headings: #ffd580;
--tw-prose-links: #82aaff;
--tw-prose-code: #c792ea;
--tw-prose-pre-bg: #1b1e2b;
}
.prose h2 {
color: var(--tw-prose-headings);
font-family: Merriweather, serif;
font-weight: 700;
font-size: 1.5rem;
margin-top: 2rem;
margin-bottom: 1rem;
}
.prose p {
margin-bottom: 1rem;
line-height: 1.625;
}
.prose a {
color: var(--tw-prose-links);
text-decoration: none;
}
.prose a:hover {
color: #89ddff;
}
.prose code {
color: var(--tw-prose-code);
font-family: 'JetBrains Mono', monospace;
}
.prose pre {
background-color: var(--tw-prose-pre-bg);
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
margin-bottom: 1rem;
}
.prose ul, .prose ol {
margin-top: 0.5rem;
margin-bottom: 1rem;
padding-left: 1.5rem;
}
.prose ul {
list-style-type: disc;
}
.prose ol {
list-style-type: decimal;
}
</style>
</head>
<body class="bg-base-bg text-palenight-50">
<nav class="bg-base-darker/80 backdrop-blur-sm shadow-sm border-b border-palenight-400/20 mb-8">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>[community, radio, open-source, irc, music]</span>
<span></span>
<time datetime="2026-01-12">January 12, 2026</time>
<span></span>
<span>3 min read</span>
</div>
</div>
</div>
</nav>
<main class="pt-24 pb-16 px-4">
<div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6">
<header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work"</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2026-01-12">2026-01-12</time>
<span></span>
<span>3 min read</span>
<span></span>
<span>By Glenn Thompson</span>
</div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">[community</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">radio</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">open-source</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">irc</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">music]</span>
</div>
</header>
<article class="prose prose-palenight max-w-none">
<h2>Introduction</h2>
<p>Sometimes the best projects emerge from casual conversations that span months or even years. That&#39;s exactly how my involvement with <a href="https://asteroid.radio">asteroid.radio</a> came about - through countless discussions with Fade on IRC, stretching back over a couple of years.</p>
<p>Fade is the development lead on asteroid.radio, and our conversations about the project have been a recurring thread in our IRC interactions. What started as occasional mentions evolved into deeper technical discussions, and eventually into an opportunity to contribute. I did bend Fades&#39; arm a little bit to get us started, but I hope he appreciates the push.</p>
<h2>What is asteroid.radio?</h2>
<p><a href="https://asteroid.radio">asteroid.radio</a> is a broadcasting station dedicated to what Fade has dubbed &quot;asteroid music&quot; - that particular genre of sound that helps you slip into a deep workflow when hacking or deeply engaged at the computer. The moment Fade coined the term, I knew exactly what he was referencing. It&#39;s that music that fades into the background while simultaneously sharpening your focus.</p>
<p>We&#39;re attempting to build a community around this concept - a space for people who understand that the right soundtrack can transform a coding session from distracted fumbling into hours of productive flow. The project is open source, and you can find the code at <a href="https://github.com/fade/asteroid">github.com/fade/asteroid</a>.</p>
<h2>The IRC Connection</h2>
<p>My involvement with asteroid.radio is deeply rooted in IRC culture. Fade and easilok are both active in the IRC community, and it&#39;s through these channels that the project has grown and evolved.</p>
<p>There&#39;s something special about IRC as a medium for project collaboration. The asynchronous nature of conversations allows ideas to percolate over time. Fade and I would discuss asteroid.radio concepts, then return to them weeks or months later with fresh perspectives. This slow-burn approach to project development has its own rhythm - one that I&#39;ve come to appreciate.</p>
<h2>Getting Involved</h2>
<p>After over a couple of years of these on-and-off conversations, I&#39;m now actively contributing to the project. Working with Fade as the dev lead has been a great experience - there&#39;s a &quot;clear&quot; vision for what asteroid.radio should become (don&#39;t mention Autechre), while still leaving room for contributors to bring their own ideas and expertise.</p>
<p>The project represents exactly the kind of work I find most rewarding: community-focused, technically interesting, and aligned with the values of open source that I care about.</p>
<h2>Looking Forward</h2>
<p>I&#39;m excited to see where <a href="https://asteroid.radio">asteroid.radio</a> goes from here. Projects like this demonstrate what&#39;s possible when communities come together to build something meaningful.</p>
<p>If you&#39;re interested in asteroid music, deep work soundtracks, or just want to see what we&#39;re building, tune in to <a href="https://asteroid.radio">asteroid.radio</a> and check out the <a href="https://github.com/fade/asteroid">source code on GitHub</a>. And if you&#39;re on IRC, come say hello - you might find yourself drawn into a years-long conversation that leads somewhere unexpected.</p>
<h2>Community Matters</h2>
<p>This experience has reinforced something I&#39;ve come to believe strongly: the best open source contributions often come from genuine community connections. Whether it&#39;s the <a href="https://systemcrafters.net/">System Crafters</a> community, the <a href="https://craftering.systemcrafters.net/">Craftering webring</a>, or the IRC channels where projects like <a href="https://asteroid.radio">asteroid.radio</a> take shape, these spaces matter.</p>
<p>Thanks to Fade for the leadership on this project, to easilok for being part of the community, and to everyone who makes IRC such a valuable space for collaboration.</p>
<p>Happy Hacking!</p>
</article>
</div>
</div>
</main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center">
<p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div>
<div class="craftering mt-2 flex items-center justify-center gap-4 text-accent-blue">
<a href="https://craftering.systemcrafters.net/@glenneth/previous" class="hover:text-accent-cyan">Previous</a>
<a href="https://craftering.systemcrafters.net/@glenneth" class="hover:text-accent-cyan">Random</a>
<a href="https://craftering.systemcrafters.net/@glenneth/next" class="hover:text-accent-cyan">Next</a>
</div>
<p class="text-palenight-300 mt-2">
<a href="mailto:glenn@glenneth.org" class="text-accent-blue hover:text-accent-cyan transition-colors">glenn@glenneth.org</a> |
<a href="https://glenneth.org" class="text-accent-blue hover:text-accent-cyan transition-colors">glenneth.org</a>
</p>
</div>
</div>
</footer>
</body>
</html>

View File

@ -0,0 +1,44 @@
---
title: "Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work"
date: 2026-01-12
tags: [community, radio, open-source, irc, music]
description: "After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."
---
## Introduction
Sometimes the best projects emerge from casual conversations that span months or even years. That's exactly how my involvement with [asteroid.radio](https://asteroid.radio) came about - through countless discussions with Fade on IRC, stretching back over a couple of years.
Fade is the development lead on asteroid.radio, and our conversations about the project have been a recurring thread in our IRC interactions. What started as occasional mentions evolved into deeper technical discussions, and eventually into an opportunity to contribute. I did bend Fades' arm a little bit to get us started, but I hope he appreciates the push.
## What is asteroid.radio?
[asteroid.radio](https://asteroid.radio) is a broadcasting station dedicated to what Fade has dubbed "asteroid music" - that particular genre of sound that helps you slip into a deep workflow when hacking or deeply engaged at the computer. The moment Fade coined the term, I knew exactly what he was referencing. It's that music that fades into the background while simultaneously sharpening your focus.
We're attempting to build a community around this concept - a space for people who understand that the right soundtrack can transform a coding session from distracted fumbling into hours of productive flow. The project is open source, and you can find the code at [github.com/fade/asteroid](https://github.com/fade/asteroid).
## The IRC Connection
My involvement with asteroid.radio is deeply rooted in IRC culture. Fade and easilok are both active in the IRC community, and it's through these channels that the project has grown and evolved.
There's something special about IRC as a medium for project collaboration. The asynchronous nature of conversations allows ideas to percolate over time. Fade and I would discuss asteroid.radio concepts, then return to them weeks or months later with fresh perspectives. This slow-burn approach to project development has its own rhythm - one that I've come to appreciate.
## Getting Involved
After over a couple of years of these on-and-off conversations, I'm now actively contributing to the project. Working with Fade as the dev lead has been a great experience - there's a "clear" vision for what asteroid.radio should become (don't mention Autechre), while still leaving room for contributors to bring their own ideas and expertise.
The project represents exactly the kind of work I find most rewarding: community-focused, technically interesting, and aligned with the values of open source that I care about.
## Looking Forward
I'm excited to see where [asteroid.radio](https://asteroid.radio) goes from here. Projects like this demonstrate what's possible when communities come together to build something meaningful.
If you're interested in asteroid music, deep work soundtracks, or just want to see what we're building, tune in to [asteroid.radio](https://asteroid.radio) and check out the [source code on GitHub](https://github.com/fade/asteroid). And if you're on IRC, come say hello - you might find yourself drawn into a years-long conversation that leads somewhere unexpected.
## Community Matters
This experience has reinforced something I've come to believe strongly: the best open source contributions often come from genuine community connections. Whether it's the [System Crafters](https://systemcrafters.net/) community, the [Craftering webring](https://craftering.systemcrafters.net/), or the IRC channels where projects like [asteroid.radio](https://asteroid.radio) take shape, these spaces matter.
Thanks to Fade for the leadership on this project, to easilok for being part of the community, and to everyone who makes IRC such a valuable space for collaboration.
Happy Hacking!

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content=""Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard""> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-04-08-glove80-review"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-04-08-glove80-review">
<title>"Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard" - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>["personal", "tech", "keyboards", "glove80"]</span> <span>Tech</span>
<span></span> <span></span>
<time datetime=""2024-04-08 16:50"">Invalid Date</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard"</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime=""2024-04-08 16:50"">"2024-04-08 16:50"</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By "Glenn Thompson"</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">["personal"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"tech"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"keyboards"</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">"glove80"]</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h2>In the quest for the ultimate ergonomic keyboard, aesthetics often take a backseat to functionality. Yet, when I first laid eyes on the Glove80, I was struck by its elegant design—a refreshing departure from the utilitarian look typical of many ergonomic keyboards. Unlike the retro vibes of the Kinesis Advantage or the DIY aesthetics of most Dactyls, the Glove80 boasts a modern, sleek appearance that complements the contemporary design language of Apple, Google, and LG devices. With its clean lines and visually appealing legends, the Glove80 not only promises ergonomic comfort but does so with style, standing out amidst a sea of competitors.</h2> <hr>
<h2>title: &quot;Aesthetic Meets Ergonomics: My Deep Dive into the Glove80 Keyboard&quot;<br>author: &quot;Glenn Thompson&quot;<br>date: &quot;2024-04-08 16:50&quot;<br>tags: [&quot;personal&quot;, &quot;tech&quot;, &quot;keyboards&quot;, &quot;glove80&quot;]</h2>
<h2>In the quest for the ultimate ergonomic keyboard, aesthetics often take a backseat to functionality. Yet, when I first laid eyes on the Glove80, I was struck by its elegant design—a refreshing departure from the utilitarian look typical of many ergonomic keyboards. Unlike the retro vibes of the Kinesis Advantage or the DIY aesthetics of most Dactyls, the Glove80 boasts a modern, sleek appearance that complements the contemporary design language of Apple, Google, and LG devices. With its clean lines and visually appealing legends, the Glove80 not only promises ergonomic comfort but does so with style, standing out amidst a sea of competitors.</h2>
<p>As my career trajectory veered from being an integral member of an electrical engineering team to assuming the role of Deputy Project Manager, the nature of my daily activities underwent a significant transformation. The hands-on tasks of yesteryears were gradually replaced by a deluge of documentations—writing, reviewing, and endless typing. This shift brought with it an unwelcome companion: discomfort in my hands and wrists, a stark reminder of the ergonomic pitfalls of conventional keyboards. It was in this context that my quest for a more ergonomic typing solution began, leading me towards the world of ALICE layout keyboards, with the <a href="https://www.keychron.com/products/keychron-q10-pro-alice-layout-qmk-via-wireless-custom-mechanical-keyboard"><strong>Q10 Pro</strong> by Keychron</a> being my initial foray into this new realm.</p> <p>As my career trajectory veered from being an integral member of an electrical engineering team to assuming the role of Deputy Project Manager, the nature of my daily activities underwent a significant transformation. The hands-on tasks of yesteryears were gradually replaced by a deluge of documentations—writing, reviewing, and endless typing. This shift brought with it an unwelcome companion: discomfort in my hands and wrists, a stark reminder of the ergonomic pitfalls of conventional keyboards. It was in this context that my quest for a more ergonomic typing solution began, leading me towards the world of ALICE layout keyboards, with the <a href="https://www.keychron.com/products/keychron-q10-pro-alice-layout-qmk-via-wireless-custom-mechanical-keyboard"><strong>Q10 Pro</strong> by Keychron</a> being my initial foray into this new realm.</p>
<p>However, the relief was partial, and the shadow of wrist strain persisted, urging me to delve deeper into the ergonomic keyboard universe. My search for a truly ergonomic solution brought me to the doorstep of the <a href="https://www.moergo.com"><strong>Glove80</strong> by MoErgo</a>. Boasting a unique split design, concave key wells, and a commitment to ergonomics that seemed almost tailor-made for my situation, the Glove80 held the promise of being the oasis I was desperately seeking in the desert of my wrist discomfort.</p> <p>However, the relief was partial, and the shadow of wrist strain persisted, urging me to delve deeper into the ergonomic keyboard universe. My search for a truly ergonomic solution brought me to the doorstep of the <a href="https://www.moergo.com"><strong>Glove80</strong> by MoErgo</a>. Boasting a unique split design, concave key wells, and a commitment to ergonomics that seemed almost tailor-made for my situation, the Glove80 held the promise of being the oasis I was desperately seeking in the desert of my wrist discomfort.</p>
<p>This journey from an ALICE layout keyboard user to a Glove80 enthusiast was not just about finding a better typing tool; it was about embracing a healthier typing posture and redefining my interaction with computers. After a month of integrating the Glove80 into my workflow, I&#39;m ready to share my insights and experiences. This review will explore the initial adaptation period, the impact on my wrist health, and whether the Glove80 lives up to its promise as an ergonomic game-changer.</p> <p>This journey from an ALICE layout keyboard user to a Glove80 enthusiast was not just about finding a better typing tool; it was about embracing a healthier typing posture and redefining my interaction with computers. After a month of integrating the Glove80 into my workflow, I&#39;m ready to share my insights and experiences. This review will explore the initial adaptation period, the impact on my wrist health, and whether the Glove80 lives up to its promise as an ergonomic game-changer.</p>
@ -125,9 +124,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Rollercoaster Week: From Amman to Newcastle, and back again"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-01-amman-newcastle-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-01-amman-newcastle-journey">
<title>A Rollercoaster Week: From Amman to Newcastle, and back again - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>work, travel</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-05-01 17:40:58+03:00">May 1, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>3 min read</span> <span>3 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Rollercoaster Week: From Amman to Newcastle, and back again</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-05-01 17:40:58+03:00">2024-05-01 17:40:58+03:00</time> <time datetime=""></time>
<span></span> <span></span>
<span>3 min read</span> <span>3 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">work</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">travel</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>Two weeks ago was a whirlwind of events, taking me from the conforting embrace of Amman, Jordan to the vibrant streets of Newcastle, England. It was a journey filled with highs and lows, professional achievements, and personal challenges.</p> <hr>
<h2>title: A Rollercoaster Week: From Amman to Newcastle, and back again<br>author: Glenn Thompson<br>date: 2024-05-01 17:40:58+03:00<br>tags: work, travel</h2>
<p>Two weeks ago was a whirlwind of events, taking me from the conforting embrace of Amman, Jordan to the vibrant streets of Newcastle, England. It was a journey filled with highs and lows, professional achievements, and personal challenges.</p>
<h2>The Journey Begins</h2> <h2>The Journey Begins</h2>
<p>It all started on a Monday morning in Amman as I embarked on a journey to attend a Quality Control (QC) conference in Newcastle. The anticipation of presenting my work at an international forum filled me with excitement and nerves. The conference was scheduled for just one day, but the impact it had on me would last much longer.</p> <p>It all started on a Monday morning in Amman as I embarked on a journey to attend a Quality Control (QC) conference in Newcastle. The anticipation of presenting my work at an international forum filled me with excitement and nerves. The conference was scheduled for just one day, but the impact it had on me would last much longer.</p>
<h2>A Successful Presentation</h2> <h2>A Successful Presentation</h2>
@ -118,9 +117,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-15-hugo-to-haunt"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-05-15-hugo-to-haunt">
<title>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, keyboards, glove80</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-05-15 10:30">May 15, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-05-15 10:30">2024-05-15 10:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">keyboards</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">glove80</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1> <hr>
<h2>title: Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix<br>author: Glenn Thompson<br>date: 2024-05-15 10:30<br>tags: personal, tech, keyboards, glove80</h2>
<h1>Transitioning from Hugo to Haunt: Embracing Scheme and GNU Guix</h1>
<p>Hello there! I&#39;m Glenn Thompson, and today, I want to share a significant part of my recent journey into the world of Scheme, GNU Guix, and static site generation.</p> <p>Hello there! I&#39;m Glenn Thompson, and today, I want to share a significant part of my recent journey into the world of Scheme, GNU Guix, and static site generation.</p>
<h2>Discovering Scheme with System Crafters</h2> <h2>Discovering Scheme with System Crafters</h2>
<p>My journey began with a desire to dive deeper into programming languages and their ecosystems. I am a member of the <a href="https://systemcrafters.net/community/">System Crafters Community</a>, and its founder, David Wilson, announced a short four week course as an introduction to Guile Scheme. The course, <a href="https://systemcrafters.net/courses/hands-on-guile-scheme-beginners/">Hands-On Guile Scheme for Beginners</a>, provided me with a robust introduction to Guile Scheme, a language that emphasizes simplicity and elegance. David&#39;s clear explanations and practical examples made learning Scheme both engaging and approachable.</p> <p>My journey began with a desire to dive deeper into programming languages and their ecosystems. I am a member of the <a href="https://systemcrafters.net/community/">System Crafters Community</a>, and its founder, David Wilson, announced a short four week course as an introduction to Guile Scheme. The course, <a href="https://systemcrafters.net/courses/hands-on-guile-scheme-beginners/">Hands-On Guile Scheme for Beginners</a>, provided me with a robust introduction to Guile Scheme, a language that emphasizes simplicity and elegance. David&#39;s clear explanations and practical examples made learning Scheme both engaging and approachable.</p>
@ -340,9 +339,9 @@ meta {
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Journey Through GNU Guix: From Installation to Returning to Arch Linux"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-07-26-gnu-guix-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-07-26-gnu-guix-journey">
<title>A Journey Through GNU Guix: From Installation to Returning to Arch Linux - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, gnu, guix, swaywm, nvidia</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-07-26 10:30">July 26, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-07-26 10:30">2024-07-26 10:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>7 min read</span> <span>7 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">gnu</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guix</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">swaywm</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">nvidia</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1> <hr>
<h2>title: A Journey Through GNU Guix: From Installation to Returning to Arch Linux<br>author: Glenn Thompson<br>date: 2024-07-26 10:30<br>tags: personal, tech, gnu, guix, swaywm, nvidia</h2>
<h1>A Journey Through GNU Guix: From Installation to Returning to Arch Linux</h1>
<p>As a long-time user of Arch Linux, I decided to explore the world of GNU Guix to see if it could better suit my needs, especially with my growing interest in functional package management. The journey was insightful, filled with learning experiences, but ultimately led me back to the reliable shores of Arch. Here&#39;s a detailed account of my venture into GNU Guix, adding non-GNU channels, dealing with Nvidia drivers, running SwayWM, and the eventual retreat to Arch.</p> <p>As a long-time user of Arch Linux, I decided to explore the world of GNU Guix to see if it could better suit my needs, especially with my growing interest in functional package management. The journey was insightful, filled with learning experiences, but ultimately led me back to the reliable shores of Arch. Here&#39;s a detailed account of my venture into GNU Guix, adding non-GNU channels, dealing with Nvidia drivers, running SwayWM, and the eventual retreat to Arch.</p>
<h2>Installation of GNU Guix</h2> <h2>Installation of GNU Guix</h2>
<p>The installation process of GNU Guix was straightforward, thanks to the well-documented guide provided on their official website. Here&#39;s a quick rundown of the steps I followed:</p> <p>The installation process of GNU Guix was straightforward, thanks to the well-documented guide provided on their official website. Here&#39;s a quick rundown of the steps I followed:</p>
@ -168,9 +167,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="A Journey into Scheme"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-09-24-scheme-journey"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-09-24-scheme-journey">
<title>A Journey into Scheme - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>personal, tech, guile, scheme, gnu, development</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-09-24 09:30">September 24, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">A Journey into Scheme</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-09-24 09:30">2024-09-24 09:30</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">personal</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">scheme</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">gnu</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>My Journey into Scheme: Building a Simple Symlink Manager with Guile Scheme</h1> <hr>
<h2>title: A Journey into Scheme<br>author: Glenn Thompson<br>date: 2024-09-24 09:30<br>tags: personal, tech, guile, scheme, gnu, development</h2>
<h1>My Journey into Scheme: Building a Simple Symlink Manager with Guile Scheme</h1>
<h2>Introduction</h2> <h2>Introduction</h2>
<p>I&#39;ve spent my career as an electrical engineer, not a software developer. However, my recent journey in to GNU/Liniux required a tool for managing symlinks, and that&#39;s how I began learning Scheme—specifically Guile Scheme. I&#39;m writing this post to share how I built <code>stash</code>, a utility that mimics GNU Stow&#39;s functionality, and how my learning journey was shaped by David Wilson&#39;s &quot;Hands-On Guile Scheme for Beginners&quot; course from System Crafters, more about this below.</p> <p>I&#39;ve spent my career as an electrical engineer, not a software developer. However, my recent journey in to GNU/Liniux required a tool for managing symlinks, and that&#39;s how I began learning Scheme—specifically Guile Scheme. I&#39;m writing this post to share how I built <code>stash</code>, a utility that mimics GNU Stow&#39;s functionality, and how my learning journey was shaped by David Wilson&#39;s &quot;Hands-On Guile Scheme for Beginners&quot; course from System Crafters, more about this below.</p>
<h2>How I Started with Scheme</h2> <h2>How I Started with Scheme</h2>
@ -166,9 +165,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,12 +4,12 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content="Beyond Theory: Building Practical Tools with Guile Scheme"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2024-12-03-practical-scheme"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2024-12-03-practical-scheme">
<title>Beyond Theory: Building Practical Tools with Guile Scheme - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="../../dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style> <style>
.prose-palenight { .prose-palenight {
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>tech, guile, scheme, development, functional-programming</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2024-12-03 10:00">December 3, 2024</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">Beyond Theory: Building Practical Tools with Guile Scheme</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2024-12-03 10:00">2024-12-03 10:00</time> <time datetime=""></time>
<span></span> <span></span>
<span>5 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tech</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">scheme</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">functional-programming</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h1>Beyond Theory: Building Practical Tools with Guile Scheme</h1> <hr>
<h2>title: Beyond Theory: Building Practical Tools with Guile Scheme<br>author: Glenn Thompson<br>date: 2024-12-03 10:00<br>tags: tech, guile, scheme, development, functional-programming</h2>
<h1>Beyond Theory: Building Practical Tools with Guile Scheme</h1>
<h2>Introduction</h2> <h2>Introduction</h2>
<p>A few months ago, I shared my journey into learning Scheme through building <code>stash</code>, a symlink manager. Since then, I&#39;ve discovered that the gap between learning Scheme and applying it to real-world problems is where the most valuable lessons emerge. This post explores what I&#39;ve learned about building practical tools with Guile Scheme, sharing both successes and challenges along the way.</p> <p>A few months ago, I shared my journey into learning Scheme through building <code>stash</code>, a symlink manager. Since then, I&#39;ve discovered that the gap between learning Scheme and applying it to real-world problems is where the most valuable lessons emerge. This post explores what I&#39;ve learned about building practical tools with Guile Scheme, sharing both successes and challenges along the way.</p>
<h2>The Power of Modular Design</h2> <h2>The Power of Modular Design</h2>
@ -246,9 +245,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -3,11 +3,11 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way."> <meta name="description" content="">
<meta property="og:title" content="From Hugo to Haunt to Custom: My Journey in Static Site Generation"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content="A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way."> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-01-02-from-haunt-to-custom"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-01-02-from-haunt-to-custom">
<title>From Hugo to Haunt to Custom: My Journey in Static Site Generation - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,11 +68,11 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>web, development, javascript, static-site, haunt, guile, hugo</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-01-02">January 2, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>4 min read</span> <span>5 min read</span>
</div> </div>
</div> </div>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">From Hugo to Haunt to Custom: My Journey in Static Site Generation</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-01-02">2025-01-02</time> <time datetime=""></time>
<span></span> <span></span>
<span>4 min read</span> <span>5 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">web</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">javascript</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">static-site</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">haunt</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guile</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">hugo</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>My journey with static site generators has been one of continuous learning and evolution. It started with Hugo, transitioned through Haunt, and has now led me to build my own custom solution. Each step of this journey has taught me valuable lessons about web development, programming languages, and the importance of understanding the tools we use.</p> <hr>
<h2>title: From Hugo to Haunt to Custom: My Journey in Static Site Generation<br>date: 2025-01-02<br>tags: web, development, javascript, static-site, haunt, guile, hugo<br>description: A reflection on my evolving journey through static site generators - from Hugo to Haunt, and finally to building my own custom solution, highlighting the valuable lessons learned along the way.</h2>
<p>My journey with static site generators has been one of continuous learning and evolution. It started with Hugo, transitioned through Haunt, and has now led me to build my own custom solution. Each step of this journey has taught me valuable lessons about web development, programming languages, and the importance of understanding the tools we use.</p>
<h2>The Hugo Beginning</h2> <h2>The Hugo Beginning</h2>
<p>Like many &quot;bloggers&quot;, I started with Hugo, a popular static site generator known for its speed and extensive theme ecosystem. Hugo served its purpose well, providing a robust platform for my blog with ready-made themes and a strong community.</p> <p>Like many &quot;bloggers&quot;, I started with Hugo, a popular static site generator known for its speed and extensive theme ecosystem. Hugo served its purpose well, providing a robust platform for my blog with ready-made themes and a strong community.</p>
<h2>The Transition to Haunt</h2> <h2>The Transition to Haunt</h2>
@ -175,9 +174,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -3,11 +3,11 @@
<head> <head>
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content="A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes."> <meta name="description" content="">
<meta property="og:title" content="My Development Environment in 2025: From Editor to Deployment"> <meta property="og:title" content="Blog Post">
<meta property="og:description" content="A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes."> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-08-my-dev-environment-2025"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-08-my-dev-environment-2025">
<title>My Development Environment in 2025: From Editor to Deployment - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>development, guix, tools, workflow, productivity, web</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-03-08">March 8, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">My Development Environment in 2025: From Editor to Deployment</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-03-08">2025-03-08</time> <time datetime=""></time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">guix</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">tools</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">workflow</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">productivity</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">web</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<h2>Introduction</h2> <hr>
<h2>title: My Development Environment in 2025: From Editor to Deployment<br>date: 2025-03-08<br>tags: development, guix, tools, workflow, productivity, web<br>description: A comprehensive look at my current development setup in 2025, covering everything from my GNU Guix system foundation to editor configurations, terminal tools, and deployment processes.</h2>
<h2>Introduction</h2>
<p>The tools we use shape how we work. Over the years, my development environment has evolved alongside my technical journey through different programming languages, paradigms, and projects. This post offers a snapshot of my current setup in early 2025, detailing the choices I&#39;ve made and why they work for me.</p> <p>The tools we use shape how we work. Over the years, my development environment has evolved alongside my technical journey through different programming languages, paradigms, and projects. This post offers a snapshot of my current setup in early 2025, detailing the choices I&#39;ve made and why they work for me.</p>
<h2>System Foundation: ArcoLinux with GNU Guix</h2> <h2>System Foundation: ArcoLinux with GNU Guix</h2>
<p>My journey to <a href="https://guix.gnu.org/">GNU Guix</a> began through my exploration of Scheme programming, as I detailed in my <a href="/content/posts/2024-07-26-gnu-guix-journey.html">GNU Guix Journey</a> post. While I initially experimented with Guix System, I&#39;ve settled on a hybrid approach: running Guix as a package manager on top of ArcoLinux (an Arch-based distribution).</p> <p>My journey to <a href="https://guix.gnu.org/">GNU Guix</a> began through my exploration of Scheme programming, as I detailed in my <a href="/content/posts/2024-07-26-gnu-guix-journey.html">GNU Guix Journey</a> post. While I initially experimented with Guix System, I&#39;ve settled on a hybrid approach: running Guix as a package manager on top of ArcoLinux (an Arch-based distribution).</p>
@ -301,9 +300,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -4,10 +4,10 @@
<meta charset="UTF-8"> <meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""> <meta name="description" content="">
<meta property="og:title" content=""Lessons Learned: One Year with a Custom Static Site Generator""> <meta property="og:title" content="Blog Post">
<meta property="og:description" content=""> <meta property="og:description" content="">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-12-lessons-learned-custom-ssg"> <meta property="og:url" content="https://glenneth.orgcontent/posts/2025-03-12-lessons-learned-custom-ssg">
<title>"Lessons Learned: One Year with a Custom Static Site Generator" - Glenn Thompson</title> <title>Blog Post - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" /> <link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet"> <link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet"> <link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
@ -68,9 +68,9 @@
<div class="flex items-center justify-between h-16"> <div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a> <a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold"> <div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>[web, development, javascript, static-site, lessons]</span> <span>Tech</span>
<span></span> <span></span>
<time datetime="2025-03-13">March 13, 2025</time> <time datetime="undefined">Invalid Date</time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
</div> </div>
@ -82,22 +82,21 @@
<div class="max-w-4xl mx-auto"> <div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6"> <div class="content text-palenight-100 space-y-6">
<header class="mb-8"> <header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Lessons Learned: One Year with a Custom Static Site Generator"</h1> <h1 class="text-4xl font-serif font-bold text-accent-yellow">Blog Post</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4"> <div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2025-03-13">2025-03-13</time> <time datetime=""></time>
<span></span> <span></span>
<span>6 min read</span> <span>6 min read</span>
<span></span> <span></span>
<span>By Glenn Thompson</span> <span>By Glenn Thompson</span>
</div> </div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">[web</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">development</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">javascript</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">static-site</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">lessons]</span>
</div>
</header> </header>
<article class="prose prose-palenight max-w-none"> <article class="prose prose-palenight max-w-none">
<p>It&#39;s been just over a year since I <a href="/content/posts/2025-01-02-from-haunt-to-custom.html">transitioned from Haunt to my own custom static site generator</a> for this website. What started as an experiment to gain more control over my publishing workflow has evolved into a valuable learning experience that has shaped how I approach web development projects.</p> <hr>
<h2>title: &quot;Lessons Learned: One Year with a Custom Static Site Generator&quot;<br>date: 2025-03-13<br>tags: [web, development, javascript, static-site, lessons]</h2>
<p>It&#39;s been just over a year since I <a href="/content/posts/2025-01-02-from-haunt-to-custom.html">transitioned from Haunt to my own custom static site generator</a> for this website. What started as an experiment to gain more control over my publishing workflow has evolved into a valuable learning experience that has shaped how I approach web development projects.</p>
<p>In this post, I&#39;ll share the key lessons I&#39;ve learned and insights I&#39;ve gained from building and maintaining my own static site generator. While the technical details are interesting, the real value has been in the broader lessons about software development, user experience, and the balance between complexity and simplicity.</p> <p>In this post, I&#39;ll share the key lessons I&#39;ve learned and insights I&#39;ve gained from building and maintaining my own static site generator. While the technical details are interesting, the real value has been in the broader lessons about software development, user experience, and the balance between complexity and simplicity.</p>
<h2>The Journey of Evolution</h2> <h2>The Journey of Evolution</h2>
<h3>From Simple Beginnings</h3> <h3>From Simple Beginnings</h3>
@ -174,9 +173,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -126,9 +126,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -251,9 +251,9 @@
</div> </div>
</main> </main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -0,0 +1,144 @@
<!DOCTYPE html>
<html lang="en" class="bg-base-bg">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="description" content=""After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."">
<meta property="og:title" content=""Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work"">
<meta property="og:description" content=""After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."">
<meta property="og:url" content="https://glenneth.orgcontent/posts/2026-01-12-asteroid-radio">
<title>"Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work" - Glenn Thompson</title>
<link rel="alternate" type="application/rss+xml" title="Glenn Thompson's Blog" href="/feed.xml" />
<link href="/dist/styles.css" rel="stylesheet">
<link href="https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&family=Merriweather:wght@400;700&family=JetBrains+Mono:wght@400;700&display=swap" rel="stylesheet">
<style>
.prose-palenight {
--tw-prose-body: #bfc7d5;
--tw-prose-headings: #ffd580;
--tw-prose-links: #82aaff;
--tw-prose-code: #c792ea;
--tw-prose-pre-bg: #1b1e2b;
}
.prose h2 {
color: var(--tw-prose-headings);
font-family: Merriweather, serif;
font-weight: 700;
font-size: 1.5rem;
margin-top: 2rem;
margin-bottom: 1rem;
}
.prose p {
margin-bottom: 1rem;
line-height: 1.625;
}
.prose a {
color: var(--tw-prose-links);
text-decoration: none;
}
.prose a:hover {
color: #89ddff;
}
.prose code {
color: var(--tw-prose-code);
font-family: 'JetBrains Mono', monospace;
}
.prose pre {
background-color: var(--tw-prose-pre-bg);
padding: 1rem;
border-radius: 0.5rem;
overflow-x: auto;
margin-bottom: 1rem;
}
.prose ul, .prose ol {
margin-top: 0.5rem;
margin-bottom: 1rem;
padding-left: 1.5rem;
}
.prose ul {
list-style-type: disc;
}
.prose ol {
list-style-type: decimal;
}
</style>
</head>
<body class="bg-base-bg text-palenight-50">
<nav class="bg-base-darker/80 backdrop-blur-sm shadow-sm border-b border-palenight-400/20 mb-8">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="flex items-center justify-between h-16">
<a href="/" class="text-accent-yellow font-serif text-xl font-bold">Glenn Thompson</a>
<div class="flex items-center gap-2 text-accent-yellow text-sm font-bold">
<span>[community, radio, open-source, irc, music]</span>
<span></span>
<time datetime="2026-01-12">January 12, 2026</time>
<span></span>
<span>3 min read</span>
</div>
</div>
</div>
</nav>
<main class="pt-24 pb-16 px-4">
<div class="max-w-4xl mx-auto">
<div class="content text-palenight-100 space-y-6">
<header class="mb-8">
<h1 class="text-4xl font-serif font-bold text-accent-yellow">"Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work"</h1>
<div class="flex items-center gap-4 text-palenight-300 mt-4">
<time datetime="2026-01-12">2026-01-12</time>
<span></span>
<span>3 min read</span>
<span></span>
<span>By Glenn Thompson</span>
</div>
<div class="flex flex-wrap gap-2 mt-4">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">[community</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">radio</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">open-source</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">irc</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">music]</span>
</div>
</header>
<article class="prose prose-palenight max-w-none">
<h2>Introduction</h2>
<p>Sometimes the best projects emerge from casual conversations that span months or even years. That&#39;s exactly how my involvement with <a href="https://asteroid.radio">asteroid.radio</a> came about - through countless discussions with Fade on IRC, stretching back over a couple of years.</p>
<p>Fade is the development lead on asteroid.radio, and our conversations about the project have been a recurring thread in our IRC interactions. What started as occasional mentions evolved into deeper technical discussions, and eventually into an opportunity to contribute. I did bend Fades&#39; arm a little bit to get us started, but I hope he appreciates the push.</p>
<h2>What is asteroid.radio?</h2>
<p><a href="https://asteroid.radio">asteroid.radio</a> is a broadcasting station dedicated to what Fade has dubbed &quot;asteroid music&quot; - that particular genre of sound that helps you slip into a deep workflow when hacking or deeply engaged at the computer. The moment Fade coined the term, I knew exactly what he was referencing. It&#39;s that music that fades into the background while simultaneously sharpening your focus.</p>
<p>We&#39;re attempting to build a community around this concept - a space for people who understand that the right soundtrack can transform a coding session from distracted fumbling into hours of productive flow. The project is open source, and you can find the code at <a href="https://github.com/fade/asteroid">github.com/fade/asteroid</a>.</p>
<h2>The IRC Connection</h2>
<p>My involvement with asteroid.radio is deeply rooted in IRC culture. Fade and easilok are both active in the IRC community, and it&#39;s through these channels that the project has grown and evolved.</p>
<p>There&#39;s something special about IRC as a medium for project collaboration. The asynchronous nature of conversations allows ideas to percolate over time. Fade and I would discuss asteroid.radio concepts, then return to them weeks or months later with fresh perspectives. This slow-burn approach to project development has its own rhythm - one that I&#39;ve come to appreciate.</p>
<h2>Getting Involved</h2>
<p>After over a couple of years of these on-and-off conversations, I&#39;m now actively contributing to the project. Working with Fade as the dev lead has been a great experience - there&#39;s a &quot;clear&quot; vision for what asteroid.radio should become (don&#39;t mention Autechre), while still leaving room for contributors to bring their own ideas and expertise.</p>
<p>The project represents exactly the kind of work I find most rewarding: community-focused, technically interesting, and aligned with the values of open source that I care about.</p>
<h2>Looking Forward</h2>
<p>I&#39;m excited to see where <a href="https://asteroid.radio">asteroid.radio</a> goes from here. Projects like this demonstrate what&#39;s possible when communities come together to build something meaningful.</p>
<p>If you&#39;re interested in asteroid music, deep work soundtracks, or just want to see what we&#39;re building, tune in to <a href="https://asteroid.radio">asteroid.radio</a> and check out the <a href="https://github.com/fade/asteroid">source code on GitHub</a>. And if you&#39;re on IRC, come say hello - you might find yourself drawn into a years-long conversation that leads somewhere unexpected.</p>
<h2>Community Matters</h2>
<p>This experience has reinforced something I&#39;ve come to believe strongly: the best open source contributions often come from genuine community connections. Whether it&#39;s the <a href="https://systemcrafters.net/">System Crafters</a> community, the <a href="https://craftering.systemcrafters.net/">Craftering webring</a>, or the IRC channels where projects like <a href="https://asteroid.radio">asteroid.radio</a> take shape, these spaces matter.</p>
<p>Thanks to Fade for the leadership on this project, to easilok for being part of the community, and to everyone who makes IRC such a valuable space for collaboration.</p>
<p>Happy Hacking!</p>
</article>
</div>
</div>
</main>
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center">
<p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div>
<div class="craftering mt-2 flex items-center justify-center gap-4 text-accent-blue">
<a href="https://craftering.systemcrafters.net/@glenneth/previous" class="hover:text-accent-cyan">Previous</a>
<a href="https://craftering.systemcrafters.net/@glenneth" class="hover:text-accent-cyan">Random</a>
<a href="https://craftering.systemcrafters.net/@glenneth/next" class="hover:text-accent-cyan">Next</a>
</div>
<p class="text-palenight-300 mt-2">
<a href="mailto:glenn@glenneth.org" class="text-accent-blue hover:text-accent-cyan transition-colors">glenn@glenneth.org</a> |
<a href="https://glenneth.org" class="text-accent-blue hover:text-accent-cyan transition-colors">glenneth.org</a>
</p>
</div>
</div>
</footer>
</body>
</html>

View File

@ -6,7 +6,7 @@
<link>https://glenneth.org</link> <link>https://glenneth.org</link>
<atom:link href="https://glenneth.org/feed.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://glenneth.org/feed.xml" rel="self" type="application/rss+xml" />
<language>en-us</language> <language>en-us</language>
<lastBuildDate>Sun, 28 Sep 2025 08:21:15 GMT</lastBuildDate> <lastBuildDate>Mon, 12 Jan 2026 04:08:56 GMT</lastBuildDate>
<item> <item>
<title>Development Environment Evolution: Embracing Guix Home and Enhanced Emacs Workflow</title> <title>Development Environment Evolution: Embracing Guix Home and Enhanced Emacs Workflow</title>
@ -166,5 +166,35 @@
<author>Glenn Thompson</author> <author>Glenn Thompson</author>
<category>["development", "guix", "guix-home", "emacs", "workflow", "productivity", "evolution"]</category> <category>["development", "guix", "guix-home", "emacs", "workflow", "productivity", "evolution"]</category>
</item> </item>
<item>
<title>Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work</title>
<description>"After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."</description>
<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Sometimes the best projects emerge from casual conversations that span months or even years. That&#39;s exactly how my involvement with <a href="https://asteroid.radio">asteroid.radio</a> came about - through countless discussions with Fade on IRC, stretching back over a couple of years.</p>
<p>Fade is the development lead on asteroid.radio, and our conversations about the project have been a recurring thread in our IRC interactions. What started as occasional mentions evolved into deeper technical discussions, and eventually into an opportunity to contribute. I did bend Fades&#39; arm a little bit to get us started, but I hope he appreciates the push.</p>
<h2>What is asteroid.radio?</h2>
<p><a href="https://asteroid.radio">asteroid.radio</a> is a broadcasting station dedicated to what Fade has dubbed &quot;asteroid music&quot; - that particular genre of sound that helps you slip into a deep workflow when hacking or deeply engaged at the computer. The moment Fade coined the term, I knew exactly what he was referencing. It&#39;s that music that fades into the background while simultaneously sharpening your focus.</p>
<p>We&#39;re attempting to build a community around this concept - a space for people who understand that the right soundtrack can transform a coding session from distracted fumbling into hours of productive flow. The project is open source, and you can find the code at <a href="https://github.com/fade/asteroid">github.com/fade/asteroid</a>.</p>
<h2>The IRC Connection</h2>
<p>My involvement with asteroid.radio is deeply rooted in IRC culture. Fade and easilok are both active in the IRC community, and it&#39;s through these channels that the project has grown and evolved.</p>
<p>There&#39;s something special about IRC as a medium for project collaboration. The asynchronous nature of conversations allows ideas to percolate over time. Fade and I would discuss asteroid.radio concepts, then return to them weeks or months later with fresh perspectives. This slow-burn approach to project development has its own rhythm - one that I&#39;ve come to appreciate.</p>
<h2>Getting Involved</h2>
<p>After over a couple of years of these on-and-off conversations, I&#39;m now actively contributing to the project. Working with Fade as the dev lead has been a great experience - there&#39;s a &quot;clear&quot; vision for what asteroid.radio should become (don&#39;t mention Autechre), while still leaving room for contributors to bring their own ideas and expertise.</p>
<p>The project represents exactly the kind of work I find most rewarding: community-focused, technically interesting, and aligned with the values of open source that I care about.</p>
<h2>Looking Forward</h2>
<p>I&#39;m excited to see where <a href="https://asteroid.radio">asteroid.radio</a> goes from here. Projects like this demonstrate what&#39;s possible when communities come together to build something meaningful.</p>
<p>If you&#39;re interested in asteroid music, deep work soundtracks, or just want to see what we&#39;re building, tune in to <a href="https://asteroid.radio">asteroid.radio</a> and check out the <a href="https://github.com/fade/asteroid">source code on GitHub</a>. And if you&#39;re on IRC, come say hello - you might find yourself drawn into a years-long conversation that leads somewhere unexpected.</p>
<h2>Community Matters</h2>
<p>This experience has reinforced something I&#39;ve come to believe strongly: the best open source contributions often come from genuine community connections. Whether it&#39;s the <a href="https://systemcrafters.net/">System Crafters</a> community, the <a href="https://craftering.systemcrafters.net/">Craftering webring</a>, or the IRC channels where projects like <a href="https://asteroid.radio">asteroid.radio</a> take shape, these spaces matter.</p>
<p>Thanks to Fade for the leadership on this project, to easilok for being part of the community, and to everyone who makes IRC such a valuable space for collaboration.</p>
<p>Happy Hacking!</p>
]]></content:encoded>
<link>https://glenneth.org/content/posts/2026-01-12-asteroid-radio.html</link>
<guid isPermaLink="true">https://glenneth.org/content/posts/2026-01-12-asteroid-radio.html</guid>
<pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
<author>Glenn Thompson</author>
<category>[community, radio, open-source, irc, music]</category>
</item>
</channel> </channel>
</rss> </rss>

View File

@ -60,6 +60,25 @@
<h2 class="text-3xl font-serif font-bold text-accent-yellow mb-8">Blog Posts</h2> <h2 class="text-3xl font-serif font-bold text-accent-yellow mb-8">Blog Posts</h2>
<div class="grid gap-8 md:grid-cols-2"> <div class="grid gap-8 md:grid-cols-2">
<article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors">
<div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold">
<span>Tech</span>
<span></span><span>community</span><span></span><span>radio</span><span></span><span>open-source</span><span></span><span>irc</span><span></span><span>music</span>
<span></span>
<time datetime="2026-01-12">January 12, 2026</time>
</div>
<h3 class="text-xl font-serif font-bold text-accent-yellow mb-3">
<a href="/content/posts/2026-01-12-asteroid-radio.html" class="hover:text-accent-cyan transition-colors">
Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work
</a>
</h3>
<p class="text-palenight-100 mb-4">Sometimes the best projects emerge from casual conversations that span months or even years. That's exactly how my involvement with asteroid.radio came about - through countless discussions with Fade...</p>
<div class="flex flex-wrap gap-2">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">community</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">radio</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">open-source</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">irc</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">music</span>
</div>
</article>
<article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors"> <article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors">
<div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold"> <div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold">
<span>Tech</span> <span>Tech</span>
@ -398,7 +417,7 @@
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank"
class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>

View File

@ -12,9 +12,9 @@ const options = {
// Footer template // Footer template
const footer = ` const footer = `
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

View File

@ -6,7 +6,7 @@
<link>https://glenneth.org</link> <link>https://glenneth.org</link>
<atom:link href="https://glenneth.org/feed.xml" rel="self" type="application/rss+xml" /> <atom:link href="https://glenneth.org/feed.xml" rel="self" type="application/rss+xml" />
<language>en-us</language> <language>en-us</language>
<lastBuildDate>Sun, 28 Sep 2025 08:21:15 GMT</lastBuildDate> <lastBuildDate>Mon, 12 Jan 2026 04:08:56 GMT</lastBuildDate>
<item> <item>
<title>Development Environment Evolution: Embracing Guix Home and Enhanced Emacs Workflow</title> <title>Development Environment Evolution: Embracing Guix Home and Enhanced Emacs Workflow</title>
@ -166,5 +166,35 @@
<author>Glenn Thompson</author> <author>Glenn Thompson</author>
<category>["development", "guix", "guix-home", "emacs", "workflow", "productivity", "evolution"]</category> <category>["development", "guix", "guix-home", "emacs", "workflow", "productivity", "evolution"]</category>
</item> </item>
<item>
<title>Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work</title>
<description>"After over a year of conversations with Fade on IRC, I'm excited to be contributing to asteroid.radio - a broadcasting station for asteroid music, designed to help you get into that deep workflow."</description>
<content:encoded><![CDATA[<h2>Introduction</h2>
<p>Sometimes the best projects emerge from casual conversations that span months or even years. That&#39;s exactly how my involvement with <a href="https://asteroid.radio">asteroid.radio</a> came about - through countless discussions with Fade on IRC, stretching back over a couple of years.</p>
<p>Fade is the development lead on asteroid.radio, and our conversations about the project have been a recurring thread in our IRC interactions. What started as occasional mentions evolved into deeper technical discussions, and eventually into an opportunity to contribute. I did bend Fades&#39; arm a little bit to get us started, but I hope he appreciates the push.</p>
<h2>What is asteroid.radio?</h2>
<p><a href="https://asteroid.radio">asteroid.radio</a> is a broadcasting station dedicated to what Fade has dubbed &quot;asteroid music&quot; - that particular genre of sound that helps you slip into a deep workflow when hacking or deeply engaged at the computer. The moment Fade coined the term, I knew exactly what he was referencing. It&#39;s that music that fades into the background while simultaneously sharpening your focus.</p>
<p>We&#39;re attempting to build a community around this concept - a space for people who understand that the right soundtrack can transform a coding session from distracted fumbling into hours of productive flow. The project is open source, and you can find the code at <a href="https://github.com/fade/asteroid">github.com/fade/asteroid</a>.</p>
<h2>The IRC Connection</h2>
<p>My involvement with asteroid.radio is deeply rooted in IRC culture. Fade and easilok are both active in the IRC community, and it&#39;s through these channels that the project has grown and evolved.</p>
<p>There&#39;s something special about IRC as a medium for project collaboration. The asynchronous nature of conversations allows ideas to percolate over time. Fade and I would discuss asteroid.radio concepts, then return to them weeks or months later with fresh perspectives. This slow-burn approach to project development has its own rhythm - one that I&#39;ve come to appreciate.</p>
<h2>Getting Involved</h2>
<p>After over a couple of years of these on-and-off conversations, I&#39;m now actively contributing to the project. Working with Fade as the dev lead has been a great experience - there&#39;s a &quot;clear&quot; vision for what asteroid.radio should become (don&#39;t mention Autechre), while still leaving room for contributors to bring their own ideas and expertise.</p>
<p>The project represents exactly the kind of work I find most rewarding: community-focused, technically interesting, and aligned with the values of open source that I care about.</p>
<h2>Looking Forward</h2>
<p>I&#39;m excited to see where <a href="https://asteroid.radio">asteroid.radio</a> goes from here. Projects like this demonstrate what&#39;s possible when communities come together to build something meaningful.</p>
<p>If you&#39;re interested in asteroid music, deep work soundtracks, or just want to see what we&#39;re building, tune in to <a href="https://asteroid.radio">asteroid.radio</a> and check out the <a href="https://github.com/fade/asteroid">source code on GitHub</a>. And if you&#39;re on IRC, come say hello - you might find yourself drawn into a years-long conversation that leads somewhere unexpected.</p>
<h2>Community Matters</h2>
<p>This experience has reinforced something I&#39;ve come to believe strongly: the best open source contributions often come from genuine community connections. Whether it&#39;s the <a href="https://systemcrafters.net/">System Crafters</a> community, the <a href="https://craftering.systemcrafters.net/">Craftering webring</a>, or the IRC channels where projects like <a href="https://asteroid.radio">asteroid.radio</a> take shape, these spaces matter.</p>
<p>Thanks to Fade for the leadership on this project, to easilok for being part of the community, and to everyone who makes IRC such a valuable space for collaboration.</p>
<p>Happy Hacking!</p>
]]></content:encoded>
<link>https://glenneth.org/content/posts/2026-01-12-asteroid-radio.html</link>
<guid isPermaLink="true">https://glenneth.org/content/posts/2026-01-12-asteroid-radio.html</guid>
<pubDate>Mon, 12 Jan 2026 00:00:00 GMT</pubDate>
<author>Glenn Thompson</author>
<category>[community, radio, open-source, irc, music]</category>
</item>
</channel> </channel>
</rss> </rss>

View File

@ -60,6 +60,25 @@
<h2 class="text-3xl font-serif font-bold text-accent-yellow mb-8">Blog Posts</h2> <h2 class="text-3xl font-serif font-bold text-accent-yellow mb-8">Blog Posts</h2>
<div class="grid gap-8 md:grid-cols-2"> <div class="grid gap-8 md:grid-cols-2">
<article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors">
<div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold">
<span>Tech</span>
<span></span><span>community</span><span></span><span>radio</span><span></span><span>open-source</span><span></span><span>irc</span><span></span><span>music</span>
<span></span>
<time datetime="2026-01-12">January 12, 2026</time>
</div>
<h3 class="text-xl font-serif font-bold text-accent-yellow mb-3">
<a href="/content/posts/2026-01-12-asteroid-radio.html" class="hover:text-accent-cyan transition-colors">
Contributing to asteroid.radio: Broadcasting Asteroid Music for Deep Work
</a>
</h3>
<p class="text-palenight-100 mb-4">Sometimes the best projects emerge from casual conversations that span months or even years. That's exactly how my involvement with asteroid.radio came about - through countless discussions with Fade...</p>
<div class="flex flex-wrap gap-2">
<span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">community</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">radio</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">open-source</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">irc</span><span class="text-accent-yellow px-2 py-1 rounded-full bg-base-bg text-xs">music</span>
</div>
</article>
<article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors"> <article class="bg-base-darker p-6 rounded-lg shadow-lg border border-palenight-400/20 hover:border-accent-purple/40 transition-colors">
<div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold"> <div class="flex flex-wrap items-center gap-2 text-accent-yellow text-sm mb-2 font-bold">
<span>Tech</span> <span>Tech</span>
@ -398,7 +417,7 @@
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank"
class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>

View File

@ -223,15 +223,28 @@ async function updateIndexWithSummaries() {
// Extract metadata // Extract metadata
const metadata = {}; const metadata = {};
content.replace(/^---\n([\s\S]*?)\n---\n/, (_, frontMatter) => { // More flexible regex to handle different line endings
frontMatter.split('\n').forEach(line => { const frontMatterMatch = content.match(/^---\r?\n([\s\S]*?)\r?\n---\r?\n/);
const [key, ...valueParts] = line.split(':'); if (frontMatterMatch) {
if (key && valueParts.length > 0) { const frontMatter = frontMatterMatch[1];
metadata[key.trim()] = valueParts.join(':').trim(); frontMatter.split(/\r?\n/).forEach(line => {
const colonIndex = line.indexOf(':');
if (colonIndex > 0) {
const key = line.substring(0, colonIndex).trim();
let value = line.substring(colonIndex + 1).trim();
// Remove quotes if present
if ((value.startsWith('"') && value.endsWith('"')) ||
(value.startsWith("'") && value.endsWith("'"))) {
value = value.slice(1, -1);
}
if (key && value) {
metadata[key] = value;
}
} }
}); });
return ''; }
});
// Extract summary // Extract summary
const summary = extractSummary(content); const summary = extractSummary(content);
@ -239,18 +252,45 @@ async function updateIndexWithSummaries() {
// Parse and format the date // Parse and format the date
let formattedDate = ''; let formattedDate = '';
let isoDate = ''; let isoDate = '';
if (!metadata.date) {
console.warn(`No date found for ${file}`);
continue;
}
try { try {
// Handle date formats like "2024-04-08 16:50" or "2024-04-08" let dateStr = '';
const dateStr = metadata.date.split(' ')[0];
// Handle different date formats
if (typeof metadata.date === 'string') {
// String format: "2024-04-08 16:50" or "2024-04-08"
dateStr = metadata.date.split(' ')[0];
} else if (typeof metadata.date === 'number') {
// Number format: 2025-04-02 (YAML parsed as number)
dateStr = metadata.date.toString();
} else if (metadata.date instanceof Date) {
// Date object
dateStr = metadata.date.toISOString().split('T')[0];
} else {
// Fallback: convert to string and extract date part
dateStr = String(metadata.date).split(' ')[0];
}
const date = new Date(dateStr); const date = new Date(dateStr);
formattedDate = date.toLocaleDateString('en-US', { if (!isNaN(date.getTime())) {
year: 'numeric', formattedDate = date.toLocaleDateString('en-US', {
month: 'long', year: 'numeric',
day: 'numeric' month: 'long',
}); day: 'numeric'
isoDate = dateStr; });
isoDate = dateStr;
} else {
console.warn(`Invalid date format for ${file}: ${metadata.date} (type: ${typeof metadata.date})`);
continue;
}
} catch (e) { } catch (e) {
console.error(`Error parsing date for ${file}:`, e); console.error(`Error parsing date for ${file}:`, e);
continue;
} }
// Parse tags // Parse tags

205
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -24,7 +24,7 @@
"autoprefixer": "^10.4.14", "autoprefixer": "^10.4.14",
"cheerio": "^1.0.0", "cheerio": "^1.0.0",
"concurrently": "^8.0.1", "concurrently": "^8.0.1",
"live-server": "^1.2.2", "live-server": "^1.2.0",
"marked": "^11.1.0", "marked": "^11.1.0",
"postcss": "^8.4.21", "postcss": "^8.4.21",
"tailwindcss": "^3.3.0" "tailwindcss": "^3.3.0"

View File

@ -12,9 +12,9 @@ const options = {
// Footer template // Footer template
const footer = ` const footer = `
<footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20"> <footer class="bg-base-darker text-palenight-200 py-12 border-t border-palenight-400/20">
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8"> <div class="max-w-4xl mx-auto px-4 sm:px-6 lg:px-8">
<div class="text-center"> <div class="text-center">
<p class="text-palenight-300">&copy; 2024 Glenn Thompson. All rights reserved.</p> <p class="text-palenight-300">&copy; 2026 Glenn Thompson. All rights reserved.</p>
<div class="webring-text mt-6"> <div class="webring-text mt-6">
<p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p> <p class="text-palenight-300">I am part of the <a href="https://systemcrafters.net" target="_blank" class="text-accent-blue hover:text-accent-cyan">System Crafters</a> webring:</p>
</div> </div>

Binary file not shown.