How to self-host a web font from Google Fonts
Here's how to self-host a web font from Google Fonts - Blog-ifyer
Here's how to self-host a web font from Google Fonts - Blog-ifyer
A deep dive into Rails engines through Active Storage Dashboard: structure, isolation, routes, assets and testing. Learn to build modular Rails apps.
Let’s relearn web caching together.
In this article, I will describe a recent addition to CSS, the font-size-adjust property. I am also making a bold claim that everyone in the world misunderstands the usefulness of this property, including Google, MDN, and CSS Specification itself. (Just to clarify, no, I am not a web designer and I have no idea what I…
On Wednesday, Mozilla introduced legal updates to users of Firefox, and something feels off. I read, and re-read the new Terms of Use and while much of it reads like standard boilerplate from any tech company, there’s a new section that is unexpected:
Emojis are great. They're particularly useful to put in the output of scripts and get some eye catching output. At least provided they aren't overused, just like colour.
Mozilla's new strategy document confirms their position, and the end of their stewardship of the open web.
Changing the case of text can change the size of the corresponding QR code. This is one of the reasons Bitcoin moved from Base58 to bech32 encoding.
The dream of hypermedia can come to fruition in a world where clients can not only parse, but navigate with intent.
The title of this post is somewhat misleading. Local-first software rarely needs to be scaled at all.
This “feature” accomplishes nothing of value for anyone, including the streaming services, but imposes a massive (and for most people, confusing and frustrating) hindrance on honest people simply trying to easily capture high-quality (as opposed to, say, using their damn phone to take a photograph of their reflective…
Interesting things about passkeys in webauthn
All of the kool kids in Twitter land seem to be jumping on the bandwagon of a very annoying craze. Twitter threads. Please stop; write a blog post instead
A blog mostly about Clojure programming
The other day, my twelve-year-old daughter asked me what platform I spend most of my time on when I'm on my phone or computer. She intuitively noticed that ...
Recently, I wrote an article about my journey in learning about robots.txt and its implications on the data rights in regards to what I write in my blog. I was confident that I wanted to ban all the crawlers from my website. Turned out there was an unintended consequence that I did not account for. My LinkedIn posts…
I’ve needed this before - a couple of times. Third time I figured I needed something small, nimble - yet complete. And - at the same time - wondering about how to do it in a very simple manner. I think it worked out great, so let’s dig in. Most UIs will have some form of undo functionality. Now, there are generally…
How to build great websites with htmx by learning a couple browser features alongside it.
Google is killing a decade of its shortened links. Will you enlist in the fight against link rot?
GeoCities, known throughout most of 1995 as Beverly Hills Internet, is one of the first commercial internet services to make it easy for people to publish a home page on the World Wide Web.
In a land bereft of a canonical "killer app" web framework or two, one must think about the what, why, how, where of all the moving parts. Out here, one must become a student of web framework architecture in addition to web application architecture. For here, in Clojure-land, the two are one. ☯
Building a Tamagotchi-style language learning iOS app with SwiftUI character animation - on drill design, motivation loops, and where Duolingo gets it wrong.
You can use CSS to add some simple functionality to HTML <dialog> elements!
OOXML is less an act of sabotage than the continuation of a flawed, inelegant lineage.
Learn about rate limiting algorithms with interactive apps, including Token Bucket, Leaky Bucket, Fixed Window, and Sliding Window methods
Realtime features make apps feel modern, collaborative, and up-to-date. The features predominantly require sharing changes triggered by one user to other …
Mostly to make use of an animation I made for a different blog post that hasn't materialised, let me take a moment to explain to you the fundamental technical difference between 'streaming' and 'downloading'. Which won't take long... because there isn't one!