RSSAmplifier

Blog

Charlie's Blog

A personal blog built with Emacs Org and SvelteKit

chiply.devRSS feed ↗51 posts

Latest posts

Gödel, Escher, Elisp: The Beauty of Macros

If you are an Emacs user with a keen eye, you will have noticed that in Emacs Lisp, code is data. After all, 'Lisp' is shorthand for 'List Processing'. One of Elisp's most beautiful features is the fo...

Hyperbole Implicit Buttons: Build your Hyperverse

Your Emacs is full of markup-free hyperlinks embedded in your text, but you're missing a way to utilize them. Think about a file path in a README, a URL in an email, a commit 55a1f0 in a git log, or a...

The Search for Knowledge: Emacs Carnival August 2026

This month I'd like to host the Emacs Carnival! I've been an enthusiastic participant for a while now. I wrote entries for May, June, and July (that last one hosted by Andy over at Plain DrOps). Now i...

A Tree and a Server Walk Into a Core…

Two technologies have endowed every editor with IDE superpowers this past decade: tree-sitter, a generic incremental parser that gives your editor a live syntax tree of your code, and the Language Ser...

HyWiki: Zero Markup Hypertext

A key feature is missing from most Personal Knowledge Management Systems (PKMSs): define a concept by pressing a keybinding on a word, and from then on all occurrences of that word become live, action...

svg-margin: Better Gutters for Emacs

Emacs can draw line-level indicators in the built-in fringe and margin, the thin gutters beside the buffer text. The fringe gives you a single monochrome mark per side, and the margin can technically ...

Emacs Teaches Emacs: The Missing README

Learning Emacs is not about scouring through documents and memorizing facts.

Juneau Something? Emacs Teaches You How to Fish!

The folks who 'grok' Emacs aren't wizards. They don't learn Emacs, per se, but instead they learn the handful of built-in commands for asking Emacs about Emacs. Those same commands work on themselves,...

Emacs SVG Benchmark Reveals Gaming-Caliber Frame Rates

Rendering an Emacs status bar as an SVG image, like with my svg-line package (demo), really is several times heavier than the native text engine. The skeptics were right. But it doesn't matter in prac...

svg-line: Better Status Bars for Emacs

Emacs provides four useful status bars (mode-line, header-line, tab-bar, and tab-line), but each imposes different, inconsistent limits on multi-line layout, alignment, icons, and interactivity. svg-l...

Beyond ICR: Incremental 'Suggesting' Read in Emacs

This is the sixth post in my series on Emacs completion. The first argued that Incremental Completing Read (ICR) is a structural property of an interface, not an interface itself; the next four made i...

Two Ways to Draw Infinite Jest's Sierpinski Gasket

In a 1996 Bookworm interview with Michael Silverblatt, David Foster Wallace confirmed something Silverblatt had spotted about Infinite Jest.

space-tree: Workspace Management Trees in Emacs

space-tree (see code on GitHub) is a tree-based workspace manager for Emacs. Workspaces are a battle-tested UX concept across operating systems, but in Emacs and most OSes alike, they're flat: you get...

Annotate-in-Place Notes with Emacs and org-remark

I'm like most people when it comes to reading and note-taking.

May I recommend… understanding Emacs's patterns

The above, unless I've completely forgotten my Shakespeare, was a soliloquy from Juliet Consulet regarding Romeo Montagnu

My Dotfiles: macOS Bootstrap and an Emacs Distribution

My dotfiles for my MacOS rice and Emacs configuration live in two public repositories. Both repos are shared as a reference; clone, fork, or just lift the bits that look useful to you!

Emacs Completion Showcase with VOMPECCC (video)

This is the fifth post in my series on Emacs completion. The first, Incremental Completing Read (ICR), explains what modern completion actually is, and how Emacs exposes it as a programmable substrate...

David Foster Wallace's Hidden Names: an Anagram Atlas of Infinite Jest

DFW famously embedded wordplay in his character names. The surname Pemulis is an anagram of impulse. Otis P. Lord rearranges to Sport Idol, the absurd authority figure of the Eschaton game he runs. Th...

VOMPECCC from Scratch: Picking Produce with ICR in Emacs

This is the fourth post in a series on Emacs completion. The first argued that Incremental Completing Read (ICR) is a structural property of an interface rather than a convenience feature. The second ...

Gödel, Escher, Bach, Wallace: the "o's, d's and p's" in Infinite Jest

Content note: This essay necessarily discusses child sexual abuse and incest as implicit elements of Infinite Jest, and includes excerpts from the novel containing explicit language. The argument is s...

A VOMPECCC Case Study: Spotify as Pure ICR in Emacs

This is the third post in a series on Emacs completion. The first post argued that Incremental Completing Read (ICR) is not merely a UI convenience but a structural property of an interface, and that ...

Completion is a Substrate, not a UI

ICR is not a convenience feature. It is a structural change in how the cost of an interaction scales with the size of the underlying data.

brushup: Theme-Aware Dynamic Color Palette for Emacs

Emacs theming has a dirty secret: most face customizations are written against one theme and silently break against every other. You pick colors that look right in your dark theme, switch to something...

magneto: Composable Window Management for Emacs

Window management in Emacs is either too simple or too opinionated. split-window-right and split-window-below are basic primitives that require manual sequencing. purpose and shackle give you declarat...

Pattern Inheritance: A Fork-Based Strategy for Scaling Service Standards

Your payments team patches a JWT library CVE on Thursday. Your inventory team patches the same CVE on Monday. Your notifications team hasn't noticed yet. All three services started life as a git clone...

repeatable-lite: Make Any Prefix Command Repeatable

