About a month ago
- I wanted to see how difficult it would be to add Go's defer statement to the TypeScript compiler, but by the time I finished I was convinced it probably shouldn't exist.In Go, the defer statement delays the execution of a function until the surrounding function finishes. It's...
about 1 month ago
- End of July? Seriously? Feels like yesterday when I celebrated New Year’s Eve, and all of a sudden it is the end of July. Can we all slow down a little, please? Not a little. Slow down! You, time, the world. Pretty please! I’m in a good mood today, but not in a good one to write...
5 months ago
- Yesterday we talked about how cheap code is fueling an era of idiosyncratic tooling, and previously we’ve talked about the rise of spec driven development. In that second piece, we ran through some of the initial examples of spec driven development with agents: By far, the...
6 months ago
- Introduction If you want to let users call your service from their own app. This is very possible. The hard part is not generating a key. The hard part is doing the full system well. Secure storage. O...
- Introduction Clean code always mattered. But now it matters more. AI reads your code. AI writes your code. The cleaner your codebase is. The better AI understands it. The better AI writes new code tha...
- 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...
8 months ago
- Howdy folks, can you believe that the year is over? Shocking! I spent December travelling around Sri Lanka with my family, and it was incredible! I published a few pics from our trip. I managed to catch up on a long reading list and, as I do every year, I published my annual...
10 months ago
- Learn how to use the Gemini API File Search tool with JavaScript/TypeScript to build a Retrieval-Augmented Generation (RAG) system....
11 months ago
- With version 1.0 released after 2010....
about 1 year ago
- Discover how to effectively type the useRef hook in TypeScript for React applications that require imperative DOM manipulation. Learn best practices, common pitfalls, and practical examples, such as controlling the focus state of an input element....
- Most frontend reviews sign off clean code. But your users don’t see the code, they see the bugs you missed....
- What is the type of 2 + 2 = 4?...
- Jan Miksovsky lays out his idea for website creation as content transformation. He starts by talking about tools that hide what’s happening “under the hood”: A framework’s marketing usually pretends it is unnecessary for you to understand how its core transformation works — but...
- Meet Poltergeist: an AI-friendly universal build watcher that auto-detects and rebuilds any project—Swift, Rust, Node.js, CMake, or anything else—the moment you save a file. Zero config, just haunting productivity....
- 8/5/2025 I'm somewhat obsessed with randomised testing. AFAIK, I'm the first consultant to do Deterministic Simulation Testing for a client. But when I am approached about implementing DST we quickly realize their existing codebase isn't ready for it; DST requires significant...
- I'm somewhat obsessed with randomised testing. AFAIK, I'm the first consultant to do Deterministic Simulation Testing for a client. But when I am approached about implementing DST we quickly realize their existing codebase isn't ready for it; DST requires significant refactoring...
- Peekaboo 2.0 ditches the MCP-only approach for a CLI-first architecture, because CLIs are the universal interface that both humans and AI agents can actually use effectively...
- A quick tip on how I use repo2txt and Google AI Studio to understand new codebases. Gemini's 1M token context window is perfect for asking questions about code....
- I hate unrecognizable URLs. If I want to go back to a specific document or page, I should be able to type the name of it in the address bar and find it in my browser history. Notion is particularly good at this, and v0 was particularly bad at it (for a while), so this is what I...
- One of my pet peeves with testing in web development is mocking. So many devs tend to be purists who insist that the unit under test should be the only thing being tested, and that's why they mock everything. In projects that use Prisma or any other ORM, developers mock the ORM...
- TypeScript's type system can play DOOM. Surely we can make it do something useful for our projects too, right?...
- I quite enjoyed this talk. Some of the technical details went over my head (I don’t know what “split 16-bit mask into two 8-bit LTUs” means) but I could still follow the underlying point. First off, Andreas has a great story at the beginning about how he has a friend with a...
over 1 year ago
- Sometimes you have chunks of code you need to sync. For instance, in your backend you might have some validation that you want to sync with the UI. So you write: // Please keep in sync with api/routes/create_session.py! and a corresponding: # Please keep in sync with...
- Struggling with TypeScript config objects that silently accept typos or destroy useful autocomplete? If you've defined settings for React, Node, CLIs, or any JavaScript application, you know the pain. In the next five minutes, you'll learn two powerful TypeScript keywords - as...
Rows per page