Husband. Father. Software engineer. Ubuntu Linux user.
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.
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!!!) Like many others, I’ve been using TurboTax to do my taxes for years. I’ve wanted for a long time to try doing my own taxes, by hand, without tax preparation software, but I always felt too intimidated by all the tax forms (and the sheer volume of information) to actually do it, and didn’t know where to start. This year, I finally did it! And it actually wasn’t nearly as difficult as I imagined it to be – it almost felt easy. Once I got started, I got the hang of it very quickly, and I successfully filed my own tax return this year, without using TurboTax! (And in well under 13 hours!)
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 developer laptop, and used Dell Latitudes But recently, I had a sub-par experience with refurbished computers. Having gone through that, I have some thoughts about the current state of the used computer market and some advice about buying a used computer in 2024.
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 a regular basis, and we often found ourselves putting out fires to keep the system stable. In late 2020 and early 2021, I worked on a project to replace the old leaderboard system with a new one that could handle a much larger number of athletes competing in challenges. This blog post is about that project. I drafted most of this post when the project wrapped up in 2021, but didn’t get it published before I went on paternity leave – and then I forgot about it. I think the project was interesting and worth sharing, so I’m glad I finally remembered my draft (three years later 🫣) and found some time to put in the finishing touches and get it published! Enjoy!
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 a few improvements! Last year, I installed my own coax cable so I could move our internet equipment out of the living room. This was a great improvement overall, but led to bad coverage and slow speeds on my deck. To try to fix that, I got an RE-450 wifi range extender. The range extender improved the wifi on the deck, but didn’t work seamlessly with the rest of my network. So I planned some more improvements. I just finished installing some Cat-6 ethernet cable so I could add a wifi access point with a wired backhaul. I want to write this blog about how I did it, what kind of performance I got, and what I learned along the way. Maybe you can try something similar if you have wifi coverage problems in your own home!
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 and smaller sites do too. But recently, I think a lot of people have been questioning the value. For many small or independent blogs and websites, Google Analytics is an overly-complicated product that’s difficult to use and navigate. Moreover, using Google Analytics requires loading their relatively large, bloated javascript on your site. When Google Analytics competitor Plausible was starting out a few years ago, they highlighted a bunch of other reasons you might not want to use Google Analytics. In short, there’s gotta be a better analytics tool for small websites right?
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 should be (legally) shareable. (It’s worth reading How We Made Playable Quotes for the Game Boy on Joël’s Blog.) Their solution’s both clever and elegant, and uses only a few hundred lines of code (aside from existing emulators). The playable quote truly removes all the unnecessary parts of the ROM, which is important for legal reasons. Their implementation is also practical and future-proof, embedding everything that’s necessary to play the game in a single distributable file. It’s also pretty clever, using steganography to embed data into a screenshot of the game. (This revelation produced an outburst of applause at the live presentation.) While I watched this presentation at Strange Loop, I couldn’t help but think that a playable quote like this would be a great way to experience catching Mew in the original Pokémon Game Boy games.
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 under $500. Like Max, I’m not only writing a blog about this – I’m actually using the $500 laptop I’m writing about as my personal daily driver. You don’t need a $2,000 computer to have a great machine for web development! The laptop I chose is a great alternative to the ThinkPad T480. (ThinkPads are great, but they’re not the only way to get an incredibly capable and pragmatic laptop on a budget.) I’ve been a fan of Dell for many years, and my $500 developer laptop is a Latitude 7490. I recently bought one to replace the Latitude e7450 I was using. Let’s see how it stacks up to the T480, and how well it works as a daily driver.
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 provide better coverage for your deck, but it causes intermittent problems streaming movies to your TV. Figuring out the ideal wifi setup is tricky, and poorly documented. (But I’m hoping to provide some better documentation in this blog post!) I recently optimized my home wifi network to provide better coverage throughout my house, and I discovered some cool techniques along the way that I want to share.
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 3D printing even further. In my day job as a software engineer at Strava, I work with GPS data from running and cycling activities. What if there was a way to bring that data into OpenSCAD to use it in a 3D model?
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 and printed my own Strava logo, and it turned out even better than I expected. It’s actually really easy for 3D printers to create shapes like this because it’s just an extruded 2D shape. Vertical walls with no overhangs are a piece of cake to print. And while it looks like it uses a lot of material, it actually doesn’t – the inside is mostly air, with a small percent of infill material for support. And I got lucky with the Strava logo – I printed each part separately, allowing me to print it twice as big as I otherwise would have been able to on my Prusa MINI. I completed a fun project, got a great wall decoration for my home office (fitting since I work for Strava), and the whole thing only cost a couple dollars in filament!