Use deadsnakes PPA on Ubuntu hirsute

21 June 2021

Today I upgraded a computer of mine from Ubuntu Groovy Gorilla (20.10) to Hirsute Hippo (21.04). The process was mostly painless, but I had to go through the standard process of evaluating each file in /etc/apt/sources.d/*.distUpgrade to determine how all of my PPAs or other software repositories needed to be updated. The one that took the most work was the Deadsnakes PPA.

Read more

When it comes to git history, less is more

15 June 2021

At a previous company, there was an “infamous” commit in our main repository. The commit was about 10 years old, and it replaced every tab with 4 spaces. When the commit was authored, the repository was likely in the hundreds of thousands, or maybe millions, of lines of code. For folks like me, who liked to go “spelunking” through git history, it was a frustrating barrier, but no more than a moderate frustration. It didn’t impact day-to-day work. After all, this repo was a regularly-deployed web application. Development happened on the master branch, deploys happened multiple times per business day, and old revisions were quickly forgotten.

Read more

Subscribe to Kernel Mailing Lists over NNTP on Thunderbird

05 May 2021

Linux kernel mailing lists are really important to watch and learn. They’re the best place to watch what’s happening upstream, you can see (almost) every change and the review process that goes into it. They can help you build an understanding for what sort of development is taking place on a particular subsystem, and how the maintainer and reviewers feel about certain types of changes.

Read more

Please Stop Using keyCode for Form Validation

03 March 2021

Today I encountered a bug in a web form. A textbox required a numeric value, but when I attempted to enter it, I found that none of my keystrokes resulted in digits appearing in the box. I’ve experienced this bug once every few months for several years at this point. I always knew the reason for it, but today I felt just annoyed enough to fully research the issue and write about it.

Read more

Stack Overflow Users Rejoice as Pattern Matching is Added to Python 3.10

09 February 2021

INTERNET – Stack Overflow users today rejoiced at the prospect of Python’s upcoming 3.10 release including the controversial new pattern matching feature described in PEP 634.

Read more

The Windows 10 Installer Dystopia

08 November 2020

A few days ago I had the displeasure of helping a friend reinstall Windows on their laptop, which had previously contained Ubuntu. The reason for their switch isn’t that important – although I helpfully suggested keeping Linux, it was their machine and their decision. I didn’t expect the process to be particularly difficult. After all, I work on operating systems for a living now, so I didn’t expect any trouble. But to my surprise, I encountered a nearly dystopian situation before I even got to the desktop.

Read more

Visualizing gzip compression with Python!

22 September 2020

Not that long ago, I found myself wanting to understand gzip. I didn’t necessarily want to learn to implement the algorithm, but rather I just wanted to understand how it was performing on a particular file. Even more specifically, I wanted to understand which parts of a file compressed well, and which ones did not.

Read more

Implementing simple cooperative threads in C

24 May 2020

Multitasking, like many services an operating system provides, is something we take for granted so much that it can feel mundane. With our powerful smartphones and computers, the idea of a computer not being able to juggle hundreds of processes feels alien. I think it’s features like this that make computers incredibly useful, but also make them feel so complicated and magical.

Read more

Embracing modularity with Meson

08 May 2020

Almost seven years ago, I made the first commit to my very first C library. It was a personal C library – so personal that I gave it the name “libstephen”, ensuring that nobody else would ever even consider using it. And to be fair, nobody should have used it! This was a data structures library written by a kid with a few weeks of C experience and a bunch of basic Java coursework under his belt. Without getting into specifics, the code was pretty bad.

Read more

Implementing a virtio-blk driver in my own operating system

22 March 2020

In this blog post, I’m going to describe how I wrote my first block device driver in my operating system, SOS. This OS is my personal project for exploring how to implement an operating system. You can find more inforation about it in my first post about SOS, or check it out on Github.

Read more

Creative Commons License

Stephen Brennan's Blog is licensed under a Creative Commons Attribution-ShareAlike 4.0 International License