Watch Transitions in Slow Motion in Chrome’s DevTools
For those of you about to do view transitions, I salute you!
And I pass on this super useful...
1st Jun 2023
For those of you about to do view transitions, I salute you!
And I pass on this super useful (perhaps obvious) piece of information I received from Bramus: watch your animations play out in slow motion using Chrome’s devtools.
I’ve been working on view transitions on my icon...
Yes, I will have coffee with you
On meeting up in meatspace
14th Apr 2025
On meeting up in meatspace
The Boot.dev Beat. December 2025
We plan to wrap up 2025 with some important quality of life updates! League placement badges, lesson...
7th Dec 2025
We plan to wrap up 2025 with some important quality of life updates! League placement badges, lesson bookmarks, and major improvements to the Training Grounds are just a few of the highlights. Thanks for learning with us, we’re gearing up the platform for a ton of new courses in...
Improving Github's New Design
Improving Github's New Design
2020-07-07
Like many other Github users, I am not a big fan of their...
7th Jul 2020
Improving Github's New Design
2020-07-07
Like many other Github users, I am not a big fan of their recent repository page redesign. In my mind it seems like a change just for the sake of change - the original UI worked perfectly fine.
Sigh.
I was planning on recreating the...
Assumed Audiences
Naming your invisible audiences to free yourself from unspoken obligations
8th Jan 2022
Naming your invisible audiences to free yourself from unspoken obligations
How to remove box shadows from input controls on iOS
Those default box shadows that appear inside of your input elements on iOS can be pretty annoying,...
16th Sep 2015
Those default box shadows that appear inside of your input elements on iOS can be pretty annoying, especially if you're going for a flat or subtle look. Here's how to remove them.
Unfortunately, it's not as simple as setting the box-shadow property to none. Instead, you have to...
Rohit Chess
fun little board game
10th Mar 2025
Plates and states
I was recently visiting Vermont for a work trip – my first time in the USA since I was a child.
I...
14th Aug 2024
I was recently visiting Vermont for a work trip – my first time in the USA since I was a child.
I was drawn to the license plates on passing cars, and how they look different to the cars I’m used to.
Whenever I visit new places, I enjoy looking for the tiny bits of infrastructure...
Using `make` to compile C programs (for non-C-programmers)
I have never been a C programmer but every so often I need to compile a C/C++
program from source....
10th Jun 2025
I have never been a C programmer but every so often I need to compile a C/C++
program from source. This has been kind of a struggle for me: for a
long time, my approach was basically “install the dependencies, run make, if
it doesn’t work, either try to find a binary someone has...
Refutation: An acquisition is always a failure
Independent or acquired, companies always evolve, and not always for the better. Smart exits can...
29th Sep 2015
Independent or acquired, companies always evolve, and not always for the better. Smart exits can create opportunities for everyone involved.
Looking back at Rust in 2018
9th Jan 2018
How to Thought Lead (2026)
I first started compiling "How To Thought Lead" in my notes 5 years ago, at first as an ironic...
14th Mar 2026
I first started compiling "How To Thought Lead" in my notes 5 years ago, at first as an ironic parody and then slowly becoming sincere, and never published it, 1) because I don't know if I ever really nailed it / have a complete picture, 2) I was somewhat worried if I published...
A few weird ways of displaying git hashes
I was reading "Real-World Cryptography" and ran across an thought-provoking statement.
While talking...
7th Aug 2023
I was reading "Real-World Cryptography" and ran across an thought-provoking statement.
While talking about why hashes are often represented in hexademical, the author states (emphasis mine):
There are other ways to encode binary data for human consumption, but the two most widely...
Why we still can’t stop plagiarism in undergraduate computer science
Imagine that you’re hired to work at your local public library. As an eagle-eyed
checkout clerk, you...
22nd Mar 2018
Imagine that you’re hired to work at your local public library. As an eagle-eyed
checkout clerk, you soon realize that half the patrons leave without actually
checking out their books! This leaves everyone else scratching their heads when
the catalog doesn’t match the shelves....
On Engineers and Influence
(Based on yesterday’s tweetstorm and the ensuing...
17th Aug 2018
(Based on yesterday’s tweetstorm and the ensuing conversation, https://twitter.com/mipsytipsy/status/1029608573217587201) Let’s talk about influence. As an engineer, how do you get influence? What does influence look like, what is it rooted in, how do you wield it or lose it? How...
FaceTime video/audio broken by Private Internet Access VPN client on Mac
I recently diagnosed that the cause of FaceTime being broken on my Mac was the Private Internet...
3 weeks ago
I recently diagnosed that the cause of FaceTime being broken on my Mac was the Private Internet Access VPN client
Logical Quantifiers in Software
I realize that for all I've talked about Logic for Programmers in this newsletter, I never once...
2nd Jul 2025
I realize that for all I've talked about Logic for Programmers in this newsletter, I never once explained basic logical quantifiers. They're both simple and incredibly useful, so let's do that this week!
Sets and quantifiers
A set is a collection of unordered, unique elements....
Array 1.24.0
Welcome to The PostHog Array 1.24.0! Quite a lot has changed since we last talked... Community MVP...
14th Apr 2021
Welcome to The PostHog Array 1.24.0! Quite a lot has changed since we last talked... Community MVP 🏆 This release cycle's Community MVP goes to…
Free idea: design token ugly mode
A lot of work goes into making every page and view of a website or webapp look consistent with every...
1st Jul 2024
A lot of work goes into making every page and view of a website or webapp look consistent with every other page or view. It’s just good design.
Smaller, newer experiences tend to be more uniform than not. This makes sense in that the bulk of the experience is created at the same...
Top layer troubles: popover vs. dialog
by Stephanie Eckles
Have you ever tried to set z-index: 9999 to solve element layering issues? If...
1st Dec 2025
by Stephanie Eckles
Have you ever tried to set z-index: 9999 to solve element layering issues? If so, you’ve been fighting a fundamental CSS concept of stacking contexts.
The stacking context defines the order things are placed in the third dimension, or the “z” axis. Think of...
Data Binding in React
As developers, we don't like working with forms, but they're a critical part of most web...
9th Jan 2023
As developers, we don't like working with forms, but they're a critical part of most web applications! In this tutorial, you'll learn exactly how to wire up all of the different form controls in React. Never forget how to data-bind a checkbox or radio button again!
Searching the Creative Internet
Searching the Creative Internet
I had of late been lamenting the loss of the internet of the...
18th May 2018
Searching the Creative Internet
I had of late been lamenting the loss of the internet of the 1990s.
A place where everything was obscure or new.
If you saw something mainstream like a Disney princess, it was because
someone had taken the time to handcraft an ASCII art...
The Inverted Reactivity Model of React
A quick take on the 'inverted' reactivity model of React compared to vanilla JS, Vue, and other...
27th Jan 2025
A quick take on the 'inverted' reactivity model of React compared to vanilla JS, Vue, and other frameworks.
Recently
Listening
My friend Dave Infante has been busy – he launched his own
beer-centric podcast, Taplines,...
1st Jun 2023
Listening
My friend Dave Infante has been busy – he launched his own
beer-centric podcast, Taplines, and guest-starred on the enormous
Chapo Trap House podcast.
Reading
It’s been a slow few weeks for books, but since I skipped
Recently in May, I can still talk about Achieving...
RC Week 7: Four habits to improve as a programmer
Seven weeks down, five weeks to go!
It's flying by quickly.
On the one hand, I want it to last...
4th Nov 2022
Seven weeks down, five weeks to go!
It's flying by quickly.
On the one hand, I want it to last forever.
On the other hand, I know it can't, and I'm looking forward to talking to coworkers again at my day job when I go back.
RC has given me a renewed appreciation for what I get at...
Thank You For Being a Friend
It's been one of those months, and by that, I mean one of the 663 months since I was born. This...
20th Apr 2026
It's been one of those months, and by that, I mean one of the 663 months since I was born. This won't be a long post, because I only have two things to say. First, I'm really glad we re-ordered the GMI (Guaranteed Minimum
Self-Hosting Fathom Analytics with DigitalOcean
Self-Hosting Fathom Analytics with DigitalOcean
2021-02-02
Since my previous post walked through the...
2nd Feb 2021
Self-Hosting Fathom Analytics with DigitalOcean
2021-02-02
Since my previous post walked through the process of setting up Fathom PRO on Netlify, I figured it made sense to create a similar tutorial for the "Lite" variation, self-hosted on DigitalOcean.
Please note that while I...
Great things about Rust that aren't just performance
Nearly every line of code I write for fun is in Rust.
It's not because I need great performance,...
6th Jan 2025
Nearly every line of code I write for fun is in Rust.
It's not because I need great performance, though that's a nice benefit.
I write a lot of Rust because it's a joy to write code in.
There is so much else to love about Rust beyond going fast without segfaults.
Here are a few...
Good names form Galois connections
1st Apr 2024
自営業している開発者の事例

[IT飲み会名古屋](http://www.it-nomikai.jp/nagoya/before-info/...
Using Parent Selectors in CSS
Using Parent Selectors in CSS
2018-12-19
I recently saw a Twitter thread posted by Tommy Hodgins on...
19th Dec 2018
Using Parent Selectors in CSS
2018-12-19
I recently saw a Twitter thread posted by Tommy Hodgins on implementing highly requested styling features in CSS with only a minimal amount of JavaScript. Many of his examples are great, but the parent selector instantly peaked my...
Peritext: A CRDT for Rich-Text Collaboration
Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and...
23rd Nov 2021
Collaboration on rich text is hard to model with plain-text approaches. We review the challenges and how to construct a CRDT for rich text.
Fine-grained provenance, Automerge updates
Some explorations of new editor interactions for writing science papers, and a trio of projects...
17th Oct 2024
Some explorations of new editor interactions for writing science papers, and a trio of projects advancing the future of Automerge.
Naked Emperors in Tech
Some things we often repeat as truth just aren't. We should call bullshit more often.
6th Nov 2020
Some things we often repeat as truth just aren't. We should call bullshit more often.
An algorithm for shuffling playlists
22nd Jul 2023
Tag your infrastructure-as-code resources with a link to their definitions
The aspiration of infrastructure-as-code tools is that you use them to manage everything.
You create...
18th Aug 2023
The aspiration of infrastructure-as-code tools is that you use them to manage everything.
You create all your resources by writing a file that defines them, and any time you change something, you update the definition in that file.
It’s a nice idea, but easier said than...
Dinosaur pie!
I wanted to make a special pie for my amazing boyfriend, Matt, on his birthday a month ago....
30th Mar 2015
I wanted to make a special pie for my amazing boyfriend, Matt, on his birthday a month ago. Naturally, I decided to make an apple pie because he likes apple pie and because I can make a mean apple pie with fresh ground cinnamon and a small amount of pre-cooking the apples on the...
I'm still fed up and a browser is coming along fine
I'm still fed up and a browser is coming along fine
16th Dec 2023
I'm still fed up and a browser is coming along fine
The Boot.dev Beat. April 2025
The Lord of the Mire has been the hardest boss yet (by far), weighing it with 150,000,000 HP. The...
27th Apr 2025
The Lord of the Mire has been the hardest boss yet (by far), weighing it with 150,000,000 HP. The community rallied during the event, dealing a whopping 132,282,452 damage in total, but not quite enough to bring him down.
Northern Sky & Southern Sky quilts
I find a lot of value in doing creative work that isn't in clay - I can feel more fully relaxed...
3rd Jul 2025
I find a lot of value in doing creative work that isn't in clay - I can feel more fully relaxed creating something that's purely a hobby, and working in other mediums inspires my ceramic studio practice in unexpected ways. I recently finished a very large, non-ceramic project:...
React End-to-End Testing with Playwright (workshop)
Master Playwright end-to-end testing: setup, authentication (basic, 2FA, passkeys), mocking,...
5th May 2026
Master Playwright end-to-end testing: setup, authentication (basic, 2FA, passkeys), mocking, fixtures, and debugging with UI mode and Trace Viewer.
New talk: Learning DNS in 10 years
Here’s a keynote I gave at RubyConf Mini last year: Learning DNS in 10 years.
It’s about strategies...
8th May 2023
Here’s a keynote I gave at RubyConf Mini last year: Learning DNS in 10 years.
It’s about strategies I use to learn hard things. I just noticed that they’d
released the video the other day, so I’m just posting it now even though I gave
the talk 6 months ago.
Here’s the video, as...
Classic rock, Mario Kart, and why we can't agree on Tailwind
It's popular to say we can’t agree on Tailwind, but I posit we actually already do. I think what we...
26th Sep 2023
It's popular to say we can’t agree on Tailwind, but I posit we actually already do. I think what we actually disagree on isn’t the details of this (or any) specific software; it's in what we value, and how we each define assets and liabilities.
Support for Stripe Payment Links
It's even easier to get paid subscribers with Stripe's new Payment Links
9th Sep 2021
It's even easier to get paid subscribers with Stripe's new Payment Links
Cookie banners show everything that's wrong with the EU
Companies have spent billions on cookie banner compliance only to endlessly annoy users with no...
5th Aug 2024
Companies have spent billions on cookie banner compliance only to endlessly annoy users with no material improvement to their privacy, but this unsightly blight is still with us (and the rest of the internet!). All because the EU has no mechanism for self-correcting its...
Spirograph fun in Kidz Fun Art
For a long time I’ve wanted to add Spirographs to my (awesome ) drawing app for kids, Kidz Fun Art,...
12th Jun 2026
For a long time I’ve wanted to add Spirographs to my (awesome ) drawing app for kids, Kidz Fun Art, and today it’s ready! There was quite a bit of fun mathematics in getting it to feel natural and work with all sizes of circles, but it seems to have worked out very...
never give up
Why do fun project ideas end up dead even when they are feature complete? The fear of unknown timed...
30th Sep 2021
Why do fun project ideas end up dead even when they are feature complete? The fear of unknown timed tasks is why I'll tell you what.
I Like Makefiles
I like makefiles. I first used a makefile more than ten years ago. Even back then, it looked like...
18th Sep 2024
I like makefiles. I first used a makefile more than ten years ago. Even back then, it looked like some ancient technology used by the graybeard Linux wizards. Years passed, and new build tools came and went, but I kept seeing makefiles still used here and there. I got used to...
Why Is Xcode So Antagonistic To Reduced Vision?
My eyesight is generally OK, but I have trouble reading small text, especially medium gray on light...
17th Sep 2025
My eyesight is generally OK, but I have trouble reading small text, especially medium gray on light gray backgrounds. I usually code in 16 or even 18 point fonts, currently Atkinson Hyperlegible Mono. Every new release of Xcode makes seeing various UI elements harder, as if the...
Vue 3x3 - A Mental Model for Building Fast
A mental model for helping you get oriented with with Vue3 and Composition API
14th Jan 2023
A mental model for helping you get oriented with with Vue3 and Composition API
Bringing Your Pets to Japan
This is the post in forums that always makes me wince: “I’ve just been hired and am moving to Japan!...
11th Jul 2024
This is the post in forums that always makes me wince: “I’ve just been hired and am moving to Japan! Can I bring my dog with me?”
The reason it causes me pain is that I know the poster is already too late. If they wanted to relocate to Japan with their dog, they needed to start...
Unicorn Market Cap 2026: SF is the GenAI Super Cluster
The San Francisco Bay area has morphed into a massive AI supercluster with 91% of market cap
16th Apr 2026
The San Francisco Bay area has morphed into a massive AI supercluster with 91% of market cap
Returning to Free Software, a guide
15th Jun 2013
IndexedDB is Weird
Why? Well: The IndexedDB API is callback-based. With JavaScript being single-threaded, a blocking...
3rd Mar 2025
Why? Well: The IndexedDB API is callback-based. With JavaScript being single-threaded, a blocking API would mean fully blocking the page, render and basic user interaction included, while the request is being processed. Although this is apparently good-enough for JSON.parse(),...
The EU-US data deal may be dead in the water
11th Mar 2025
Predictability.
Right now I’m reading Michael S. Malone’s The Big Score, and one thing that I love about it is how...
1st Jan 2024
Right now I’m reading Michael S. Malone’s The Big Score, and one thing that I love about it is how much it believes that key individuals drive and create industries. It’s an infectious belief, and a necessary one to write a concise, coherent narrative story about the origins of...
Localization
Localization
1st May 2025
Notes on cone 6 clay bodies, part 1
One of the things I love most about working in a community studio is hearing about other...
12th May 2024
One of the things I love most about working in a community studio is hearing about other ceramicists' experiences with new-to-me clay bodies. This has helped me feel confident in trying out many different clay bodies, and I now use a bunch of different clay bodies in my...
April updates
March was a big month for Buttondown. Lots of new features, and even more coming up soon!
8th Apr 2019
March was a big month for Buttondown. Lots of new features, and even more coming up soon!
Binary search
The page contains interactive plots to play with different strategies and distributions.
12th Feb 2020
The page contains interactive plots to play with different strategies and distributions.
Why you should continue working on your bad idea
* Tweet [https://twitter.com/share]
*
* Buffer [http://bufferapp.com/add]
*
> "The brick...
1st Sep 2012
* Tweet [https://twitter.com/share]
*
* Buffer [http://bufferapp.com/add]
*
> "The brick walls are there for a reason. The brick walls are not there to keep
us out; the brick walls are there to give us a chance to show how badly we want
something. The brick walls are...
Double your productivity without more work or stress
People love to say that getting "1% better per day" makes you 37x better after a year, but this...
4th Aug 2024
People love to say that getting "1% better per day" makes you 37x better after a year, but this obviously makes no sense. But 2x better is possible.
Set Explicit Help Timeouts
A simple way to normalize asking for help.
5th Apr 2021
A simple way to normalize asking for help.
Code reviews
And why they're probably the most important software engineering skill
5th Dec 2025
And why they're probably the most important software engineering skill
Notes on Improving Churn
Ask any B2C SaaS founder what metric they’d like to improve and most will say reducing churn....
12th Mar 2025
Ask any B2C SaaS founder what metric they’d like to improve and most will say reducing churn. However, proactively reducing churn is a difficult task. I’ll outline the approach we’ve taken at Jenni AI to go from ~17% to 9% churn over the past year. We are still a work in progress...
Bypassing the WiFi Hardware Switch on the Lenovo X201
Bypassing the WiFi Hardware Switch on the Lenovo X201
2023-04-02
I recently received a ThinkPad X201...
2nd Apr 2023
Bypassing the WiFi Hardware Switch on the Lenovo X201
2023-04-02
I recently received a ThinkPad X201 to start using as my daily driver. I purchased the X201 to replace my existing X260. Although some might look at this as a “downgrade” in terms of specs and hardware, I would have...
Don't ask me to embarrass myself.
Or: Please Lucy, stop asking me to kick the football.
18th Jul 2024
Or: Please Lucy, stop asking me to kick the football.
Cocoa brownies
Cocoa brownies are pretty magical, i.e. particularly good at staying soft and gooey, and Alice...
16th Aug 2018
Cocoa brownies are pretty magical, i.e. particularly good at staying soft and gooey, and Alice Medrich's ingredient list is nearly flawless. (Okay, okay, I can never truly stick to a recipe as written. Here, I prefer a little more vanilla extract and like to put a pinch of flaky...
Bidirectional Scrolling: Why Not Both?
Bidirectional Scrolling: Why Not Both?
2020-11-09
I recently came across Adam Silver’s post about...
9th Nov 2020
Bidirectional Scrolling: Why Not Both?
2020-11-09
I recently came across Adam Silver’s post about the merits and pitfalls of bidirectional scrolling and found myself conflicted with the design arguments put forth in the article. It’s a very good article overall, and I suggest...
Stuff I've been working on
It’s been around 2 years that I’ve had to stop with my long-term addiction to stable jobs.
Quite a...
7th Oct 2024
It’s been around 2 years that I’ve had to stop with my long-term addiction to stable jobs.
Quite a few people who read this blog are wondering what the hell exactly I’ve been doing since then so I’m going to update all of you on the various projects I’ve been working on.
Meme...
Goodreads lost all of my reviews
Goodreads lost my entire account last week. Nine years as a user,
some 600 books and 250 carefully...
28th Feb 2022
Goodreads lost my entire account last week. Nine years as a user,
some 600 books and 250 carefully written reviews all deleted and
unrecoverable. Their support has not been helpful. In 35 years of
being online I've never encountered a company with such callous
disregard for their...
IC internals: Internet Identity storage
12th Oct 2022
Is development the right career for me?
Hello dear reader, first off all, I want to acknowledge the weight of the question you’re grappling...
13th Aug 2023
Hello dear reader, first off all, I want to acknowledge the weight of the question you’re grappling with. It’s one […]
The post Is development the right career for me? appeared first on Vadim Kravcenko.
Jitbit Helpdesk Bot is now in the Microsoft Teams Store
Our new Microsoft Teams app just passed Microsoft's certification and is live in the Teams Store:...
8th May 2026
Our new Microsoft Teams app just passed Microsoft's certification and is live in the Teams Store: Jitbit Helpdesk Bot. Search "Jitbit" in the Teams app store and it's right there - no custom app uploads, no admin-center gymnastics.
Unlike our old webhook integration (one-way...
Buying a House in Portland
After nearly 6 months of looking, my wife and I finally bought a house in Portland. We physically...
13th Oct 2016
After nearly 6 months of looking, my wife and I finally bought a house in Portland. We physically toured more than 70 houses, put in 13 offers and looked over hundreds of listings in nearly every neighborhood in the city. I thought it might be a good time to reflect on the...
How often should you send your newsletter?
Consistency, timing, psychology, resources.. everything you need to make your decision on how often...
4th Mar 2024
Consistency, timing, psychology, resources.. everything you need to make your decision on how often to publish.
Has Anyone Noticed How Bloated The Internet Has Become?
I was on a cruise recently, and trying to read anything online was painful since thousands shared my...
13th Jun 2023
I was on a cruise recently, and trying to read anything online was painful since thousands shared my internet connection at sea. Reading a relatively lightweight site like Google News generally gave me time to get an ice cream cone before the page appeared.
Has everyone abandoned...
The Pulse: a new trend, smart model routing
Are there any ‘intelligent’ router solutions out there which select the right model for the right...
2nd Jul 2026
Are there any ‘intelligent’ router solutions out there which select the right model for the right task? I looked into it, and there are a few options.
Winner, Name that Ware May 2023
Last month’s ware is the Automatic AUT-450C “Connected Car Assistant” (OBD-II code scanner and GPS...
30th Jun 2023
Last month’s ware is the Automatic AUT-450C “Connected Car Assistant” (OBD-II code scanner and GPS tracker with cellular, WiFi, and Bluetooth connectivity). The company went out of business shortly after the start of the pandemic. Here’s some more views of the ware — I had left...
On How Long it Takes to Know if a Job is Right for You or Not
A few eagle-eyed readers have noticed that it’s been 4 weeks since my last entry in what I have been...
8th Jun 2025
A few eagle-eyed readers have noticed that it’s been 4 weeks since my last entry in what I have been thinking of as my “niblet series” — one small piece per week, 1000 words or less, for the next three months. This is true. However, I did leave myself some wiggle room in my...
[2012] FachMe mentioned on Voicebox
Recalling the time in 2012 when my opera related software project was discussed on a local public...
19th May 2025
Recalling the time in 2012 when my opera related software project was discussed on a local public radio program
Snowsports and the Normalisation of Deviance
Les Dents du Midi, March 2025
There’s a mountain range visible from the office here that i’ve looked...
4th May 2025
Les Dents du Midi, March 2025
There’s a mountain range visible from the office here that i’ve looked at almost everyday for the last 12 years, when weather conditions allow of course. Les Dents du Midi. Often i’ve thought “I wonder if anyone has ever skied or snowboarded down one...
How Tailscale tracked down a 16-year-old SQLite bug →
I wrote a post for the Tailscale blog about a long-running series of corruption incidents, and how...
13th Aug 2026
I wrote a post for the Tailscale blog about a long-running series of corruption incidents, and how they eventually led us to find an SQLite bug that predates my entire programming career.
I’m incredibly proud of this, both the work and the blog post.
Before Tailscale, I was...
Create a Performance-Focused WordPress Blog
Create a Performance-Focused WordPress Blog
2021-09-08
With my recent switch back to WordPress, and...
8th Sep 2021
Create a Performance-Focused WordPress Blog
2021-09-08
With my recent switch back to WordPress, and having read Kev Quirk’s latest post about Core Web Vitals, I wanted to make sure my blog still prioritized speed and performance above all else. I’m happy to say that I have...
And You Will Know Us by the Company We Keep
It feels as if we're at the tail end of the first era of social media in the West. Looking back at...
10th Oct 2021
It feels as if we're at the tail end of the first era of social media in the West. Looking back at the companies that have survived, certain application architectural choices are ubiquitous. By now, we're all familiar with the infinite vertical scrolling feed of content units,...
Turning Claude into Postgres so I can raise a Series A
Watch out, Databricks
1st Aug 2026
The Apple GPU and the Impossible Bug
In late 2020, Apple debuted the M1 with Apple’s GPU architecture,
AGX, rumoured to be derived from...
13th May 2022
In late 2020, Apple debuted the M1 with Apple’s GPU architecture,
AGX, rumoured to be derived from Imagination’s PowerVR series. Since
then, we’ve been
reverse-engineering AGX and building open source graphics drivers. Last
January, I rendered a triangle
with my own code, but...
Validating URLs and email addresses in PHP
This is a simple method for validating both email addresses and URLs. Using PHP's filter_var()...
18th Sep 2013
This is a simple method for validating both email addresses and URLs. Using PHP's filter_var() function, it's actually very easy and doesn't require regular expressions. The following wrapper functions force a true boolean response, so you can use them safely in your logic.
Email...
What I'm up to - November 2023
This is my monthly newsletter about what I'm up to, which I send in place of social media. What I...
1st Nov 2023
This is my monthly newsletter about what I'm up to, which I send in place of social media. What I did in October - Switched my daily driver Aeropress coffee recipe to this one by Jonathan Gagné. It p...
GTK 4 Porting And A Bit Of Whimsy
I want to start off this post by saying, “Thank you!” to our now over 250 sponsors on GitHub for...
4th Mar 2024
I want to start off this post by saying, “Thank you!” to our now over 250 sponsors on GitHub for helping us reach 20% of our monthly funding goal! I’ve been seeing a ton of demand for Early Access which is super exciting. If you’re not already in Early Access, you can be among...
How to Build the Best GitHub Profile for Your Job Search
I’ve reviewed a lot of resumes, both as an engineering manager and in the monthly resume workshops...
4th Mar 2022
I’ve reviewed a lot of resumes, both as an engineering manager and in the monthly resume workshops we do in the Boot.dev Discord group. I’m convinced that these days a developer’s GitHub profile is just as important as their resume itself. If you haven’t started your first job...
Comments in the classic theme
Comments in the classic theme
5th Jan 2025
Comments in the classic theme
Golang vs C++: Which is Best For Your Next Project
Needing to be a math genius to learn to code is a thing of the past. High-level programming...
12th Jul 2021
Needing to be a math genius to learn to code is a thing of the past. High-level programming languages offer an alternative to low-level machine code, which makes coding more accessible than ever. Let’s dive into how Golang, a modern higher-level language, matches up to C++, a...
My experience with Vulcanus in Japan, a training programme for EU engineering students
My journey in Japan started in a slightly unconventional way. While there are several paths to enter...
21st Nov 2023
My journey in Japan started in a slightly unconventional way. While there are several paths to enter the country, such as a working holiday visa, English teaching, or getting hired by one of the [many wonderful companies](http://www.tokyodev.com/companies), posting jobs on...
01 · A spreadsheet for exploring scenarios
In our *Ambsheets* project, we are exploring a small extension to the familiar spreadsheet: **what...
4th Feb 2025
In our *Ambsheets* project, we are exploring a small extension to the familiar spreadsheet: **what if a single spreadsheet cell could hold multiple values at once**?
Golden Glide Silhouette
This Golden Eagle soared past me today and I managed to capture a couple of frames. Magnificent to...
9th Jul 2022
This Golden Eagle soared past me today and I managed to capture a couple of frames. Magnificent to watch.
Winner, Name that Ware March 2023
The Ware for March 2023 is the controller board from a Hövding 3 “Airbag for Urban Cyclists”....
30th Apr 2023
The Ware for March 2023 is the controller board from a Hövding 3 “Airbag for Urban Cyclists”. Congrats to jackw01 for arriving at the correct answer! congrats, email me for your prize. This one was surprisingly difficult to guess from just the PCB alone, but once the associated...
Eternal Robustness
"Look, you can trust us. We can be depended upon. We are serious about our products and we take...
10th Sep 2023
"Look, you can trust us. We can be depended upon. We are serious about our products and we take great care to provide you with excellence year after year. Your involvement with us will be predictable and stable."
Self-hosting your code on Gitea
Afraid of GitHub suddenly enshittifying their product?
The best way to shield yourself from that is...
16th Oct 2025
Afraid of GitHub suddenly enshittifying their product?
The best way to shield yourself from that is to start self-hosting your code repositories.
I have been running a self-hosted instance of Gitea for around two months,
and so far the process has been pretty close to...
you will blame the wrong people
Billionaires, am I right?
Immigrants, am I right?
It’s going to be so painful to...
1st Sep 2025
Billionaires, am I right?
Immigrants, am I right?
It’s going to be so painful to watch.
Billionaires will go away.
Immigrants will go away.
The problems will continue to get worse.
The problem is the unproductive. The rich unproductive and the poor unproductive. The finance...
Leaving Intel
InnovatiON 2022
AI Flame Graphs
GPU Flame Scope
Harshad Sane
SREcon APAC
Cloud strategy
Last...
4th Dec 2025
InnovatiON 2022
AI Flame Graphs
GPU Flame Scope
Harshad Sane
SREcon APAC
Cloud strategy
Last day
I've resigned from Intel and accepted a new opportunity. If you are an Intel employee, you might have seen my fairly long email that summarized what I did in my 3.5 years. Much...
Accessible, Typesafe, Progressively Enhanced Modern Web Forms
Learn how to use modern tools that offer the best user and developer experience for web forms.
2nd Oct 2023
Learn how to use modern tools that offer the best user and developer experience for web forms.
Happier development
On programming "the good old fashioned way"
26th Mar 2026
On programming "the good old fashioned way"
A Beginner's Guide to Continuous Integration in Python
Imagine this: you're working on a Python project, and you're annoyed that each time you create a new...
23rd Dec 2023
Imagine this: you're working on a Python project, and you're annoyed that each time you create a new merge (or pull) request, you must remember to run tests. Or maybe you configured your code editor to run black each time you save a file, but your colleagues didn't. Every time...
Git Super-Power: The Three-Way Merge
tl;dr: git config --global merge.conflictstyle diff3 In my previous post, I preached about the one...
1st May 2024
tl;dr: git config --global merge.conflictstyle diff3 In my previous post, I preached about the one true way to merge MRs in a git workflow. The answer is obviously to rebase for conflicts, and a merge commit for posterity of the MR. What I did not talk about is that there is a...
If You Sell Anything Online, This Book Will Make You Money
My glowing review of Rob Hope's Landing Page Hot Tips Book
7th Sep 2020
My glowing review of Rob Hope's Landing Page Hot Tips Book
Agents are commoditizing the complement
Implementation — writing code — is a complement to specification — writing
down what the code...
3rd Nov 2025
Implementation — writing code — is a complement to specification — writing
down what the code should do. Agents are commoditizing the former, pushing
up demand for the latter.
Don’t forget to localize your icons
Former United States president and war criminal George W. Bush gave a speech in Australia, directing...
11th Nov 2024
Former United States president and war criminal George W. Bush gave a speech in Australia, directing a v-for-victory hand gesture at the assembled crowd. It wasn’t received the way he intended.
What he failed to realize is that this gesture means a lot of different things to a...
Array 1.8.0
What's box-fresh in PostHog? Cumulative graphs, better paths, and an upgrade to our actions. If...
3rd Jun 2020
What's box-fresh in PostHog? Cumulative graphs, better paths, and an upgrade to our actions. If you're self hosting and want these features - update…
More Apps, More Features, More Cowbell!
Hot off the release of OS 8.0.2, we’ve got a great new batch of feature updates for you as we get...
6th Oct 2025
Hot off the release of OS 8.0.2, we’ve got a great new batch of feature updates for you as we get closer to the release of elementary OS 8.1!
Maps
The first stable release of elementary Maps is now available for download on any Linux OS. For now we’ve focused on some of the...
Congrats to IHMC Robotics for winning Bronze in my Humanoid Olympics: Doors Event
Round Knob Push Door with a time of 18 Seconds
16th Oct 2025
Round Knob Push Door with a time of 18 Seconds
Building a metadata database with AI agents
Rebuilding a 20 year old side project in the AI era. Some things I’ve learned about building...
31st May 2026
Rebuilding a 20 year old side project in the AI era. Some things I’ve learned about building applications where agents act as users.
Web Development on a $200 Chromebook
Web Development on a $200 Chromebook
2020-01-07
This blog post was written, edited and tested...
7th Jan 2020
Web Development on a $200 Chromebook
2020-01-07
This blog post was written, edited and tested locally on a cheap $200 Chromebook. The article draft was composed in Sublime Text. Jekyll (the SSG this website uses) was generated via the Linux Beta Terminal running alongside Chrome...
?? "" is a Code Smell
Defaulting to empty string is a lie we tell our type checker.
12th Apr 2022
Defaulting to empty string is a lie we tell our type checker.
Building openring with Jekyll Build
Building openring with Jekyll Build
2022-12-02
I think it’s great when bloggers post their own...
2nd Dec 2022
Building openring with Jekyll Build
2022-12-02
I think it’s great when bloggers post their own personal “reading list” of blogs they themselves follow. Whether this is a customized Blogroll page or footnotes in their individual articles, I find it really helpful to find more...
A Web App Store That Makes The Web Safer
Maintaining security & privacy without the loss of convenience
The Price of Security
Enter OpenID &...
24th Oct 2014
Maintaining security & privacy without the loss of convenience
The Price of Security
Enter OpenID & OAuth
Unnecessary Access
The Idea
Why would they pay?
Potential Stumbling Blocks
Can you really sleep safe on all those passwords? Image "Sweet Dreams…" by pulpoluxA Platform to...
Some things that make Rust lifetimes hard to learn
After I wrote YARR (Yet Another Rust Resource, with requisite pirate mentions), one of my friends...
3rd Mar 2025
After I wrote YARR (Yet Another Rust Resource, with requisite pirate mentions), one of my friends tried it out.
He gave me some really useful insights as he went through it, letting me see what was hard about learning Rust from a newcomer's perspective.
Unsurprisingly, lifetimes...
Array 1.16.0
Following our largest release to date, we are now back on a more regular release schedule. And,...
4th Nov 2020
Following our largest release to date, we are now back on a more regular release schedule. And, given that scalability was the focus of the previous…
I Fight For The Users
If you haven't been able to keep up with my blistering pace of one blog post per year (if that), I...
30th Nov 2023
If you haven't been able to keep up with my blistering pace of one blog post per year (if that), I can't blame you. There's a lot going on right now. It's a busy time. But let's pause and take
How to survive an acquisition
Last week Facebook announced that they will be shutting down Parse. I have so, so many feelings....
3rd Feb 2016
Last week Facebook announced that they will be shutting down Parse. I have so, so many feelings. But this isn’t about my feelings now. This is about what I wish I had known when we got acquired. When they told us we were getting acquired, it felt like a wrecking ball to the...
Writing a custom Codeception module
How to write a custom Codeception module and distribute it as a Composer package.
19th Mar 2014
How to write a custom Codeception module and distribute it as a Composer package.
Statistics made simple
I have a weird relationship with statistics: on one hand, I try not to look at it too often. Maybe...
15th Dec 2025
I have a weird relationship with statistics: on one hand, I try not to look at it too often. Maybe once or twice a year. It’s because analytics is not actionable: what difference does it make if a thousand people saw my article or ten thousand?
I mean, sure, you might try to...
On Opening Essays, Conference Talks, and Jam Jars
How to open pieces of narrative non-fiction writing, conference talks, and sticky jars
13th Apr 2024
How to open pieces of narrative non-fiction writing, conference talks, and sticky jars
You are never taught how to build quality software
Learning how to build quality software is not part of computer science education. How do we learn...
7th Dec 2023
Learning how to build quality software is not part of computer science education. How do we learn it?
Golang vs C++: Which is Best For Your Next Project
Needing to be a math genius to learn to code is a thing of the past. High-level programming...
12th Jul 2021
Needing to be a math genius to learn to code is a thing of the past. High-level programming languages offer an alternative to low-level machine code, which makes coding more accessible than ever. Let’s dive into how Golang, a modern higher-level language, matches up to C++, a...
The Swyx.io 2022 Rewrite
Discussing the 2022 migration of swyx.io to SvelteKit and GitHub Issues
27th Jan 2022
Discussing the 2022 migration of swyx.io to SvelteKit and GitHub Issues
Not all blog posts are created equal
For a while now, this website has been my own personal writer’s block.
I was struggling to write,...
26th Dec 2024
For a while now, this website has been my own personal writer’s block.
I was struggling to write, even when I had good ideas; if I wrote something I liked, I was often reluctant to publish it; if somebody asked to read the site, I’d wince before giving them the link.
Something...
The World’s Computer
This was the tagline of Ethereum, and it’s really smart. Sadly, I feel they have lost their way with...
25th Feb 2024
This was the tagline of Ethereum, and it’s really smart. Sadly, I feel they have lost their way with Proof of Stake, and wish they would go back to focusing on building a reasonable world computer.
In 2024, it’s still painfully annoying to stand up a database. This is the only...
Greensburg Tornado Disaster Relief
Greensburg
I know that this is a goofy little tech blog, but I think that a disaster that hit close...
7th May 2007
Greensburg
I know that this is a goofy little tech blog, but I think that a disaster that hit close to home (for me anyway) needs more attention than it's getting. My fear is that the Greensburg tornado will fade from the public mind just as quickly as it came. I would like to...
p-fast trie: lexically ordered hash map
Here’s a sketch of an idea that might or might not be a good idea.
Dunno if it’s similar to...
4th Aug 2025
Here’s a sketch of an idea that might or might not be a good idea.
Dunno if it’s similar to something already described in the literature
– if you know of something, please let me know via the links in the
footer!
The gist is to throw away the tree and interior pointers from...
Changing text style for DandeGUI window output
<![CDATA[Printing rich text to windows is one of the planned features of DandeGUI, the GUI library...
12th May 2025
<![CDATA[Printing rich text to windows is one of the planned features of DandeGUI, the GUI library for Medley Interlisp I'm developing in Common Lisp. I finally got around to this and implemented the GUI:WITH-TEXT-STYLE macro which controls the attributes of text printed to a...
The Boot.dev Beat. March 2025
Our new JavaScript course is live! ThePrimeagen’s course on building your own HTTP server from...
7th Mar 2025
Our new JavaScript course is live! ThePrimeagen’s course on building your own HTTP server from scratch is just around the corner, and the TypeScript track couldn’t be closer.
The UX of Proving Our Humanity To Machines
What happens when we can't convince machines that we are human?
3rd Dec 2020
What happens when we can't convince machines that we are human?
Making AWS Amplify work with Rollup
AWS Amplify assumes CommonJS, which Rollup is allergic to. I recently discovered that you can make...
2nd Jun 2020
AWS Amplify assumes CommonJS, which Rollup is allergic to. I recently discovered that you can make it work with Rollup with a few tweaks.
My productivity rules
A friend asked me for some study/productivity tips, and I figured the most productive thing I can do...
8th Oct 2025
A friend asked me for some study/productivity tips, and I figured the most productive thing I can do is write a post about it. That way, it might help more people too. So here we go.
Before we start, there are two things you need before any productivity advice will work:
Be...
Finding the Closest Element Through Shadow Roots
A great trick to find the closest element in the DOM that matches an arbitrary selector is...
13th Sep 2021
A great trick to find the closest element in the DOM that matches an arbitrary selector is Element.closest().
// Starts at el and walks the DOM until it finds a parent element
// that matches the selector. In this case, it will return the
// <body>...
Name that Ware, March 2025
The Ware for March 2025 is shown below. I was just taking this thing apart to see what went wrong,...
31st Mar 2025
The Ware for March 2025 is shown below. I was just taking this thing apart to see what went wrong, and thought it had some merit as a name that ware. But perhaps more interestingly, I was also experimenting with my cross-polarized imaging setup. This is a technique a friend of...
My first podcast appearance
A few months ago David Perell emailed and asked if I'd like to be on his podcast, The North Star. He...
10th Jan 2018
A few months ago David Perell emailed and asked if I'd like to be on his podcast, The North Star. He mentioned some of the other people he'd had on, so many of whom I admire, and I thought he had emailed the wrong person. But no, he had done his research and knew a lot about my...
What I'm up to - January 2026
Here is my monthly newsletter about what I'm up to, which I send in place of social media. What I...
1st Jan 2026
Here is my monthly newsletter about what I'm up to, which I send in place of social media. What I did in December - Visited Boulder - Launched a print edition of Contraption Company, which was a fun ...
The Caretakers
If you haven’t been paying attention, which is likely given the small corner of the web I’m going to...
8th Aug 2026
If you haven’t been paying attention, which is likely given the small corner of the web I’m going to cover, you may have missed that BINGOS just hit 247 consecutive monthly uploads to CPAN1. This is noteworthy as it surpasses DROLSKY’s record set a while back.
That’s an upload to...
Building an Arcade Stick
I’ve been into playing games on my RetroPie machine lately and thought it would be cool to build an...
3rd Jun 2019
I’ve been into playing games on my RetroPie machine lately and thought it would be cool to build an arcade stick (also called a “fight stick”). Here’s the finished product:
Materials and Components
I had some leftover IKEA oak butcher block from a kitchen project and I thought...
Mission Control — Web
You might have noticed that Mission Control — Jobs, isn’t simply titled “Mission Control”. That’s...
9th May 2024
You might have noticed that Mission Control — Jobs, isn’t simply titled “Mission Control”. That’s because it was developed alongside another useful tool, Mission Control — Web.
Today I’m pleased to announce that we are open sourcing Mission Control — Web and you can find it on...
The paper computer
Now that we have actually good AI, I have this vision of a form of computing that doesn’t involve me...
9th Apr 2026
Now that we have actually good AI, I have this vision of a form of computing that doesn’t involve me using a computer so much. Imagine you had the day’s emails to go through. It would be nice if the ones that required a simple decision could be dispatched with a few pen-strokes:...
The Grumpy Cricket (And Other Enormous Creatures)
This Christmas, one of my gifts to my kids was a text adventure (interactive fiction) game for them....
25th Dec 2023
This Christmas, one of my gifts to my kids was a text adventure (interactive fiction) game for them. Now that they’ve enjoyed it, I’m releasing it under the GPL v3. As interactive fiction, it’s like an e-book, but the reader is also the player, guiding the exploration of the...
Focus on the line, not the dot
* Tweet [https://twitter.com/share]
*
* Buffer [http://bufferapp.com/add]
*
Yesterday I...
2nd Jan 2013
* Tweet [https://twitter.com/share]
*
* Buffer [http://bufferapp.com/add]
*
Yesterday I noticed the Who’s Hiring?
[http://news.ycombinator.com/item?id=4992617] thread pop up again on Hacker
News. If you’re hiring, it’s a great place to share that fact. Since around half
a...
Moving my YouTube Likes from one account to another
I used to have two YouTube accounts, and I wanted to consolidate them into one.
I had two accounts...
11th Feb 2024
I used to have two YouTube accounts, and I wanted to consolidate them into one.
I had two accounts as a way to keep two separate watch histories.
I was watching videos about gender and trans stuff before I came out, and I didn’t want them appearing in my main account – say, when...
#23 A card pattern
Bad code
<article>
<div>
<div class="sr-only">Image</div>
<img src="/feature-teaser.png"...
12th Nov 2020
Bad code
<article>
<div>
<div class="sr-only">Image</div>
<img src="/feature-teaser.png" alt="Feature teaser" />
</div>
</article>
<div>
<span>
<span>Exciting feature!</span>
</span>
<div> This text describes what the feature does! </div>
<a...
What I'm up to - November 2024
Here's my monthly newsletter about what I'm up to, which I send in place of social media. What I...
1st Nov 2024
Here's my monthly newsletter about what I'm up to, which I send in place of social media. What I did in September - Visited San Francisco and rode in my first Waymo - Launched Find AI on Clay.com, ou...
About the Apple Captive Network Assistant
Heads up! This post is no longer current. Check out the WBA’s Captive Network Portal Behavior site...
10th Apr 2017
Heads up! This post is no longer current. Check out the WBA’s Captive Network Portal Behavior site for a better resource on the Captive Network Assistant.
If you’re a mac user, you likely have seen a strange popup window appear on your computer when you try to connect to the...
What I'm up to - February 2024
Here's my monthly newsletter about what I'm up to, which I send in place of social media. What I...
1st Feb 2024
Here's my monthly newsletter about what I'm up to, which I send in place of social media. What I did in January - Hello from Tokyo! I'm here doing a creative residence at Almost Perfect. If you're in...
Folk Interfaces
People reappropriating existing software to solve their own unique problems
24th Aug 2022
People reappropriating existing software to solve their own unique problems
Follow-up: the Glove80 after six months
A followup on my previous first impressions post, with an update on how the Glove80 ergonomic split...
8th Apr 2024
A followup on my previous first impressions post, with an update on how the Glove80 ergonomic split keyboard has been after about six months of daily use.
8 Best Ways to Learn JavaScript, Personalized
JavaScript is undoubtedly one of the best languages to learn as a developer, whether you’ve been at...
5th Feb 2022
JavaScript is undoubtedly one of the best languages to learn as a developer, whether you’ve been at it for years or are just starting out. More than 97% of today’s websites are powered by JavaScript. Regardless of what field you work in, you’ll likely be exposed to JavaScript at...
Software Acceleration and Desynchronization
A bit more than a month ago, I posted the following on social media:
Seeing more reports and...
5th Jan 2026
A bit more than a month ago, I posted the following on social media:
Seeing more reports and industry players blaming code reviews for slowing down the quick development done with AI. It's unclear whether anyone's asking if this is just moving the cognitive bottleneck of...
Using User-Select
Using User-Select
2019-06-04
Highlighting text in order to copy, cut or paste content is a staple...
4th Jun 2019
Using User-Select
2019-06-04
Highlighting text in order to copy, cut or paste content is a staple action across the web. Now, what if I told you the ability to control what a user can select is configurable with a single CSS property?
Introducing the CSS property
Simply put, the...
What I'm up to - January 2024
Happy New Year! Here's my monthly newsletter about what I'm up to, which I send in place of social...
1st Jan 2024
Happy New Year! Here's my monthly newsletter about what I'm up to, which I send in place of social media. What I did in December - Published updates to Booklet, including a design refresh, dynamic op...
How to timeout a promise
Timeouts are one of the key building blocks to make your app stable. In short, if you send a request...
2nd Apr 2021
Timeouts are one of the key building blocks to make your app stable. In short, if you send a request to an endpoint and a response does not, for whatever reason, come soon, we act as if the request failed and fall back to plan B — try again, show an error message and let the user...
Systems and Processes that Aren't in Code are Terrifying
My worst enemy is processes that a developer spun up years ago on a server everyone has forgotten...
3rd Oct 2019
My worst enemy is processes that a developer spun up years ago on a server everyone has forgotten about. I don’t know how to find these systems reliably, I don’t know where they came from, what depends on them, and if they are safe to delete. For example, the dreaded 15 6 2 1 *...
What's next
As of July 31st, my work contract with Rapid officially ended and that chapter of my life is...
2nd Aug 2023
As of July 31st, my work contract with Rapid officially ended and that chapter of my life is closed.
It was chaotic and tumultuous. But it was also fun and I learned loads about myself, what I'm capable of achieving, and perhaps most importantly what matters to me when it comes...
Recently: Cycling and Autumn
I haven’t been posting much to the ‘main blog’ recently, but I have been keeping the micro blog...
3rd Nov 2024
I haven’t been posting much to the ‘main blog’ recently, but I have been keeping the micro blog updates humming. If you want more content in your RSS reader, you can subscribe to those posts, which are shorter, more scattered, and even less copyedited. It feels bad to have...
Using Git Bisect to Find Code Regressions
Want to find out the exact commit that introduced a bug to your code? Git Bisect is just the tool...
21st Mar 2021
Want to find out the exact commit that introduced a bug to your code? Git Bisect is just the tool for the job.
Being a minor AI public figure
I was recently involved in moderating a chat with Kanjun Qiu of Imbue at the MIT AI conf:...
3rd Nov 2023
I was recently involved in moderating a chat with Kanjun Qiu of Imbue at the MIT AI conf: https://photos.google.com/share/AF1QipNJ9i78ICeg2YuemyAXmtStKvqr9l0Tao3xQWxmeAVjBALHnNnFvPXFlNSkdMfqA?pli=1&key=dTFRRHBTLVRZTEVCem0zal8tNVkxblh0V3k4VXhR
Convergence Is Not Enough
Getting into trouble with data representations in Automerge.
27th Jul 2026
Getting into trouble with data representations in Automerge.
All the bullshit I did as a kid (part 1?)
My first computer, and the first computer I called a server
17th Jan 2024
My first computer, and the first computer I called a server
Tools ≠ skills
A couple of years ago at Jenni we spent time breaking down retention strategies of software...
4th Aug 2025
A couple of years ago at Jenni we spent time breaking down retention strategies of software products. One pattern we found is where ability to use a tool becomes a synonym for the skill it supports (e.g. Photoshop/ Illustrator). The term we coined internally was ‘product as a...
Cooking with glasses
I’ve been thinking the new Meta Ray-Ban augmented reality glasses. Not because they failed onstage,...
21st Sep 2025
I’ve been thinking the new Meta Ray-Ban augmented reality glasses. Not because they failed onstage, which they absolutely did. Or that shortly after they received rave reviews from Victoria Song at The Verge and MKBHD, two of the most influential tech reviewers. My impression is...
Newer, nicer, archives and landing pages
Newer, nicer, archives and landing pages
19th Jan 2024
Newer, nicer, archives and landing pages
Winner, Name that Ware December 2024
The ware for December 2024 is a 2mm pitch, 64×64 LED panel purchased from Evershine Opto Limited....
30th Jan 2025
The ware for December 2024 is a 2mm pitch, 64×64 LED panel purchased from Evershine Opto Limited. Their sales part number is ES-P2-I, but the silkscreen says DCHY-P2-6464-1515-VP. The seller is just the name slapped on the box; like most commodity wares, there’s likely multiple...
Fireside: Satya Nadella, CEO Microsoft live in SF
Monday Nov 6, 11:30am - sign up now on link below
31st Oct 2023
Monday Nov 6, 11:30am - sign up now on link below
Why did I write Geometry for programmers
This is not an interactive page, it has zero didactic value. It does explain why Words and Buttons...
29th Dec 2022
This is not an interactive page, it has zero didactic value. It does explain why Words and Buttons has been stagnant for a while though. I have been writing a book. Why? Well, visit and see.
Japanese Glory Hole
Funny Onion gag
2nd Mar 2026
Dear JetBrains. Don't mess with your UI.
So we have yet a new UI overhaul. This time, bringing consumer-grade UI practices to the world of...
3rd Jun 2022
So we have yet a new UI overhaul. This time, bringing consumer-grade UI practices to the world of professionals.
Announcement:
https://blog.jetbrains.com/idea/2022/05/take-part-in-the-new-ui-preview-for-your-jetbrains-ide/
New Jet Brains interface
We're professionals. We can...
Pricing determines your business model
Pricing is inextricably linked to brand, product, and purchasing decisions. It cannot be "figured...
5th Nov 2014
Pricing is inextricably linked to brand, product, and purchasing decisions. It cannot be "figured out later," because determines your business model today.
Writing a SIGGRAPH paper (for fun)
21st Aug 2020
Building a container orchestrator
Kubernetes is not exactly the most fun piece of technology around.
Learning it isn’t easy, and...
1st Jul 2025
Kubernetes is not exactly the most fun piece of technology around.
Learning it isn’t easy, and learning the surrounding ecosystem is even harder.
Even those who have managed to tame it are still afraid of getting paged by an ETCD cluster corruption, a Kubelet certificate...
What's With All the Humanoid Robots?
If you follow robotics at all you may have noticed that there has been an explosion of humanoid...
7th May 2024
If you follow robotics at all you may have noticed that there has been an explosion of humanoid robot startups. What's with that? Why humanoids? Why now?
Tailwind marketing and misinformation engine
**Adam Wathan** explained in his [keynote speech](//youtu.be/CLkxRnRQtDE?t=109) at Tailwind Connect...
18th Feb 2024
**Adam Wathan** explained in his [keynote speech](//youtu.be/CLkxRnRQtDE?t=109) at Tailwind Connect 2023 how Tailwind CSS was born out of this sentence:
Generic methods cannot have non-generic defaults in Sorbet
28th Jul 2024
Zero Trust Networks
Zero Trust Networks
2019-09-10
I am leery of jargon. I am as guilty of using it as the next...
10th Sep 2019
Zero Trust Networks
2019-09-10
I am leery of jargon. I am as guilty of using it as the next engineer, but there comes a point where there are just too many precise, narrowly-understood terms polluting your vocabulary. The circle of people you can talk to shrinks until going to...
A year at GitHub
I took a job at GitHub a year ago today.
On good days, I help to improve the accessibility of its...
9th Aug 2023
I took a job at GitHub a year ago today.
On good days, I help to improve the accessibility of its design system. The hope here is that the work done there eventually makes its way to the site itself.
It still feels surreal to have this job. I still vividly remember learning that...
Osaka Team Retreat Recap
We just wrapped up our offsite in Osaka, the first time we’ve held a retreat in a location where...
26th Apr 2025
We just wrapped up our offsite in Osaka, the first time we’ve held a retreat in a location where nobody on the team is a local. With our team now at ~10 people, gone are the days of just a handful of us meeting up and figuring out what to do on the fly. Ensuring […]
The post...
Challenge your performance intuition with nanosecond sorting
If the operation you want to speed-up already runs in a few nano-seconds, your reasoning about...
5th Nov 2019
If the operation you want to speed-up already runs in a few nano-seconds, your reasoning about algorithmic complexity probably wouldn't apply. The most effective algorithms become mediocre while the useless rise from the oblivion to shine and amaze. One of these algorithms is the...
Replacing Jekyll with Pandoc and a Makefile
EDIT: 2016-08-19
I got an email a very long time ago that I meant to post about on ye
old weblog...
13th May 2014
EDIT: 2016-08-19
I got an email a very long time ago that I meant to post about on ye
old weblog from a fellow named Tom Duck
who built a CMS based around some of the ideas presented here.
It’s called Bassclef
and it looks pretty amazing and folks should check it out.
I used to...
Safari bug with ruby tag
*Update (November 8th, 2019): [Juanito Fatas](https://juanitofatas.com/) has pointed out to me this...
28th Jul 2019
*Update (November 8th, 2019): [Juanito Fatas](https://juanitofatas.com/) has pointed out to me this bug has now been fixed.*
Safari 12.1.1 has a strange issue with certain ruby tags. Specifically, something like
ホゲホゲ(ホゲホゲ)
which renders as
ホゲホゲ(ホゲホゲ)
If you control click...
Generative AI Space and the Mental Imagery of Alien Minds
AIs and Alien Minds How do alien minds perceive the world? It’s an old and oft-debated question in...
17th Jul 2023
AIs and Alien Minds How do alien minds perceive the world? It’s an old and oft-debated question in philosophy. And it now turns out to also be a question that rises to prominence in connection with the concept of the ruliad that’s emerged from our Wolfram Physics Project. I’ve...
Vibe Coding and the Existential Dread of Progress
Does anyone else hate the term vibe coding?
I’ve been pretty resistant to incorporating AI directly...
19th Jul 2025
Does anyone else hate the term vibe coding?
I’ve been pretty resistant to incorporating AI directly into my development workflow. I use it all the time to clean up emails, Slack messages, and blog posts (including this one). It’s helped me plan vacations, write my cover letter...
Thirteen years of Rust and the birth of Rue
21st Dec 2025
Don’t use custom CSS scrollbars
In the spirit of “everything old is new again,” browsers are once again supporting the ability to...
3rd May 2023
In the spirit of “everything old is new again,” browsers are once again supporting the ability to style the scrollbar. Much like custom CSS mouse cursors, I feel this is also a mistake.
When you style things on the web, you get control over almost the entire experience. From ten...
AI Regulation
There have been multiple call to regulate AI. It is too early to do so.
18th Sep 2023
There have been multiple call to regulate AI. It is too early to do so.
Wifi without internet on a Southwest flight
24th Sep 2023
Organizational buy-in on Responsive Design
2nd Jun 2016
Get in Zoomer, We're Saving React
Looking back, and forward
Lately, it seems popular to talk smack about React. Both the orange...
22nd Sep 2022
Looking back, and forward
Lately, it seems popular to talk smack about React. Both the orange and red site recently spilled the tea about how mean Uncle React has been, and how much nicer some of these next-gen frameworks supposedly are.
I find this bizarre for two...