Finding a way to “Speak the Truth”

One of my biggest rules for writing nonfiction is “speak the truth.” It might be *my* truth, others might disagree, but that truth is absolutely necessary.

A book I’m planning to write after Run Your Own Mail Server really needs to use Debian as the reference platform, for reasons I’m not gonna get into here. But my heart is obviously and publicly in BSD-land. How could I write this and be truthful?

I’ve been chewing this over for a while, but the obvious just hit me: it’s about voice and theme.

I need to write this book with a motif and theme that fits the topic. I’d been pondering using a Trek motif, but this specifically needs a DS9 theme.

Specifically, a “O’Brien managing Terok Nor” theme.

NOW I can write this book and be truthful. (bang)(clang)(grind) (BOOOM)

The detail that this requires a DS9 rewatch is purely incidental.

60 Seconds of WIP, 24 August 2023

Today’s reading is from an as-yet-untitled Christmas story. Yes, I write Christmas stories. And I sell them to anthologies.

We go through a lot of coal. The Workshop has geothermal heat, sure, and there’s the big solar farms for the nightless summers, but certain people don’t have real friends—friends who will tell them the truth. You might be one of the richest people on Earth, surrounded by sycophants and lickspittles who cheer your every whim as unquestionable moral excellence, but it doesn’t matter how many yes-men you have or how good your security is. That inexplicable lump of coal on Christmas morning declares that you haven’t fooled Mister Jolly and he is here to call you on your bullshit.

Not many people need that reminder. But one percent of eight billion is eighty million, and each lump is about a hundred grams. That’s eight thousand metric tons of coal to pull out of the walls and load, eighty hoppers behind a modern industrial locomotive, and us with pixaxes and push carts and a damn choo-choo.

One day I’ll publish a collection of bitter Christmas tales, but for 2023 you’ll see at least one new holiday story from me.

60 Seconds of WIP, 17 August 2023

Today’s snippet is from Run Your Own Mail Server, discussing Dovecot’s password algorithms. You also get a footnote.

What are all these algorithms, and why do you care? Most often, you don’t.

You just need to pick one.

Dovecot’s documentation declares that ARGON2I or ARGON2ID are the preferred algorithms. Blowfish (BLF-CRYPT) comes next. In 2010 the NIST recommended the PBKDF2 algorithm, although in 2023 NIST declared they would be revising their recommendation. If nothing else, the salted SHA512 scheme, SSHA512, is supported almost everywhere.¹ Many of the other algorithms supported come straight from OpenSSL, and are not suitable for production use. Do not use them unless your organization’s security policy insists you follow dangerously outdated standards.

¹ Please do note my anti-recommendation for the LANMAN algorithm.

If you wish to follow my bad example, please consider sponsoring the book. Or perhaps look at the Kickstarter for my next fiction collection.

60 Seconds of WIP, 10 August 2023

Today’s snippet is from Run Your Own Mail Server, discussing local databases in Postfix.

We discussed the aliases file back in Chapter 1. An alias is a system-wide message forwarding, so that email sent to one address on the host can be redirected to a real account. Whenever you update the aliases file you must run newaliases to regenerate the database. This is a classic Unix feature, but Postfix lets you follow that example and store most tables as local databases.

You’ll often hear these local databases called hash files. Originally a hash file was a specific format, but over decades that term has been catastrophically distorted until people apply it to almost any type of local database file. There’s the primordial Berkeley db file, btree files, DBM files, SDBM files, and more. Over drinks one might credibly argue that sqlite is backed by a super-hash file, but at that point someone pulls a blaster and the whole bar erupts.

If running your own email intrigues, please consider sponsoring the book. Or check out the Kickstarter running for my next fiction collection.

Patreon update: I got paid, mostly

The subject says it all, I guess?

Patreon appears to have sorted out their latest kerfuffle. I lost a few Patronizers, but I’m nowhere near as badly impacted as some creators.

Blaze Ward’s latest Milestone Publishing Newsletter talks about the importance of owning your platform, as greatly as possible. I mostly agree with it, except for the part about moving to Shopify. They’re an external vendor, they will enshittify. I can do everything with Woocommerce and Bookfunnel that Shopify can do, and Woo’s open code makes it enshittification-resistant. I can replace Bookfunnel if need be.

Anyway, own your platform. Have multiple streams of revenue, even if some seem redundant.

