128: Filthy Land Animal Lungs

There’s one story in Twisted Presents I haven’t read here, so that’s what you get.

This isn’t a fairytale, but: Once upon a time, we were all friends.

And it’s not going to end happily ever after. On this Christmas Eve, three tedious years after the disastrous college summer when Kurt betrayed us, Phil and I are finally making an ending.
Kurt’s ill-gotten mansion looms on an isolated northern California cliff overlooking the Pacific Ocean. This deep in the night, the scents of ocean and eucalyptus rule the air. After crossing thousands of miles of open water without being soiled by filthy land animal lungs, the air is so rich that it makes me feel a little high. I deliberately focus on the basics of burglary, keeping my breath slow and placing each foot meticulously on the kitchen’s porcelain tile. Enough moonlight seeps through the fog to illuminate the mansion’s insane luxury. Had Jim died so that Kurt could have two ovens large enough to roast a calf in? Was Sarah rotting in a Turkish prison the price of a mahogany-topped island? Were the dozens of high-end cookpots dangling from the ceiling worth Danny’s awful death?

Kurt thought so.

When will Twisted Presents launch? As soon as my life is in order to allow it.

Crowdfunding Pricing and Costs

I’m preparing to launch the Twisted Presents Kickstarter at last. The US economy has gone wrong lately, for obvious reasons. Costs for printing and shipping have increased. We’re not quite in a capital strike, but it’s dang near. I needed to revisit costs and prices for this book.

I took notes as I did so. If you want to do crowdfunding, here’s my approach. This, other stuff from that site, tidbits from my blog, and assorted other detritus will probably form part of a long-requested “How I Make A Living Writing” book.

Those notes are on the Tilted Windmill Press Knowledge Base.

The hardest lesson I had to learn when I started writing professionally? “If someone puts a dollar in your hand, take it.”

Sponsorship Prices Increase

The US Post Office has yet again raised shipping prices. I’ve ignored the last couple hikes, but everyone else from the grocery store to the landlord is raising their prices as well.

Some point this week, I’ll be raising the price of the OpenZFS Mastery sponsorships.

I’ll probably have to raise the prices of published books soon. That’s a week’s worth of work. I don’t want to do it, but that’s life in capitalism.

127: A Fifth of Makers’ Mark

I’ve just finished prepping the print version of Twisted Presents, so here’s a tidbit from one of the stories therein.

The first Hogswatch Eve after the accident, Merle had stopped on the way back from the hospital for a fifth of Makers’ Mark. He knew if he started drinking he’d never stop, but the next day was Hogswatch and he couldn’t think of any other way to survive the night. He woke the next morning with an empty bottle, an open sewer for a mouth, and a witch’s brew in his stomach.
Through all that, he could still smell the sheets. He hadn’t changed them in weeks. There wasn’t a reason to. The bed made a warm greasy nest that suited the wreck of his life.

But it was Hogswatch. He had to get to the clinic. Soon as he could. They were reading Night Watch. For when his voice gave out, he’d loaded a couple of movies onto a tablet. White Christmas and Gremlins. He hadn’t done much in the way of shopping, but he’d picked up a fruit and nut bar at the hospital gift shop a couple days ago. It was the first treat he’d ever bought her back in college, and all the feast he could handle.

The alternative was to lie here and cry. Again. Crying always made him feel worse.

I plan to launch Twisted Presents in time for you to get your books before Christmas. Because nothing says “Happy Holidays” like curses, firearms, and orcs.

126: Low Distress Tolerance

I finished the OpenZFS Mastery chapter on volumes earlier this week.

Zvols support sparse volumes, also known as thin provisioning or overcommitting storage. A sparse volume is a volume that reserves less space than the volume actually needs. Sparse volumes permit allocating more space than the pool has available. You could, for example, create ten 1-exabyte sparse volumes on your 1 TiB dataset. So long as your volumes are never heavily used, nobody will notice that you’re overcommitted. Sparse volumes can be useful if you’re prepared to add more disks. Using a sparse volume means you can tell the Windows host that a disk is a specific large size, even if the underlying pool doesn’t have that much free space.

Sparse volumes are not generally recommended. If the pool fills up but the sparse volumes think they have space remaining, writes will fail with an “out of space” error. Guests will get errors they can’t hope to resolve. Windows in particular has low distress tolerance.

I’d appreciate your support keeping the rats fed as I finish writing this book.

125: A Useful Quirk

I’m trying to finish up the OpenZFS Mastery chapter on disk space use today. Well, my part of it. I’m planning to dump–delegate, delegate–the section on deduplication to Allan. When you have a co-author expert, use them.

