September’s Stillicidious Sausage

This post goes to Patronizers in September and becomes public in October. Not a Patronizer? You could be! $12 a year gets you my latest updates, occasional free tidbits, and the completely pointless MWL Footnote Fortune File.

Operation Acclimate To Mac proceeds apace.

So does Project Math The Networking for System Administrators Kickstarter.

The Mac has has certainly fulfilled the promise of Rage Different. I’d like to set a list of particular folders in the Finder sidebar. Not an option. Instead, I’ve set up symlinks in the Documents directory. If I SSH using the Remote Connection terminal and the connection terminates, the terminal window hangs there without exiting and non-restartable. The only option seems to be open a new Remote Connection terminal, resize the new terminal appropriately on the correct monitor, and close the old window. I’m using terminal windows so I can reboot a host, get a command prompt back, and reconnect with an up arrow. I still have to set up Time Machine to point at my home freenas. Wait, I should go do that before finishing this post. (3 days pass.) Okay, done. The functionality of the CTRL key is split between the COMMAND and CTRL keys, which requires remapping my fancy keyboards and retraining my fingers.

Many little annoyances. Nothing insurmountable, merely irritating. It’ll pass.

Shipping prices have increased, as have print prices. I had to double-check every price for the N4SA2e Kickstarter. This prompted me to build a spreadsheet of costs, so that the next time this happens I’ll have a convenient list of everything that needs updating. And prices will go up. US food prices are about to increase even more, which will drag everything else upward. This compels me to consider raising prices in advance of everybody else’s price increase. That feels wrong, so I’m not going to do that. The prices of my print books are largely dictated by manufacturing costs. Ebooks are more about the market and my innate sense of fairness. N4SA2e is a hefty 55,000 words so I’m going to price the ebook at $12.99. For now. We’ll see what happens.

Eventually I’ll have to raise the price of all my ebooks. This will mean pulling most of the tech books from Amazon’s Kindle store. I want to hold that off as long as I can, out of some vestigial hope that Amazon will increase their $9.99 limit. They won’t raise the limit. Raising the limit is not in their interest. But like a hostage during a bank robbery, I hold out as long as I can before accepting that nobody’s coming to save me. 1

Anyway, if you’re curious, I have a private preview of the Kickstarter up. You can’t back it yet, and please don’t share the link. Any benefits that Kickstarter backers get as a result of stretch goals will also go to sponsors. Why? Sponsors supported this book early, and I won’t penalize them for that. I successfully recorded and edited the video on my Mac without triggering another apocalypse, so that’s a plus.

The manuscript is due back from copyedit at the end of September. I should be able to make the corrections and get a print proof ordered before the campaign ends on 9 October. By the time the Kickstarter money arrives, I’ll be able to order the print books for fulfillment.

I made the first real words on the next book, OpenZFS Mastery. I’m cowriting this with Allan Jude. It’s basically a second edition of the two existing ZFS books, but adds Linux material. This will be the biggest Mastery book by far, and the most expensive, dang it. Just the initial “slam two manuscripts together and mark places to add new information” draft breaks 100,000 words. Fortunately, print-on-demand tech has improved enough to support manufacturing such a book in durable form. Sponsorships won’t open until I ship the N4SA2e sponsor gifts. I must fulfill one sponsorship before I start another! (Yeah, I know, stupid ethics, but still.)

I really want to finish this book before BSDCan 2026. Will I? That depends on a whole bunch of factors beyond my control, but I’m gonna try.

My other big thing this month is EuroBSDCon. I’m going over my slides for the TLS and SMTP tutorials, making sure everything is up-to-date. In theory the slides from BSDCan 2024 should still be good but in practice there’s always something. (Remember, “in theory there’s no difference between theory and practice.” Whenever practice hears this cliche it laughs until it soils itself.) I also want to talk to some folks about what it would take to build my business in the EU, and possibly setting up a parallel company there to help shield my family from US political stupidity.

Oh, well. At least I’m not teaching Shoggothic Network Management Protocol.

