Where The Magic Happens

I Miss Using Em Dashes

I really miss using em dashes in my writing. Ever since content creators started using ChatGPT to help (or supplement) their writing, em dashes have become indicators of AI use. Students are routinely caught with their pants down as professors fla...

The Singular Devotion of Oppenheimer and the Cost of Absolute Loyalty

One of my favourite public figures is Robert Oppenheimer, a tragic, passionate scientist who was martyred for politics. JRO reminds me of Naked Snake, another character who suffered for his nation at the expense of both his personal creed and his ...

Evaluating AI Systems: From Criteria to Pipelines

I am reading the book AI Engineering by Chip Huyen for an AI book club at work. These notes have been distilled and sanitized for public consumption from Chapter 4 of the book. AI evaluation is a critical component of AI engineering. This chapt...

Are We Sacrificing Developer Skills for AI Convenience?

Last week, I had the pleasure of attending All Things Open in Raleigh, North Carolina. Now, AI may not have been the explicit focus of the conference, but let’s just say it completely stole the show. It felt like every other session was talking ab...

Test Driven Game Development

Writing clean and maintainable code often follows well-defined practices for structuring and testing software. In today’s example, we’re going to go cover testing and test-driven development, specifically in Godot. While the tools mentioned may be...

Installing Custom Proton Builds On Linux

If you’re like me, you play a lot of games. Proton has been a godsend for me. It pretty much made it possible for me to transition entirely over to Linux from Windows. Some games still don’t work with Proton, but talented folks are constantly deve...

Common Python Design Patterns

I found these design patterns to be the most useful in my professional life. I hope someone stumbles upon this and finds it somewhat useful. I: Singletons Possibly the simplest design pattern, Singletons are quite versatile objects. You’ll often...

Fighting Game Mega Mix

I: Introduction To The Madness “I don’t know how to get things started… It’s like there’s this great big wheel I’ve got to start rolling only I don’t seem to have the muscles to get it going.” —Carol Shields, author of The Stone Diaries This ...

Simulating Dynamic Web Interactions

I: Introduction, Motivation, Background “There is no dignity quite so impressive, and no independence quite so important, as living within your means.” —Calvin Coolidge As a “starving-artist,” I don’t really like spending money unnecessarily...

Speed of Python's set() vs {*}

TL;DR First, a big THANKS to all those who emailed me about the inaccuracies of my original post. I appreciate those comments and I used them to fix the post, making the content more accurate. PyCharm Prefers Set Syntax To A Function Call While ...

Implementing Playlist Shuffle in Python

Why Even Bother Doing This? Don’t You Have a Life? The car I drive has a shuffle feature for CDs. It must be re-toggled whenever the car power cycles, and routinely bugs out whenever I try to flip though my Evil Empire disk. Sometimes, the next “...