Zstd offers compression levels from 1 to 19. The default is zstd-3, a reasonable compromise between performance and efficiency. Writing data at higher compression levels require more CPU but might save more space. Zstd has a useful quirk where decompressing higher levels uses no more processing power than decompressing lower levels. If you have data that must be written once but read many times, increasing the compression level makes sense.

ZFS still supports gzip compression, but Zstd is always faster and achieves better results while using less processor and memory.

ZFS also offers the ZLE algorithm, for data with long runs of zeroes. Some file formats, such as GIFs and certain scientific data, include long runs of zeroes. If you have a dataset for such data, you might find ZLE compression useful.

How does one realistically tell if your data has long runs of zeroes? The simplest way I know is to pass it across a T1 with 23 channels set to b8zs but one channel stuck on AMI. Such a circuit cannot pass large all-zero packets. Sadly, this recommendation does not suit a book on filesystems.

I would appreciate your help keeping the lights on as I finish this book.

Changing Language for Storage Capacity

Back in the 90s a notably pedantic coworker informed us ignorant peasants that, according to International Electrotechnical Commission standard IEC 80000-13:2008, disks and memory were now to be measured in “bi” units such as kibibyte and mebibyte. I agreed that he was technically correct, but nobody cared and saying “mebibytes” made you sound like either a pedant or an idiot.1 For all practical system administration purposes, the difference between a 1.544 MB floppy and a 1.544 MiB floppy was negligible. Yes, the operating system showed everything in mebibytes, but everything was labeled as being megabytes, and we all knew what it means.

This is no longer true.

My main test host has six hard drive bays. Each has a 3 TB drive, which is only 2.7 TiB. The operating system shows everything in binary-based tebibytes. I bought 18 TB of storage and got only 16.3 TiB.

People look to my books for information to keep their jobs. That missing two TiB is part of the information. If you’re doing capacity planning, it’s vital. From now on, my books need to use bi units for most storage.

In some cases, it looks stupid. Disks are also sold with 4K sectors. The package says that. “K” is an ambiguous label. It could mean kilobytes or kibibytes. Technically, disk sectors are kibibytes. I think I’ll just keep calling them 4K disks.

Memory? I want to say that nobody cares and that everybody knows what we mean. I don’t run any applications that use terabytes of memory, and for routine system administration tasks the difference between 32 GB and 32 GiB is negligible. But someone does care, and mixing GB of RAM with TiB of storage seems odd. Dang it. I think I have to be pedantic.

But in the 90s? Nobody cared, and we all knew what we meant. Unless you worked in embedded systems.

124: Clones Can Grow

I’m writing about space usage OpenZFS Mastery.

ZFS offers tools to transparently increase the amount of data you can fit on a disk. Rather than requiring the system administrator to compress and decompress individual files, ZFS uses efficient compression at the filesystem level. While compressing logs during rotation makes the files look smaller in ls(1), it doesn’t change how many disk blocks those logs use. Snapshots and clones let you duplicate entire datasets with only a tiny amount of space. ZFS can also perform deduplication of files, improving disk usage at the cost of memory. We’ll see how to evaluate these options and determine when to use each.

If ZFS is so transparent, why is space usage complicated? Child datasets affect their parents. Those space-efficient clones can grow, and snapshots can prevent freeing space.

I’d appreciate your help keeping the lights on while I finish this book.

Cover Font Headaches

I commission custom art for the IT Mastery books, but do the text layout myself. Most often, I use the Minion Pro for the body font and Myriad Pro for the display font. They’re staid, reliable, and unremarkable. On rare occasion, the topic demands a particular font. That’s straightforward; I must distort the design until the font fits.

When a book requires a specific kind of font, but not a single font, things get hard.

The cover for OpenZFS Mastery is an old Mediterraniean vase. It needs a font that looks like it’s from the Roman Empire or ancient Greece. There’s lots of fonts for that, no?

Yes. Hundreds of fonts.

Each promising candidate needs a test cover. Here’s some of what I’ve run through trying to find one that works.

Baselius font

This is a nifty font. I like the central line. The title doesn’t really stand out, though. Next candidate.

Elektra font

The title stands out better, but looks kind of… janky?

Maybe a different approach.

Romanicum font

That flows too well. It looks modern, not like it was carved into unbaked clay. Try again.

The font is named “Greco-Roman Lubed Wrestling.” Seriously.

I like the look of this font, but the title doesn’t stand out well enough.

Adonias font

Okay, this is pretty good. The title stands out nicely and is legible at a distance. The U is kind of odd, making the author names look like JLIDE and LLKAS.

After spending a couple hours searching through fonts, I have exhausted my visual analysis energy. Adonias it is, for now. I’ll see if I can find better some other day.