Running a Kickstarter from a foreign country that’s six hours ahead of home is going to be… interesting. It launches before the conference starts so I can post the mailing list announcements while not jet lagged. I have to post something about it on social media every day, however, preferably something clever. While some folks can easily adapt to time zone changes, I am not among them. I did a six hour shift for EuroBSDCon 2013 on Malta, and felt sick for days. I arrive on Tuesday the 23rd, so I’ll have a couple days to try to shift my schedule. Shift my schedule before leaving? Great idea! My flight leaves Detroit at 10PM, so I have to stay up late that day anyway. It’s gonna be ugly. Much like my other trips to Europe, I suspect that only the power of caffeine can sustain me. A vat of hot black tea upon waking, followed by mainlining Coke Zero throughout the sessions. My biggest regret from EuroBSDCon 2017 is that I didn’t use enough caffeine to remain awake until dinner, which meant I missed out on nifty Parisian dining. No, upon second thought, my biggest regret was getting my pocket picked on the subway on the last day, leaving me without cash or ID as I tried to get home. Fortunately I had my passport in a different pocket. This time, I have a money belt. The only thing that I’ll have in my wallet is a sticker saying EBOLA SAMPLES DO NOT TOUCH.

Anyway, I’ll not only have to remain conscious throughout the con, I will need to be creative. My social media posts might be a little less connected to reality than usual. Yes, I know, high bar. Maybe sleeplessness will improve my connection to consensual reality? Dunno.

Anyway. OpenZFS Mastery. N4SA2e launch. EuroBSDCon. This is what you’re supporting. Thank you.

“Networking for System Administrators, 2nd ed” Kickstarter is live

The silly thing funded in fifteen minutes, and has gone high enough that all backers get a bonus ebook of FreeBSD Mastery: ZFS.

Yes, Allan and I are working on a new edition of the ZFS book. But the old one is still good, and applies to OpenZFS on any Unixy system.

Anyway, it’s there if you want it. The higher the Kickstarter goes, the more books I will give away.

The truth is, I don’t expect the current trajectory to continue. I made a point of asking folks to back the first day, in the hope that Kickstarter would notice momentum and slap “Project We Love” on it, blessing me with front page exposure. They still might. We’ll see.

Launching tomorrow: “Networking for System Administrators, 2nd edition”

The N4SA2e Kickstarter opens tomorrow, about 8AM EDT. Why “about?” The launch is manual. I must log in and hit a button. The first 512 bytes of my brainstem are barely enough to hold the instructions for obtaining caffeine, so it won’t be first thing.

This one feels weird. With 232 sponsors, 170 of them print sponsors, it’s my most sponsored book, which makes me think that I’ve already taken a good chunk out of my market. But the Kickstarter pre-launch page has 380 followers, more than I’ve ever had before. Maybe that’s great? Maybe they’re interested sponsors? Who knows?

What’s gonna happen? Not a damn clue.

I do know that getting a Kickstarter “Project We Love” badge means that KS gives the project an algorithmic boost. I also know that they choose PWL, in part, based on first day backer momentum. If the book interests you, please consider backing it the first day. Of course, I’d welcome your support any day!

Once the book ships to sponsors and Kickstarter backers it will be exclusive in my store for 30 days, the I will release it to retailers. I expect it to retail for $12.99, which means it will not be in Amazon’s Kindle store. Kindle users can buy it from other stores, but not Amazon’s.

August’s Anaitiological Sausage

This post goes to Patronizers in August and becomes public in September. Not a Patronizer? You could be! $12 a year gets you my latest updates, occasional free tidbits, and the completely pointless MWL Footnote Fortune File. Also: am I choosing See The Sausage Being Made post titles by picking words out of my 1933 Oxford English Dictionary that do not appear online? Moi? Would I do that?

Long-time Patronizers know that I’m stuck using a commercial operating system for publishing books. Choosing between commercial operating systems is like choosing between Catholic Hell and Evangelical Hell. My last real job was a Windows shop, so I stuck with it. Microsoft wants all of its users to 1) use their Copilot generative LLM and 2) store all their documents in their OneDrive cloud so they can feed their LLM. I cannot use any generative LLM for writing. The purpose of an LLM is to produce minimally acceptable text, even if that text is not factual. My purpose is to produce easily readable and factual text infused with character and experience. These goals are incompatible. Legally, I run two businesses. I produce and license intellectual property, and I provide bundles of ink-stained paper to customers all over the world. The output of an LLM is not copyrightable, and thus not intellectual property. I could produce ink-stained paper of LLM output, but why bother? Plus, I don’t want to deal with accusations of using an LLM. I worked for decades to get this job, why would I stop doing it?

