Posts on Gavin D. Howard
How I Solved the Expression Problem
Replacing CVE
Advent of Code 2024: Report
Advent of Code 2024: Getting Started
To Broadcast or Not to Broadcast: A Nuanced Perspective
Rewriting Rust: A Response
Curing the Framework Curse
A Better OS Design 2: Microkernel Performance
Is Crowdstrike the Final Straw?
Why I Hope Rust Does Not Oxidize Everything
A Plan for Professionalism
My Programming Journey
A New Architecture for a GUI Framework
A Better OS Design
Traits, Destructors, "Higher RAII," and Exceptions
What Rust Got Wrong on Formal Verification
A Grateful Open Letter to JeanHeyd Meneide
You Do Not Need Systemd to Replace Sudo
What Computers Cannot Do: The Consequences of Turing-Completeness
Build System Schism: The Curse of Meta Build Systems
How Yzena Versions Software and Interfaces
Version Interfaces, Not Implementations
No, Tech Debt Is Not Malpractice
Is "Source Available" Really That Bad?
Code Is Not Technical Debt
Am I a Good C Programmer?
A Decade of Developing a Programming Language: A Response Response
How to Fund FOSS, Save It from the CRA, and Improve Cybersecurity
Your Loved Ones Are Prisoners, and You Made the Chain
An Open Letter to Cryptographers: Please Work Together
He Who Gives Up Correctness for Performance Deserves Neither
Lessons Learned as a User 3: Prepare for the Future
The Scourge of 00UB
I Have Blocked OpenAI
I Have Split My Blog
How Yzena Versions Software
How I Made a Monorepo
An Apology to the Gentoo Authors
The Most Annoying Math Problem
AI Evangelists Scare Me
Programming Will Always Use Text
Justifying a Backwards Design Decision for Yao
Why I Use C When I Believe in Memory Safety
Make the Leap Second First-Class: An Open Letter to the International Telecommunication Union
A Git Sin: Re-Signing an Entire Git Repo
My Code Conquered Another OS!
We Must Professionalize Programming to Preserve Society and Computing Freedom
Technical Debt Costs More Than You Think, or My Software Development Process
Dispelling AI Myths and Rhetoric
Windows Will Die: 90 Minutes to Do 5 Minutes of Work
I Believe Zig Has Function Colors
I Am a Fool: First Adventures in Multi-Threading
Goodbye, Kitty
The Law of Strict Licenses
The Social Contract of Open Source
Is It Even Worth Working on FOSS Anymore?
My Whitepaper About GitHub Copilot
"Static Linking Considered Harmful" Considered Harmful
Comments on Cosmopolitan and Culture
Projects in the Pipeline
Poisoning GitHub Copilot and Machine Learning
Software Developers Are the Problem and the Solution
Counting Words in C with Yc
My First Programs
A dc Script for Easter
Lessons Learned as a User 2: Eat Your Own Dog Food
Lessons Learned as a User 1: Ease Matters
Setting Aside an Idea: Decentralized Identities
Rust, Zig, and the Futility of "Replacing" C
Adventures in Backing Up Data with ZFS
Testing the Feasibility of Hardware Pipes 2: Exploring Designs
My Development Environment and How I Got There
The Software Industry Is Broken
Decentralizing the Internet and Other Ideas
Testing the Feasibility of Hardware Pipes
An Interesting Idea About Factoring Integers
Software Engineer Body of Knowledge
I Am Moving Away from GitHub
Computing Is Broken and How to Fix It
Another Reason to Hate Patents
Head in the Hurricane: Securing a Web Server
Designing the Hundred-Year Language
Designing a Type System
What Yzena Is
Values for Yao
Designing for Good Thoughts
Smart Devices Are Dangerous
Structured Concurrency Definition
Performance Matters: Jekyll vs Hugo
bc/dc Tips and Tricks
bc PRNG
Finishing Software
Verifying a Safety Number in Signal
Shrinking a Website
Auditing Software Is Hard
Pointers in Yao
Why Perfect Software Is Nearly Impossible
Link-Time Optimization vs Single-File Code
Better Hiring Practices
PL Design 4: Features
PL Design 3: Reducing Bugs
PL Design 2: Reducing Friction
Code of Conduct for Yzena
PL Design 1: Principles
Tech Crises
Programming Language Wish List
The Professional Programmer in Open Source