Running a solo law practice on open source software.
Batch OCR for Scanned Exhibits on Debian
My PDF workflow post ended with OCR as one of the things I need from a PDF tool. Master PDF Editor can OCR a document, but it does one document at a time. That’s fine for a single contract. It’s miserable for a folder of scanned exhibits. Scanned exhibits come in piles. A recent matter had a folder of image-only PDFs: check images, tax returns, a letter that somebody faxed in. I don’t want to open each one, click OCR, and wait. I want to point a tool at a folder and come back later. ...
How This Blog Uses AI
When I started Linux Lawyering, the plan was simple: written by a human, for humans. I typed every word of the early posts myself, and I liked it that way. But that plan ran into my calendar. I run a solo practice, and that comes first. The homelab, the PDF experiments, and the failed driver installs kept piling up faster than I could write them up. So the backlog grew while the blog sat quiet. ...
Is Your Backup Actually Working?
A green checkmark tells you a backup job exited cleanly. It doesn’t tell you the backup exists, is recent, or can be restored. Those are three different questions, and I only started asking them on a schedule last month. I’m a lawyer, and client files are the one thing I can’t lose. I’m not going to cite you a rule here; you know your own jurisdiction’s duties better than I know them. But the common-sense version of the duty to safeguard client data surely includes knowing whether your safeguards work. “The job didn’t complain” is a weak answer to “how do you know?” ...
Managing Gmail Filters as Code with gmailctl
Gmail filters work fine until they don’t. You set up a rule to label court notices, another to archive newsletters, and a third to keep vendor invoices out of the way. A year later nobody remembers what each rule does, and the one you added last spring is quietly archiving replies from your own colleagues. I wanted the firm’s filters in a file I could read, diff and version. The tool I landed on is gmailctl, a command-line program that reads a config file and pushes the result to Gmail through Google’s API. ...
Master PDF Editor Won't Come Forward on Wayland
In the PDF workflow post, I said I was test driving Master PDF Editor. My complaints there were about scrolling and page views. This one is about the window itself, and it’s a bigger problem for anyone who opens files all day. What broke I run Debian Trixie with GNOME on Wayland, and I installed Master PDF Editor as a Flatpak. If Master PDF is already open and I open a second PDF from the file manager, the file loads. The Master PDF window doesn’t come to the front. It stays behind whatever I was working in, and I have to Alt+Tab or click the taskbar to find it. ...
Paperless-ngx vs. Papra: Trialing Two Self-Hosted Document Managers
I’m trialing two self-hosted document managers side by side, and I don’t have a winner. The trial is ongoing. What I do have is a build that works, a few lessons about AI-assisted filing, and a failure that taught me something about how Linux treats dependencies. Why two A law office is a paper-and-PDF factory. I want scans and incoming documents to land somewhere, get OCR’d, get titled and tagged, and be searchable later, without paying a monthly fee to a cloud vendor who then holds my files. ...
Self-Hosting Stirling PDF as an Office PDF Toolbox
I’ve written before about replacing Acrobat on Linux. The desktop editors handle the daily work. But there’s a pile of jobs that aren’t daily and aren’t pretty: merging a hundred exhibits, compressing a file so the court’s portal will take it, redacting, converting a Word file back and forth, running OCR on a bad scan. So I put a PDF toolbox on the network and open it in a browser. It’s called Stirling PDF. ...
Trimming a Brief to the Word Limit
A recent appellate reply brief of mine started at 10,881 words. The cap under URAP 24(g) is 7,000. That’s a lot of brief to lose, and I didn’t want to lose it by hand—or by letting an AI quietly rewrite my work. So I used AI to propose cuts, built a small tool to review them safely, and found that the biggest savings didn’t come from cutting at all. Here’s what worked, what broke, and what I’d do again. ...
Two Vaults, AI, and Client Confidentiality
My AI-assisted knowledge base is split in two on purpose. Legal and professional knowledge lives in one vault, homelab and personal stuff lives in another, and client casefiles live in neither. The split exists mostly because of confidentiality, and it took me a while to see that. What a vault is, here A “vault” is just a folder of plain Markdown files. I view it in Obsidian, but nothing depends on Obsidian. The files sit on my own server, under Git, and get replicated to a second machine every day. No subscription, no proprietary database, no export button to hunt for. ...
Writing a Brief in Markdown
I drafted a recent Utah reply brief as a pile of Markdown files instead of one Word document. Some of it worked well. Some of it bit me. And one problem, what to name the files, is still open. This is one brief’s experience, not a standard I’ve adopted. I have a design for a fuller Markdown drafting setup, but as of today it’s a proposal. It isn’t what I used here. ...