Microsoft has grown increasingly heavy-handed in pushing people towards Copilot and OneDrive. Every time they update Windows or Office they turn them back on, and I must resort to increasingly arcane hacks to disable them. Microsoft Office and Microsoft Windows reinforce one another in re-enabling Copilot. Last week, the hacks to disable it and various TPM shenanigans cost me a week. Given that I’m still dealing with family matters, that’s a week I didn’t have. This problem will only grow worse.

Microsoft’s insistence on forcing me to use an LLM has compelled me to switch from Microsoft Hell to Apple Hell. Did I want to spend the money? No. Between the two options, which do I prefer? BSD, but that’ll get my books pulled from IngramSpark and keep me from distributing lumps of ink-stained paper outside the Amazon ecosystem. I still have my OpenBSD desktop for daily work.

Why? The OS and the word processor do not reinforce each other. MacOS has a single switch for enabling and disabling Apple Intelligence and doesn’t automatically stuff your home directory into their cloud. I use Dropbox for cloud work, because they make money off of me and aren’t so desperate to pillage my work to feed an LLM.

MacOS. It’s like Windows, but like an iPhone, except it has a functional command line. You WILL store your files the way MacOS says, although I have symlinks so it’s not too bad. I’ve spent less time adjusting to the differences than I would have wasted on stopping Microsoft from pillaging my files and poisoning my intellectual property. It’s just as annoying as Windows, but as their motto says: “Rage Different.” Or something like that.

If you’re in a similar position, Apple offers a “one year same as cash” deal.

On the plus side, the bottom of my standing desk is now much less crowded.

The Mac Studio is mounted under the shelf. I could fit my printer under there now, except then I’d have to get down on my knees to access it. Never go to your knees before computers, it gives them ideas.

In other news, the print sales system in my bookstore is working. People are ordering books. The big surprise for folks is that US Media Mail is not insured. I’m trying to figure out how to put that as a warning on the ordering page in a place folks will see it.

Since the store works, and folks are getting books, and the fees I have to pay are in line with my expectations, I’ve implemented a permanent coupon. The code MWL gets you 10% off. Folks need to pay shipping, but if you order a couple books that should mostly cover the shipping expenses. It’s not valid on sponsorships, gift cards, or discounted bundles. I make more on direct sales, and want to give a cut back to folks. I might raise the cut, I might lower it. Depends on the ever-varying fees I have to pay, world politics, and other elements I can’t control. Running a business during a national collapse presents challenges, so I’m hedging a bit.

I am engrossed in tech edits on Networking for System Administrators. I really, really want to finish this book, get it copyedited, and get a test print before I launch the Kickstarter. I don’t know that this will explode the way Run Your Own Mail Server did, but I think it’ll do better than Laserblasted. (Note to self: don’t launch a crowdfunding campaign two days before your country’s leader unexpectedly destabilizes international commerce.) My tech reviewers are making me double-check everything, which is both good and a real pain. (“What do you mean, there’s no standard for Ethernet jumbo frames? Sure there is!” “Oh? Where? But I better triple-check to prove this negative…“)

My web site redesign is underway. On the finished pages, clicking on a book description takes you to a separate page with buy links, all generated by spreadsheet as described last month. I still have a couple pages left to do. The new problem is that folks see the book description twice, once on the catalog page on my site and then again on the individual page. Once I have all the pages converted to have individual pages, I’m thinking that I’ll reduce the catalog pages to a gallery of book covers and titles. Clicking on a book will take you to the full description. That might help. I am actively soliciting suggestions for what folks would find useful, however.

Building a spreadsheet containing all the store links, tag lines, and descriptions for each book shows just how inconsistent I’ve been on all of that. Once I have everything converted, I get to go through the spreadsheet and fill in missing data. Oh joy. Oh rapture.

