Mike Kasberg

Husband. Father. Software engineer. Ubuntu Linux user.

Mike's Blog

Notes to myself, shared with the world. A collection of projects, thoughts, and ideas — mostly about computers.

See all my blog posts, sorted by year, in my blog archive.

Docks and Ubuntu

09 Aug 2021 · Technology

Laptop docks are great! As I wrote about in The Ultimate Developer Laptop and My Home Office Setup, I’ve been using a Dell TB16 thunderbolt dock for about two years now, and I really love it. The dock makes it so much quicker and easier to connect my laptop to all the peripherals on my desk. And that’s important to me because it makes it feel easy to take my work to another part of the house or go work on the deck – I don’t feel tied down to my desk.

Continue reading…

DisplayLink Docks and Ubuntu

07 Aug 2021 · Technology

Can you use a DisplayLink dock with Ubuntu? And, more importantly, should you? I recently researched this for a dock I wanted to buy for myself, and here’s what I found.

Continue reading…

My New Bash Prompt (PS1)

28 Jun 2021 · Programming

I recently spent some time improving my bash prompt. I already had a lightly customized prompt, but wanted to see if I could find something I liked that provided even more information.

Continue reading…

Scalaing Club Leaderboard Infrastructure for Millions of Users

26 May 2021 · on The Strava Engineering Blog

Sometimes, we work on shiny new features that (we hope) athletes will notice and love. Other times, we need to work on back-end improvements that are unlikely to be noticed at all, but are usually just as important as the other things we work on. Some recent work I did for our club leaderboards fell into the latter category — unlikely to be noticed, but really important for the scalability and reliability of strava.com.

Continue reading…

My Dotfiles Story: A Journey to Chezmoi

12 May 2021 · Technology

When you’re a developer (or perhaps even a normal power-user), you seem to acquire a bunch of custom config, scripts, and tools over time. Often, these are little snippets. A one-liner command alias that you paste into ~/.bashrc. A custom format for your PS1 prompt. A default setting for Vim.

Continue reading…

How to Install Pi-hole on Orange Pi / Armbian Boards

11 May 2021 · Technology

I’ve already written a review of the Orange Pi Zero. As it turns out, this little board is perfect for running your own Pi-hole! It’s probably even better than a Raspberry Pi! The cheapest Raspberry Pi you can get with a wired ethernet connection is the Raspberry Pi 1 Model B+, which is listed for $28.95 at PiShop.us (as of May 2021). In contrast, you can get an Orange Pi Zero 512MB for $16.99 + ~$4.00 shipping from AliExpress, or a couple dollars more with a case. (You can also find these items on Amazon, but shipping is more expensive there.) In total, you can save about 30% compared to the Raspberry Pi! Of course, the Raspberry Pi model Zero W might be cheaper, but isn’t a good choice for a Pi-hole – it loses some network stability and speed because of its wireless connection. The Orange Pi Zero, on the other hand, has a wired ethernet connection and performs great!

Continue reading…

Learning to Program by Making a Game

06 Dec 2020 · Technology

This year, Computer Science Education Week will be December 7-13, 2020. In honor of CS Education Week, I wanted to write this blog post about the first computer game I wrote, and what I learned along the way. I was about thirteen, and this story picks up near where I left off in my previous blog post about my first computer program. When I wrote that blog post in 2017, I was working mostly from memory. Since then, I actually found an old floppy disk with my game on it. And finding that old floppy disk got me thinking about about how much I learned from writing computer games in my childhood, and how much others might be able to learn from writing their own first computer games today.

Continue reading…

Building Local Legends

28 Oct 2020 · on The Strava Engineering Blog

In late 2019, Strava’s product development team began forming ideas about a new way to compete on Strava. Strava segments have always provided a way to recognize athletic achievement through a form of racing. Now, we wanted to also recognize the grit that goes into training. Those athletes who are out on the trail every day, rain or shine, striving for more. Local Legends is the result of these ideas, recognizing the athlete who’s completed a segment the most times in the last 90 days. I was lucky enough to play an important role in building this feature, and in this blog post, I want to tell the story of how we developed Local Legends and explore some of the technical challenges we faced along the way.

Continue reading…

Unsubscribe Me: How to Disconnect from Internet Chaos

23 Oct 2020 · Technology

