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.

Subscribe
Catching Mew: A Playable Game Boy Quote

Catching Mew: A Playable Game Boy Quote

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.

Continue reading…
My $500 Developer Laptop

My $500 Developer Laptop

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.

Continue reading…
How to Test and Optimize Your Home Wifi Coverage

How to Test and Optimize Your Home Wifi Coverage

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.

Continue reading…
3D Printing Map Figurines with GPS

3D Printing Map Figurines with GPS

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?

Continue reading…
3D Printing the Strava Logo

3D Printing the Strava Logo

I just added some new wall decoration to my home office, and I think it came 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!

Continue reading…
3D Printing with OpenSCAD

3D Printing with OpenSCAD

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 print a model that someone else created, but for me it’s way more fun to print something that I created. It scratches my itch to “build something out of nothing” in a very physical way.

Continue reading…
3 Months of 3D Printing

3 Months of 3D Printing

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 some surprises and challenges along the way. It felt a bit like I was thrown into the deep end when I got started, but after about three months I finally feel like a have a good handle on the basics, and I’ve finshed several different kinds of projects. If you’re curious about 3D printing or thinking about getting into it yourself, maybe I can provide some inspiration and insight.

Continue reading…
I Installed My Own Coax Cable for My Internet Modem (and You Can Too)

I Installed My Own Coax Cable for My Internet Modem (and You Can Too)

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 always is right? For us, that location just happened to be the easiest place to put the modem. But the location wasn’t ideal. I wanted to move our cable modem and wifi router to our basement mechanical room to get them out of the living room, and to have more room for additional equipment near the router. But our basement didn’t have any coax outlets! I learned to run coax cable myself so I could move all our networking equipment to the basement. I’m glad I did, because I love the new setup and it wasn’t hard to do!

Continue reading…
How to Fix

How to Fix "Pending update of firefox snap"

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 disruptions (13 days left)”. This is a big annoyance for users who might not want to close the app or install an update on that timeline, and would rather do it on their own schedule. Fortunately, there’s an easy solution to completely avoid this problem on Ubuntu.

Continue reading…
Monitoring Gross Income with Lunch Money

Monitoring Gross Income with Lunch Money

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 finances from your net income. That is, it will track your finances for the portion of your paycheck that hits your bank account – because it uses your bank and credit card transaction history to track your finances. And that’s fine for a lot of people, but it won’t give you a complete view of your finances. In particular, if you’re only tracking finances from your net paycheck, you’re probably not tracking your 401(k) contributions, taxes, and other paycheck deductions.

Continue reading…