But at least I won’t be doing it in Microsoft Hell. Apple Hell is still Hell, but it shows a minimal concern for my future.

Thank you for your support.

“Networking for System Administrators, 2nd edition” sent to copyedit

The title basically says it all. Now I’ll start working on the new OpenZFS Mastery with Allan Jude. That work, of course, will stop once those copyedits return and I have to produce the book.

I’m tentatively scheduling the N4SA2e Kickstarter to start 16 September and run through 7 October. Three weeks is a long time for a Kickstarter, but it worked well for the mail book. If you’re interested in getting the book before the general public can, go to the Kickstarter page and click “Notify me now.”

Once the book is released, it’ll be exclusive to my store for a month before hitting retailers.

Web Site Reorg

Not really a reorg. More of a shredding.

July’s StSBM talked about how my web site is unmaintainable and unauditable. I have most of the titles up there, I think, but the descriptions are sketchy and the buy links are chaos. I had to hire help just to get the Amazon links straightened out. Every so often, one of my retailers make a change and I need to change every title. (“We’re iTunes! Now we’re iBooks! Apple Books it is!”) As you might imagine, those sweeping updates are on my priority list right after “never.” Most sweeping changes fail the WIBBOW (Would I Be Better Off Writing?) test.

I’ve built a spreadsheet for every title in print and their, tag lines, description, and links or identifying information for each retailer. Many of those retailer cells are blank, either because I didn’t upload the book to the retailer or I didn’t update the web site to point to the retailer. Again, WIBBOW.

Each book currently in print has its own page now, with the jacket copy and store links. This page is automatically generated from a spreadsheet. I’m using a spreadsheet so that I can, one day, hire someone else to maintain this.

The topic/genre pages now contain only the cover images and the book’s tag line. Clicking there takes you to the book’s page. The book index has been updated to point at the book page. Each page also has OpenGraph information, including a promotional image, making it easier for readers to link to a particular book. Short stories do not get their own page. Now that shorts are exclusive to my store, I can easily put the description on my site. They’re isolated at the bottom of a genre page so they don’t stick out.

I need to go through the front page gallery to have all those covers point at the new page. If you click on one of those covers you get taken to the genre/topic page and must click again. I’ll be churning through those in the next few days.

This organization doesn’t thrill me, but at my scale maintainability is paramount.

For the curious, the page-building script is at https://cdn.mwl.io/detritus/book-page-rebuild.pl . Why put it there and not on, say, github? One, github takes ICE money2. Two, github is increasingly poo. Third, if I put it in a more public place some daft bastard would try to use it. I would get demands for assistance and, worse, pull requests. Some even dafter bastard would claim that I had written a Static Site Generator and request co-maintainership for MWLSSG. (I understand that SSGs are trendy, but this is not an SSG. This is an ugly hack and, at best, a Static Page Generator.)

Or, worst of all, someone might think that this was an example of Good Code. Code is like skin. Showing the less personal bits is fine, but you should expose more of it only on request.

I would like to add “Next Book” and “Previous Book” links to the individual pages, but that raises questions and complicates the code. What’s the book order? By genre/topic? Boring alphabetical? Where is that order maintained? I want to hand this spreadsheet to someone else one day, so any order other than alphabetical needs to go in there, which means changing the order would involve perilous cut-and-paste operations and I am well experienced in how well employees can cut and paste. I was an employee, I know what I’m talking about here.

So I’m deferring all that.

But the next time one of my retailers changes the name of their store, I can edit a line of code and regenerate all the book pages. When I need a brain-dead project I can go through the blank cells in my spreadsheet and figure out which retailers I’m missing and why. That’s all good.

I don’t tell jokes: a “DNSSEC Mastery, 2nd Edition” outtake

I get accused of making jokes in my tech books. I don’t. I tell the truth. The truth is so ridiculous that the only sane reaction is to laugh. Honesty and integrity are everything, in both my fiction and nonfiction. (Yes, even in Laserblasted.)

