Last week
- This is the third chapter of my SQLAlchemy 2 in Practice book. If you'd like to support my work, I encourage you to buy this book, either directly from my store or on Amazon. Thank you! In the previous chapter you learned how to execute a variety of queries on the products...
- for (i = 0; i < numberOfElements; i++) { doSomethingWith(element[i]); } This works, but isn't very elegant. The Ruby way is much more elegant. elements.each do |element| do_something_with(ele...
- I originally posted this as a Twitter thread in March 2018. It went viral, probably because Charles Stross quote-tweeted it with the comment “This thread. You read!” - yes, _that _Charles Stross. 😮 It was at https://twitter.com/i/web/status/976852582084808704, and I bookmarked...
Two weeks ago
- A JavaScript engine (e.g. V8, JavaScriptCore) executes JavaScript code. It doesn't know about things like files, HTTP requests, or timers.On the other hand, a JavaScript runtime (e.g. Node.js, Bun) is a more complete environment where JavaScript runs. It contains a JavaScript...
- Creating a subset of Go that translates to C was never my end goal. I liked writing C code with Go, but without the standard library it felt pretty limited. So, the next logical step was to port Go's stdlib to C.Of course, this isn't something I could do all at once. So I...
- At this point in history, AI sociopaths have purchased all the world's RAM in order to run their copyright infringement factories at full blast. Thus the amount of memory in consumer computers and phones seems to be going down. After decades of not having to care about memory...
About a month ago
- Starlette 1.0 is out! This is a really big deal. I think Starlette may be the Python framework with the most usage compared to its relatively low brand recognition because …
- I'm working on a new programming language named Solod (So). It's a strict subset of Go that translates to C, without hidden memory allocations and with source-level interop.Highlights:Go in, C out. You write regular Go code and get readable C11 as output.Zero runtime. No garbage...
- Squawk’s language server uses lsp-types, which provides serde-friendly types for the Language Server Protocol (LSP). This avoids us having to implement a lot of boilerplate ourselves. Before: A Manual Approach One of the provided types is SelectionRangeRequest, which is used for...
- This post is the third in a series comparing the same sample blog in Web Origami and Eleventy: - Eleventy version: Source code and Demo - Origami version: Source code and Demo This post looks at another advantage of code over configuration: the degree to...
- In 2023 I wrote "SQLAlchemy 2 In Practice", a book in which I offer an in-depth look at SQLAlchemy version 2, still the current version today. SQLAlchemy is, for those who don't know, the most popular database library and Object-Request Mapper (ORM) for Python. I have a...
about 1 month ago
- The interesting part of moving kentcdodds.com to npm workspaces was not the file moves. It was everything the file moves broke....
- I like pie. And I’ve learned that if I want a pie done right, I gotta do it myself. Somewhere along my pilgrimage to pie perfection, I began taking a photo of each bake — pic or it didn’t happen. Despite all my rhetoric for “owning your own content”, I’ve hypocritically used...
- Introduction You built a thing. You want people to pay once and use it forever. Here is exactly how to do that with Convex and @convex-dev/stripe. Install npm install @convex-dev/stripe stripe npx c...
- The following is a write up of a talk I delivered at MLOps Community’s “Coding Agents” conference, on March 3rd. There’s a video version of the talk available on YouTube. I share what I learned building a no-code library, why spec-driven development is a feedback loop not a...
- TypeScript and Rust-Analyzer support a handful of quality of life, code navigation improvements. For example, if you try to go-to-definition on a variable in your IDE, but end up clicking the trailing comma, it still navigates to the variable. let a = 10 // ^ go-to-def...
about 2 months ago
- How many millions of times have you seen this pattern in Go where a variable is pre-created just to make a pointer to it down the line? There is a high chance your codebase includes a utility to do that. // Something like this a := 123 aPtr := &a // Or like this func Pointer[T...
- Blog About Moonbound Shop This is a post from Robin Sloan’s lab blog & notebook. You can visit the blog’s homepage, or learn more about me. February 23, 2026 My path through programming has largely involved strategic avoidance: of complexity, fragility, excessive moving...
- Write transactions can lead to lock starvation and serious performance degradation when using SQLite with SQLx, the popular async Rust SQL library. In retrospect, I feel like this should have been obvious, but it took a little more staring at suspiciously consistent "slow...
- I introduced Showboat a week ago—my CLI tool that helps coding agents create Markdown documents that demonstrate the code that they have created. I’ve been finding new ways to use …
2 months ago
- You don’t need more performance heroes on your engineering team. Make the fast path the easy path....
- Organizations which design systems are constrained to produce designs which are copies of the communication structures of these organizations. — Melvin E. Conway, How Do Committees Invent? Conway's law appears true if you observe organizations and systems as they are, but the...
- Bill Hoffman, the original creator of the CMake language held a presentation at CppCon. At approximately 49 minutes in he starts talking about future plans for dependency management. He says, and I now quote him directly, that "in this future I envision", one should be able to...
- There’s a jargon-filled headline for you! Everyone’s building sandboxes for running untrusted code right now, and Pydantic’s latest attempt, Monty, provides a custom Python-like language (a subset of Python) in …
Rows per page