sudoscientist:~# curl https://sudoscientist.com
A quick retrospective
Personal projects have always been a way of allowing myself to learn what was required for my career. My personal computing decisions have almost always been lead by what I needed to work on at my ${DAYJOB}
. My decision to migrate all my workloads to Hashicorp’s Nomad stemmed from the necessity to implement a containerization solution for ${DAYJOB}
. The decision to move my home Nomad cluster to Kubernetes was in order to learn k8s so I could be comfortable with it as we implemented it at work.
The origins of my personal blog follow a similar logic. I knew I had to learn a programming language if I wanted to work in technology, so I picked what seemed like the most ubiquitous language at the time, Python. I decided to write a blog, and built everything using Django, and then Flask when I was told using a full CMS was cheating
. Once I felt comfortable with Python, I decided I wanted to actually start blogging instead of fiddling with my blog’s code, and moved everything into the static site generator Pelican. This was the one time where I started actually making posts about the things I was working on.
Soon thereafter, Go started gaining mass adoption in the SRE/DevOps domain. It was time to learn a new language, and I did what became habit, rewriting my blog. I made the decision to learn front end programming alongside learning Go, forcing me to finally stare into the soul of JavaScript. React-Redux was the new cool
thing, so I decided to take the leap and split my blog into an API and front end. This allowed me to actually get a grasp on how JavaScript works, and the common tools used in modern
web development. While I am happy with how it all turned out, this new website had a few problems of its own that bordered on philosophical.
Comfort and computing - A sidebar
The cool community over at Ctrl-C has fun web jams every so often, and the latest one revolves around the terminal. The jam had me consider the utilities I use in my everyday life, with one aspect being around using replacing X11/Wayland apps with terminal apps. This was fun because other than firefox
, Most of my computing life exists within the terminal.
The first thing I do when I turn on my laptop is ssh into my desktop, attach to tmux and check in on IRC with irssi
and Matrix with gomuks
. All of my RSS feeds are sent to my Matrix client, so I get to read through a channel with all the news I’ve subscribed to. I script up my sshfs to listen to music via mpv. I’ve become so accustom to using GNU coreutils and bash built-ins that my file explorer is just bash
with ls
, cd
, cp
, and mv
. All of my programming happens using nvim
, as does my writing. Even this blog post is being written in nvim
, with Goyo being used as a distraction free writing tool.
My entire workflow is keyboard driven. Between i3wm and swaywm, the only time I really need to use my mouse is within Firefox, and even that is very rarely since tridactyl takes care of most things. This workflow makes me very apprehensive about moving my hands away from the home row. When it does come to a mouse, my preference is for a pointing stick, which is one of the reasons I still use my Lenovo X200. Having your mouse in the home row, with all three mouse buttons at your thumb tips really improves the overall keyboard driven workflow.
Speaking of the X200, a laptop named argus
, has been running for over a decade strong, and hopefully won’t be slowing down any time soon. While it is not the most powerful device, with a dual core Intel Core2 Duo P8600
, it is able to get the job done. This laptop just slightly edges out the quad core CPU of the Raspberry Pi 4 in terms of performance. This performance constraint might limit me to mostly using terminal based applications, but even on my desktop I share the same configurations. This configuration has followed me from college, where my personal laptop was the Google Chromebook CR-48, running debian. The configuration followed through to the Google Pixel, which is when I actually posted to sudoscientist, and remains to this day.
Why a static sudoscientist
With some background out of the way, I recently realized I am unable to view my blog in most terminal based browsers. Since the front end is written in React, a full JavaScript engine is required to view the content. Using Hugo as a static site generator also allows me to make the blog accessible in more formats as well. With Hugo-to-Gopher-and-Gemini, I am able to quickly render the content of my blog to multiple protocols, without having to write any code. The same goes for generating an RSS feed. While I could hack these up in Go, I would just be writing custom code to tackle already solved problems. On low bandwidth networks, or on low powered devices, my blog would be inaccessible. Being unable to view my own blog from my technical home
is upsetting. Posting to the blog outside of a full web browser was out of scope entirely. While JavaScript driven websites make for nice and modern
UIs, they fit entirely out of my workflow. My general computing experience has been mostly unchanged for over a decade, as show by my dotfiles, and maybe having to log into my own blog in a web browser, just to make posts was so antithetical to how I normally operate, I ended up ignoring sudoscientist for years.
Over the past few days of reflection on my computing habits, I decided to more deeply adopt the mentality of the smol web
. Spending time with the ctrl-c community, my desires have shifted slightly. On the smol web
as a whole, there is a focus on content instead of aesthetic, though aesthetics are not forgotten. Some of the smol web
http websites are absolutely beautiful, but their focus remains the content. It is the same reason developers still put out games on fantasy consoles like the TIC-80 and PICO-8. Working within limitations forces you to look at the content you are creating. Limitations extend creativity, and creativity breeds beauty.
Hopefully I can use this opportunity to focus on content, and make some beautiful blog posts.
Thanks for reading!