Ever since PAM Mastery invoked Terry Pratchett’s Unseen University, I’ve started using pop culture references in my books. Usually I pick a single apropos motif for the book, such as Run Your Own Mail Server using Star Wars as a touchstone for fighting the Email Empire. I do this to make the text more readable and to hook the reader’s brain.

DNSSEC Mastery was written during the initial shock of Covid, so I used The Princess Bride as a motif. If you haven’t seen TPB, you really must. It’s one of those rarest of creatures, a perfect film. And endlessly quotable.

Recently, this discarded tidbit was brought to my attention. I created it when SNG reminded me that this book hadn’t yet insulted Oracle.

Vizzini, as an Oracle sales rep: “You’ve heard of Postgres? DB/2? SQL Server 2020?”

Man In Black: “Yes.”

Vizzini: “Morons.”

Man In Black: “In that case I challenge you to a battle of integrity.”

Vizzini: “For the database?”

Man In Black: “Yes.”

Vizzini: “To the death?!”

Man In Black:

Vizzini: “I accept!”

Man In Black: “Read this, but do not click «agree».”

Vizzini: “I comprehend nothing.”

Man In Black: “What you do not comprehend is called a EULA. It is odorless, tasteless, devolves instantly into legalese, and is among the more deadlier poisons known to man… All right: where is the liability? The battle of wits has begun. It ends when you decide and we both click «agree», and find out who is right and who is sued.”

It amused the folks who saw it. But it’s not relevant to the book. So it got cut out. Because I don’t tell jokes.

For the record, insulting Oracle is not a joke. It is a sacred mission.

July’s Janky Sausage

This post goes to Patronizers in July and becomes public in August. Not a Patronizer? You could be! $12 a year gets you my latest updates, occasional free tidbits, and the completely pointless MWL Footnote Fortune File.

I was very proud of having made a schedule over the last couple months. The schedule gave me hope.

Any orc will tell you that “Hope exists to be crushed” but nooo, I listened to the Hope Demon and here I am.

Family matters have largely overwhelmed me in the last few weeks. Book sales are always low in the summer, but ever since Fearless Leader declared that one way or another there would be tariffs, they’ve hit an all-time low. My Patronizer income exceeds everything else combined. So once again: thank you for supporting me!

Real life complications hit everyone. If I worked for a company, my boss would classify me as “temporarily zombied” and increase the amount of time he spent beating me until I produced something. It’s nothing personal, of course. Being self-employed, I have to beat myself to produce things. In particular, I’ve promised the world an orc story for the Twisted Presents collection. That story does not exist. I’m going to delay the start of the Kickstarter until the tale does exist. I have half of something, and I know the shape of the tale, but every word I grunt out lies dead on the page.

Advertising “there’s a brand new orc tale in this collection so back it” only works if the story is good. Oops.

The mysterious, omnipresent, all-knowning They say that “a change is as good as a rest,” so I’ve turned what attention I have to a simple matter of programming.

Print sponsors might buy a book as much as a year before the book is released. I’d like to be more timely, but that’s the sad truth. The new Networking for System Administrators has about 170 print sponsors. Even a small rate of address changes means several returned packages. Each book attracts more sponsors. Don’t get me wrong, that’s great, but this problem will only get worse. I really must verify everyone’s shipping address.

The standard method of business data exchange is the (ugh) spreadsheet. WooCommerce exports data via spreadsheets.

So I wrote a simple Perl script to extract sponsor names and addresses from an export spreadsheet and send a confirmation mail to the sponsor. No, I’m not going to put this on github because 1) github takes money from ICE, and 2) some poor bastard might try to use it. When I order the sponsor gifts I’ll use the script to correct everybody’s shipping address.

Yes, some folks won’t catch the mail. If it halves the number of bounced packages, I’ll count it as a success.

That led to my other project. My web site is a mess. Listing books by category and genre helps hold the site down to a vaguely sane number of pages, but stuffing all the buy links next to each book makes the page ugly and unwieldy. Plus, it’s unauditable. All of my books are on Kobo, Amazon, TWP, Apple, and so on, but not every store is listed for each book.

