You can subscribe to the Atom feed to receive updates.

The first detailed description of living with esophageal cancer - John Casaubon’s 1690 diary

Last update: 2024-04-12.

John Casaubon was an English surgeon in the late 1600s who developed an esophageal tumor in late 1690 and wrote about it in his diary before dying in January of 1691. It's harrowing, enlightening, and strangely beautiful. This blog post is the only place in the world you can read the full transcription of the diary entry.

Read more

Writing clinical notes using AI - a practical experience

Last update: 2024-04-09.

With Claude 3 Opus (a newish ChatGPT4 competitor) as my copilot, I wrote a pretty darn good SOAP note for an (invented yet realistic) new consult visit. It took a little massaging to get it right, but boy howdy, it did a great job. Here are the prompts and outputs. This stuff has serious potential for streamlining the boring and tedious parts of the job.

Read more

Drugs we can’t get: S1

Last update: 2024-03-29.

There are a number of interesting drugs used in the global market that, for one reason or another, do not have FDA approval and are therefore inaccessible in the US, at least outside of clinical trials. S1 is one of them: a better capecitabine.

Read more

Patient-facing slide decks

Last update: 2024-03-23.

While I plan on being a physician-scientist forever, I'm not going to work in academia. Over the past few years I've put together very cool infrastructure for giving academic talks (click "talks" above), and it was making me sad that it might not get much use after I leave the university. But then, a ray of sunshine: Why not use my slide deck infrastructure to help in patient conversations?

Read more

Cold agglutinin disease: fish out of water?

Last update: 2024-03-22.

Cold agglutinin disease is a fascinating and strange phenomenon, and might happen because we're fish.

Read more

A timeline of esophageal cancer

Last update: 2023-10-20.

A couple of friends and I wrote a review article on the history of esophageal cancer. The timeline was so interesting I thought I'd share it here, in a place where it can be easily found and updated.

Read more

How to add a mirror to a single ZFS disk

Last update: 2023-10-19.

tl;dr: zpool attach data /dev/disk/by-partlabel/zfs-3a1xx /dev/sdx0. Adjust for your own pool and disks.

Read more

yt-dlp Nix config

Last update: 2023-10-18.

yt-dlp is an incredibly useful and customizable tool for downloading online videos from YouTube and elsewhere. Here's my setup (declared in Nix, but easily generalizable).

Read more

Command-line interfaces for self-hosted music

Last update: 2023-09-28.

Self-hosting a music server is great. Listening to the tunes via the command line is the way.

Read more

Pixel 6 DIY screen replacement, with fingerprint reader calibration using Linux

Last update: 2023-09-19.

The internet, up to now, says you need Windows or MacOS to calibrate the Pixel's fingerprint reader after installing a new screen and digitizer. The internet, up to now, was wrong.

Read more

password protecting static web pages

Last update: 2023-01-12.

Static site generators, by and large, do not have support for password protecting individual pages. This post shows a strategy that works for any SSG and does not require server access controls.

Read more

good machine learning in medicine

Last update: 2022-12-29.

Because most machine learning in medicine sucks, I thought you might like to see an example of it done well.

Read more

Last update: 2022-12-26.

I made a static website as an electronic learning system and forum, with the option for password protected posts and a controlled editing workflow, for free and without a dedicated server. This post has the highlights.

Read more

I made a thanks page

Last update: 2022-12-19.

A public, running journal of "hey, thanks" to the folks who make my life better, in big and small ways. Check it out here.

Read more

fix MIME Types to unbreak RSS feeds served by OpenBSD’s httpd(8)

Last update: 2022-11-13.

I've been getting back into RSS lately. Turns out, my own RSS feed was broken.

Read more

Upgrading out-of-date OpenBSD installs

Last update: 2022-11-11.

First of all, don't do how I do. Upgrade your installs regularly. OpenBSD makes it very easy.

Read more


Last update: 2022-04-22.

Here is background and code for a trick I use to get Google to give me best-in-class guesses for latitude and longitude, despite goofy and/or downright bad location searches.

Read more

Intake presentation on candidal esophagitis

Last update: 2022-03-25.

candidal esophagitis, achalasia, H Pylori PUD

Read more

Set Up Enterprise Wifi on Arch Linux

Last update: 2021-09-17.

Most big institutions have guest and employee wifi networks. Guest wifi is usually fine, fast enough for the basics, but far inferior to employee wifi. On a custom-built OS, such as a fairly minimalist Linux distribution, getting the employee wifi to work can be a beast.

Read more

Morning Report 08/23/2021

Last update: 2021-08-23.

Diagnosis is... MDS/MPN/MF NOS. i.e., who knows.

Read more

R Markdown is my spirit animal

Last update: 2019-10-20.

Turns out that a better way does exist, and it is R Markdown.

Read more