The Social Dilemma came out about a month ago and got a lot of people thinking about the influence the internet and social media have on their daily lives. I’m a programmer, and I’ve worked for an internet advertising company, so none of this was new information to me. But for a lot of the American public, watching The Social Dilemma was an eye-opening experience into the ways that internet companies try to track and manipulate people. Many of my friends used words like “unsettling” and “eerie” to describe how they felt after seeing the film, but most of them also weren’t really sure what to do about it. They weren’t sure how to make positive changes in their own lives.

Continue reading…

How To Set Up a Ruby Dev Environment on Ubuntu Linux

27 Sep 2020 · Software Development

Setting up a development environment correctly might not seem like a big deal at first, but an incorrectly set-up environment can cause a lot of problems down the road if you’re not careful. In my experience, the internet’s full of solutions – both good and bad – for environment problems, but often does a poor job of explaining why a solution’s good or bad. And installing Ruby can be tricky if you’ve never done it before. So here’s my advice.

Continue reading…

How to Install Custom Firmware on Your Xiaomi M365 E-Scooter

05 Jul 2020 · Tutorials

The Xiaomi m365 (also known as the Xiaomi Mi) is one of the most highly-rated electric scooters available. If you’ve ever rented a Lyft or a Bird scooter, the design will look very familiar. This electric scooter is fun to ride and great for commuting! But one of the best things about the m365 scooter is that you can modify the firmware to suit your own preferences! It’s easy to do and should only take 20 or 30 minutes. Let’s get started!

Continue reading…

Review: Orange Pi Zero

03 Jul 2020 · Reviews

Orange Pi is a relatively unknown competitor to Raspberry Pi. I recently learned about Orange Pi while doing some research about a Raspberry Pi project I wanted to start, and I actually ended up buying the Orange Pi Zero. Orange Pi is a Chinese company that is focused on producing small PC boards – similar to Raspberry Pi – as cheaply as possible. And Orange Pi produces a wider variety of boards than Raspberry Pi, so perhaps one of their boards will fit your project better than a Raspberry Pi would.

Continue reading…

A Bookmark to Temporarily Disable your Pi-hole

26 Jun 2020 · Tutorials

I use a Pi-hole on my home network and I love it! It works by configuring your local network to use the Pi-hole as the DNS server, and the Pi-hole refuses to resolve domains of sites you want to block. It does a pretty good job of blocking everything from unwanted trackers to ads and malware. Sometimes, though, it’s annoying because it blocks a link that I actually want to visit. Maybe I’m trying to visit a sponsored Google link, an Amazon product link, or a link from an email. In any case, I just don’t want the link to be blocked, and the Pi-hole gets in the way. This can be inconvenient because the usual process to temporarily allow blocked traffic is to open the Pi-hole admin page in a new tab, login, and click the link to disable it in the menu. Too much work! So I came up with a slightly easier way. I use a bookmark in my bookmarks toolbar that will disable the Pi-hole for 30 seconds.

Continue reading…

Can You VNC to a Desktop on a Headless Raspberry Pi?

22 Jun 2020 · Tutorials

No keyboard, mouse, or monitor required!

In my last blog post, I figured out how to enable SSH access to a Pi Zero W without attaching a mouse, keyboard, or monitor. This us useful because it means you don’t need a micro-HDMI or micro-USB OTG cable to attach a monitor, keyboard, or mouse. But can we take it a step further? I wanted to find out if I could get a GUI desktop environment running without attaching a monitor to the Pi. And I did it!

Continue reading…

Headless Setup for a Raspberry Pi Zero-W

19 Jun 2020 · Tutorials

No keyboard, mouse, or monitor required! In this tutorial, I’ll show you how to ssh to a Raspberry Pi Zero W without ever using a keyboard, mouse, or monitor on the device itself. We’ll prepare the device to connect to your wireless network (even with a password) when it’s turned on for the first time – this process is known as “headless setup”.

Continue reading…

How to Use Garmin's Workouts Feature on your GPS Running Watch

13 Jun 2020 · Reviews

I’ve been a runner for most of my life, running track and cross country in both high school and college. Many years ago now, I got my first GPS running watch and I came to love all the data it provides for my runs. Recently, I figured out how to use the “Workouts” feature on my Garmin fēnix watch, and I absolutely love it! I think more people should know about it, so I decided to write this blog.

Continue reading…

Why I Love Ubuntu as a Desktop OS

24 May 2020 · Technology

