https://www.gravatar.com/avatar/7b17619235b45d93541af8e5f8d99159?s=240&d=mp

mcclain.sh

My 2024 Film Retrospective

A couple years ago, I made a concentrated effort to rekindle my love for film. My 2022 goal was to watch 100 films I had never seen before, and it was a great way to get back to this interest while allowing me to explore films I probably wouldn’t have seen otherwise.

This year, I wanted to look back at the films I watched in 2024 while I look forward to 2025.

Why You Should Blog

I’ve long stressed that you should have your own little piece of the internet, although I’ve been a bit louder about it lately. If you’re creating any sort of content, having a place that you control means your hard work doesn’t get lost if someone else pulls the plug. Yes, that six tweet thread on how to make the perfect mojo pork is content. I usually say it doesn’t need to be a blog, but I wanted to share a few thoughts on why you should at least consider it.

Carve Out Your Corner of the Internet

Much has been said about social platforms lately and how they may look in the near future. I’m generally not one to speculate but I absolutely am someone to think through potential issues and how to insulate against them. It could be weeks from now, years from now, or decades from now – history shows that no social network rules forever.

So what does that mean for you?

It’s Time to Carve Out Your Corner of the Internet

It doesn’t matter if it’s a blog, a portfolio, or just a single page that shows where you can be found: create a website.

Benchmarking in Go

As a hobbyist Gopher, I still discover things about the language that surprise me. While working on a side project, I found myself trying to decide between two implementations where speed was a major factor. As it would turn out, Go actually has some great benchmarking tools! What better way to answer my question than to put them head-to-head?

In this blog, We’ll work through a couple examples to learn exactly how to write these benchmarks, as well as how we dive deeper into the results. Overall speed is great, but what’s even better is getting to put things under a microscope and fine-tune them. Let’s start with how to write a benchmark with a simple example.

The Secret of the Twitch Chat API

Have you ever been in a Twitch chat of someone with thousands, tens of thousands, or even hundreds of thousands of chatters? The endless firehose of memes and emotes seem to come so fast that it’s almost impossible to read. Have you ever wondered what technology backs Twitch chat to support the volume and throughput of millions of concurrent chatters?

Spoilers: it’s IRC.

IRC? Really?

Yeah you know, IRC. Created in the late 80s and popularized in the 90s, I’d use it in the early 2000’s playing competitive Counter-Strike to post 5v5 | east | dust2 | cal-im | yours over and over to find people to practice against. Granted (but just as important), IRC is a protocol rather than a specific implementation, which leaves a lot of room for building efficiency. While Twitch’s servers are based on RFC1459, they only support a subset of IRC messages. In fact, to read and write chat message, we need just four commands: