About Me

Last updated: 2019-04-01

I am an enthusiastic tinkerer, focused on low-level programming and system integration. Generally everything I do as a hobby is open source. You can find more information about my personal projects on this website, as well as on my GitHub profile.

Contact Information

My usual online handle is smaeul, a permutation of my first name.

The best way to reach me directly is through email at samuel@sholland.org. It is the common communication medium that practically everyone shares, and it has a vendor-independent mechanism for push notifications, so most of my other contact methods get forwarded there anyway.

I do not participate in proprietary, advertising-filled social media.

My background

I come from the American Midwest: the land of corn, cows, and Google Fiber. I started reading books on programming from a young age, first on C++ (what a syntactic mess!), and then on x86 assembly. Playing with DOS programs and boot sectors written in assembly was a hobby of mine until I got to university and started using POSIX-flavored C in earnest.

My first introduction to Linux was Red Hat 8, installed from a pair of scratched CDs in the back of a book checked out from my local public library. These were the days of HAL, and Kudzu, and out-of-tree Fast Ethernet drivers. Having no Internet connection at the time, it wasn't terribly useful, but I remember fondly the KDE desktop and the sample songs that shipped with Kmid.

The first public project I released was a "BuildSkin", a tool to customize skins for The Lord of the Rings Online (an MMORPG). It allowed users to combine XML fragments from various sources; most "skins" were expanded or rearranged versions of a single in-game window. It also provided an engine for resolving mathematical expressions in the X/Y/Width/Height of UI elements. This made life easier for skin developers, who no longer had to do all the math by hand, and (in some cases) no longer had to ship a separate copy of their skin for each supported screen resolution.

My first summer job was Windows Server administration, but once I entered university and started using Linux and writing C on a daily basis, I realized what a mess that was. To me, the beauty of free and open source software is that it is as flexible as your imagination! When a proprietary program doesn't work the way you want, you're out of luck. But if you want to make an open-source application behave differently, all you have to do is write a patch. So I stopped caring about Windows beyond its utility as a gaming appliance.

I don't like having unused or excessively-complicated programs and libraries on my computing systems. Some call it "ricing", others "avoiding bloat", but I refer to the concept as "minimizing the problem space". Simply put, fewer lines of code provide fewer places for bugs to hide. This principle led me first from Debian to Arch (to rid myself of the mess of Perl wrapper scripts that Debian adds to everything), and then to Gentoo (to reduce the number of library dependencies).

At the time (2015), I had several other reasons for choosing Gentoo. For one, its use of keywords provided more stability than what was available on Arch. Second, I had a growing number of patched or custom packages on Arch; Gentoo's overlay facility and /etc/portage/patches made these much easier to manage. And finally, Gentoo was one of three distributions that had musl support, which I wanted to use as soon as possible.

Nowadays, the ecosystem around musl is much more mature. I still write a lot of patches, but they are mostly trivial. So I made things harder by switching to a big-endian CPU archicture (powerpc64). One of my goals for 2019 is to upstream the several hundred patches I have sitting around. See my projects page for more details.

Other Interests

I occasionaly game on my PC, though I have been trying to eliminate this time sink. I play LOTRO because I love Tolkein's universe, and 7 Days to Die because I like building things. Other than those two, I sometimes pull out older strategy games: various versions of SimCity and Railroad Tycoon. Personally, I care more about the quality of the gameplay (is it challenging and logical?) than graphics. Of course, realistic visuals require less suspension of disbelief, so good-looking graphics are a plus when they don't mean sacrificing the gameplay.

When not in front of my keyboard, I prefer to be outdoors: hiking, biking, camping, or just admiring the intricacy of nature.

Licensed CC-BY 4.0 by Samuel Holland.