One of the top stories on Hacker News today was a blog post called macOS 10.15: Slow by Design. I loved reading it – I find it fascinating to see how a problem like that was discovered through some reverse engineering. But it also got me thinking about macOS vs Linux vs Windows and reminded me why I love using Linux. Many people I know think the Linux Desktop is buggy and hard to use. And sometimes it is. But it’s worth remembering that neither macOS nor Windows comes without its own set of problems. There are trade-offs between any operating system (and apparently, the OS slowing down some executables by making network requests is now one of those trade-offs 😂). At the end of the day, I just want my OS to get out of the way and not be broken so I can be productive, and it seems to me that in the last several years, Ubuntu is getting closer to Windows and macOS in terms of stability and ease-of-use. On top of this, Ubuntu has always been lightyears ahead of Windows and macOS in terms of data collection and privacy.

Continue reading…

My Home Office Setup

10 Apr 2020 · Reviews

I’ve been meaning to write a blog post about my home office setup for a while now – and with mandatory work from home restrictions for COVID-19 in most places around the world, this seemed like a great time to write it!

Continue reading…

How to Dual-Boot Ubuntu 20.04 (or 22.04) and Windows 10 (or 11) with Encryption

08 Apr 2020 · Technology

When you run the Ubuntu installer, there’s an option to dual-boot Ubuntu with an existing Windows installation. There’s also an option to encrypt your Ubuntu installation, but only if you erase everything and install ubuntu. There’s no automatic way to install Ubuntu alongside Windows 11 with encryption. And while there are plenty of tutorials for dual-booting Ubuntu and Windows, many of them are outdated – often referencing an MBR partition table – and almost none of them seem to address encrypting your Ubuntu partition.

Continue reading…

Why you should consider moving your tech blog off Medium

15 Mar 2020 · Technology

This might turn into a bit of a rant, but humor me. The other day, I was working on a hobby software project when I got hit with one of these:

Continue reading…

Comparison: GoTrax GXL vs Xiaomi M365

07 Mar 2020 · Reviews

For the last six months or so, I’ve been using an e-scooter on part of my commute to work. I’ve spent a good amount of time commuting on both the GoTrax GXL and the Xiaomi M365 so I thought it would be fun to write a review and comparison of the two scooters.

Continue reading…

Computer Shopping: The Ultimate Developer Laptop

03 May 2019 · Technology

Recently, I bought a new computer. My goal was to find the ultimate developer laptop! Well, maybe that’s a bit of an exaggeration… I actually set a fairly reasonable budget for myself. So maybe the ultimate affordable developer laptop™ is more accurate. In any case, I put a lot of thought and research into what my ideal machine would be like, so hopefully my research and experience can help you find the computer of your dreams too!

Continue reading…

Why Short Feedback Cycles Lead to Great Software

24 Feb 2019 · Software Development

I think most software developers love short feedback cycles, whether they realize it or not. And it makes sense! Really short feedback cycles are one of the first things most developers experience when they write their first “Hello, world!” program. A lot of developers get hooked when they see that any change they make to the code is reflected immediately in the output. This feedback cycle is nearly instantaneous, and many developers love that about programming.

Continue reading…

5 Tech Talks Every Web Developer Should Watch

13 Jan 2019 · Software Development

I enjoy listening to tech talks from expert software engineers. When you listen to a good tech talk, you’re given the opportunity to learn from someone else’s experiences, and this is really valuable in such a fast-moving industry. A lot of tech talks from big developer conferences are posted online for free, and I’ve kept a list of some of my favorite tech talks from the last several years. These are the five tech talks that have had the most influence on me personally, and I think that anyone who’s a web developer should listen to them if you haven’t already. Although most of them are several years old by now, I think the ideas presented in them have already stood the test of time. So while some technological details might change, the big ideas presented are still relevant and will continue to be for a long time.

Continue reading…

KeePass vs Bitwarden: A Comparison of Free Password Managers

20 Nov 2018 · Technology

It’s been nearly 2 years since I originally wrote about How I Manage Passwords with KeePass. That blog entry was inspired by Troy Hunt’s post, “The only secure password is one you can’t remember”. Using KeePass was a wonderful experience, and I’m thoroughly convinced that everyone should use a password manager. The ease of use and level of security a password manager provides is way better than anything else you could do to remember your passwords. One of the most common ways a person can be hacked is by reusing the same password on many websites. The problem is that if any website has a data breach, all the websites you used that password on are compromised. And a password manager solves this problem by using a different password on every site.

Continue reading…