blog

My personal blog.
Log | Files | Refs

commit d245be320ac65cfcea12d9ccc3463203c904f57f
parent 003f8171f91cd9a8b25590e80b23f0d48af232df
Author: Luke Willis <lukejw@loquat.dev>
Date:   Tue, 19 Aug 2025 21:02:01 -0400

Write new post about programming grug

Diffstat:
Mgrug.scm | 8+++++++-
Aposts/grug-publishing.md | 48++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 55 insertions(+), 1 deletion(-)

diff --git a/grug.scm b/grug.scm @@ -1,5 +1,6 @@ (use-modules (grug site) (grug builders) + (grug publishers) (srfi srfi-19)) (define (stylesheet name) @@ -58,4 +59,9 @@ (copy-directory "css") (copy-directory - "img"))) + "img")) + #:publishers (list (rsync-publisher #:user "lukejw" + #:host "loquat.dev" + #:destination "/var/www/htdocs/www.loquat.dev/" + #:flags (cons "--rsync-path=openrsync" + %default-rsync-flags)))) diff --git a/posts/grug-publishing.md b/posts/grug-publishing.md @@ -0,0 +1,48 @@ +`((title . "Writing a static site generator has made me thankful for programming") (date . "2025-08-19"));` +I just hacked together a publishing mechanism for my static site generator, +[grug](https://git.loquat.dev/grug). I hadn't actually modified the code for it +in a while, so it took me a second to get back into the flow of writing Scheme. +It's always a great experience, though! Now, building my site is as simple as +running `grug build` and publishing it is as simple as running `grug publish`. + +I think some people think writing code is boring. It can be, but working on +practical projects that you can actually use in your own life is a really +awesome experience. It's taken me a few minutes to write this post, and because +of my project, I can do all the processing with ease! It's a simple thing, but +it's really given me that feeling of accomplishment. I imagine this is what my +ancestors felt like when they built chairs and tables with their own hands. +Although, this is much less difficult (I think so). + +This beats trying to remake quake for the millionth time by far, haha. I +encourage whoever is reading this to try and make something that they can use. +In my experience, I frequently get lost trying to make something that I think +would be cool. I've always wanted to make a videogame, but it's not exactly +something that you can practically use in your day-to-day life. I think this is +part of the reason I love tinkering with my Linux setup. It has a direct +correlation to my productivity. I can spend a while setting something up exactly +how I want it, and now I can use it with ease. + +A simple example of this is shell aliases. It takes you a minute to get it set +up, but now you can just write `yta` and paste a YouTube link in my terminal to +automatically download the audio from that link and put it in the folder that +correlates to its channel. You don't even need to browse YouTube anymore. You +just have that audio now. I download podcasts all the time now using this. It's +great. + +It takes time, yeah. But the ROI is good enough, in my opinion. I hope this +makes sense to you. It does to me, haha. + +Grug still has a long way to go. The code is mostly crap and doesn't really +handle errors. If you put in a command that doesn't exist, it will just dump a +bunch of errors and give you an obscure warning message. I need to fix that. +But, it works! It's a process. I never really got software development as a +whole until I did this. So, moral of the story? Make projects that you can use. +You'll (probably) have fun. + +More writing coming soon! + +In Christ, + +Luke + +