Mike's Blog

A collection of projects, thoughts, and ideas about computers.

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

Subscribe
My Dotfiles Story: A Journey to Chezmoi

My Dotfiles Story: A Journey to Chezmoi

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…
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…
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…
Why I Love Ubuntu as a Desktop OS

Why I Love Ubuntu as a Desktop OS

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.

Continue reading…
My Home Office Setup

My Home Office Setup

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 and Windows 10 with Encryption

How to Dual-Boot Ubuntu 20.04 and Windows 10 with Encryption

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 10 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

Why you should consider moving your tech blog off Medium

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…
Computer Shopping: The Ultimate Developer Laptop

Computer Shopping: The Ultimate Developer Laptop

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

Why Short Feedback Cycles Lead to Great Software

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…