When you see a `useEffect` that updates a `useState` and returns a value, you might be looking for a `useSyncExternalStore`. This is my current vendetta.
Update: The charts below were inappropriately snapped, compressing the range of values. This has been corrected. Feature availability numbers also changed since drafting and have been updated. In several recent posts, I've attempted to address how the structure of standards bodies, and their adjacen...
When you see a `useEffect` that updates a `useState` and returns a value, you might be looking for a `useSyncExternalStore`. This is my current vendetta.
Codeforces Global Round 29 was the main event of last week (problems, results, top 5 on the left, analysis). Only 3 participants managed to solve the 5500-point problem H, and they occupied the first three spots. Well done to ecnerwala, jiangly and ksun48!The big story of the round though was the so...
Petr Mitrichevby Petr MitrichevSep 22, 2025read🤖 Summary
I have shown how to use Copilot instructions file to generate better end-to-end Cypress tests. In this blog post I will show a specific trick I use to make my test writing a lot more precise and much faster. When we are writing end-to-end tests, we constantly need to look up the best test selectors ...
Photo by Photo by Artan Sadiku Commentary about browsers and the features they support is sometimes pejorative towards pre-standardisation features. Given Apple's constriction of Mozilla's revenue stream and its own strategic under-funding of WebKit, this usually takes the form "Chromium just ships ...
In the previous article on the tuple iteration, we covered the basics. As a result, we implemented a function template that took a tuple and could nicely print it to the output. There was also a version with operator <<. Today we can go further and see some other techniques. The first one is with st...
What I like about MCP servers: they give me lots of great tools that can make my agents more powerful, with very little work on my side. 🎉 What I don't like about MCP servers: they give me TOO many tools! I usually only need a handful of tools for a task, but a server can expose dozens. 😿 The proble...
I’ve written and talked extensively about Hypermedia APIs for about a decade. The HATEOAS constraints in representing resources for a RESTful API has numerous advantages in API design, readability, discoverability, and performance over a hand-rolled REST API. Unfortunately, adoption of Hypermedia AP...
Daniel Doubrovkine (dB.)by Daniel DoubrovkineSep 18, 2025read🤖 Summary
In today’s AI hype you cannot miss the term “RAG,” which stands for Retrieval Augmented Generation. In plain English, it stands for customizing large language model reasoning with your own context and knowledge. I searched a lot of resources and AI-generated content for this fairly simple technique ...
Here's how to specify a timezone on the client, regardless of their browser location.Why?Why would I want to do this? In my case, I am writing a tool where a user enters time and date for when the business should do certain things. The business operates in Mountain Timezone, so all its times and dat...
In this chapter, we learn how to use the version control system Git and a useful companion website, GitHub. Both are important tools when programming in teams but even help programmers who work on their own.