Finishing 2020
For the last weeks, I was not able to find any energy to write new blog
articles. I believe that many of us feel that this year was much more exhausting
than the years before. I often struggled with having to justify myself for not
participating in activities that were not forbidden by the government but that
were unnecessary and unreasonable in times of the pandemics. This year often
left me wondering if solidarity and consideration for other people were going
extinct ... then again, it is easy to get lost in bad news.
Anyway, this blog is not for politics, health care, nor for your daily pandemics
news. Here is where I stand and where I want to go next (figuratively).
Retrospective
I am satisfied with what I achieved this year. I started to use OpenBSD more
seriously than ever before (while still using Raspbian as my daily driver and
still being in Windows purgatory at work) and enjoy it each and every day. It is
a reliable no-bullshit OS that does what I need to be productive, without doing
myriads of other things that I do neither need nor want. It is the one system I
am fighting with the least. And while it is not perfect, it seems to be very
feasible to add missing functionality or fix bugs myself (or at least get help
from the developers to do so).
Of all things, I enjoy having my little OpenBSD server that runs this blog the
most. It is reassuring that I can use it to backup important projects
periodically, and I see myself putting it to use even more in the future.
This blog itself is also a pleasure. I am no web designer and I don't know how
good my writing is and if my articles are interesting to anyone (well, I did not
even start to advertise this blog to anyone!), but it gives me a red string to
follow. It helps me structure my private projects (for which time is always
scarce) in a better way. And even if the last months seem to prove the opposite,
I still feel that it forces me to stay motivated. If I do not write or if I do
not even have content to write about, the blog always remembers and it also
reminds me that I should change that.
Writing the assembler articles was fun and challenging. I now understand
compilers and especially calling conventions much better than before. It amuses
me to think that I wrote C++ at work for ~10 years and have many colleagues that
did so for an even longer time ... and still almost no-one at work understands
the foundations we work with as I do now - and I barely scratched the surface!
There is so much to learn about how our abstractions work and we can only grow
while doing so.
Let me now tell you about my plans for the future (hopefully 2021).
Gemini
I am slowly getting into Gemini, which can be understood as a
simplified version of the WWW. You get fast and simple web pages that resemble
what I am using for my blog: Simple text (normal and preformatted) and
links. You loose CSS (the Gemini client decides how to render the content),
JavaScript (good riddance!) and almost all ways of tracking users.
I want to update my blog to also be accessible via Gemini. This should not be
too bad as I write all my blog articles in a simple markup language I created
myself, so all I need to do is install and configure a Gemini server and extend
my build scripts so that they output both HTML and Gemini files.
I also want to submit my blog to CAPCOM, which is an Atom feed aggregator for
Gemini. As I currently only have an RSS feed, I will have to create support for
this as well.
If you want to read more about Gemini, you can find the official web page here:
If you are looking for software, solene@ of OpenBSD wrote her own Gemini server
(Vger) and maintains a few Gemini clients (I like net/lagrange). You can read
about Vger on her blog:
Comments
I want to get feedback for my articles. Therefore, I plan to add a comment
section. While I look forward to it, it also will create some difficulties.
I still want my site to be as slick and lightweight as possible, and I want to
maintain w3m support for it. This means that I will not use any external
JavaScript and that any JavaScript that I choose to use will always be
optional. Yes, this means that you will be able to write comments without
JavaScript.
As a defense against spam, I will moderate all comments. They will not be
visible to anyone but me until I choose to publish them to the world.
Because of the limited input facilities on Gemini, you will most likely only be
able to post comments via HTTP. But reading comments via Gemini will be
possible.
Learning new stuff
I have two topics planned for 2021. I want to learn about lex and yacc and
the traditional way of generating parsers for C. Both lex and yacc have found
their way into many other programming languages. Their is some support even in
"modern" languages like Go, while languages like Erlang contain their own
implementations (called leex and yecc there). They are also used in many tools
that are written by the OpenBSD developers, either as part of the base system
or as standalone projects.
The second topic I want to tackle is a bigger one: file systems. I will start
with FuSE and maybe get into in-kernel file systems after that. I want to
understand them better and maybe do something to improve the file system story
of OpenBSD. But to be realistic: That is a long way and I do not expect being
able to create a production-ready file system in the next year. Maybe I will
never do it. But learning how they work would be rewarding on its own.
I do not want to promise anything, but if I write some articles on these two
topics, I will be satisfied with my blog next year again.
Closing words
No plan survives its first contact with reality ... we will have to see what
2021 will bring. I wish you a happy new year!