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
How to Install Pi-hole on the Orange Pi Zero

How to Install Pi-hole on the Orange Pi Zero

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

Learning to Program by Making a Game

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

Building Local Legends

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

Unsubscribe Me: How to Disconnect from Internet Chaos

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

How To Set Up a Ruby Dev Environment on Ubuntu Linux

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

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

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

Review: Orange Pi Zero

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

A Bookmark to Temporarily Disable your Pi-hole

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?

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

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

Headless Setup for a Raspberry Pi Zero-W

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…