And if Patreon unsubscribed you from me, I can promise that my platform won’t do the same. Or, if something goes wrong and it does, I’ll have the data to fix it.

Patreon has stopped paying me

Patreon has failed to pay me for August, as part of their latest implosion.

If you’re one of my beloved Patronizers who backs me through Patreon, check to see if you’ve been charged. Because I haven’t got it.

If you’re flexible on where you back me, I built my own Patreon at https://www.tiltedwindmillpress.com/product-category/patronizer/. I usually do a soft sell on the whole “ditch the middleman” thing because lots of you have reasons for using Patreon, but this latest mess impels me to bring it up.

60 Seconds of WIP, 3 August 2023

Today’s snippet is from Run Your Own Mail Server, discussing LMTP versus dovecot-lda(1).

Once multiple messages start arriving simultaneously it’s much more efficient to use a dedicated daemon for local delivery, via the Local Mail Transport Protocol (LMTP).

Why have a separate protocol for local email? LMTP is a heavily trimmed-down version of SMTP. LMTP doesn’t need queues; either it delivers the message to the user’s inbox and reports success, or can’t deliver and reports an error. All queuing takes place on the SMTP level. LMTP is designed for trusted environments, so it has no access controls. If you can reach the LMTP server, you can use it. If you have separate hosts for the message store and the mail exchanger, you can use LMTP between them and protect the service with packet filters, firewalls, and a Sith Lord with a six-bladed lightsaber and constipation. For a single server, though, use LMTP over a Unix socket.

If you’re interested, you can support writing this book and get your name in inside. I freely consider that many sysadmins consider running their own email server pure doom, and if you’re into doom you should look at my Kickstarter.

“Apocalypse Moi” Kickstarter is live

Presented for your amusement: DOOM.

Technically it went live yesterday, but I had to post July’s “See the Sausage Being Made” so here it is. Also technically, it funded the first day. Further technically, that means I can pay the publishing expenses and break even. I am fond of food and having teeth and stuff, so I’ll still be shilling it until the very last day.

If you do nothing else, watch the video. We worked hard on that silly thing.

I’ve been pondering ways to reduce the mental load of Kickstarter promotion, so this time I’m presenting 30 Days of Doom–my favorite apocalypses from literature, film, and music. Search out #30DaysOfDoom on the Fediverse or Facebook, or see it on my fediverse server. You can even subscribe to the hashtag via RSS. Dang, the Fediverse people really thought through the protocol.

Or, just go to the Kickstarter and give me eight bucks. Whatever.

July’s Jabberwocky Sausage

This post goes to Patronizers at the beginning of July, and the public at the beginning of August.

Once upon a time, I owned a Chevrolet SSR hard-top convertible. It retailed for fifty thousand dollars in 2005, back when that was real money. No, I didn’t buy it. I won it at a $500/plate charity auction. That I got into for free.

It was a fantastic car. It devoured road. The sound system stunned drivers on the opposite side of the divided highway. Over the fifteen years we owned it, three women and one men ran up to me at stop lights to give me their phone number. Not that I called any of them. Even if I wasn’t happily married, anyone who wanted to hang out with me because I drove an expensive car would find themselves disappointed in every other aspect of my life.

When I had a real job that required my presence on site, I would drive that car one day a week. If I had a day where I ran errands after work and needed to drive extra, I chose that day. Now that I’m directly employed by all y’all I leave the house to go to Costco, my monthly writers’ meeting, the dojo, and BSDCan. Costco is about a four mile trip, maybe once or twice a month. The writer’s meeting, once a month. I drove the convertible to those whenever possible. I had no trouble taking the convertible to the dojo, but I sure wouldn’t let my stinky sticky self back in the car afterwards, so that was a no. Driving it to BSDCan was fun.

Here in Detroit, I could use the car five or six months out of the year. That’s thirteen trips, most of them only a few miles and one over a thousand miles.

I put the car up for sale in 2019, and it sold in January.  I was paid in 2020 dollars, sadly. The pandemic hit immediately afterwards, so we put the money in the bank and waited for the next debacle.

This June, our home air conditioning stopped working.

