RSSAmplifier

Blog

Gabe Venberg

Recent content on Gabe Venberg

gabevenberg.comRSS feed ↗15 posts

Latest posts

The Clacks Overhead, a Hidden Memorial

1 curl -I gabevenberg.com Dean Hansen, a dear friend of my family and of mine, died six months ago today. This isn’t the first death I’ve experienced in my life, but it was the first unexpected one. It hit me hard. I ended up flying back to the US on short notice to attend his funeral. Other than attending his funeral and being there for his family, there wasn’t a whole lot I can…

Moving to Germany

Well, this article has been a long time coming… Originally this post was going to be about moving my homelab overseas and what that process looked like, yet my homelab is still stuck in the US. Still, I figured I should write something . Most of my homelab had to stay in the US. Between our German apartment having atrocious upload speed, the increased price of electricity here, and the…

Stop Using TRRS for Split-Keyboard Interconnects!

TRRS (Tip Ring Ring Sleeve, or, as you may know it, “headphone jack with microphone support”) cables have long been the go to connector between split keyboard halves. They are cheap, compact, and thanks to their popularity, come in a variety of aesthetic styles. However, TRRS jacks were only designed for passive electrical components, and expose one large flaw when used actively. When…

Running non Nixpkgs services on NixOS, the lazy way

NixOS is really nice for self hosting. Anything that has a NixOS module can be hosted in a few lines of nix code. But what if the service we want to host doesn’t come with a NixOS module written for us already in Nixpkgs? This is where NixOS can be a little hard, as a guide on setting up a service in Debian or Arch will rarely work on NixOS. Of course, the ’nix way’ would be to…

Rust on the Ferris Sweep

The other day, I stumbled upon RMK , a keyboard firmware written in Rust. Given that my Ferris Sweep has a Ferris the crab logo on the silkscreen, it felt only fitting that I flash it with RMK. Since I first built it, my Ferris Sweep has been running QMK , a very mature C-based keyboard firmware. QMK is a great project, and doing basic keymaps for an already-supported keyboard is straightforward…

The Modern CLI Renaissance

Over the past few years, it seems like the rate at which new CLI tools are being written has picked back up again, accelerating after seeing relatively little activity between ~1995 and ~2015. I’d like to talk about this trend I’ve noticed, where people are rewriting and rethinking staples of the command line interface, why I think this trend might be happening, and why I think this…

Nushell first impressions

I’ve been experimenting with the tools I use on a regular basis lately – switching up my shell, terminal multiplexer, and even trying out other editors. Today, Id like to focus on my experiments with my shell. My old setup Before this, I had been using a minimal zsh setup for a long time, with only built in features and a handmade prompt. Zsh is a good shell, probably one of the best…

Building My New Keyboard.

I’ve been using a split keyboard at home now for several years (specifically, the UHKv2 , though nowadays I probably would have gone for something ortholinear) and I’ve always wanted one for the office. The problem was, if I was going to get a new keyboard, I wanted it to be for both the office and travel, and most prebuilts around are not that portable. I also was not confident enough…

Rust Embedded Unit Testing

I’ve been messing around with embedded rust recently, using the BBC micro:bit as a learning platform. Its really cool to see a high level language achieving the same results as low level c. However, one of my favorite features of rust, the ease of unit testing, is a bit less straightforward to do in cross-compiled, no-std projects. Obviously we cant run tests on our local machine that rely…

Dotfile Management with GNU Stow

So I’ve been using git to managing my dotfiles since [checks git log ]… 2018. At first, I was going to write some inevitably brittle shell script to handle symlinking from the dotfile repo to where each file should be, but before I got about to implementing it, I discovered stow . Now, after using stow for dotfile management for over 5 years, I figure I should really document exactly…

Getting the Nextcloud client to save login info on arch Linux (or any barebones Linux distro)

During the 5 or so years I’ve had Nextcloud, I’ve always been quite happy with the web client, but the device clients… need some work. I recently figured out how to resolve one of my biggest pain points on the Linux desktop client, and am recording it here, mostly so I don’t forget next time I setup a new computer, and to save others with the same problem from endless…

Mapping caps lock to ctrl in the TTY

In the past 2 years or so, I have been using my caps lock key as a separate ctrl key on my desktop keyboard. This is very easy to do in X11 with a setxkmap command. However, with my laptop, I try to run without X as much as possible. (I’ve found it make a nice, distraction free environment, and it seems to be pretty good for battery life) Obviously, without X, we cannot use setxkmap. In…

Archlinux install with btrfs, systemd-boot, full-disk encryption, and suspend-to-disk

I’ve been using Arch Linux for several years now. Of course, my first installs were… blunderous, as i wanted to do full disk encryption from the get-go, and I didn’t know what I was doing. After those first one or two installs, I generally settled on LVM on LUKS with a GRUB bootloader and my swap on an LVM volume, mostly because it makes it much easier to setup…

About

Hi There! I’m Gabe Venberg. Professionally, I’m an embedded software engineer with experience in Yocto Linux🐧, Zephyr, Python tooling, and embedded Rust🦀. Unprofessionally , You can find me spending time with my wife and dog, tinkering with and modding my 3d printer, building keyboards, playing Factorio, self hosting services on my home server, writing the occasional article about…

Resume

Contact info Personal Git Server GitHub Email Professional Summary 3 years of experience as a software engineer 2 year of experience with embedded Linux. Bachelors of science in computer science. Contributor to Python programming language standard library. Experience working across 8+hr timezone differences. Skills Summary Programming Languages : Rust, Python, Bash, C, Nix Frameworks : Yocto…