External Publication
Visit Post

Bookmarks - data, design, vis, book

inkdroid [Unofficial] June 14, 2026
Source

These are some things I’ve wandered across on the web this week.

🔖

When Bits Rot - with C McKean, L Talboom, A Page-Mitchell

English Edition: floppy disks, hard drives, CDs, DVDs, SSD drives - no matter what you choose to store your data on - ultimately they all decay. With my guests Callum McKean, Leontien Talboom and Adrian Page-Mitchell, we’re going to talk about what kinds of data we find on old drives, why we want to get them in the first place, and what can go wrong with the storage media. To all of you who love all things retro - we’ll be talking about floppy disks a bit.

data disk preservation

🔖

series: learning-rust (10 parts)

  • Learn Rust Basics By Building a Brainfuck Interpreter
  • Learn Rust Ownership and Borrowing By Building Mini Grep
  • Build a JSON Parser in Rust from Scratch
  • Learn Error Handling in Rust By Building a TOML Config Parser
  • Learn Rust Generics and Traits By Building a Mini Blackjack Game
  • Learn Rust Lifetimes by Building a Generic LRU Cache
  • Learn Rust HashMap and Iterators by Building a Git Object Store Reader
  • Learn Rust Closures By Building a Tiny Rule-Based Linter *Learn Rust Smart Pointers and Interior Mutability by Building Git Commit Graph Viewer
  • Learn Rust Concurrency By Building a Thread Pool

programming rust

🔖

Porting our Django backend to Rust improved the infra usage by 90%

We went from using 220 CPUs and 800 GB of ram to just 24 CPUs and 64 GB. Thus, way less money, less things to maintain.

The number of open DB connections at any point in time have improved quite a bit, from the thousands to hundreds (about ~3-5x reduction).

The good news is that we haven’t even added caching to the Rust backend yet, and query timings are already 5-10 times faster.

🔖 Atomic Books

An independent bookstore in Baltimore, MD focusing on indie comics and small press.

baltimore book shopping

🔖

How to Build an Agentic RAG with RubyLLM and Rails

I run a RAG application for Italian pension and tax consultants. Users ask questions about INPS, professional pension funds, laws and regulations, and the app answers using a knowledge base of uploaded documents.

For a long time the app used the classic single-shot RAG pipeline: take the question, search the database, stuff the results into a system prompt, ask the model. It works, but it has a hard limit: the retrieval happens once, before the model has any chance to reason about the question. If the first search misses, the answer is bad and there is nothing the model can do about it.

So I rebuilt the pipeline as an agent. Now the model drives the retrieval itself: it decides what to search, reads the results, searches again with different terms, follows cross references between documents, and only then writes the answer. All in plain Ruby, with RubyLLM and Rails. No LangChain, no Python sidecar.

In this article I will show you exactly how it works, with the real code from my application. One note before we start: since the app serves Italian consultants, all the prompts, tool descriptions and user-facing strings are in Italian in the real codebase. I translated them to English here so you can follow along, but the structure is identical.

llm ruby

🔖

Zooming Out: Can We Integrate IIIF and Wikimedia?

Wikimedia and GLAM institutions share a challenge. How do we make cultural heritage collections accessible at scale without sacrificing quality, provenance, sustainability, or community control? The International Image Interoperability Framework, IIIF, is now used by thousands of institutions to serve high-resolution media through open standards. Wikimedia does not currently integrate IIIF in its core architecture. Should it?

data iiif linkeddata wikipedia

🔖

Ted Nelson Media Center

An ever-growing list of papers and videos by Theodor Holm Nelson (THN)

computing history hypermedia tednelson

🔖

5 things to know about the Eastern Silver Spring Communities Plan

Since 2023, Montgomery Planning staff have been working on the Eastern Silver Spring Communities Plan, drafting recommendations on zoning and land use, transportation, housing, parks and the environment, economic development and urban design. The plan is expected to set a vision for the area’s future development for decades to come. The plan is bordered by Colesville Road, University Boulevard and New Hampshire Avenue and will include three future Purple Line stations, the Piney Branch Road, Long Branch and Manchester Place

silverspring

🔖

Tell people the main ideas

A good reminder about the ergonomics of reading and presenting information. Remind me of Christopher Alexander’s

comic design reading vis writing

🔖

What Design Can’t Do

Design is broken. Young and not-so-young designers are becoming increasingly aware of this. Many feel impotent: they were told they had the tools to make the world a better place, but instead the world takes its toll on them. Beyond a haze of hype and bold claims lies a barren land of self-doubt and impostor syndrome. Although these ‘feels’ might be the Millennial norm, design culture reinforces them. In conferences we learn that “with great power comes great responsibility” but, when it comes to real-life clients, all they ask is to “make the logo bigger.”

book criticism design

🔖

Gemini 3 Solves Handwriting Recognition and it’s a Bitter Lesson

On our strictest tests, Gemini 3 achieved a CER of 1.67% and a WER of 4.42%. On these tests, any difference between the ground truth and test texts counts as an error. WER is thus almost always a bit more than double the CER because if a single character in a word is wrong, including leading or trailing punctuation like commas, single quotes vs double quotes, etc, the whole word is marked as an error. On this measure, Gemini 3 performs nearly 50% better than the best, fine-tuned specialized models and achieved performance comparable to an early career, professional human typist.

google handwriting llm ocr

🔖 FacilMap

FacilMap is a privacy-friendly, open-source versatile online map that combines different services based on OpenStreetMap. FacilMap offers the following features:

  • Show different map styles, for example maps optimized for driving, cycling, hiking or showing the topography or public transportation networks.
  • Search for places
  • Show amenities and POIs
  • Calculate a route, optionally showing the elevation profile.
  • Find out what is at a particular point on the map
  • Open geographic files, for example GPX, KML or GeoJSON files
  • Show your location on the map
  • Share a link to a particular view of the map.
  • Add FacilMap as an app to your device.
  • Change the language settings in the user preferences.
  • FacilMap is privacy-friendly and does not track you

map opensource openstreetmap tool

🔖

Vector Search, Visualised

SQL makes sense. But when it breaks, you reach for EXPLAIN. Vector search offers no such comfort. Multi-thousand-dimension embeddings, approximate nearest-neighbour indexes, and quantisation tradeoffs make it hard to know what your system is doing, and harder still to diagnose when results quietly degrade. Through interactive visualisations, Simon Hearne shows what embeddings look like in high-dimensional space, what quantisation does to your recall, and how to catch retrieval failures before your agents do. You’ll leave with a sharper mental model and a diagnostic toolkit for the production problems hardest to see.

database search vector vis

🔖

Using the Screen Capture API to record a browser window

Once again I am reminded that modern web tech is amazing, and web browsers are incredibly capable. There’s a Screen Capture API to record the screen. You can select a tab, a window, or the entire screen. The feature has limited browser support so I don’t think I’d use it in a big web app, but it’s fine for a one-off screen recording. (I wonder how browser-based video conference apps like Google Meet do screen sharing? Do they use this API, or do they use something with wider support?)

javascript video webarchive

Discussion in the ATmosphere

Loading comments...