Semy (rhymes with Remy ) is a Semantic Version 2.0.0 (SemVer) parser and processor. It is both a C library and a command-line interface. You can use Semy to validate semantic versions, extract version identifiers, check if two versions are equal, and check if a version is newer or older than another. Why? # I wrote Semy because I have multiple projects that require a semantic version parser. Semy…
The adage “Luck is what happens when preparation meets opportunity” is everywhere. I’ve seen it on classroom posters, heard it in corporate workshops, and read it in many self-help books. This phrase has bothered me for years. It’s one of those “truthy” statements that feels profound until you pull at the threads. The quote is widely attributed to the Roman Stoic philosopher Seneca. Well, sorry…
I’m no stranger to digital media, but I’m far from an expert. I’d never taken a formal course in the subject until this past semester I enrolled in an introductory Photoshop and Illustrator course at my local university. It’s been at least a decade since I used them (I prefer the free alternatives, i.e. Inkscape, Krita). Photoshop was about as good (and buggy) as I remember it, but now with AI…
Cicero Salted Caramel Root Beer is my favorite caramel root beer. When I first heard there was such a thing as “caramel root beer” I was immediately apprehensive. I like caramel, and I like root beer, but there’s no way those flavors mix... or so I thought. When I finally tried one, I found myself enjoying it! There are several caramel root beers out there, but in this post I wanted to highlight…
Black Thunder is a chocolate bar made and sold in Japan by the Yuraku Confectionery Company. While I don’t live in Japan, I stumbled upon them at a local Asian grocery store and bought a pack on a whim. Little did I know what I got myself into. These bars are incredibly addictive. You can’t eat just one. Black Thunder chocolate bars. My copycat recipe attempts to reproduce the bars using only five…
The Entity Component System (ECS) design pattern is popular with game developers. It’s celebrated as a modern data-oriented paradigm, standing in stark contrast to traditional Object-Oriented Programming (OOP). But what if ECS isn’t an entirely novel invention? What if it’s actually a clever re-packaging of long-standing programming concepts, driven by the unique needs of game development? The ECS…
Over the past five months, I’ve been attending studio drawing classes twice a week. The classes focused on still life drawing and introduced various techniques, including cross contouring and shading. Most of the art I create on my own is digital, especially vector art. I enjoy vector art because I can create shapes exactly the way I imagine them. While I don’t do much hand drawing, I believe…
Root Beer is a North American carbonated soda drink. It’s also my personal favorite soda drink. I’m not a big soda drinker. If I’m presented with a choice of generic sodas, I usually prefer water, but root beer is the one soda I never pass up. Origins # Root Beer has its roots (pun intended) in pre-colonial Indigenous American and early settler traditions. Indigenous peoples of North America…
Four weeks ago, I announced Confetti on this blog. Two weeks ago, I shared the project on Reddit and Hacker News to gather feedback. Today, with the release of Confetti 1.0 beta , I’d like to reflect on what I’ve learned, the feedback I received, and where the project goes from here. Initial Reception # The initial feedback on Reddit was largely positive. Responses came in quickly and continued…
Today, I’m announcing Confetti - a modern configuration language format intended for human editable configuration files. Checkout its official webpage for examples. Why? # Formats like XML and JSON are data-interchange formats . They are not great as configuration file formats as the signal to noise ratio is too high. A missing comma or missing colon can throw everything off. JSON, in particular,…
Railgun Labs is an independent software company founded by myself in 2024. At the time of this writing, I’ve shipped five software products with more on the way. The company represents the culmination of several years of work and, given that this is my personal website, I wanted to share some of the history and philosophy behind the company. Products First, Business Second # I’m a passion-driven…
Hello, everyone! I’m Henry and this is my personal website. I decided to create a personal website to collect my work, writing and thoughts in a common place. I could spend the remainder of this post introducing myself, but I think my about page does a good job of that. Goals for this Website # My intentions are to write about my personal projects, thoughts on technology, and my other hobbies…