Why tiny JPEGs look different in Chrome
Guillaume Técher — Personal website
The latest blog posts to take off on Hacker News. 4,614 posts.
Guillaume Técher — Personal website
uBlock Origin's volunteer team will no longer chase Facebook's shifting ad-detection tricks, calling it a 'disgusting anti-user site.' Here's what that means for your feed.
Make QR codes with photos in them
I've built the same webhook consumer three times at three companies. The fourth time, I want a better primitive.
It started innocently enough. I saw a tweet about a new product offering from one of my favorite companies, Cloudflare. Neat! I clicked through to the site and there it is: And huzzah!, my preferre…
The hacked digital advertiser was caught serving malicious ads that allowed hackers to steal a victim's cryptocurrency.
Back in 2019, SwiftUI was announced as the future of Apple development. Seven years later, it still feels like a beta version struggling with stability, performance, and many other aspects. What’s actually wrong with SwiftUI?
Tailwind CSS is a very popular CSS framework among web developers. With no prior graphic design knowledge, it solves the standardization of spacing…
Everyone with knowledge agrees that Atom is technically superior to RSS. Everything should have switched to it twenty years ago. All feed readers support Atom just fine ( except in podcasts , for no good reason).
Today, I launched I ♥ RSS, a directory for people who love RSS. I've already added the badge to my footer and submitted my site to the directory. It also shows a nice live blogroll on the homepage (powered by FeedLand). If you love RSS as much as I do, take a look and add …
Hold on to your data by keeping it in your own database
Introducing Elena, a simple, tiny library for building Progressive Web Components.
Learning how htmx works by building one from scratch.
Noting perhaps my largest personal career accomplishment, which is launching CodePen 2.0. Far more work, believe it or not, than the entire creation of the original CodePen. This isn’t the pl…
In the world of technology, “forever” means about 5 years. It’s humbling to think that the 1992 JPEG image standard is still going strong despite being more than 5 “forevers” old. Why has it been so successful? This article presents the key ideas behind JPEG in plain language and includes an interactive JPEG…
Let's design the successor to email on top of HTTP, fixing the design flaws SMTP has been dragging along for 40 years. Piece by piece. The goal is…
If you prefer to receive all of my writing in your inbox, you can subscribe here. I strive to publish weekly, on Tuesday mornings.
I am equally unsurprised and upset
Driven by curiosity, I decided to find out what the IndieWeb tag that kept showing up on some blogs and Mastodon toots was all about. I quickly…
Since gradient.horse went online in January 2026, six months have passed, and more than 600 000 horses (and non-horses) were drawn. There are now more horses on gradient.horse than in the wild. The image model I trained to filter out vandalism works very well, but it also hides a lot of ingenious drawings. You could…
A concrete example of why using native HTML as much as possible is better than slapping ARIA on top of things.
My new book guides you through the start-to-finish build of a real world web application in Go — covering topics like how to structure your code, manage dependencies, create dynamic database-driven pages, and how to authenticate and authorize users securely .
Digital identities and what they mean for the web have become a hot topic of discussion in the last few years.They have also brought many controversies: age verification laws and what they mean for online anonymity, Wikipedia potentially having to verify the identify of its users in the UK, the reliance on official…
As Web standards have moved on, a particular 1990s library of GIFs has been hard to effectively archive and was at risk of being lost forever. So I swooped in, wrote some hacky code, and now a few thousand low-res images have been saved for posterity. Hurrah, I guess?