Written by: Robert R. Russell on Monday, February 5, 2024.
This post was prompted by a discussion about including
Rust in the FreeBSD
base system.
I don’t think the term systems language is as usefull now as it was several
years ago.
Why?
What is a system?
That question has several answers. Possible answers include:
The operating system kernel.
The most basic userland services for the operating system.
The management utilities for the operating system.
Daemons or services that run on the operating system.
System’s have different requirements.
Not all of these programs interact with each other or the operating system in
the same way or necessarily have the same requirements. For example changing a
users password on UNIX systems can generally be done without direct system
calls, but forcing the kernel to reload its active partition tables generally
does. So the requirements for the programming languages we might use to
implement those two tasks can vary.
In those two examples Perl is an adequate tool for user
management and has been used so historically. I don’t know of any disk
partitioning software written in Perl.
Kernels and System Libraries
In my and probably a lot of other people’s minds this is what the term systems
programming language has meant. It is a programming language you use to write the
most basic parts of an operating system in.
Kernels require:
Manual memory access and accounting.
A close correlation between used the higher level code and the generated
assembler or machine code.
Programmer chosen stability in the ABI.
A calling convention that works reliably with a large number of programming
languages.
System libraries require:
Programmer chosen stability in the ABI.
A calling convention that works reliably with a large number of programming
languages.
Management utilities and such.
Alternatives
I suggest using the requirements needed from the programming language instead of
more general terms like “scripting” language or “systems”
language.
Written by: Robert R. Russell on Friday, January 12, 2024.
Just some random thoughts
This post is going to be a bit of a stream of conciousness post.
I have switched my lab to FreeBSD and 1 Windows box from previously running mostly Linux boxes
and one Windows box.
Why? Debian is way to out of date and Fedora-GNOME isn’t going in a direction I agree with.
Consequences:
FreeBSD supports ZFS and GPT now. This has vastly simplified the learning curve compared to
last time I tried one of the BSDs several years ago.
I am using XFCE4 as my X11 environment now. While Plasma hasn’t coppied all of GNOME’s worst traits
right now. They have switched to a more flat UI designed that I don’t appreciate. I am not getting
older so I find the higher contrast of an older more classical Windows style of UI to be more useable.
One thing I don’t like about using FreeBSD right now is the number of bugs caused by differences between
the FreeBSD Virtual Terminal system and Linux’s Virtual Terminal system. Vim and Neovim both tend to have
redraw problems which makes files hard to edit. Wierdly Emacs has much fewer problems.
The other reason I am moving to Emacs is VSCode’s extension ecosystem doesn’t work well with FreeBSD.
VSCode not working is a problem for me.
Programming Languages:
I am working on a few programming projects to migrate some functionaly I am missing on FreeBSD.
I am writing some of the code in Rust and some in C. It has definitely been a learning exercise.
The biggest difference right now between the two so far is where most of my thought process has
been used.
C might be okay, but I much prefer Rust. The approachability of the two standard libraries
is a huge chunk of the difference. Non ASCII string handling is a lot simpler in Rust than
C.
Written by: Robert R. Russell on Thursday, April 13, 2023.
I have been needing to digitize some old print documents.
Between trying both groff and LaTex to do that I do have a few thoughts on using
both of them.
If you have simple documents and you want a useable HTML output then use groff
with the MS macro set.
Don’t use the MOM macro set. It doesn’t produce reliable HTML output.
LaTex is better if you have a larger document or need more complex references.
LaTex doesn’t make things easier for outputing html though.
Written by: Robert R. Russell on Tuesday, January 24, 2023.
Why?
Short answer security updates in OpenWRT 22.03.3 and performance
problems related to
this bug.
After some indepth research I have two options, either use a git version of
OpenWRT until a new version comes out using a 5.15 or newer version of the
Linux Kernel, or I can convert the wrt1900ac over to a “dumb” AP and using
something else as the router.
I have decided to use OpenWRT on an older X86_64 machine as the primary router.
I am using OpenWRT both because it works and my assistant network manager is
only familiar with the OpenWRT interface.
Written by: Robert R. Russell on Friday, January 20, 2023.
Over the last few years I have been using various VoIP systems for work. So far
I have come to one conclusion about softphones. They all suck.
Everybody wants you to use their proprietary softphone. This causes two
problems. No support for standards and inconsistent features. The first is
the bigger issue in my opinion. It guarantees that you have to uses their
proprietary softphone app. Without the freedom of choosing your softphone
application you are stuck with the features your telphony provider provides.
Written by: Robert R. Russell on Thursday, January 19, 2023.
Why?
There are two reasons I am migrating over to Hugo from
Wordpress. The first has to with the decline in
support for the Classic or pre Gutenberg editor. The second has to do with the
lack of utility in comments versus the maintenance cost of Wordpress.
Since releasing Gutenberg Wordpress has slowly been migrating all of their
theming over to a collection of CSS files and a loop of php code that simply
prints the blocks HTML. All of the functionality is migrating over to JS
provided by the implementer of the block. This sounds like a good idea because
you don’t need custom themes for adding special stuff to the top of a page or
post. It does come with a problem though. If you like to write longer form
material Gutenberg is not easy to use. However, if you wanted to use a lot
multimedia inside your content Gutenberg is much easier than the Classic editor.
What about comments? Simple, a day or two before writing this I cleaned out the
comment spam folder. It had about 350 spam comments inside it. I have gotten
more positive interactions about a post on Twitter than I have ever gotten on
my actual website itself. There are a handful of websites/blogs that I read
with active comment sections. Active meaning less spam than actual comments.
That does not mean a high signal to noise ratio however. One of the sites in
particular could employee several moderators just dealing with civility and
personal attacks in the comments.
Given the two previous issues I am working on migrating the website over to
Hugo. It will take a few weekends for the migration to be completed. I also need
to figure out some best practices for handling a few large files I have on this
site without polluting the git history.
It looks like I am going to need to use a CDN for some files.
Written by: Robert R. Russell on Saturday, July 30, 2022.
The last few days have been frustrating. The good news is ZFS’s data protections
actually works.
A bit of backstory. I have a storage server for my home network. That storage
server previously had 6 hard drives in it. I used ZFS with in stripe over
mirrors configuration. With only 4 drives this is commonly referred to as
RAID10. One of the drives decided to start returning uncorrected read errors
earlier in the week.
After some emergency drive purchases on Amazon. I started a full rebuild and
migration of the storage array. Since, OpenZFS and
Fedora are a bit less cooperative than
Debian and OpenZFS, I decided to migrate the storage
over to Btrfs. An ongoing performance degradation of this storage array is also
responsible for the change. Btrfs has a data rebalance option which helps
maintain the arrays performance after a longer term of use.
The migration has mostly gone okay. I am still cleaning up a few loose ends from
some other maintenance on the storage server that was in progress before the
storage array became degraded.
I have managed to crash a Btrfs file system. No comments about Btrfs not being
production ready. ZFS wouldn’t have survived that mistake any better.