The Kyle Blizzard Dot Com

Welcome to my dot com!

This is my retreat from the Modern Web. There is no React. There is no Google sign-in. There is no tracking pixel. There's actually a bottom of the page. It won't automatically refresh while you're in the middle of reading. Heck, the only reason there's even any JavaScript is in an attempt to obscure my email address from spammers. Here, it is always 1997, the peak of human civilization, the year The Lost World: Jurassic Park was released.

About Me

I am a recovering former web designer/developer; recreational programming, Jurassic Park, and firearm enjoyer; data recovery lab monkey; and practicing anarchist.

What's New

2026-09-24 - Thoughts on programming languages and related subject matter

I've been programming for real since probably around 2000 A.D. I did some before then at various times in GW-BASIC and QBASIC in DOS, VB6 (or was it 5?) on Windows 95/98, and a little JavaScript on the web, but I was just a little children and didn't really get it all that much. Once I started programming for real, I used VB6 briefly before graduating to C++. I eventually discovered C# 2.0 and migrated to that and stayed for probably somewhere around 15 years. I used it frequently in my job as a *shudder* web developer. Once I switched to Linux, I started having a need to make cross-platform utilities, and Mono could be a little janky, and I did not really agree with the new .NET Core way of doing things where you basically Package the World and include it with your application. I wasn't thrilled by the idea of my little UNIX-style command line utilities weighing 22 MiB and having a dozen files, and also just the idea of needing to have this big runtime installed to run my utilities became less appealing. So as much as I liked C#, it was time for something different.

I decided to drop back in to see what condition C++ was in. Hoo boy. I was reading up on "idiomatic C++" and using the standard library and CMake, and boy has C++ become insufferable. This was probably circa 2019 or 2020. I think the language has somehow gotten even worse since then. I've seen bits of source that are completely incromprehensible to me. Anyway, I fell back off of it pretty soon, but I still needed a replacement language. So I went looking for what was out there. I wanted something that could statically link and be self-contained (or only have minimal dependencies on things that pretty much anyone would already have like libc for Linux or MSVCRT for Windows). Having to install a separate runtime or bundle separate files was a dealbreaker. I think it was Rust and D that ended up on my short list to try.

Rust lasted about an evening. Not only was the syntax very abrasive to my C-addled brain, but the compiler was so slow. I couldn't handle it.

I tried D and ended up sticking with that. It had that comfy, familiar C-like feel, its template syntax was sane compared to C++ (it has its own quirks though), and it even had a garbage collector! It ended up being my go-to language ever since. A few years later I went shopping for languages again and tried Zig and C3. I think C3 probably lasted an evening. Zig might've lasted a few evenings. However, coming from a C# and C++ background (from that late '90s/early '00s OOP era to boot), its total rejection of object-oriented programming had me a little confused. I can't private these variables? I can't make an interface? Eh??? This had me bewildered but also a little intrigued. I spent some time reading about this whole new (to me) world that rejected object-oriented programming. This was barely fathomable to me, a recovering disciple of the Microsoft Development Paradigm.

I didn't stick with Zig, but I started to dip my toes into this anti-OOP pool using D. I learned about its "Better C" mode and started to compile with that. That of course meant I could no longer use D's standard library, its garbage collector, and not even classes! At first I was trying to hack classes into it in various ways, but I eventually gave that up. So I built my own "standard library" bit by bit. Actually a few times—both for practice and as I changed my mind about how things should work as I shook off my old OOP habits.

The more I did this, the more I came to realize the typical patterns of OOP resulted in things like FizzBuzz Enterprise Edition, which itself is a joke, but I have seen serious software that doesn't look a whole lot different. Back in my C# webdev days, it felt like the more I "learned" about and tried to practice how supposed professionals wrote software, the less I was able to actually accomplish. The "idiomatic" way of doing things tended to result in 27 boilerplate class and interface definitions just to execute a simple SQL SELECT statement on a database, and it would inevitably require me to touch every single class and interface when I needed to get a new field from the database. But as far as I could tell, this was how real professionals built software. I thought I must just be dumb because the endless chains of IRepository/IUserRepository/DbUserRepository/DbDataContext/ObjectReifier/DbTableDropper/IDemonSummoner and a SQL-like language built into C# all seemed to conspire to make me not able to achieve anything—at least in any reasonable amount of time.

