topic: Rust
Everything I’ve written on the subject, from the beginning of this version of the site.
-
2020
-
Apr
-
29
-
The Infra Engineer’s Blind Spot—JOURNAL
Why I ended up down a rabbit hole instead of shipping.
-
-
-
-
2021
-
Feb
-
13
-
Announcement: Speaking at EmberConf 2021 —ELSEWHERE
In which I’ll be speaking for 30 minutes at a JS conference… and will spend only about 5 of those minutes on JS.
-
-
-
Mar
-
31
-
Keep It Local—ELSEWHERE
Or: (part of) what “reasoning about your code” really means; being my EmberConf 2021 talk.
-
-
-
Nov
-
18
-
Reading “A Functional Programming Language with Versions”—LIBRARY
The first academic research I’m aware of which actually takes Semantic Versioning seriously!
-
-
-
-
2022
-
Jan
-
28
-
Announcement: Speaking at TypeVille 2022 —ELSEWHERE
On the subject of “Types as Tools for Thought”
-
-
-
Jul
-
04
-
Rustacean Station: New Rustacean with Chris Krycho ↩︎—❈—ELSEWHERE
Chatting about Rust, LinkedIn, and WebAssembly—and my past, present, and possible future with podcasting!
-
-
08
-
A Pleasing Symmetry in Rust—JOURNAL
Appreciating how Rust
enum
variants are mirrors of its kinds ofstruct
s.
-
-
21
-
Some Thoughts on Zig—JOURNAL
A positive framing (of one part at least!) from someone who is distinctly not here for what the language is selling.
-
-
-
Dec
-
09
-
Reasoning About Reference Cycles—JOURNAL
Rust’s lifetime types are challenging, but they bring a capability I miss all the time in other languages.
-
-
-
-
2023
-
Jan
-
Jul
-
11
-
Je ne sais quoi—JOURNAL
Programming languages, cameras, computers, and other technologies—and feel.
-
-
-
Aug
-
Sep
-
06
-
Software Unscripted: Type System Complexity ↩︎—❈—ELSEWHERE
Along with Rust, TypeScript, SemVer, open source ecosystems and maintenance, and more!
-
-
-
Dec
-
07
-
The Wizardry Frontier—JOURNAL
Against the idea that accessibility and reliability (or other such dichotomies) must remain at odds in programming languages.
-
-
16
-
Why Not Type-Based Overloading in Rust?—JOURNAL
Too much spooky action at a distance.
-
-
-
-
2024
-
Mar
-
11
-
Async Rust Complexity—JOURNAL
One reason things “feel hard” in this part of the ecosystem.
-
-
-
May
-
06
-
The Cutting Edge of Versioning (LambdaConf 2024)—ELSEWHERE
Semantic Versioning, library & framework evolution, programming language design, type systems, and you.
-
-
22
-
Using
cargo tree
to Explain Dependencies—JOURNALOr, the equivalent of
npm why
,yarn why
,pnpm why
, etc. that you might be looking for.
-
-
-
Jun
-
21
-
Pest.rs’ Syntax Tree is Very Low-Level—JOURNAL
Which is fine, mostly, but it means you have to do two passes to get a typed AST!
-
-
26
-
Changelog Interviews #597: Major.Semver.Patch ↩︎—❈—ELSEWHERE
Teaming up with Predrag Gruevski to talk SemVer with Adam and Jerod.
-
-
-
Jul
-
02
-
Red Pen—JOURNAL
How (and why) I revise the “old-fashioned” way.
-
An Observation on Constructor Syntax—JOURNAL
From debating whether to implement them in my little programming language.
-
-
13
-
Fast Tools are Wonderful—JOURNAL
A real-world example: Markdown-, HTML-, Unicode-aware word counting.
-
-
-
Aug
-
02
-
count-md: a New Rust Tool and Library ↩︎—❈—ELSEWHERE
Counting words in a Markdown files in a way that actually makes sense.
-
-
-
Oct
-
10
-
Programming Language Learning: A Rant—JOURNAL
Or, what makes programming language learning materials so hard to do really well.
-
-
-
Nov
-
27
-
28
-
New Tool: jj-gpc—JOURNAL
Making nicer branch names on the fly.
-
-
-
Dec
-
02
-
The DefinitelyTyped dprint Setup—NOTES
Much, much simpler than I expected!
-
-
03
-
04
-
PSA: Default to
cargo install --locked
—NOTESThere are reasons this is not the default, but you can make it your default.
-
On
cargo install
Not Defaulting to--locked
—NOTESA few details, as I best I know them, because a friend asked after reading my last post!
-
-
06
-
2024 State of Rust Survey↩︎—❈—NOTES
An opportunity to provide real and actionable information to the Rust project leadership. Take it!
-
-
11
-
cargo-semver-checks v0.38.0↩︎—❈—NOTES
More lints for the sake of fewer SemVer issues in Rust libraries!
-
-
12
-
Read the Code: Using Drop Safely in Rust—JOURNAL
A deep dive into Rust’s
vec::Drain
and itsDrop
implementation as an example of how ownership prevents subtle bugs—memory and otherwise!
-
-
16
-
To Throw or Not to Throw in TypeScript?—NOTES
Taking a bit of inspiration from Rust and ending up with much more reliable TypeScript.
-
-
17
-
Corrections: Using Drop Safely, Not For Safety—NOTES
My note about using
Drop
in Rust last week had a serious error!
-
-
18
-
Configure Zed to Use the Project’s rust-analyzer—NOTES
Because it is not nice for your editor tooling to stop working!
-
-
20
-
fish shell v4 beta 1—NOTES
A bunch of small nice improvements… and a rewrite in Rust!
-
rust-analyzer version via rust-toolchain.toml—NOTES
If you use an older toolchain, this will make for a better developer (and contributor!) experience.
-
-
31
-
2024 in Review—JOURNAL
A weird year—not a bad one, sometimes a great one, always a strange one.
-
-
-
-
2025
-
Jan
-
15
-
JavaScript’s
Promise.race
andPromise.all
Are Not “Fair”—NOTESJust like life! And just like life, you just have to deal with it.
-
-
18
-
Improving
jj-gcp
with JSON Schema and schemars —NOTESI don’t use this tool that often, but it’s good for it to work correctly when I do!
-
-
21
-
The Essence of Successful Abstractions—JOURNAL
Complexity has to live somewhere; but it does not have to live everywhere.
-
-
29
-
minijinja tip: What That Custom Function’s Type Error Means —NOTES
If the error message involves
Function
, the problem is reallyViaDeserialize
.
-
-
30
-
minijinja tip: Template Values Must Round Trip—NOTES
A general lesson about de/serialization applied in this specific context.
-
-
-
Feb
-
17
-
Axum Handler Errors Need to Implement
IntoResponse
—NOTESThis has some interesting implications for
Result
.
-
-
21
-
The Rust Programming Language, 2024 Edition—ELSEWHERE
That’s my name in the authors list! Whoa!
-
-
28
-
Cloudflare Worker Responses Require Manual Caching—NOTES
This was not intuitive or obvious, but at least it isn’t hard, either.
-
-
-
Aug
-
01
-
isolatedDeclarations
and Zod —NOTESOne strategy for using TypeScript’s
isolatedDeclarations
flag with inference-driven libraries like Zod.
-
-
-
That’s it for this topic… but there are many, many more!