Write OpenAPI with TypeSpec
Why TypeSpec is the best way to write OpenAPI
Why TypeSpec is the best way to write OpenAPI
If you read my previous article on DOS memory models, you may have dismissed everything I wrote as “legacy cruft from the 1990s that nobody cares about any longer”. It's time to see how any of that carried over through the 16-bit to 64-bit evolution.
A deep dive into evolutionary algorithms through the lens of low-poly image generation. This exploration covers genetic algorithm theory, custom Ruby implementation using the Petri Dish framework, and detailed analysis of genetic operators including roulette wheel selection, random midpoint crossover, and nudge…
My currently understanding of types
Low level software usually has lots of .cc or .rs files. Even lower-level software, like your cryptography library, probably has .S containing assembly, my least favorite language for code review.
Before the widespread existence of software repositories like CPAN, NPM, and PyPI, developers seeking to reuse an existing algorithm or library of routines would either check books or journals for code, or, they just might post a classified ad:
This is Bob. And I’d like to know the best way for us to code a bunch of models in JAX to use to evaluate parallel algorithms including normalizing flows. I’m going to dump out my current thinking, but I’m really hoping to get feedback from experts on the best way to do this without starting a flame war in the…
I sometimes find myself asked to give advice on how organisations should go about creating software, but often my advice doesn’t gel with those who sought it. Sometimes that’s because only one answer was ever considered acceptable; sometimes I am ignorant of important wider context and my answer is unworthy of…
Updated (2014-10-24): If you find this article interesting, you may be interested in the follow-up article on an editor for composed programs .
Cliff L. Biffle blogged a great write-up of a debugging odyssey at Oxide with the title Who killed the network switch? Here’s the bit that jumped out at me: At the time that code was written…
Using a glibc version that is different from the system-provided one shouldn't require the use of containers, as I recently heard someone claim. Let's take a look at how dynamic linking works and what the options are.
Write-only blogging
It's pretty easy to imagine how to represent relational algebra expressions as a tree—they are already structurally rooted trees where each operator has its...
This is a tutorial series on implementing a basic CPU rasterization engine in C++ from scratch. No GPU involved, just drawing pixels with our bare hands, emulating what the GPU usually does for us.
A deep-dive into the fundamental concepts/ideas behind Radiance Cascades.
A follow-up on a previous story, in which we identify another problem, and perhaps confirm a theory through a theorem.
Thinking about thinking when coding, and the differences in what we see in our minds eye
Introduction to bin packing through a simple example of fitting boxes of candy inside a parcel.
In the early-to-mid 2010s, there was a renaissance in languages exploring new ways of doing concurrency. In the midst of this renaissance, one abstraction for achieving concurrent operations that was developed was the “future” or “promise” abstraction, which represented a unit of work that will maybe eventually…
A deep dive into Rust’s vec::Drain and its Drop implementation as an example of how ownership prevents subtle bugs—memory and otherwise!
Let's blink an LED on Pine64 Ox64 BL808 64-bit RISC-V Single-Board Computer... With Nim Programming Language and Apache NuttX Real-Time Operating System
I spent this summer building a new app, for a machine that hasn’t been on the market since 1980 and wasn’t built to support graphics, sound, connectivity or even lowercase letters, sold by a company that went bankrupt a decade ago, tailor-made for an audience of one: my dad, who celebrated his 70th birthday this past…
Or the 'Matt Godbolt shows us some compiler magic' edition!
I regularly hear or read statements like this: “X is slow but this is to be expected because it needs to do a lot of work”. It can be said about an application or a component in a larger system, and can refer to other resources that aren’t time. I often find these profoundly unhelpful as they depend much more on the…
If you've ever said "soft skills" and felt weird about it, this essay is for you
Yesterday on Twitter the inimitable Morten Just posted a preview of a tool he’s created that wrap ffmpeg to allow movies, such screen recordings but pretty m...
Learnings from building MiniJinja, a template engine in Rust
This blog post explores an alternative formulation of Rust’s type system that eschews lifetimes in favor of places . The TL;DR is that instead of having 'a represent a lifetime in the code, it can represent a set of loans , like shared(a.b.c) or mut(x) . If this sounds familiar, it should, it’s the basis for polonius…