Friendship ended with Deno, now Node is my best friend
The one where I go crawling back.
The one where I go crawling back.
This is my favorite news from all of WWDC this week. I mean that. In a small way I mean it because I so loathe this aspect of MacOS Tahoe. But in a large way I mean it because it’s proof that the rot has been rooted out of Apple’s software design team.
Releasing Town Square. Bring back the feeling that real people are browsing your site with you.
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 .
A regression in external display support on Apple Silicon M4/M5 generation chips prevents full HiDPI modes on 4K monitors, limiting users to either blurry non-HiDPI or reduced workspace HiDPI.
Words from me as developer, student and human.
Today, the Web and Internet are owned and controlled by large for-profit corporations and a few governments 1 . Corporate ownership combined with government policies has left us as tenant and product. It has given us a surveillance economy and enshittification 2 .
While exploring the file system on a jailbroken iPhone 6s, I stumbled upon an interesting folder:
Gwtar is a new polyglot HTML archival format which provides a single, self-contained, HTML file which still can be efficiently lazy-loaded by a web browser. This is done by a header’s JavaScript making HTTP range requests. It is used on Gwern.net to serve large HTML archives.
How bots used our sign-up and forgot password pages to bomb real people's inboxes, and what we did to stop it. A practical guide to subscription bombing for founders and developers who think CAPTCHA is an "I'll do it later" task.
How I embedded replies from Bluesky directly on my site.
Yeah yeah, I know, data-point of 1. I recently read Susam's blog post where they said that "most of the traffic to my personal website still comes from web feeds" - I wondered if that was true for my site. I've been writing this blog for a while. I've never much bothered with "aggressive" SEO - I have a fairly…
A blog about software craft and quality
An enticing social media preview summary.
How do they fare with (not so) recent additions to HTML?
This was posted in the TIL section, the low-effort section of my website where I post things that I find useful, but that don't get the full quality checks content elsewhere on this site does.
The one where I mourn the best runtime and speculate idly.
Passkeys are the future of authentication, but using them for data encryption is a disaster waiting to happen. Overloading these credentials creates a dangerous blast radius that can lead to the irreversible loss of a user's most sacred memories and documents.
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?
I really dislike Apple’s choice to clutter macOS Tahoe’s menus with icons. It makes menus hard to scan, and a bunch of the icons Apple has chosen make no sense and are inconsistent between system applications. Steve Troughton-Smith is my hero for finding a Terminal command to disable them: Here’s one for the…
A guide to implementing JSON-LD on your personal website for better SEO, covering WebSite, Person, BlogPosting, and more with ready-to-use code snippets.
Investigating JPEG XL's place as a Web image codec.
Lessons about XML from the open source IRS Tax Withholding Estimator.
I’m sad to say that CSS-Tricks is stuck in limbo again. The site was acquired by Digital Ocean in 2022, and it continued to run under their ownership until February of 2023, when DigitalOcean fired the people working on it. The site stayed latent for a year before DigitalOcean re-hired lead editor Geoff Graham in June…
Scratch has a long history of SVG-related vulnerabilities. The source of these is that Scratch parses user-generated (ie. attacker-controlled) content into an <svg> element and appends it into the main document for various operations (eg. measuring SVG bounding box in a more reliable way than viewbox or width/height).
i found yet another way to invoke arbitrary functions in javascript without using parentheses
The one where I suggest finding the nearest lifeboat.
Building a SPA (Single-page Application) is a complex puzzle: a JavaScript framework that draws the view, an API serving JSON, and 2 independent…