I just hacked together a publishing mechanism for my static site generator, 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