I’ve decided to treat my web site as a catalog, without buy links. Clicking on an individual title in the catalog will take you to an individual page for the book. Maintaining pages by hand is unsustainable. I want to be able to hand maintenance to someone else, so that means (ugh) a spreadsheet. Or I could write a web app but no, the first thing I’d have to do with that web app is build a report system to generate a spreadsheet so let’s just stay with the spreadsheet. The spreadsheet records the buy links for each non-Amazon retailer, the Amazon catalog number (ASIN) for the book, and Amazon affiliate codes. It also has the book’s jacket copy and tag line.

I also have a long-running annoyance where people on the socials link to one of my books but an unrelated image shows up. Giving each book its own page lets me work around that by setting a featured image in the HTML.

The script basically works. I need to change the text for free ebooks, but that’s fairly minor. Now I’m going through every page on mwl.io creating spreadsheet entries and ad images for each title. Comparing, say, the finished SF page to an old tech book page, it does look better.

Click on a title and you’ll get the individual page, like this one for the brand-new Laserblasted.

Oh, right. Laserblasted left my bookstore this month and went into the broad world of retailers. A couple folks bought it at Amazon. Reception among those who read it has been positive, which is nice. If you’ve read it, I would appreciate a review at Goodreads or Amazon or… anywhere, really. (The usual reminder: Amazon and Goodreads considers a three star review negative and their algorithms will treat the book as such.)

The good thing with spreadsheet work is I can snatch a few minutes here and there to do it, amidst the larger mayhem that is my life right now. Right now I’m hanging on, hoping matters will settle down enough in the next week for me to actually clear my brain and write for a few hours. I’m hoping US politics settle enough that I can sell some books and stay in business. I’m hoping I can return to my home after September’s trip to EuroBSDCon in Croatia.

In happier news, I have received the N4SA2e challenge coins and they’re quite spiffy. Sponsors and print-level Patronizers will be pleased. But that’s about it for happy news.

Months like this, your support means the difference between keeping this career and returning to normal employment. I am grateful to every single one of you.

Until next month!

Permanent Discount on Books at My Store

TLDR: The coupon code MWL gives you 10% off all titles at my bookstore. It’s not valid for discounted bundles, sponsorships, or gift cards; just existing regular titles, ebook and/or print. If you buy the print, you still get the ebook free. I intend to keep this coupon live indefinitely, barring debacles.

Why?

When you cut out middlemen like Amazon, I make more. This code lets me split the difference with you. (No it’s not an exact 50/50 split, but the amount varies by title and I have to pay constantly-changing fees.) If I just discount the books Amazon will price match and cut what they pay me, so a blatantly advertised coupon it is.

Why do this right after the Sysadmin Appreciation Day coupon? That was a test. My estimates said that the math worked, but I needed a series of actual discounted sales to prove to myself that unexpected stupidity wouldn’t ruin me. It should be fine.

You have to pay shipping at my store, but the discount helps. If you buy multiple books from me, you come out better than Amazon.

The coupon isn’t valid on discounted bundles. Yes, you can buy The Full Michael and get all my indie titles in print, but that’s already discounted $150. That’s a better deal than the coupon.

You might notice that publishers like No Starch Press occasionally offer 30% coupons. How can they do that while I’m stuck at 10%? They use different printing methods and have both a warehouse and a staff. I use print-on-demand, which exchanges smaller margins for nonexistent overhead.

Yes, of course I’m hoping this will boost sales. I need a commercial OS for publishing, and Microsoft’s constant connivery to get generative AI into my system requires increasingly intrusive hackery to evade. Apple is still commercial, but at least I can turn off their generative AI garbage with a single button. So I’m hoping to raise enough to purchase a Mac Studio. (Why a Studio? InDesign is freaking huge, and I need something that will last 8-10 years.)

Sysadmin Appreciation Day Sale

It’s Sysadmin Appreciation Day, an annual holiday where one befuddles computer folks by being kind to them.

Today and tomorrow, Tilted Windmill Press is offering 10% off all titles with coupon code YIKES.

Yes, you need to pay shipping on paperbacks, but you get the ebook free with the paper copy. Buy a couple and you’ll break even. Buy a heap and you’ll do better than Amazon.

Coupon is not valid for gift cards or bundles.

Now go confuse a sysadmin.