Anyway, I discovered this subculture of programmers who are appalled by the absolutely bloated, rubbish state of modern software and use C to basically build everything custom for their specific applications without relying on third-party libraries (for the most part at least). I've always suffered a little bit from Not Invented Here Syndrome, so I immediately identified with this sect of programmers, and I've been mad about bloated software for a very long time. I found their use of C intriguing, so, never having actually written it before, I gave it a shot. At this point I'd already been using D/BetterC for a year or so, and I was familiar—if a bit rusty—with old-school C++, so it's not too big a stretch from there to write C, and I had already gotten a feel for some of the differences from reading these modern C guys.

It's not too different from writing D/BetterC. The upsides are that it doesn't suffer from D's infamous "decorator hell" (we all love a scope const return ref parameter to a pure nothrow @nogc function, right?), by default function names are output as-is to the binary (no name mangling!), and I can just include a system header file like Xlib.h instead of having to translate it to D. The big downsides I think are no slices, no defer, and the need sometimes for forward declarations. Everything else from D I don't miss too much, but the first two are the big ones with forward declarations being a distant third. To some extent I miss templates, but macros can mostly make up for it except for the case of a type-safe printf-like function. In D I had string formatting functions that could deal with most basic types (Including printing enum names, even multiple when used as bitflags. I don't think even the D standard library could do that!) and it just looks something like writef("Format my int = {:04X}", my_int); whereas the best I could figure out how to do in C looks like writef(S("Format my int = {:04X}"), FV_I32(my_int)); It avoids the use of a variadic function, instead being wrapped by a variadic macro, but it's slightly annoying to have to put every value inside an FV_* wrapper. I also haven't yet come up with any way to do enum name printing.

Anyway, I just felt like going on a tirade about programming. If you read all that, thanks. Or sorry. :-) If you currently employ object-oriented programming and feel like you're not operating at full potential, maybe give this modern C/anti-OOP school of thought a try. One resource I liked was Chris Wellons' blog. I think he has switched to a minimal, C-ish subset of C++, but the old C articles are still there. A good place to start might be the article on arenas. Have fun!

2026-08-14 - Internet is a drag

Almost the whole internet—especially the web sites of multi-billion-dollar companies—drags, right? That's not just me? It's just constant spinning wheels and reflowing, blinking layouts while waiting? I remember watching browser progress bars back when transfer speeds were measured in baud or kilobits/sec, but what's the excuse today? Developer time is more important than literally everybody else's time? So no one can be bothered to not make 4 MiB JPEGs and 32 MiB React apps? to let me know.

2026-08-13 - New web site and bonus article on government surveillance

I worked on my new web site, and an injunction on the National Firearms Act as it pertains to silencers, short-barreled rifles and shotguns, and "any other weapons" goes into effect. Interesting times.

Additionally, Dean-O (AKA Pacing Jouska) of The End Times Continue (anarchist philosophy and news podcast you should listen to) published a good 25-year timeline of U.S. government total surveillance creep. Give it a read to either learn something or refresh your memory.

2026-08-11 - Twitter banishment

The last remnants of the old Kyle Blizzard have been swept away...

At the beginning of July, Twitter suddenly locked my original account from 2009 and demanded biometric data via phone app that I have never used and likely can't even run on my de-Googled phone—not that I would anyway. Then in recent days they outright suspended it for the completely nonsense reason of violating their rules against "inauthentic behaviors". It's actually impossible to contact anyone there about it. I've tried, but everything funnels to the same non-functioning form that fails to function now and back when this first happened. Awesome web site. Don't use social media. It's a trap.