I'm a husband, I'm a father, and I'm Catholic. I'm an Ubuntu Linux user, and I'm a staff software engineer at Strava. I write about DIY tech projects, from 3D printing and electronics to home networking and Linux laptops.
Pine Time 智能手表配合 Claude 等 AI 编程代理,成功复刻 Casio 风格表盘。这款 $27 手表运行开源固件 InfiniTime,配有 InfiniSim 模拟器,反馈循环快。作者用 Claude 克隆仓库、构建环境,再以现有表盘代码为起点,根据 Casio 表盘照片生成新界面。实际开发中主要使用 OpenCode 配合 Kimi K3/K2.6 和 DeepSeek v4 Pro/Flash 等开源模型。
Astropilot VR is a 3D VR game for mobile phones that I vibe coded in a single weekend, as part of Vibe Jam. The game is a single HTML file (with embedded JS) that’s about 5,000 lines long, built prima...
I’ve been doing my taxes by hand (on Free File Fillable Forms ) for several years now. I prefer doing my taxes by hand over using tax software because it’s actually not that hard to do it by hand, I l...
Wow, what a wild year it’s been! Claude Code was first released only a year ago, though it feels like it might have been a decade. The progress on LLM developer tooling has been unreal, and it really ...
I’ve been managing my dotfiles with Chezmoi for nearly five years now, and I love it! Chezmoi fundamentally changed my approach to dotfiles with templating, making it easy to keep my dotfiles working ...
I got pretty excited when announced the World’s Largest Hackathon. I saw not only an opportunity to build something cool, but also – and perhaps more importantly – an opportunity to gain experience bu...
I’ve been noticing for a while that on my personal laptop, new terminal tabs/windows were very slow to start (more than a second). It bugged me a lot since I knew something seemed wrong, but I’d been ...
I’ve been writing about how to dual-boot Ubuntu and Windows with encryption for a long time. I first wrote about it back in 2020, where I described a four-part process with 19 total steps to get dual-...
In my previous blog post, I reviewed a Nimo N153 R5 6600H Laptop. In the review, I mentioned that I installed Ubuntu Linux on the laptop. As a follow-up, I wanted to write a quick tutorial about how t...
If you’ve read some of my past blog posts (like My $500 Developer Laptop or The Best Computer You can Buy for $100), you might already know I enjoy finding good technology on a budget. So when Nimo re...
This is a story about how I overpaid my 2021 taxes due to an error in TurboTax and spent nearly three years trying to recover more than $12,000 from the IRS! I began writing this back in 2022, in the ...
I worked on a fun little project recently to recover data from my wife’s 2015 MacBook Air. Although that might not sound terribly interesting, the way I ended up using an adapter is one of the most ri...
Ghostty came out today! I’ve been following the development on Mitchell Hashimoto’s Blog for a while, and I was excited to give the terminal a try. First Impressions Ghostty is great! My first impress...
Dual-booting Ubuntu and Windows with encryption for both has been possible for a long time, but has always been difficult. Until recently, the Ubuntu installer supported encrypting Ubuntu (with LVM) o...
On any blog, it’s really common to link to related posts near the end of an article. It keeps readers on your website by linking to another post they might be interested in, and it can help with SEO. ...
I’ve been thinking for a while that it would be fun to add some kind of color-changing LED mood lighting to my home office. As I was researching different products, I quickly stumbled across the WLED ...
The US is one of the only countries in the world where everyone wastes a dozen hours every year doing their taxes. (The IRS estimates that it takes an individual 13 hours to prepare their taxes!!!) Li...
I’m a big fan of used computers! I often recommend them to friends and relatives, and I’ve bought several myself. I’ve written in the past about the best computer you can buy for $100, my $500 develop...
Strava challenges offer a fun way for athletes to compete against themselves and others! Back in 2020, our legacy challenge leaderboard system was running into bottlenecks and scalability problems on ...
When we bought our house several years ago, our home wifi consisted of a cable modem and wireless router on the floor of our living room (where we happened to have a coax outlet). Over time, I’ve made...
It’s really common to add Google Analytics to your site to gain valuable insights about who’s visiting. I think most companies use Google Analytics, and because it’s free and easy many solo developers...
Last week I went to Strange Loop 2023. There were many great sessions, but my favorite was Playable Quotes for Game Boy Games. Joël and Adam presented an idea for playable Game Boy “quotes” that shoul...
I’m not the first person to write about a $500 developer laptop. In fact, I was inspired by Max Rozen’s Replacing my MacBook Air M1 with a ThinkPad T480 and Getting your own good enough laptop for und...
I’m sure everyone’s had a frustrating experience trying to optimize their home wifi network. You put the router in a great spot for the TV, but you have bad wifi on your deck. You move it somewhere to...
Learning to create 3D models with OpenSCAD has opened a world of possibilities for me. Once I was comfortable with the basics, I wondered what it would look like to push the boundaries of programmatic...
I just added a new wall decoration to my home office, and I think it turned out great! I got the idea to 3D print the Strava logo a few weeks ago after seeing Martin Woodward’s Octolamp. I designed an...
As I mentioned in my last blog post, I’ve been getting into 3D printing recently. The deeper I get into the 3D printing world, the more I become interested in designing my own 3D models. It’s cool to ...
I got my first 3D printer about three months ago, and now that I’ve had it for a little while I wanted to write about my experience with it so far. Learning 3D printing has been a blast, but I faced s...
Like in many houses, our cable modem was an eye sore on a shelf in our living room for many years. After all, that’s where the coax outlet for a TV always is right? The location wasn’t ideal. People t...
Many Ubuntu users have recently become frustrated by the Pending update of "firefox" snap message they sometimes see when using Firefox. The message usually says something like “Close the app to avoid...
Lunch Money is a great tool for tracking your personal finances. I wrote about it a couple months ago in my comparison of personal finance tools. However, the way most people use it, it will track fin...
A couple months ago, I discovered that the classifier-reborn gem (a popular Jekyll plugin to group related posts) was essentially incompatible with Ruby 3. I use Jekyll to build some of my own website...
For years, Mint was the first thing people would recommend to anyone looking for a budgeting or personal finance tool. More recently, competitors like You Need A Budget (YNAB), Personal Capital, and L...
It might seem impossible to find a good computer under $100, but you actually have more options than you probably realize. Between a Raspberry Pi, Chromebook, or used laptop, you can probably find som...
If you use Firefox on Ubuntu, you might have noticed that Firefox seems less stable in Ubuntu 21.10+ (including Firefox 22.04 LTS!). By default, Ubuntu 21.10+ installs Firefox as a snap rather than as...
Unfortunately, it’s really hard to find good advice about humidifiers on the internet. A quick google search for something like “humidifier advice” seems to find mostly SEO spam – things like “5 Tips ...
Wordle is one of the latest crazes to hit Twitter. You might have noticed it – it’s the thing everyone’s posting with the yellow and green boxes. Wordle is a game where you have to guess the word of t...
Iteration is an important part of my development workflow, and it’s an important part of the way we work at Strava. Over the course of my own career, I’ve learned to really value the process of increm...
GitHub Codespaces made waves when GitHub introduced the feature several months ago. Codespaces promises a lot. It solves configuration headaches, it creates disposable environments, it can provide bet...
Thule makes several popular bike trailers, including the Cadence and Chariot. The trailers come with the Thule ezHitch to attach easily to most quick-release or solid axle wheels, and Thule also sells...
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. If you’re thinking about getti...