If it walks like a scam and talks like a scam, maybe it is your hospital's billing department
For reasons that will soon become apparent, I would like to share with you a joke I heard back at medical school. I will remind you that this was in Belgrade, Serbia in the early 2000s, but the joke would apply to any Serbian institution of higher education, or indeed any place anywhere in the world that uses oral exams I have heard these called viva voce in the US, which is a bafflingly cheerful-sounding name for a rather traumatic ordeal. to determine the final grade. Please also bear in mind that I am not the best at telling jokes.
Anyway, here it is. A not very well prepared student comes in for his Anatomy 1 exam with a rather erratic professor (the joke had the actual name, which I am sure changed from time to time and from school to school). While sitting in front of the office waiting for his turn, a teaching assistant (again, named) approaches him. “Look”, the TA says, “I know he can be tough but for 100 euros things would go a lot easier for both of you. I’m going into his office now so if you have enough with you I can pass it on.” It so happened that the student did have a fresh 100 euro bill with him, which he gave to the TA, who then knocked on the door, spent a few minutes in the office, then came out with a smile and a nod. With newly boosted confidence, the student did better than he could have hoped for and got a 7 (on a 5 to 10 scale). Beaming with pride for his academic savvy and mental fortitude, he winks at the TA hanging around in the hallway. The TA winks back.
So when the time came for Anatomy 2 Technically, there was no “Amatomy 1” and “Anatomy 2” but rather a mid-oral exam you had to do after the first two semesters where you got drilled about everything but the central nervous system, followed by the final oral exam in which everything was in play. Fun times., our student was even more confident and less prepared, and by now you should know where this is going. Same professor, same hallway, same TA coming in with an offer for the privilege to pay a 100 euro lubrication fee. Alas, the professor was in a foul mood that day and flunks the student within 10 minutes. Crestfallen, the student slouches out of the office and sees the TA. “So sorry about that”, says the TA while handing him back the 100 euros, “but you were so bad that there was no chance he could let you pass.”
The joke, if you can call it that, is that the professor was psychotic but not corrupt, and that the TA was playing a game of chance. If it works it works, if not, well, there is always the money-back guarantee. It is as close as you can get to a victimless scam.
A phone call my wife received this morning reminded me of the scheme. It was from someone presenting as staff from the Johns Hopkins billing department. Apparently, there was a balance past due, back from November of last year. This was only a courtesy call, you see, but would you like to pay now or set up a payment plan, to avoid it being sent for collection?
Between the six of us we get about two dozen Explanations of Benefit each quarter. I may not be diligent about looking at every line item, but if there is one thing our insurance company helpfully provides even without logging in to the portal and opening the PDF it is the amount owed. Now, if my wife and I were inundated with work the way we usually were something could have slipped through the cracks, but I was on paternity leave with more time than usual to deal with the overhead of living in the United States so I was pretty sure there was nothing we could have received from insurance that we would have missed.
Except for a pile of snail mail on our dining room table, which I collect about once per week. And there, in an envelope addressed to my wife, was an account statement from Hopkins dated last week — due early next month — that said that we did indeed owe just shy over half a grand for hospital services rendered last November.
This was the first we had ever heard about owing for these particular services, rendered in an in-network facility, performed by in-network physicians. And was that not a curious sequence of events, an early morning phone call urgently asking you for money you didn’t even know you owed until, at best, just the week before? I didn’t want that particular loose thread hanging over me on Tax Day of all days so there I was, HRA card in hand, ready to settle the balance online, until my wife who is as wise in the ways of health insurance and billing as she is in the ways of shopping asked me to cross-check the Hopkins statement with the insurance EOB before I did anything rash.
What a good thing I did, as they did not match. If you are lucky enough not to have to deal with American health care, this is how billing works: hospitals have a list price for their services which they pull out of thin air. Insurance companies have their own opinion about what those services are worth, and a hospital being “in-network” means that they have agreed on the insurance company’s price while “forgiving” the rest. On the hospital bill this will be the “insurance adjustment”. Well, the adjustment our insurance said they negotiated and what was shown in the Hopkins statement differed by exactly the amount Hopkins was now asking from us, which as an in-network hospital they were not allowed to do.
So now it was me on the phone calling the Hopkins billing department, asking about the charge, the person on the other end of the line checking — on a 15-minute muzak hold — what was going on, not finding out, promising a call back in 5 to 7 business days and not to worry about the collection because we will get to the bottom of this mysterious error (if it is an error at all, let’s wait and see) that the hospital made, happens very rarely, practically never, always in the hospital’s favor. I look forward to receiving a voicemail, 5 to 7 business days from today, telling me that the magnanimous Hopkins billing department staff has forgiven all our transgressions and that our balance was zero.
Back when there was such a thing as guidance on conflicts of interest for federal employees, it was drilled into and onto us that even semblance of impropriety, what social network warriors would tag as not a good look, was to be avoided at all costs. It does not matter if you did or did not mean to pick this contractor because your spouse works there — they may be the best company in the world for the job for all we care — you should not be involved in the decision. I agree with this now-antiquated viewpoint and propose extending it to scammy behavior or large corporations. It doesn’t matter whether you used a fake charge on a late bill to threaten collection while offering a quick solution with the express intent to defraud or if an unfortunate series of events led to only the appearance of a scam: it is not a good look. One that, unlike our fictional teaching assistant’s, can and does have real victims.
Apple decoupling update: the written word
Having switched to Linux for 90% of my computing, I realized Emacs could cover much of those 90%:
- mu4e for email
- org-mode for project management
- Denote for slipbox-styled notes I have followed the Zettelkasten blog since its early days but have somehow missed out that they were big proponents of Emacs. Here is a talk Christian Tietez of the Zettelkasten blog had at EmacsConf 2025, which is how I learned about Denote.
- A custom micro.blog client, Microbe, for blog post management
- A custom Inkwell client, Inkling, for reading RSS feeds
And for all my kvetching about how ugly Emacs can be, this was in fact a me problem and not an Emacs problem. It took 8 lines of code and downloading some decent fonts for things to look much better.
Microsoft’s Windows Office Copilot web apps cover almost everything else. Alas, not absolutely everything:
- Having used DEVONthink for document management I am reluctant to go back to the naked file system. Still, in the last few years I had been using DEVONthink’s advanced capabilities less and less to the point that its main purpose was as a security blanket.
- My data analysis journey went from R to Python (or rather iPython/Jupyter) to Mathematica. There are many reasons why Mathematica is no longer a good fit so now I have to decide how many steps back I should take — to Python or R.
- Podcast recording and editing is a tiny issue in the grand scheme — there is but a single podcast in Serbian that I am in care of — but I would rather not have to reinvent the workflow I have down pat in Logic Pro that gets me from raw mp3 to the final upload in 15 minutes or less.
Which is to say, expect a few more of these updates on the software side. Hardware will have to wait.
Blog infrastructure updates
Goodbye, Feedly. Now that Inkwell has soft-launched OPML sync If you are a Premium user of micro.blog, go to the Account page and click the “OPML Sync…” button in the Feed subscriptions section. It asks for the URL of the OPML file you would like to sync with, though from my experiments “Sync” is a bit of a misnomer as it will only add the RSS feeds it finds there that you don’t yet have on Inkwell but it doesn’t remove the ones that are on Inkwell but not in the syncing OPML. I can go back to FeedLand as my source of RSS feed subscription truth. This also means that my blogroll is due for a makeover. Would it not be much better if I could show the most recent posts for each recommended feed, FeedLand-style?
The second update is to Hugo, micro.blog’s static website generator of choice, which is now version 0.158, from 0.91.
Hugo versioning is absolutely idiotic so you can’t tell, but this is a 60-version jump. The tradeoff for the noticeably quicker site generation — from around 2 minutes to <1 minute, important for someone who keeps finding typos in all of their posts — was time spent whack-a-mole-ing errors until I came to just a single WARNING which will hopefully not snowball into anything more serious.
The biggest errors, and the reason why initially the blog wouldn’t render at all, was that a bunch of functions were replaced by different, similarly sounding functions, made for reasons unknown. Petty stuff like .Site.Authors is now .Site.Params.authors, or .Page.Hugo is now hugo.Generator. Things that in the background may have been a life-and-death battle between warring Hugo factions (originalists versus those deathly afraid of technical debt? free spirits versus pedants?) but whose result is mere end-user annoyance. These were a simple Find and Replace away.
Second-order issues came from plugins that have not yet been updated. So in addition to Feedly I have also said my goodbyes to the Stats section of this blog, and to various rarely used functions — how often do people share this stuff on Facebook anyway, and does Facebook still have those web cards for each site?
The last is a warning that the term taxonomyterm has been deprecated and that, per Gemini, I should and I kid you not change taxonomyTerm to taxonomy and the old taxonomy to term. I thought I did this everywhere, but apparently not as I still get that warning each time I post something. But that I can live with.
My new (and only ever) editor is Gemini
A missed parenthesis obliterating all reference-style markdown links in this post along with other people’s attempts, good and bad, finally pushed me to add a proofreading step before hitting C-c C-c in Microbe. In the latest version, a C-c C-p will send the draft post to Gemini 2.5 Flash with this prompt:
The prompt itself was, of course, suggested by Gemini 3.1 Pro, as was all of the actual LISP code to implement proofreading.
You are a strict, technical copy-editor. Your ONLY job is to fix spelling mistakes, typographical errors, and invalid Markdown and Hugo shortcode syntax. You MUST NOT alter the author’s voice, style, phrasing, vocabulary, or structural choices. Output ONLY the corrected text. Do not add conversational filler, introductions, or explanations.
The main reason for the step were annoying shortcode mistakes that would lead to mangled posts, or even more often posts not even making it through Micro.blog’s build leading to minutes (minutes!) spent digging through error logs. But of course there were many, many more spelling mistakes. Last week’s Clara Barton post alone had a whopping 14!
So much red…
Whatever Gemini sends back, Emacs shows in split-screen view with errors in the old text marked in red and the new and improved version marked below in green. For each change, an a accepts and a d declines the suggestion. Easy!
Having said goodbye to Google years ago I can see the irony in picking Gemini to be my go-to LLM and at some point I will switch to an offline model, Doctorow-style. Until then, Gemini is it, thanks to the blandness of Google and its reliability (and it is saying something about the competition when the master of killing services for no good reason is reliable by comparisson).
The decline and fall of online writing
I
Last year, I replaced my Apple Watch with a Casio F-91W, a marvel of engineering. Terry Godier has just posted an essay, ᔥJohn Gruber beautifully designed, about the merits of that very model over any smart watch you can get. By the topic, message, look and feel of the article I should love it. Instead, I get a visceral reaction when I come across a passage like this:
And that absence, the peace of a thing that does what it does and then shuts up, feels like the most luxurious thing I own.
Not because it’s retro. Not because it’s minimal.
Because it’s done.
And also these two passages, back to back:
Most of your screen time isn’t leisure. It isn’t addiction. It isn’t even a choice.
It’s maintenance.
Your phone is not a slot machine.
It’s a to-do list that writes itself.
Godier recently came out with Current, an RSS reader for iOS whose product pages resembles the Casio essay in both language and design. Not surprising — the author is the same — but it did have a certain smell to it, a cadence of nots and buts that made me think when I first read that it was written by generative AI first, edited by a human second. The sheer length of the copy, leisurely meandering around the topic like the Colorado river’s double oxbow, made me think this was not the work of a software developer who would probably rather spend time polishing their app than designing scrollable eye candy.
But hey, Godier makes software first, writes second. If generative LLMs help them make better software more quickly, and then they use the same tool for something that is not their primary occupation, then who am I to judge?
II
Two days ago, I linked to “Lobster Boil”, an essay from Om Malik about the rise of OpenClaw. This is a typical passage:
AI can be personal. Not a service you subscribe to. Not a platform you visit. A thing that runs on your machine, serves your intentions, uses the model you choose, and works through the apps you already live in
And here is a passage from Malik’s “Neo Symbolic Capitalism”:
Which is why Twitter, now X, feels unbeatable despite everything. It is not because the product is superior. It is because the people with the most power and the most to gain have turned it into a gaming platform for symbolic capital. They are not users. They are players. And the game is very, very good to them.
A sentiment I can get behind! But the style still makes my skin crawl. There are 13 “nots” and 4 “buts” in Malik’s essay. His 2024 “Silicon Valley’s Empathy Vacuum” has not a single “not”, and a single lonely “but”.
Om Malik used to write for a living.
III
This morning I was browsing my RSS feeds — via Inkling for Inkwell, of course — when I saw Doug Belshaw’s post about his 7-step approach for authentic AI-assisted blogging. Belshaw also writes the wonderful Thought Shrapnel blog, quoted here many times, so I was keen to learn more. I was sad to see that, among the seven steps, the one that generated the first draft of the post was relegated to AI. There is a human rewrite then, followed by evaluation of the final text by GPTzero.me to see how much humanity that rewrite managed to instill.
I mean, what are we even doing here?
The byline for Belshaw’s articles should be “Perplexity”, who should then thank Doug for giving them the idea, reading the first draft of the article, and helping them with revisions. Belshaw mentions in his 7-step guide that Cory Doctorow was panned when he shared his own approach to LLM assistance in writing. Doctorow has AI proof-read his already written articles. This approach I can understand and will indeed start implementing one of these days: there have been one too many instances of extra parenthesis screwing up my Markdown, not to mention run-on sentences, unintentional non sequiturs and the like.
IV
I have written quite a few first drafts of scientific articles, and have revised countless more. The first draft is harder by far, but is also the one that makes the biggest mark. It sets the tone and, unless you have a particularly sadistic co-author who has the actual article already written and ready to use as redline all over your first attempt, will make the most of the final product.
Everything Godier, Malik and Belshaw write can and will be used to teach other LLMs about how to write. The first-draft approach to LLM assistance is creating the AI ouroboros. I’d rather not be around to see it fully manifest.
The (anti)aesthetics of Emacs
John Gruber had to write an AppleScript to ‘Save MarsEdit Document to Text File’. With Microbe, my 99% Gemini-generated first attempt to create a Micro.blog client in Emacs, this function came built in without my having to specify it. Now, I am yet to add an actual Draft status to the Microbe posts. But since I post these as soon as I write them without much time left to simmer, for better or worse, this has not been a priority. Since the interface for composing posts is just another Emacs buffer you can save it as a text file as you would any other buffer: with a C-x C-s. Which is to say, Ctrl-x, then Ctrl-s. Emacs’ propensity towards shortcuts extends to the text descriptions of the shortcuts themselves.
The functionality comes for free, but let’s face it Emacs is not the prettiest thing to look at right out of the box, and to my knowledge there is no way to beautify that toolbar. I had a feeling it was the antithesis to Gruber’s design sense, and that was indeed the case as far back as 2002 when he described it as being “at opposing end of the spectrum” from his favorite text editor, BBEdit. Of course, some implementations are worse than others. There was a positive mention, albeit indirectly, when Gruber quoted from an interview with Donald Knuth. In it, Knuth mentioned that:
I have special Emacs modes to help me classify all the tens of thousands of papers and notes in my files, and special Emacs keyboard shortcuts that make bookwriting a little bit like playing an organ.
This is the power of Emacs: to make you forget about its (lack of) interface because it is the Hole Hawg of text, all the more powerful now that generative AI can create custom modes in a blink. You will look at it in awe even as it leaves you dangling from a ladder.
Dave Winer asked me a question about APIs. A friend of mine, who is also an oncologist and a big fan of Mad Men, upon seeing the interaction: “This would be like Matt Weiner asking me for advice on a short story I wrote”. Indeed!
Here is a quick update to my Now page, which for whatever reason I only get to do while traveling. Or maybe not so quick — by the time I completed, our flight (finally) took off.
I wanted to manage my micro.blog posts offline in Emacs, so I had Gemini make microbe.el
After reading Apple in China and deciding to decouple from Apple, I started asking Google Gemini how to replace my favorite MacOS apps with their Linux equivalents. I have been a vim person from way back but always had Emacs org-mode in the back of mind so a replacement for OmniFocus came first. Replacing MailMate with mu4e — another Emacs addon — was a close second.
Once you learn about the Emacs hammer everything starts looking like a nail, including blog post management. My blogging tool of choice on MacOS is Daniel Jalkut’s MarsEdit, and my experience with mu4e made me think a similar approach could work with micro.blog’s APIs. Now, I know nothing about those APIs nor about Lisp, which is the Emacs scripting language of choice. But Gemini was fluent in both, so it was trivial to instruct it!
It took two tries for each of the main functions I had in mind (full text search, tagging auto-complete, quick copying of the published URL, easy image attachment) but also to get the basic look and feel right, emoji being the most challenging to implement correctly. Even with all that I spent less than 3 hours to have more or less in shape for using and sharing. The single leftover feature, drafts, I don’t use often enough to spend even a few minutes on, but I may get to it at some point.
Microbe.el is available on GitHub. Note that it is completely LLM-generated (Google Gemini) so please approach it with some caution, but also do with it as you please. Many thanks to Manton Reece for creating and stewarding micro.blog and making it as open as it is. Thanks also to Daniel Jalkut for making MarsEdit.
It took me less that two hours with Google Gemini to create microblog.el, a micro.blog manager for Emacs which can edit old posts, create new ones (even with images), auto-complete tags and perform lightning-fast full text search. What a time to be alive!

Update: It’s out on GitHub!