$2 H100s: How the GPU Bubble Burst Fascinating analysis from Eugene Cheah, founder of LLM hosting provider Featherless, discussing GPU economics over the past 12 months. TLDR: Don’t buy H100s. The market has flipped from shortage ($8/hr) to oversupplied ($2/hr), because of reserved compute resales, open model finetuning, and decline in new...
A few months ago, I built a little demo that I simply forgot to actually talk about here. A coworker was building something similar and it reminded me to take a look at the code, update it, and actually share it. This is a pretty cool example of integrating multiple different APIs to create a final product, in this case, a short story with...
The Eloquent Javascript (e-book) giveaway has ended, and I have winners to announce! The winners! Congratulations to: Ciaran Connelly Davide Ricci Ingo Fischer Jasper Lai Scott Kopelchuk Peter Trist Tristan Wren J. Bolton Matthias Rempe Dave Robeson You should have received an email with details, please let me know if you...
Back in 2021 I had a look around and decided to base this incarnation of my blog on an open-source Jekyll theme called “Type”, though I’ve changed and added so much it’s quite some distance from the original as it stands today. Initially I blamed Jekyll for the poor performance, until I took a closer look. What I learned was that the blog theme...
The primary use of “misinformation” is not to change the beliefs of other people at all. Instead, the vast majority of misinformation is offered as a service for people to maintain their beliefs in face of overwhelming evidence to the contrary. — Mike Caulfield, via Charlie Warzel Tags: misinformation
Part 1: Diode, and connecting language models to the physical world.
Realizing Meshtastic's Promise with the T-Deck Meshtastic—a simple off-grid mesh network used to transfer short messages—is a neat bit of tech, but until recently, most development has focused on little nodes with or without tiny OLED displays, and a separate phone app or web UI to actually interact with the mesh. The major use case I...
The set of functions of the form f(z) = (az + b)/(cz + d) with ad ≠ bc are called bilinear transformations or Möbius transformations. These functions have three degrees of freedom—there are four parameters, but multiplying all parameters by a constant defines the same function—and so you can uniquely determine such a function by […] The post...
I came across HTML for People this morning, and it put a goofy smile on my face. It’s a fun and thoughtful introduction to web development that focuses on HTML and CSS first. Through it, you’ll learn to build a site, understand the basics of local development, and get pointers about what to learn next.
I love to see resources arrive that are specifically for beginners. This new resource by Blake Watson is exactly that and it’s all about the most important language of the web: HTML. I’ve had a read through and it was a great bit of skill refreshing for me, so even if you consider yourself to be a good developer, check it out yourself. There’s...
This was going to be a scathing review of our wedding photographer I planned on posting becuase I was furious having waited 6 months to get the photos but he's basically gone bust anyway and I've calmed down since then. I'm posting it anyway because it's been in my post drafts for months and I want it for reference. Name of the photographer is...
This is Part 4 in a series of posts describing the Raft distributed consensus algorithm and its complete implementation in Go. Here is a list of posts in the series: Part 0: Introduction Part 1: Elections Part 2: Commands and log replication Part 3: Persistence and optimizations Part 4: Key …
What’s up and not up with AI these days? Let’s get all up in AI’s business. TOC Understanding AI vs AI Understanding Architecture Updates Is input...
HTML for People Blake Watson's brand new HTML tutorial, presented as a free online book (CC BY-NC-SA 4.0, on GitHub). This seems very modern and well thought-out to me. It focuses exclusively on HTML, skipping JavaScript entirely and teaching with Simple.css to avoid needing to dig into CSS while still producing sites that are pleasing to look...
Providing validation, strength, and stability to people who feel gaslit and dismissed and forgotten can help them feel stronger and surer in their decisions. These pieces made me understand that journalism can be a caretaking profession, even if it is never really thought about in those terms. It is often framed in terms of antagonism. Speaking...
There’s a new color specification kid on the CSS block: oklch. In a nutshell it’s a better version of HSL (hue/saturation/lightness) that keeps the perceived lightness of colors consistent as you rotate hues. It’s a pretty sweet upgrade to the CSS color specification that got adopted and implemented in all major browsers (poor people stuck on IE...
Zach Leatherman Zach Leatherman is a builder for the web at is a builder for the web at Font AwesomeFont Awesome and the creator/maintainer of and the creator/maintainer of
Building the Hundred-Year Web Service
iframe { display: block; margin: 10px auto; } My UtahJS talk, "Building the Hundred-Year Web Service", was put online this week! It's about how to build software infrastructure that lasts a very long time. If you're not a software engineer (very unlikely that you're reading this blog if so, but it's possible) the first 11 minutes of the talk...
A little over six months ago, I wrote Notes on Zed. My conclusion at that time was that Zed made a lot of great choices and felt really good to use, but lacked parity with VS Code's feature/ecosystem to its detriment. Six months later, I spent a few days using it as my daily driver to see what had changed: It's still really, really fast — and in...
ArcjetArcjet makes it easy to remove entire classes of security problems from your applications, such as denying misbehaving bots from your websites. Today we're going to cover the inherent complexity in bot detection and how your app is protected from... makes it easy to remove entire classes of security problems from your applications, such as denying misbehaving bots from your websites. Today we're going to cover the inherent complexity in bot detection and how your app is protected from...
Long running spans are one of my biggest “we don’t really actually have a good standard solution for this” issues in opentelemetry. They’re something I’ve run into before, weirdly frequently, and especially so when attempting to try and instrument front-end or mobile facing systems.It turns out, though, that the issues here with long running...
A little over six months ago, I wrote Notes on Zed. My conclusion at that time was that Zed made a lot of great choices and felt really good to use, but lacked parity with VS Code's feature/ecosystem to its detriment. Six months later, I spent a few days using it as my daily driver to see what had changed: It's still really, really fast — and in...
We finished Part 1 with a simple single-threaded server, which we could describe as: Create our socket Bind it to an address Put it in "server" mode (i.e. call listen on it) Accept a connection Application logic involving reading/writing to the socket Close the connection Goto step 4 While this approach is useful for getting...
For awhile now, the top item in the “now” list on my homepage has said, “Reading, reading, reading”—with an exhortation to gift me ebooks which links to sending a Kobo gift card, and since someone bought me a $50 such gift back in June I thought I’d mention what that’s gotten me so far. Generally, I borrow my ebooks from Libby/OverDrive and only...
DeskPad creates a virtual display that is mirrored within its application window so that you can create a dedicated, easily shareable workspace.
Look, I’m just about as tired of writing about WordPress drama as you are of reading it. That said, I think this stuff needs to be documented because it’s so off-the-wall bonkers. Also, it probably shouldn’t be surprising that drama about blogging software has gotten bloggers to blog about it.
Bridging Language Gaps in Multilingual Embeddings via Contrastive Learning Most text embeddings models suffer from a "language gap", where phrases in different languages with the same semantic meaning end up with embedding vectors that aren't clustered together. Jina claim their new jina-embeddings-v3 (CC BY-NC 4.0, which means you need to...
3rd Party PoE HATs for Pi 5 add NVMe, fit inside case Today I published a video detailing my testing of three new Raspberry Pi HATs—these HATs all add on PoE+ power and an NVMe SSD slot, though the three go about it in different ways. You can watch the video for the full story (embedded below), but in this post I'll go through my...
A golden ellipse is an ellipse whose axes are in golden proportion. That is, the ratio of the major axis length to the minor axis length is the golden ratio φ = (1 + √5)/2. Draw a golden ellipse and its inscribed and circumscribed circles. In other words draw the largest circle that can fit […] The post Golden ellipse first appeared on John D....
When I lived in London, my flat was at the corner of a generally quiet intersection. However, a couple of times per day, traffic would spill over from the nearby road, and the intersection would get so busy that dozens of cars would become stuck, struggling to move an inch one way or another. This happened because of how parking spaces were...
When I lived in London, my flat was at the corner of a generally quiet intersection. However, a couple of times per day, traffic would spill over from the nearby road, and the intersection would get so busy that dozens of cars would become stuck, struggling to move an inch one way or another. This happened because of how parking spaces were...
The basic site auditing tool in #WebOrigami can work against a site defined in many ways: a data file, files in the file system, an Origami program — or a live #website running in production. In the video I show an audit of the unbelievably massive Space Jam. For a site with 350+ handwritten HTML files, it contains surprisingly few broken...
Gaming on Linux on M1 is here! We’re thrilled to release our Asahi game playing toolkit, which integrates our Vulkan 1.3 drivers with x86 emulation and Windows compatibility. Plus a bonus: conformant OpenCL 3.0. Asahi Linux now ships the only conformant OpenGL®, OpenCL™, and Vulkan® drivers for this hardware. As for gaming… while today’s release...
Tonight I pulled the trigger on semi-rebooting the revived blog, moving from Pika back to Weblog.LOL (where it was before it moved back to WordPress before I quit in March), but for the time being only the posts since I resume blogging are here while I finish up the Markdown files for the 1,200-post archive-to-date. That import is some...
Announcing Deno 2 The big focus of Deno 2 is compatibility with the existing Node.js and npm ecosystem: Deno 2 takes all of the features developers love about Deno 1.x — zero-config, all-in-one toolchain for JavaScript and TypeScript development, web standard API support, secure by default — and makes it fully backwards compatible with Node and...
His HolinessCasa Santa Marta00120 Vatican City
Barycentric coordinates are sometimes called area coordinates or areal coordinates in the context of triangle geometry. This is because the barycentric coordinates of a point P inside a triangle ABC correspond to areas of the three triangles PBC, PCA and PAB. (This assumes ABC has unit area. Otherwise divide the area of each of the […] The post...
Generic claims, such as Birds fly, Men are violent, and Mosquitos carry Ross River Fever, seem pervasive across human thought and talk. We use generic claims to express our understanding of the world around us and our place in it. These generic claims are useful even though they admit exceptions. We can agree that birds fly, even though emus...
When you interact with a text file using an editor, what you see doesn’t necessarily reflect the data stored in the file. Sure, the contents of plain text files are byte codes encoded in formats like ASCII, UTF8, or UTF16, and these byte codes are the ultimate source of truth. But in the end, it’s still your text editor that chooses how to...
We've had Lucy for two weeks, which qualifies us as experts, which means it is time to write about parenthood. (In all seriousness, consider the below descriptive and not prescriptive: mostly, it's a notepad filled with things that were remarkable or surprising or divergent from popular consensus.) American pop culture puts too much emphasis on...
We've had Lucy for two weeks, which qualifies us as experts, which means it is time to write about parenthood. (In all seriousness, consider the below descriptive and not prescriptive: mostly, it's a notepad filled with things that were remarkable or surprising or divergent from popular consensus.) American pop culture puts too much emphasis on...
My new laptop11 Actually, it’s not new – I bought it refurbished from a dealer with good reputation. I have long rejected buying electronics anything but new, but I am reconsidering. This is a test! is a ThinkPad P52, with one of those dual gpu deals. I’m irrationally scared of running Linux with dual gpus, so I decided to try running Linux inside a Hyper-V vm in Windows. Assuming...
Forums are still alive, active, and a treasure trove of information Chris Person: When I want information, like the real stuff, I go to forums. Over the years, forums did not really get smaller, so much as the rest of the internet just got bigger. Reddit, Discord and Facebook groups have filled a lot of that space, but there is just certain...
Free Threaded Python With Asyncio Jamie Chang expanded my free-threaded Python experiment from a few months ago to explore the interaction between Python's asyncio and the new GIL-free build of Python 3.13. The results look really promising. Jamie says: Generally when it comes to Asyncio, the discussion around it is always about the performance...
Chris Person compiled a list of active forums, grouped by subject area, hosted outside of the major platforms #
In the fractal-metaphor, our software is an open space. Each reader traverses that space, noting new details as they come into view. When our software is well-designed, these details are small and incremental. But this isn't quite right. If it were, movement through our software would satisfy the triangle inequality: In Euclidean geometry, if AB...
So there I am, having an issue where my UI state isn’t updating correctly. What do I do? What every developer does: turn to console.log() and troubleshoot by logging values. I have a named color (e.g. blue) and a corresponding HSL color string for that named color (e.g. 100 50% 0%). I log those in the click handler function where I expect the...
The Fair Source Definition Fail Source (fair.io) is the new-ish initiative from Chad Whitacre and Sentry aimed at providing an alternative licensing philosophy that provides additional protection for the business models of companies that release their code. I like that they're establishing a new brand for this and making it clear that it's a...
As I continue to dig into Leaflet, I was recently asked about custom markers based on data, so for example, some locations for a store may use one icon while others use another. I did some digging, and while it turns out Leaflet has deep support for customizing markers, it does take a little bit of work. Here's what I found.First off, this is the...
Green Day collaborated with BRAIN to demake their 1994 album in 15 obscure formats, including Game Boy, Teddy Ruxpin, wax cylinder, and player piano roll #
otterwiki It's been a while since I've seen a new-ish Wiki implementation, and this one by Ralph Thesen is really nice. It's written in Python (Flask + SQLAlchemy + mistune for Markdown + GitPython) and keeps all of the actual wiki content as Markdown files in a local Git repository. The installation instructions are a little in-depth as they...
Let d(n) be the number of divisors of an integer n. For example, d(12) = 6 because 12 is divisible by 1, 2, 3, 4, 6, and 12. The function d varies erratically as the following plot shows. But if you take the running average of d f(n) = (d(1) + d(2) + d(3) + […] The post Average number of divisors first appeared on John D. Cook.
My initial thought when reading this was “this is just stupid”. Then I thought about the added complexity involved over just mirroring the display, and I thought it was probably a great idea UX-wise (on the lines of Continuity), but, in the end, I still think it’s a profoundly stupid implementation, for the following reasons: Screen mirroring...
We are continuing from the first part of our Chapter 7 review. Serializable isolation ensures that the final result of concurrent transactions is equivalent to if they had been run one at a time, without any concurrency. This eliminates any concurrency anomalies, since it ensures the transactions would behave as they would in a sequential...