New
The latest blog posts to take off on Hacker News. 4,614 posts.
UI = f(statesⁿ)
“UI is a function of state” is a pretty popular saying in the front-end world. In context (pun intended), that’s typically referring to application or component state. I thought I’d pull that thread a little further and explore all the states that can effect the UI layer…
Making my bookshelves clickable
You can make regions of an image clickable with a number of techniques, from overlaying an SVG that contains onclick JavaScript handlers all the way to using image maps. I love this idea. I started to think about how I could create an image of my bookshelves that you could click to learn more about each book I am…
A love letter to Apache Echarts
In the world of software development, I believe the 7th circle of hell is called “NPM”. It’s a place where you can find Javascript libraries that make great promises only to disappoint you once you actually import them. I know this because I even wrote one .
How to center a div in CSS
Back in the day, centering an element was one of the trickiest things in CSS. As the language has evolved, we’ve been given lots of new tools we can use… But how do we pick the best option? When do we use Flexbox, or CSS Grid, or something else? Let's dig into it.
Original WWW proposal is a Word for Macintosh 4 file from 1990, can we open it?
The W3C has a page with the original WWW proposal from Tim Berners-Lee. One of the downloads says The original document file (I think - I ...
Cool URIs can be ugly (2023)
Around last year this blog, a simple static site, was running on GitHub pages, together with Cloudflare in front of it due to (perceived) unreliability with GitHub’s SSL provisioning for custom domains. In order to simplify my stack, I tried running it on Cloudflare Pages .
Nextdoor's Heisensubscribe (and Other Dark Patterns)
Nextdoor's notification settings are hostile. This is not an isolated incident.
RSS is still pretty great
What the **** does that mean?
Keycloak SSO with Docker Compose and Nginx
A personal code notes blog
React has grown beyond its original promise and it's causing more harm than good
PR-007 - Why you don't need React - Thoughts and Ideas
What happened with the Web Monetization API?
I was pretty hot on it for a minute. I wanted it to succeed and thought it had the bones to make it. Coil was the main startup trying to push it. They did the right thing by just making it work fir…
Browser extensions are underrated: the promise of hackable software (2019)
In a world of closed platforms, browser extensions are the rare exception that let users modify the apps that we use.
Write code for the web
The story is personal, but I hope readers find something they can relate to in their own life stream.
TCC RISC-V Compiler Runs in the Web Browser (Thanks to Zig Compiler)
Today we're running Apache NuttX RTOS inside a Web Browser. What if we could compile and test NuttX Apps in the Web Browser? Let's explore with TCC 64-bit RISC-V Compiler, compiled to WebAssembly with Zig Compiler.
Why isn't the <html> element 100% supported on caniuse.com?
I saw a Mastodon post that made me laugh this morning. It seemed sort of crazy that the html element wouldn’t have 100% support on CanIUse.com. Heck, I’ve been using it since 1994 and it worked just fine back then! This led me down a bit of a rabbit hole.
Google has another secret browser
another hidden browser which is accessible by a link
The world's smallest PNG
It takes 67 bytes to make one black pixel. How does it work?
Juno – A YouTube Client for Vision Pro
YouTube is probably one of the parts of the internet I consume the most, so I was more than a little sad when YouTube announced that they don’t have plans to build a visionOS app, and disabled the option to load the iPad app. This leaves you with Safari, and the website is okay, but definitely doesn’t feel like a…
I moved my blog from IPFS to a server
Why did an IPFS+ENS websites pioneer like me moved his blog from IPFS to a regular server?
Modern CSS One-Line Upgrades
Sometimes, improving your application CSS just takes a one-line upgrade or enhancement! Learn about 12 properties to start incorporating into your projects, and enjoy reducing technical debt, removing JavaScript, and scoring easy wins for user experience.
In loving memory of square checkbox
History of checkboxes and radio buttons in user interfaces
Why do people post on [bad platform] instead of [good platform]?
There's a class of comment you often see when someone makes a popular thread on Mastodon/Twitter/Threads/etc., that you also see on videos that's basically "Why make a Twitter thread? This would be better as a blog post" or "Why make a video? This would be better as a blog post". But, these comments are often stronger…
Rook to XSS: How I hacked chess.com with a rookie exploit
Playing Chess is one of the many hobbies I like to do in my spare time, apart from tinkering around with technology. However, I'm not very good at it, and after losing many games, I decided to see if I could do something I'm much better at; hacking the system!
Lossy CSS compression for fun and loss (or profit)
Late last year, I had an idea that’s been steadily brewing in my head. I’ve found myself with some free time recently (it coincided with vacation, go figure), and I’ve hacked together some proof-of-concept code. Whether or not it is actually proving the concept I’m not sure, but the results are somewhat interesting…
Tailwind Isn't for Me
I think the folks building Tailwind are talented and nice people. But at a pure technical level, I simply don’t like Tailwind. Whoever it was built for, it was not built for me.
I don't always use LaTeX, but when I do, I compile to HTML (2013)
Since I haven't published anything in almost two months, let me jot down one thought that has come to mind frequently over the past few months.
Why isn't Bluesky a peer-to-peer network?
Today in "our novel form of NIH," why did Bluesky choose not to use a peer-to-peer network when designing the AT Protocol?
Lowercase letters save data
Lowercase letters and uppercase letters use the same amout of data — 1 byte each.