The HVAC mechanic came out and informed us that the system was thirty years old and had been incompetently installed. Hearing that from a service mechanic is an extraordinary claim, and requires extraordinary proof. He provided it, with details like “the interior unit draws power from the electric meter, not the breaker box” and “the reason your bedroom is warm is because rather than put an angle connector in the ductwork, the installer bent it with a hammer.” It’s not that the 1990s coolant this thing used was illegal, but it’s now expensive enough to discourage using it. If we replaced the pipe that blew and recharged the system, one of the others would probably blow.

The lifespan on a modern AC unit? About fifteen years.

How much for a new AC?

Almost exactly what we made selling the convertible.

One of the annoying things about this business is that borrowing money is difficult. The United States runs on credit. I firmly believe in paying cash or doing without, and I don’t mind heat if I can open the windows, but the wildfires get worse each year. I’m not sure if the high particulates give me asthma, or if my lungs are still inflamed from covid, but air conditioning is now mandatory. The HVAC company claims they offer easy financing, but one look at my employer and they’d dial the interest up to “loan shark.” My family needs to pay cash or do without.

I don’t mind living on a cash basis.

I do mind not having options.

We now have air conditioning, and I’ll spend the next year or two replenishing the emergency fund. It’s okay. That’s what emergency funds are for.

And writing is for replenishing that fund.

Run Your Own Mail Server is congealing. The topic requires more up-front explanation than usual, with walking the reader through the basics of forging email and sending spam and exactly why email is a very special trash fire.         I keep thinking I’m going to buckle down and pound through these words, but illustrating every step feels like dragging a moose through quicksand and explaining anything requires explaining another topic first. I must disassemble every topic and put the pieces in a meticulous order. That order is achievable, yes, but the reader doesn’t immediately gain anything from that background. I’m pulling every trick I know to make the text pleasant to read, even if the reader doesn’t get the constant slow dopamine hit of technological epiphany. (Some of you will get that hit from the text. You are nerdier than most. Congratulations.)

I took half a day and released a new Prohibition Orcs short story. Yellow-Eyed War is exclusive to my web site for a couple reasons. Yes, disintermediation is one; I prefer people buy direct from me. But it would take me about five hours to upload this tale to every single distribution channel, and I’m not going to make enough on the story to pay that back. So I’m trying exclusivity. We’ll see how well that works. Many of you got this story as part of your Patronizer benefits, so the sales channels is irrelevant.

That leaves the question of what to do with chapbooks, however. (A chapbook is a print edition of a short story or tiny novella.) I put short stories in print to make the ebook versions look inexpensive. (That’s the same reason I offer tech books in hardcover.) I would sell one or two of them to hard-core collectors, but most of the sales were electronic. Of the chapbooks, most of them went to print-level Patronizers.

Additionally, I put stories in print so I can test different fonts, layouts, and other formatting options. I’ll keep designing chapbooks and shipping them to print-level Patronizers, but I suspect that Patronizing is the only way folks will be able to get them. I want to reduce my administrative overhead, and managing yet more stuff in IngramSpark and Amazon’s print program when there’s almost no sales is pure overhead.

Speaking of adding administrative overhead: I seem to be starting the world’s lamest podcast. 60 Seconds of WIP has one guest, me. I read sixty seconds of a current Work-In-Progress, such as RYOMS. It was Allan Jude’s idea, so please direct any blame his way. I got recording and posting each down to less than five minutes, so I’ll probably do one a week for a while and see if anyone cares. This week I’m switching to audio-only, and perhaps sending them into the various podcast distributors instead of just my blog.

Thank you all for your support. I sincerely appreciate it.

60 Seconds of WIP, 27 July 2023

Today’s snippet is from Run Your Own Mail Server. Here’s a tidbit about the link between Unix accounts and email addresses.

I expected to be further along, but Apache and X.509 had different ideas. Delay: yet another service they provide!

Your test system is set up the same way most twentieth-century mail systems were. Each email address is associated with a Unix account. Adding a Unix account automatically creates a matching email address. Email addresses without Unix accounts are processed by the aliases file as discussed in Chapter 1. If an address has neither an account nor an alias, the address is invalid.

This is undesirable for most modern systems, even if you’re truly running email for only yourself. If you want additional accounts for friends, family, or a small organization, it’s a disaster. Perhaps my half-Wookie-but-balding uncle needs an email account at the family domain, but I know for a fact that he answers every hair restoration spam and he doesn’t understand the difference between Netflix and his cell phone. His email should not be tied to a Unix account or, indeed, any system access whatsoever.

The book’s still open for sponsorships, if you’re interested.