When you wonder why cover designers charge so much? This is why.

July’s Jangada Sausage

This post went to Patronizers in July and to the public in August. Not a Patronizer? You could be!

It’s 98F outside and will remain so for the foreseeable future. Settling into the new apartment continues. My master plan for a smaller desk I can wheel onto the balcony is almost complete, but it’s 98F outside. I did go to the dojo yesterday despite the heat, but I think going tonight would be pushing my limits. Fortunately, my physical labor of getting our home ready to sale is done and I don’t have to go out in it. Other people are working on the house, preparing it for sale, and I don’t have to go back until next week. The divorce is in the court’s hands and everyone’s waiting.

Which means I have a week to catch up, starting with getting the monthly See the Sausage Being Made article back on the schedule I prefer. It feels like putting out to sea in a raft designed by observing nature rather than a knowledge of physics.

I’ve been reading the OpenZFS Mastery manuscript, tweaking tidbits here and there in the beginning. I hope to build up momentum so that when I reach the point where I stopped writing, I just keep going. This technique has worked well for me in the past and I’m hopeful it will again. Besides, I have nothing to do but hide indoors and write, because 98F.

No bright idea survives contact with reality, so I’m still rearranging the apartment. I had set up my test server under my desk, as one does, and configured a wireless bridge to give it Ethernet. It worked fine. I want to kill the power to the office when I’m not working, however. I call the test server as such because it hosts the VMs I use for testing, and it has eight hard drive bays for ZFS testing. I have a couple projects that I want to write about next that would benefit from having a production server running 24/7. I’ve relocated the test host to the living room and plugged it directly into the demarc switch. In my copious free time I’ll be configuring a DNS server and a netflow collector on it. That’ll let me play with things like DNS-based ad blocking and IPv6 analysis, two topics that will play against each other. The software license on my streaming media TV permits it to use my bandwidth during off hours to pillage web sites to feed AI scumbags? First, how dare. Second, turn off the TV at the power strip when not in use. But log its DNS queries so you can send those queries to oblivion, and analyze the traffic so you can feed it garbage? That’s the goal. Plus, you know, solving actual sysadmin problems. But mostly grinding my personal axes, the source of my best books.2

Earlier today, I got a message on the Run Your Own Mail Server Kickstarter. It ended in 2024, but a backer had missed both the original download link and the second download link I posted for folks who missed the first one. Two years. I don’t mind resending a download link, but when does Kickstarter fulfillment stop? I hired a naturally organized and disciplined person to shepherd physical fulfillment, so I’m confident that future books will have less drama. If someone fills out a backer survey two years after the campaign ends, should I interrupt everything to ship them the book? Set aside a day a month to check for stragglers on every campaign I’ve ever run? I’m pondering saying something in the Kickstarter like “Fulfillment stops three months after the first shipment leaves my house.” If someone contacts me I can choose to be accommodating, but it also leaves me an exit if necessary. I generally want to be accommodating. I also need room to say “come on, it’s been four years and the thing you backed for no longer exists. I sent you four requests for your shipping address before giving up. We are done here.” I’d leave ebook download links up for a year, because that’s the easy way to be accommodating.

Speaking of fulfillment: all of the N4SA2e Defenestrated Edition copies are on their way. I appreciate everyone’s patience. If I had known or believed Liz and I were going to divorce I would not have run the Kickstarter. Oops, I need to update the SNMP MIB and the web site for it! Tomorrow, I guess. Maybe I’ll do the MIB tonight, that’s nice easy Perl and doesn’t involve any icky images. Book covers are overrated anyway.

If there’s interest, I’m also thinking of an all-Patronizer video hangout this month. It’s been a while since I’ve done one, but life is no longer overwhelming me. Any interest?

Oh! I have managed some original writing from scratch since moving out. The FreeBSD Journal Letters column on improving software quality came out well enough. The Journal has a new editor and is making some changes, which gives me new opportunities to be cranky. I had some fun with it. I also did an interview for the Escape From 2026 Bundle, where I talked singularities and orcdom. Writing that interview was the first time I’ve felt the words come alive in over a year. Oh crap–I owe Digital Reader backers a copy of Tiny Time Wars! And I must update the web site for it!

These fiction bundles where I say my book goes out of print when the bundle ends? They’re collections. I gathered a few of my alternate history and time travel tales into a file, put a cover on it, and boom–an exclusive! The stories are all available elsewhere, but this particular collection won’t ever be in stores. If I need a collection of time travel stories in stores, I’ll write another time travel story and make a different book.

Publishing is an absolute scam. I have no idea why you support me. But I sincerely appreciate it.