Emacs loves prefix keys. C-x, C-c, C-c w, C-c p … the deeper your configuration goes, the longer your prefixes get. The problem is that many commands you'd want to call repeatedly sit behind th...

space-tree: Tree-Based Workspace Management for Emacs

Modern UIs are over-engineered and excessive. This is easy to say in an age where people walk around with computers attached to their faces, only to get… a subpar user experience. It's also eas...

spot: A Spotify Client Built on Consult, Embark, and Marginalia

There are a few Spotify clients for Emacs. Most of them predate the modern completion ecosystem, so they build their own UI from scratch: custom buffers, custom keymaps, custom rendering. spot takes a...

touchtype: A Progressive Touch Typing Trainer for Emacs

There are plenty of typing tutors on the web. keybr.com is one of the best, a progressive trainer that unlocks keys one at a time as your speed and accuracy improve. But it runs in a browser, and if y...

VOMPECCC: A Modular Completion Framework for Emacs

Completion is not a feature or UI, but instead it is a system composed of at least half a dozen orthogonal concerns that most users never think about separately. The previous post in this series argue...

Five Years of COVID-19 Data: Variants, Hospitalizations, Vaccines, and What Wastewater Tells Us Now

Few events in modern history have generated as much real-time public data as COVID-19. This post draws on four federal datasets – variant proportions, hospital admissions, vaccination progress,...

The GLP-1 Revolution: How a Diabetes Drug Became the Fastest-Growing Drug Category in Medicare History

Medicare Part D spending on GLP-1 drugs grew from $2.3 billion in 2019 to roughly $27 billion by 2024. This post traces that explosion through CMS spending data, beneficiary counts, state-level adopti...

HAI Scoreboard: Hospital-Acquired Infection Rates

Every year, about 1 in 31 hospitalized patients acquires an infection they didn't have when they were admitted. This post visualizes CMS hospital-acquired infection data across ~4,789 US hospitals, ex...

America's Mental Health Crisis, By ZIP Code

Mental health is the defining public health story of the 2020s. This post maps both sides of the equation – need and supply – using CDC PLACES ZIP code-level prevalence data and HRSA men...

Drug Pricing Transparency: What Medicare Pays Per Day

Americans pay more for prescription drugs than any other country. This post uses CMS Medicare Part D spending data – covering ~3,600 drugs from 2019 to 2023 – to visualize where $276 bil...

The Geography of Medicare Spending

Medicare is a single national program with a single set of rules, yet what it spends per beneficiary varies dramatically by geography. This post uses CMS standardized spending data to explore why high...

Your Neighborhood's Health Profile

Public health statistics are usually reported at the national or state level, but they obscure enormous local variation. This post uses the CDC's PLACES program – 40+ health measures at ZIP cod...

The Telehealth Revolution

Before March 2020, telehealth was a niche feature of the US healthcare system. Then the pandemic hit, and CMS suspended virtually every telehealth restriction overnight. This post tracks the largest n...

Hospital Quality Scatter Explorer

The federal government rates every US hospital on a 1-5 star scale across five quality domains. This post visualizes the full landscape of 5,400+ hospitals – where they cluster, how ownership t...

What Medicare Pays for Your Surgery

When you check into a hospital for a hip replacement, the hospital generates a bill for $85,000 – and Medicare pays $12,000. This post uses FY2023 CMS data on 146,000 hospital-DRG combinations ...

Healthcare Deserts: Where America Can't See a Doctor

If you get sick in Boston, you have a choice of specialists within walking distance. If you get sick in rural Mississippi, you might drive two hours to see a primary care doctor. This post visualizes ...

The Three Waves: Visualizing America's Opioid Epidemic with CDC Data

In 1999, roughly 8,000 Americans died from opioid overdoses. By 2023, that figure was approaching 80,000 – a tenfold increase in a single generation. This post uses CDC Vital Statistics data to...

Schema Diagrams: Bidirectional Visualization for the Schema Languages That Need It Most

If you've ever worked with a relational database, you've almost certainly seen an entity-relationship diagram (ERD). Maybe it was generated by DataGrip or pgAdmin, or maybe someone drew it in Lucidcha...

The Interest Rate on Your Codebase: A Financial Framework for Technical Debt

Every engineer I've worked with has used the phrase "technical debt", but everyone seems to have a different notion of what this phrase actually means. I've also found the phrase to be quite controver...

The Schema Language Question: Avro, JSON Schema, Protobuf, and the Quest for a Single Source of Truth

Keep Dijkstra's words in mind as you read. This entire post – every schema language comparison, every trade-off analysis, every design decision – is really about one question: do we trus...

CN Diagrams: Architecture Diagrams That Scale With Your System

Every software organization eventually confronts the same uncomfortable question: where is the architecture diagram?

Live Life on the Edge: A Layered Strategy for Testing Data Models

Data models live everywhere in a modern system: function signatures, bounded-context boundaries, database schemas, event payloads on the wire, etc…. And for good reason – the model isn't...

Literate Programming: A Primer with Python and Org-Babel

Literate programming, a concept introduced by Donald Knuth in 1984, inverts the traditional relationship between code and documentation. Rather than writing code with occasional comments, we write a d...

Design Decisions: Building a Modern Technical Blog

Building a personal blog might seem like a solved problem in 2026, but I wanted something different. Not just another static site generator output, but an interactive reading experience that reflects ...

Feature Demo: Building a Blog with Emacs Org and SvelteKit

This page demonstrates the custom blogging framework used to build my technical diary: chiply.dev. This diary delivers a highly contextualized reading experience, with side-line components that enhanc...