An interactive intro to CRDTs
CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.
The latest blog posts to take off on Hacker News. 8,469 posts.
CRDTs don't have to be all academic papers and math jargon. Learn what CRDTs are and how they work through interactive visualizations and code samples.
Docker Compose is a brilliant tool for bringing up local development environments for web projects. But working with multiple projects can be a pain due to clashes. For example, all projects want to listen to port 80 (or perhaps one of the super common higher ones like 8000 etc.). This forces developers to only bring…
An exploration of how Extism makes it easy to use WebAssembly
Modern extension to classic 2003 article by Joel Spolsky
I’ll cut to the chase before I type too many more words: textarea { field-sizing: content; /* used to be `form-sizing` but changed to this */ } I came across it via an Amit Merchant blog post…
Many of my interactive pages have a draggable object . I want the reader to move the object around, and I want the diagram to respond in some way. Here I’ll document the code I use to make this work with both mouse and touch input, using browser features that are widely supported since 2020. Here’s a common case I…
I was checking the status of a FedEx order when Brave warned me that “this site has been blocked from accessing your motion sensors”. I’m struggling to understand why a website would need that access. Do I get a different experience if I drop my device? Tip my monitor over? Spin the mouse around?
This post looks at the Closure Compiler, Google's tool from the mid-2000s for adding types to JavaScript. It looks at how its focus on minification led to very different design choices than TypeScript, and how this and a few other factors led to TypeScript becoming the ubiquitous solution for JavaScript + types. The…
Today, we are introducing WebGPU support to Cloudflare Workers. This blog will explain why it's important, why we did it, how you can use it, and what comes next
Automated translation of web content is now available to Firefox users! Unlike cloud-based alternatives, translation is done locally in Firefox, so that the text being translated does not leave your machine. Many thanks to the various partners of the EU R&D Bergamot project.
Learn how to make your TypeScript npm packages accessible and usable by a wider audience in our easy-to-follow tutorial.
While the survey will be open for 3 weeks, responses entered within the first 9 days (until October 1st) will have a much higher impact on the Web, as preliminary data will be used to inform Interop 2024 proposals.
In typography/design, ‘sidenotes’ place footnotes/endnotes in the margins for easier reading. I discuss design choices, HTML implementations and their pros/cons.
As far as I know this is the first Haskell program compiled to Webassembly (WASM) with mainline ghc and using the browser DOM.
Starting in Android 14, it may not be necessary to use a third-party app to turn your smartphone into a webcam for your PC, as that functionality is getting baked into the Android OS itself — though there’s a catch.
Many popular npm packages depend on 6-8x more packages than they need to. Most of these are unnecessary polyfills and it's one of the key reasons node_modules folders are so large. The eslint ecosystem seems to be most affected by this.
I’ve been programming for a long time. When I say long time, I mean decades, with an S. Hopefully that’s long enough. In that time my experience has primarily been programming for contemporary platforms, e.g. Linux, Windows, macOS on desktop-class or server-class CPU architectures. Recently, I embarked on building a…
Rethinking ‘rethinking reactivity’
Behind the scenes - how I'm making redblobgames.com - interactive explanations of game development algorithms and math
For too long, web race condition attacks have focused on a tiny handful of scenarios. Their true potential has been masked thanks to tricky workflows, missing tooling, and simple network jitter hiding
There’s a certain community in tech that’s very vocal about their preference toward native apps. I share that sentiment, yet sometimes people take this …
Recently, I started working on a new LLM-oriented project . It’s currently far from feature-complete and probably filled with bugs, but I’m hoping to use it as a platform for exploring a question I’ve been considering a lot lately: what will LLM-powered software look like in the medium-term future? It seems undeniable…
Download a free IPv4 and IPv6 geolocation database (CSV, CC BY-SA 4.0), or the commercial one with full coverage in CSV and MMDB, updated at least twice a week.
A look back through web-browser history, as I test my site against the browsers of the past.
Back around the time I convinced my family to switch from a 56 kb/s dial-up modem to ADSL, the website milliondollarhomepage.com was launched, and quickly became an Internet phenomenon, selling pixels for advertising space on a 1000x1000 canvas. 18 years later, the homepage is still standing, proudly displaying the…