How not to waste time developing long-running processes

Developing long running tasks might be my least favorite coding activity. I love writing and debugging code…I’d be crazy to be in this profession if I did not. But when a task takes long enough, your attention wanders and you get out of the zone.

Building the Linux Kernel takes time. Even checking the Linux Kernel out of git takes a non-trivial amount of time. The Ansible work I did back in the OpenStack days to build and tear down environments took a good bit of time as well. How do I keep from getting out of the zone while coding on these? It is hard, but here are some techniques.

Continue reading

When to Ansible? When to Shell?

Any new technology requires a mental effort to understand. When trying to automate the boring stuff, one decision I have to make is whether to use straight shell scripting or whether to perform that operation using Ansible. What I want to do is look at a simple Ansible playbook I have written, and then compare what the comparable shell script would look like to determine if it would help my team to use Ansible or not in this situation.

Continue reading

Building a Kernel RPM with the Built-in Makefile target

Note that you need to have a .config file that will be included in the build. It will also use the Version as specified in your Makefile. Then run

make rpm-pkg

Which will use the RPM build infra set up for your user to put the rpm in $HOME/rpmbuild/

Edit: Note that a bunch of dependencies are needed to get the Kernel to build. If you run the above command and it fails out with a message that you are missing a dependency, you can use this pair of commands to get the yum-build dep tool installed, and use that to install the dependencies as listed by the generated kernel.spec file.


wget https://src.fedoraproject.org/rpms/kernel/raw/rawhide/f/kernel.spec
yum install dnf-utils
yum-builddep ./kernel.spec

Converting an OpenGL project to use Autotools

In a science fiction game I play, we often find ourselves asking “which side of the Sun is Mars from the Earth right now?” Since this is for a game, the exact distance is not important, just “same side” or “90 degrees ahead” is a sufficient answer. But “right now” actually means a couple hundred years in the future.

Perfect problem to write a little code to solve. Here’s what it looks like.

Continue reading

Building the Linux Kernel in a GitLab Runner

Git Lab provides a mechanism to run workloads triggered by a git commit. We try to let the automation do as much work as possible before interrupting a human code reviewer. We want to know if the code is right in as objective a manner as possible before we take the expensive context switch to perform a code review.

Continue reading

Upgrading QGo to QT5

My Day job has me messing around with QT5. We’rer building various RPMs for different RHEL and CentOS versions, and I wanted to get a little more experience on this. Specifically, I wanted to be able to do trial and error on a package that would not pollute our work stream. I wanted it to be something QT based. And I wanted it to be fun.

So I am working on repackaging QGo for Fedora 34 using QT5. Here’s what I am learning.

Continue reading

Unifying Audio with Pipewire

ALSA. Jack. PulseAudio. MIDI. Musescore. Jamulus.

My musical interactions with Linux are not the most complex in the world, but they ain’t trivial. The complexity of the Linux audio landscape has been a stumbling block so far. Pipewire has just gotten me past that.

The title of this article implies that you need to do something other than install Pipewire. So far, this is not true. On my system, at least, it Just works.

Continue reading