Michael Warren Lucas's Blog, page 27
December 27, 2022
“OpenBSD Mastery: Filesystems” print layout notes
The cost of printing books is going up, just like everything. I don’t want to increase the price of my tech print books. I consider $25 reasonable.
For the second edition of DNSSEC Mastery, I developed a new print interior layout, using every trick I know to reduce page count while remaining readable. It worked. I was able to cut page count by about 30%. There’s only one problem with it:
I don’t like it.
Print books, especially tech books, occupy a weird niche these days. Books are no longer confined to paper. I have several thousand e-books on my reader, and as my eyes age I find myself increasingly unwilling to purchase print books unless they serve some special role. A paper book must be a unique physical artifact for me to consider offering it precious physical space in my overflowing bookshelves. My home already has libraries in three rooms, and we refuse let books bully us into moving again.
So I’m reverting to the previous design for OpenBSD Mastery: Filesystems. It might result in a price increase. Maybe not, because it’s a little shorter than the SNMP book. But the result will be a nicer physical artifact that provides a better reading experience.
December 23, 2022
“OpenBSD Mastery: Filesystems” status
I just finished indexing the manuscript. That’s normally a hard day’s work, but this being the week before a major holiday I was unable to get a full day to dedicate to the task. I wound up spending about two hard man-days on the task, because context switching in and out of indexing has a higher cost than any other task my brain runs.
With luck, I’ll have the print book laid out next week and ebooks by the end of the week. Yes, I could prepare ebooks first, but the print layout forces me to go through the manuscript one last time searching for errors. I always find one or two warts in the process.
I am, however, taking the weekend off for my family’s choice of Winter Solstice Holiday. May you all have a delightful WSH of your choice.
December 15, 2022
The Spite Bezos sale ends, Filesystems, and my Next Kickstarter
A trio of updates, which is super annoying because I’m trying to blog more often but this all happened late yesterday so I guess I’m stuck.
The Amazon Spends Money To Sell Montague Portal hardcover and ebook sale has ended. Amazon has reverted the price to normal everywhere except for Kindle in the UK, and I’m sure that’ll follow soon. At first, I thought The Algorithm was drunk, but the hardcover sale stopped right when their spend crossed $500. That could be a coincidence, sure, but it’s a strangely regular number. Maybe someone at Amazon knew I’d take advantage of this and decided to give my career a hug? I will never know. This goes down as a Christmas miracle, and is hereby dubbed “the gift of the Bezi.”
“OpenBSD Mastery: Filesystems” is back from copyedit. Diving into that in the next few days. It’s my first tech book that won’t be available in Amazon’s Kindle store, so this will be interesting.
The pre-launch page for my next Kickstarter is live. Devotion & Corrosion is a collection of short fiction. It’s a bunch of stories about love that aren’t love stories. Welder Wings’ art completely blew me away.
Despite popular opinion the cover is not a glimpse inside my skull, but only because it lacks Molotov cocktails.
Anyway, watch that space.
December 12, 2022
the complete Montague Portal redux, in hardcover
I posted yesterday about Amazon putting the complete Montague Portal for Kindle on sale for $5.85. They still pay me $7 a sale, so each time you buy one Bezos adds his own dollar to my payment. It’s pretty clear that they’ll clear a profit if you buy this book and one other ebook. Okay, that makes sense.
But now they’ve put the hardcover on sale for $5.85, at least in the US and UK. (Reports in other countries are mixed. I have no clue what’s happening.)
At first, I thought this was to clear out unsold copies. Amazon predicts how many hardcovers of a new title they’ll need, which is fine. They buy ahead, which is also fine. Their prediction algorithm lumps my fiction and nonfiction together, which is completely inaccurate but I’m okay with it.
But no. They are ordering new hardcovers from IngramSpark, at full retail price, to fill these purchases.
Amazon loses about $15 for every hardcover you buy.
I do not understand their business model. Risking a buck, sure, I can see that. I am torn between “they are playing 4d chess” and “their algorithm is drunk.” (“Both” is a valid answer.) What I do know is that if this bright future SF exploration crime series has ever tempted you, you should grab this deal. No idea how long it will last, if it will spread to other countries, or if Jeff will send legbreakers out to collect his $15 from each of you.
Note that while Amazon only lets each account buy an ebook once, you can buy as many hardcovers as you like. Each purchase costs Amazon $15 plus fulfillment. Just saying.
Oh, and if you use my affiliate links above? They throw a few extra pennies in my pocket. The phrase “guilding the lily” comes to mind, but it turns out I’m okay with that.
December 11, 2022
The complete Montague Portal on sale for $5.85 at Amazon
My book Aidan Redding Against the Universes, Kindle version, is on sale for $5.85 at Amazon US and Amazon UK. If you buy it, Amazon will pay me $7.
Seriously. You can cost Amazon money by buying one of my books.
You get three novels and two stories–Forever Falls, Hydrogen Sleets, Drinking Heavy Water, Sticky Supersaturation, and No More Lonesome Blue Rings–for a bit over $1 each.
I have no idea how long this deal will last. I have no idea why they picked me. But as I write this, it’s a thing. You will never find it cheaper, unless some vendor discounts it again.
November 28, 2022
Social Media Updates: Good-Bye Twitter
I’m dropping Twitter. Elon Musk is posting 1488 white supremacist trash and has reactivated many 4chan/8chan accounts. While I was willing to give him a chance to show he wasn’t actually a white supremacist asshole, I’m out.
He has since deleted the posts, the way he does, but there are many screenshots out there. I won’t share them in this post.
(Is deleting posts bad? Not necessarily. I deleted and redrafted twitter posts when I noticed typos, all the time. If I screwed up and shared something that had implications I was unaware of, I generally posted that I deleted a post and why. Posting white supremacy filth, leaving it up for a few hours, and then deleting, is a whole different thing.)
After much thought, I’m making @mwl@io.mwl.io my main fediverse/Mastodon account. There’s no need to burden my pals over at bsd.network with moderating me or the attention I attract. I also don’t care if government accounts follow my business posts. Heck, as Terry Pratchett said, I will happily offer special rates for governments!
But the important thing is: no more Twitter. Sorry, folks.
November 25, 2022
Mailing List Freebies
I’ve tested everything and it all seems to work, so I guess I can tell you now:
If you sign up for my fiction and/or nonfiction mailing lists, you will get free ebooks.
If you sign up for the nonfiction list, you’ll get a free copy of Tarsnap Mastery. I’m sure that Colin over at Tarsnap will be less than thrilled that I’m giving away free documentation for his service, but it’s my book and he can suck it up.
If you sign up for the fiction list, you will receive not one not two but six free stories, spread out over a month. Some are commercially available only as part of collections.
These are not newsletters. I only bother to send mail when I have a new reason for you to give me money, such as a new release, a Kickstarter, a bundle, or one of my very rare sales.
Is this giveaway a transparent ploy to make you listen when I try to sell you other books? Yes. Yes, it is. I hope that the freebies will so enchant you that you must purchase everything I have ever written. Or, that my generosity will so burden your conscience that the mere sight of my name will make you mash the BUY button. Either works.
November 17, 2022
Fifty Books. Thirty Years. What Next?
I edited my SNMP MIB to include the two new books, Prohibition Orcs and Frozen Talons, and realized that the first book in that table came out in 1992.
Thirty years ago.
Plus, Frozen Talons is my 50th full book. If you count “things with my name on them,” including anthologies and chapbooks but not translations, it’s number 96. No–wait–my list is missing one thing. It’s 97. Quick, someone send me a neurotypical personal assistant to track all this crap!
Fifty books in thirty years. Two thoughts.
1) A more business-oriented author would have planned a 30/50 Marketing Extravaganza, with advertising defoliated into swanky golf courses and a special cryptocurrency limited to a single coin for each book. The coin for Ed Mastery: Manly McManface edition is measured in units of–uh, never mind. The thought makes me even more tired.
2) Daang, I write slow.
It’s not as quite as bad as that, of course. Look at the “More Books By This Author” page from Tarsnap Mastery in 2015.
Excluding the “coming soon” titles, that’s 14 books. Many of them are heavily-researched 500,000-word doorstops.
I’ve written 36 books in the eight years of full-time writing since then. Somewhat better. Numbers don’t really mean much, though. What does “36 books” mean in the real world? Well, here’s my catalog in April 2015. One copy of every version of everything, including translations.
I took the photo to make the shelf look full, but note that there’s space at the far left end, next to the Japanese translation of Absolute FreeBSD.
In 2017, the shelf became full.
I thought that was an achievement. Look, the books fill the shelf edge to edge! There is no way to stuff another book onto that shelf!
Silly me. 2020:
I had a hard choice. Upgrade the brag shelf, or stop writing.
Here’s today.
We bought that bookshelf in 1996 for gerbil cages. I’m afraid it’s about to overflow. Fortunately, Ikea has bookshelves again. Maybe I can get something fancy, with glass doors?
Of course, neither the number of books nor the total mass of said books matter. The sales on most of these books faded into the long tail years ago. Like “words written per day,” “how many books I’ve written” is irrelevant. The only books that matter are the ones I’m writing now. But, also like “how many words have I written today,” the count of how many books I’ve written is the only way to measure the ineffable and to set goals.
So, here are some goals that might take me through my career.
1) Next year, I will break “100 Things With My Name in Them.” Anthologies and chapbooks count for this. With February’s Devotion & Corrosion collection, Run Your Own Mail Server later in the year, and (hopefully!) $ git merge murder and the Skybreach books before the end of the year, I should break this easy. With any luck, there’ll be new editions of the ZFS books near the end. Given my atrocious record-keeping, perhaps I’ve crossed this already. Who knows?
2) 100 books total before 2033. Some doorstops. Some 40,000-word novels. A whole bunch in between.
While I intend to keep writing until I’m dead, I also know that I have no idea what my health will be like in however many decades I have left. With any luck, in 2032 I’ll shoot for 150 before 2043.
What are all these books? Grab the current list in my SNMP agent, as discussed in the Networknomicon. Because some of you still treasure your minds, however, I’ll leave a copy here for posterity. I don’t think anyone but me has a complete set of originals, except for maybe EB over in Israel. If he doesn’t have all 50, he’s pretty dang close.
Anyone who has all 96–uh, 97–should probably seek professional help. And a carpenter, for a good bookcase.
SNMP table: TWP-MIB::mwlBooksTable
titleIndex title year genre length
1 Gatecrasher 1992 fiction full-length
2 Believe it or Else! 1993 fiction full-length
3 SLUGS: The Satanic, Loathsome, Unholy Game System (as Greg Donner) 1994 fiction novella
4 Gatecrasher 2nd edition 1995 fiction full-length
5 Women who Run with the Werewolves 1995 fiction anthology
6 Absolute BSD 2002 nonfiction full-length
7 Absolute OpenBSD 2003 nonfiction full-length
8 Cisco Routers for the Desperate 2004 nonfiction full-length
9 PGP & GPG 2006 nonfiction full-length
10 Absolute FreeBSD, 2nd edition 2007 nonfiction full-length
11 Cisco Routers for the Desperate, 2nd edition 2009 nonfiction full-length
12 Network Flow Analysis 2010 nonfiction full-length
13 Horror Library volume 2 2010 fiction anthology
14 Opening the Eye 2011 fiction story
15 Breaking the Circle 2011 fiction story
16 SSH Mastery 2012 nonfiction full-length
17 Vicious Redemption: Five Dark Fantasies 2012 fiction full-length
18 DNSSEC Mastery 2013 nonfiction full-length
19 Sudo Mastery 2013 nonfiction full-length
20 Absolute OpenBSD, 2nd ed 2013 nonfiction full-length
21 No More Lonesome Blue Rings 2013 fiction story
22 Sticky Supersaturation 2013 fiction story
23 Lavender 2013 fiction story
24 Pax Canina 2013 fiction story
25 Wednesday's Seagulls 2013 fiction story
26 FreeBSD Mastery: Storage Essentials 2014 nonfiction full-length
27 Immortal Clay 2014 fiction full-length
28 Waking Up Yesterday 2014 fiction story
29 Calling Control 2014 fiction story
30 Moonlight's Apples 2014 fiction story
31 Networking for Systems Administrators 2015 nonfiction full-length
32 Tarsnap Mastery 2015 nonfiction full-length
33 FreeBSD Mastery: ZFS 2015 nonfiction full-length
34 Forever Falls 2015 fiction novella
35 Spilled Mirovar (Prohibition Orcs 1) 2015 fiction story
36 Whisker Line 2015 fiction story
37 Wifi and Romex 2015 fiction story
38 PAM Mastery 2016 nonfiction full-length
39 FreeBSD Mastery: Advanced ZFS 2016 nonfiction full-length
40 FreeBSD Mastery: Advanced ZedFS 2016 nonfiction full-length
41 Kipuka Blues (Immortal Clay #2) 2016 fiction full-length
42 Hydrogen Sleets 2016 fiction full-length
43 Drowned Mirovar (Prohibition Orcs #2) 2016 fiction novella
44 Butterfly Stomp Waltz (Beaks #1) 2016 fiction full-length
45 Earthquake Kitten Kiss (Beaks spin-off) 2016 fiction novella
46 Butterfly Stomp (Beaks #0) 2016 fiction story
47 Forced to Talk, Like, With Your Mouth 2016 fiction story
48 FreeBSD Mastery: Specialty Filesystems 2016 nonfiction full-length
49 git commit murder 2017 fiction full-length
50 savaged by systemd 2017 fiction story
51 Httpd and Relayd Mastery 2017 nonfiction full-length
52 Ed Mastery 2018 nonfiction novella
53 Ed Mastery, Manly McManface Edition 2018 nonfiction novella
54 SSH Mastery, 2nd edition 2018 nonfiction full-length
55 Absolute FreeBSD, 3rd edition 2018 nonfiction full-length
56 Bedazzled by Blockchain 2018 fiction story
57 Face Less 2018 fiction story
58 Boundary Shock: Tuesday After Next 2018 fiction anthology
59 Boundary Shock: Robots, Androids, Cyborgs, Oh My! 2018 fiction anthology
60 Sudo Mastery, 2nd edition 2019 nonfiction full-length
61 FreeBSD Mastery: Jails 2019 nonfiction full-length
62 Terrapin Sky Tango (Beaks #2) 2019 fiction full-length
63 Winner Breaks All 2019 fiction story
64 Boundary Shock: Apocalypse Descending 2019 fiction anthology
65 Fiction River: Superstitious 2019 fiction anthology
66 Snot-Nosed Aliens 2019 fiction anthology
67 An Interpretation of Moles 2019 fiction anthology
68 SNMP Mastery 2020 nonfiction full-length
69 Boundary Shock: Alien Dreams 2020 fiction anthology
70 The Networknomicon 2020 nonfiction full-length
71 Cash Flow for Creators 2020 nonfiction full-length
72 Boundary Shock: What Might Have Been 2020 fiction anthology
73 Face The Strange 2020 fiction anthology
74 Bloody Christmas 2020 fiction anthology
75 Drinking Heavy Water 2020 fiction full-length
76 Final Gift 2020 fiction story
77 Woolen Torment 2020 fiction story
78 Drums with Delusions of Godhood 2020 fiction story
79 Uncollected Anthology: Deities 2020 fiction anthology
80 Woolen Torment 2021 fiction story
81 Aidan Redding Against the Universes 2021 fiction full-length
82 Fiction River: Chances 2021 fiction anthology
83 Fiction River: Dark and Deadly Passions 2021 fiction anthology
84 TLS Mastery 2021 nonfiction full-length
85 Only Footnotes 2021 nonfiction novella
86 git sync murder 2021 fiction full-length
87 The Holiday Spectacular #2 2021 fiction anthology
88 Boundary Shock: Wandering Monsters 2021 fiction anthology
89 Fantastic Christmas 2021 fiction anthology
90 Mysterious Christmas 2021 fiction anthology
91 Witness November 2021 fiction story
92 Domesticate Your Badgers 2022 nonfiction full-length
93 DNSSEC Mastery, 2nd edition 2022 nonfiction full-length
94 Letters from ed(1): The FreeBSD Journal Letters column, years 1-3 2022 nonfiction novella
95 Fiction River: Broken Dreams 2022 fiction anthology
96 Prohibition Orcs 2022 fiction full-length
97 Frozen Talons 2022 fiction full-length
November 14, 2022
Fediverse Servers, plus mac_portacl on FreeBSD
One of my business mantras is “control your platform.” If you build your business around a site like Facebook, they can de-prioritize you and disappear you. Twitter’s implosion served as a fierce reminder of that, so I’m blogging more here.
Before Twitter’s implosion, the Fediverse (Mastodon, PixelFed, and all the other ActivityPub-powered systems) drove just as much traffic to my site as Twitter. Other social networking sites are negligible. If I want to follow my business mantra, I must run my own Fediverse server. I tested three options: Mastodon, pleroma, and GoToSocial.
Mastodon is huge, clunky, and handles like a tank made out of chicken wire, tar, and lobsters. I spoke with a few Mastodon operators, and none of them recommended it.
Pleroma? I followed the instructions. They didn’t work. I went looking into support, but I discovered that Pleroma seems to be the server of choice for TERFs, racists, and related jerks. Their recommended servers for new users are all on my personal blocklist. I don’t care to help those folks debug their instructions.
GoToSocial was a joy. Except it’s not only in development, it’s in alpha. They are very clear about this. The features that exist are beautifully done, but certain features I find critical are incomplete.
I have decided to wait to deploy a production fediverse server until GoToSocial enters beta.
For incomplete software, though, GoToSocial is surprisingly complete. It has its own web server and Let’s Encrypt implementation. If it can bind to ports 80 and 443, you don’t need a web server or ACME agent. The catch is, gotosocial(8) runs as an unprivileged user. It can’t bind to privileged ports.
Enter mac_portacl(4).
In the BSD tradition, the man page details everything you can do with this Mandatory Access Control kernel module, but in short it lets you permit particular users or group to bind to privileged network ports. I don’t care for mac_portacl in production, as the rules are hard to read when you’re debugging. If you want me to use an access control program, the output better be no harder to read than pfctl -sr. But here’s how you do it.
Enable the module in /boot/loader.conf.
mac_portacl_load="YES"
You can now write port ACL rules. Each rule has four parts:
uid or group : numerical identifier : tcp or udp : port number
The gotosocial user has uid 209. I want uid 209 to be able to bind to TCP ports 80 and 443, so I need these rules.
uid:209:tcp:80
uid:209:tcp:443
Set the access control rules in /etc/sysctl.conf.
net.inet.ip.portrange.reservedhigh=0
security.mac.portacl.rules=uid:209:tcp:443,uid:209:tcp:80
The first sysctl disables the traditional “reserved port” behavior and allows unprivileged programs to bind to ports below 1024.
The second sysctl installs our rules in the kernel. When you write to this sysctl you must include all rules you want active, separated by commas.
Would I use this in production? If the software has a solid security track record and is designed to be directly exposed to the Internet, sure. If you’re running a web server, some program has to listen on port 80. GoToSocial is brand new, though, and I’d like to see a bit of a track record before I completely trusted it.
When GoToSocial enters beta next year and I deploy it for real, I’ll put an nginx or httpd in front of it so I can filter when needed.
Are there other options other than Mastodon, pleroma, and GoToSocial? Sure. But I’m out of time, and really need to make some words this week.
November 8, 2022
Why Mastodon/the Fediverse kind of sucks right now
I’m a big fan of the fediverse. As of right now (8 November 2022), it deeply sucks. Why?
Because nobody expected Elon Musk to be this stupid.
We expected some daftness, sure. But actions like cutting the entire human rights team, accessibility team, and AI ethics team, plus limiting moderation, have people abandoning Twitter and searching for alternatives.
Nobody wants to live in a free-for-all wasteland. “The right to free speech” is built on “the right to take the consequences.” Without moderators, Twitter is a cesspit.
The Fediverse resembles Twitter[1], except it is run by volunteers on donated equipment. Every time Twitter did something stupid, we got a few thousand folks looking for a better way. We’ve grown steadily as a result.
Almost hourly Musk demonstrates that he doesn’t understand people, doesn’t understand how Twitter is used, and picking stupid fights. I’m told that last Friday, the biggest Mastodon server got 70,000 new users. If you add in all the hundreds of other servers, we’re looking at hundreds of thousands of new accounts. Many servers doubled or tripled in usage.
Here’s a graph of the number of users interacting with our server.
Nobody expected Musk to be this stupid.
Nobody expected this flood of new users.
If you get an account and find it’s slow? The volunteers are working as hard as they can. Scotty is shouting “She canna take any more!” over the roar of the struggling servers. New servers are being installed, but physical equipment must be shipped and mounted and plugged in.
The servers that are doing well, ironically, are the alt-right ones. The worst Nazis already fled Twitter, so they set up their own Mastodon servers. The rest of the fedi automatically blocks those monsters, but they’re actively recruiting both abusers and victims. I’ve seen more than one LGBT person innocently sign up for a disguised white supremacist instance and get a torrent of abuse.
Be patient with the volunteers. They’re doing the best they can. We’ll catch up as soon as we can.
The truth is, nobody can prepare for a stupid billionaire.
[1] No, the Fediverse isn’t exactly like twitter. Each server is a community of interest, like “BSD Unix folks” or “book lovers” or “LGBT in tech.” They can all talk to each other. We have content warnings, so that people can interact with difficult content as they wish rather than having it jammed into their face. Each server does its own moderation. (My server blocks the alt-right, TERFs, racists, ableist jerks, and cryptocurrency scammers.) Where Twitter has been increasingly negative and stressful over the last few years, local control means the Fediverse is downright sweet.
Michael Warren Lucas's Blog
- Michael Warren Lucas's profile
- 23 followers

