Categories
News

Books I read in 2023

Here are the 31 books I read in 2023, a total that’s a bit lower than average. I’m not sure what I was doing instead. Writing blog posts? Working on Basic Fantasy RPG projects? Let’s see what I can remember about these books, going in reverse chronological order because I keep track in Google Keep which doesn’t let me sort by date added.

Sarcasm and Glory: A Rock and Roll Testimonial by J. D. Yorke

This book arrived at Christmas and I think I read through it in a day or two. I think I heard about it via Albert Bouchard, and the book is dedicated to Albert and his brother, two founding members of Blue Oyster Cult. The book seems to be a collection of Facebook posts. It was like reading through someone’s timeline going back several years.

The Siege of the Black Citadel by Chuck Dixon

This is the first in a new series of Conan novels by the comic book writer who invented Bane and took over from Mike Baron on The Punisher back in the 90s. It’s good. Dixon is an excellent writer, and I enjoyed Levon’s Trade a couple of years ago. There’s already a second book in the series that I haven’t picked up yet. The book itself has a pulpy feel being about 7×9 and thin like an old magazine, and it has cool illustrations inside.

I clipped that short passage. You know when things are really tough, and people around you are talking about praying for help, and you realize your god, Crom, is just laughing at you from atop his mountain? It can be motivating.

The Beginning Was The End by Jade Dellinger and David Giffels

This is a history of the band DEVO. It’s an abridged version of an earlier edition that I couldn’t find. I read this book right around the time that we went to Paso Robles to see DEVO in concert. Some of the details in the book I already knew from other sources. Mark Motherbaugh was on Rick Rubin’s Broken Record podcast last year and told the story about meeting Richard Branson in Jamaica. Then I saw him retell it on a Tony Hawk podcast.

The King of Elfland’s Daughter by Lord Dunsany

This novel is on Gygax’s Appendix N list, a classic. It has an ethereal feel, almost a myth. The plot surprised me all along. I was expecting the elves to be more gnarly as in Anderson’s Broken Sword. One thing I took away from this for playing D&D is how there can be lines dividing worlds that you can simply cross (if the king allows you).

Dominance and Submission by Martin Popoff

Don’t let this out, but if Martin keeps writing BOC books, I will keep buying them. This book covers the studio albums in a conversational style similar to Martin’s YouTube channel, The Contrarians. Five guys BOC fans talking about what they like or don’t like about the album, going track by track. I like how when I get one of his books, they come wrapped in a Canadian newspaper and Martin signs in the inside.

The Randolph Carter Tales by H. P. Lovecraft

I’m slowly making my way through a complete collection of Lovecraft that came as several books. This one had the Carter tales, mostly one long novel about Carter making his way through dreamland. As with the Dunsany novel, there’s a journey into another realm that reminds me of Haderax in my own Terror in Tosasth adventure book for Basic Fantasy RPG. It also reminds me of Sign of the Labrys by Margaret St. Clair.

Company of One by Paul Jarvis

I think I saw this on Hacker News and bought it on impulse. I wrote a whole blog post about the ideas in the book: To Grow, or Not to Grow.

Real-World Next.js by Michele Riva

My most important client, Clorox, is doing more site in Next.js, and I need to be aware of how it works in my role as platform architect. This book is 8.5×11 and pretty thick. I bet a lot of people read it on a computer or tablet. I can’t help thinking that Next is a reinvention of all the PHP work that went on a couple of decades ago.

Turn the Ship Around! by L. David Marquet

I feel like this book was on my Amazon wishlist for years, probably from back when I was a VP at Clear Ink. Then it showed up as a Christmas gift in 2022. It’s about a Navy guy who helped get teams on submarines working better together. One idea that comes back to me often is the approach of stating intent rather than asking for permission or agreement. I’ve found myself sometimes telling dev teams, “I intend to release a new version upstream that takes us to PHP 8.2 this month,” rather that just doing it or hashing it out in a meeting. It streamlines interactions.

First Blood by David Morrell

This is the novel that inspired the Stalone movie. As is typical, the novel is more interesting than the movie, which is a good movie. It’s a straight up adventure with lots of fighting that ends in a more 1970s way than the movie.

The Road to React by Robin Wierych

This book is about React without much about Next. I think it was the right choice to read about React first and then about the particular way Next uses it.

Laughing Shall I Die by Tom Shippey

Shippey is an expert on Tolkien, but this book is about viking sagas. In some ways, it’s a companion to the TV series, Vikings. It goes over the sagas and considers which parts could be true. Reading this book inspired me to watch the show, which starts strong and doesn’t live up to the first half by the end. There are many great ideas for D&D in this overview of the sagas, and the historical parts of quite interesting on their own. The thing I remember most is the story of a viking facing decapitation who asks that someone hold his long hair back. When the axe comes down, he jerks up so that it chops off the hands of the guy holding his hair. It was a brief moment in the show, but I was happy to see it after having read about it.

Tony Bath’s Ancient Wargaming by John Curry

Bath was a pioneer in organizing huge wargaming campaigns, and this book collects his writings about how to design battle rules and how to run the long campaign. I knew it was a classic and wanted to glean ideas for my long-running Basic Fantasy RPG campaign. It’s has a quintessential 1970s style, similar to D&D original little brown books.

Modern JavaScript for the Impatient by Cay Horstmann

Long ago, my PHP book was a sibling to Horstmann’s Java book in Prentice Hall’s “Core” series. His book is currently in a 12th edition! I knew he wrote well, so I picked up his book about JavaScript to catch up on the stuff that’s appeared in the last few years. This book is oriented toward readers who have already mastered one or more programming languages and just need to know how JavaScript is different. That’s exactly right for me, although much of it was still review rather than learning anything new. I really enjoyed this book.

Arbiter of Worlds by Alexander Macris

Macris is the author of the D&D retroclone Adventurer, Conqueror, King. This book is a collection of advice about mastering roleplaying games of all types. I tend to agree with everything Alex states here, as well as the additional information available in his YouTube channel.

The White Pill by Micheal Malice

Malice, popular anarchist and writer, published this book that generally covers anarchist and communist thinking during the 19th and 20th centuries. Various details about the Russia and the rise of the Soviets were interesting.

Hiero’s Journey and The Unforsaken Hiero by Sterling Lanier

I read a collected volume of the two Hiero books by Lanier. The protagonist is a mystic in post-apocalyptic Canada. The books are listed in Appendix N and influenced both Advanced D&D and Gamma World. The magic of this world is primary psychic and technological. Strange monsters populate the landscape, some mutated in body or gaining sentience. And there are cryptic factions scheming to control the world. The writing is pulpy and not at all like modern “hero’s journey” stuff. These books continue to inspire me.

Outlive by Peter Attia

I think I grabbed this on impulse based on a Cernovich recommendation. The information in this book was mostly review for me, except Attia’s life story. It probably didn’t get me to pay more attention to the quantity of protein in my diet.

The Dragon Masters by Jack Vance

I enjoy everything by Vance, and I have been rationing his books, not reading them all at once. This book is not stereotypical fantasy. It’s more properly science fiction in the way Vance designs worlds where a pocket of low technology exists in a universe of high technology. In some ways, it’s like Anderson’s High Crusade, where medieval people are plucked off the earth to fight battles with high tech aliens, except in The Dragon Masters, high tech aliens are invading a world that’s forgotten much of its scientific knowledge.

Wired for Love by Stephanie Caciopoo

This is a light book about the science of love intertwined with the author’s personal story about losing her husband.

The Lost Dungeon of Tonisborg

From the guys who produced Secrets of Blackmoor, this book collects everything about an old school dungeon played in the 1970s. Plus, it has an RPG system similar to D&D. This is a valuable artifact for learning how the early game was played. I’m sure I’d never just run this as is because I enjoy creating adventures myself, but there’s so much to borrow here. I have a nice, purple hardback from the original release, but you can get an inexpensive paperback at The Fellowship of the Thing.

Kids of the Black Hole by Dewar MacLeod

This book covers the punk scene in Los Angeles associated with the Black Hole apartments. I’ve read a lot of books about punk that overlap, so it’s hard to remember which things I learned specifically from this book. I still enjoy reading these types of books about music history.

Here’s Your Irony Back by Raymond Pettibon

This big coffee table book shows off some of Pettibon’s artwork from some time ago. I suppose most people know him from Black Flag album covers, so I guess this book is adjacent to my interest in punk rock history. I appreciate being able to look closely at the drawings and the words. I also enjoy Pettibon’s messages on X.

Why We Meditate by Daniel Goleman and Tsoknyi Rinpoche

I meditate every morning, and I have for several years. I’m sure it reduces stress. I purposely meditate first thing in the morning to counteract the cortisol released by my body to wake me up. It also seems to provide an ongoing base of calm as long as I keep the up the practice. As such, I am keen to learn more about meditation because I think I could improve.

This book pairs a scientist with a monk, seeking an integration of tradition and the science to explain the effectiveness. It’s not a manual. It’s more a narrative and an overview with a few hints for what they might learn next.

The New Abnormal by Aaron Kheriaty

I think this was a gift I felt obligated to read. It’s a rundown on all the absurdities that started in 2020.

Lamentations of the Flame Princess by James Raggi

LotFP, as people call it, is a D&D retroclone with a reputation for lewd artwork. The author, James Raggi, posts interesting videos on YouTube and I think he was having a hard time with people “cancelling” him in 2023. I admired his statement about sticking to principles. He’s funny and weird, and I generally prefer weird things.

I’m sure I don’t have time to play LotFP, but I there were a few inspiring ideas from this game that have either crept into my own BFRPG campaign or threaten to. I keep thinking about the firearm rules, for instance.

Dungeon Hacks by David L Craddick

This is an amazing review of rogue-likes, a particular genre of computer game that has a somewhat vague definition. After reading this book, I spent a lot of time playing the original Rogue in an Amiga emulator. I actually found the Amulet of Yendor but was unable to escape the dungeon without starving.

The Primal Primer by Luke Weinhagen

This book is an introduction to surviving and apocalypse. I can hardly remember much about it now. I think it was an impulse buy, and it had some information about preserving food and just dealing with crumbling services.

Altered Traits by Daniel Goleman and Richard J Davidson

This is another book about meditation, with an emphasis on how meditation can change your body. The science suggests some amazing feats achievable by masters of meditation. This book isn’t a how-to guide, though.

Slaying the Dragon by Ben Riggs

This book covers the history of D&D with a focus on the 1980s. It gives a much clearer picture of TSR as it fell apart during that time, offering up many details about the business. Business history books are another genre I enjoy, and I often think about a history of Commodore Computers I read many years ago. This book is a good companion to books by Jon Peterson if you want to get a more complete picture of the rise and fall of the most famous RPG game company.

Categories
Basic Fantasy RPG D&D

Zexhund

This is a monster for use with BFRPG or similar game.

Armor Class:18
Hit Dice:2
No. of Attacks:1 bludgeon
Damage:3d6
Movement:20′
No. Appearing:1d6
Save As:Fighter: 1
Morale:7
Treasure Type:I
XP:75

The zexhund, otherwise known as Zexaki’s Hound, appears as a large dog with an even larger head. The largest of the breed weigh 320 pounds, are about five feet long and four feet tall at the shoulder. Although slow movers by foot, they can strike quickly with their hammer-like heads, doing 3d6 points of damage. If they are ever struck by a blow, they instantly become invisible until they make another attack.

The zexhund is not particularly aggressive, and they will often retreat once they become invisible. They were bred to transport platinum coins and gems using a small coffers attached to collars. For this reason, tenacious adventurers may pursue them even after they become invisible.

Categories
Humor

Santa is a Fatso

Once again, it’s the time of year to enjoy the Angry Snowmans, a band that plays classic punk songs with the lyrics changed to be about Christmas. Imagine if Weird Al only made parodies of songs you already enjoyed and the subject was always about holiday experience, whether it’s drinking too much eggnog or putting up the lights.

This band helped shape my son’s love of 80’s hardcore punk, because when I was driving him around between class and the gym years ago, I’d play all these songs. And we’d talk about the originals.

Understand, there’s only thing I want for gift

New Red Rider BB Gun.

You’ll shoot your eye out, kid. No way!

To the tune of Police Story by Black Flag

We grew out of listening to The Cinnamon Bear long ago, but the Snowmans will definitely get more time on the stereo this season. I will be imaging the grinch singing “Christmas makes me so mad, I know just what to do: steal it from whos”, and I’ll warning my wife “you don’t go near the mistletoe with me”. (Too much horror Christmas, you see).

Santa is a fatso.

He’s got a bowl of jelly for a mouth.

Santa is a fatso,

But you know he owns this house.

To the tune of My Old Man’s a Fatso by The Angry Samoans
Categories
Programming

WordPress REST Allows Cross-Origin by Default

This is not a red alert. It’s not a bug. I just found it interesting.

If you make a request to the REST API built into WordPress and you pass in an Origin header, the response will contain an Access-Control-Allow-Origin header with the same value. This response header is part of CORS (Cross-Origin Resource Sharing), which is a feature of browsers that’s meant to protect from executing code from another URL. If the server responds with a different URL, the browser will refuse to complete the request. A typical scenario would be JavaScript running on a page hosted by https://foo.com attempting an Ajax request to https://bar.com. If the Web server at bar.com responds with Access-Control-Allow-Origin: https://foo.com, the browser refuses to complete the request. It’s a sensible default stance.

This came up during a broad security scan of a client Web site. Security scanners notoriously over-report issues, but it’s best to understand the issue before dismissing, even if it’s labeled a “medium” risk. I did some searching and found that this behavior for the WordPress REST API is by design. The reason is that WordPress already imposes a robust security model on the REST API. If an endpoint uses secure information, it must authenticate to a user via a nonce. This is a short-term, randomly-generated token specific to the user. Without the nonce, calls to privileged functionality will fail inside the PHP code. Thus, WordPress purposely subverts the usual CORS approach.

Consequently, WordPress gets out of the way of developers who must implement alternative authentication schemes. It also allows plugins and themes to impose more restrictive requirements. It’s possible to hook into the REST response and set a different Access-Control-Allow-Origin header. This header can only contain a single URL, though. For cases where you have several requesting sites, you’d keep a list and respond with the matching URL if it’s on the approved list.

This topic came up in a WordPress bug report back in 2018 (ticket #45477), and also covered in the REST API FAQs. It’s fortunate that WordPress is Open Source. It makes it easy to see what’s going on and to benefit from the open discussions of bugs, even those from years ago.

Categories
Creative Pursuits Programming

The Tragic Illusion of Mechanized Consensus

Boldium hosted another excellent forum on AI this week, this time emphasizing how machine learning integrates with visual design. Nick Foster offered a fascinating metaphor for AI—that of an overdriven amplifier pushing the input into fuzzy distortion. His opening slide presented Black Flag on stage. I could hear Greg Ginn’s crackling plexiglass Ampeg guitar twisting out a chromatic swirl of notes in the same way the the DALL-E 3 tears away curtains before a window into a disturbing nightmare realm.

I started thinking about how these models are produced by consuming vast volumes of information filtered through the expedience of what’s available on the Internet. Out of this cauldron of goo come offerings. They are a momentary consensus of the ghosts in the machine. Shout your command, “Hearty stew with root vegetables, beans and mutton”, and out of the miasma come four attempts to comply. The first spoonful is too hot. The second bite includes coffee beans. The third includes a miniature sheep. Probably one of the four is close, but you’ll spice it up anyway by tweaking the prompt.

The ghosts produce this consensus and seem to ask you to make the final decision. It reminds me of Howard Roark’s trial where he talks about there being no collective brain.

There is no such thing as a collective brain. There is no such thing as a collective thought. An agreement reached by a group of men is only a compromise or an average drawn upon many individual thoughts. It is a secondary consequence. The primary act—the process of reason—must be performed by each man alone. We can divide a meal among many men. We cannot digest it in a collective stomach. No man can use his lungs to breathe for another man. No man can use his brain to think for another. All the functions of body and spirit are private. They cannot be shared or transferred.

The Fountainhead, Ayn Rand

These AI models are the closest approximations of a collective brain yet produced. What they produce is often incoherent, even marked by insanity. The results can be valuable in the context of an individual putting in the effort to rationalize them. Aside from the creator applying craft to the generated product, the spectator draws from the context to make sense of the experience. Yesterday, I enjoyed an AI cover of Paul McCartney singing Take On Me. (The vocals from an acoustic a-ha performance are replaced with a McCartney voice model). Being prompted with the suggestion that the voice was the famous Beatle lends power to the illusion. And when you hear it, you might remark, “wow, that’s crazy.”

Consider the source of the data used by the models: the Internet at large. It’s a noisy, obnoxious place. You’ve blocked plenty of jerks from your social media feeds, and you don’t bother reading annoying blogs, but the information is still out there. It was all scraped off and stuffed into one vat of slop from which we randomly pluck chunks.

It’s often ugly or disturbing, similar to looking into a mirror or riding BART. The full spectrum of all the ideas expressed on the public Web, both good and evil, are projected outward, and if you don’t angle the prism just so, you get a glimpse into a world of horror. There may be a few simple precautions in place, like being handed dark glasses during an eclipse, but staring directly into the sun is always a choice. It can be painful.

In reaction, the censors emerge to better affix the protections. Naturally, the vendors do not wish to be selling certain unacceptable ideas, even if they are user-generated. Microsoft cannot afford to be the source of Mickey Mouse depicted performing off-brand acts such as flying a plane into New York City.

In my favorite hobby, roleplaying games, I often use random tables, as is traditional. These tables combine to produce multi-part constructs. The classic use is Appendix A of the Dungeon Masters Guide that generates dungeon maps. The text states upfront that the model, comprised of more than twenty lookup tables, can produce unwanted results that the user can discard or modify.

Discretion must prevail at all times. For example: if you have decided that a level is to be but one sheet of paper in size, and the die result calls for something which goes beyond an edge, amend the result by rolling until you obtain something which will fit with your predetermined limits. Common sense will serve. If a room won’t fit, a smaller one must serve, and any room or chamber which is called for can be otherwise drawn to suit what you believe to be its best positioning.

Dungeon Masters Guide, Appendix A, Gary Gygax

This process is the low-fi equivalent of prompt engineering and post-production work done on AI images. I use tables to generate the contents of rooms, and the results sometimes present a puzzle. Why are giant beetles guarding glass jars filled with tree bark? I can invent an explanation, perhaps adding clues, such as a diary kept by a druid taking samples from trees. Or I can let the mystery hang there for the players to sort out. That’s when the game can be surprising and delightful as the players invent explanations I could not expect.

In a larger scope, the entire RPG campaign is an exercise in consensus world building. The game rules provide some structure and imply a world. If we’re playing Dungeons & Dragons, we know we’re in a world where gold coins are money, and brave adventures go off to find dungeons in hopes of finding gold and growing more powerful. As the game master, I add even more structure. I can declare only humans can be clerics. I can give an XP bonus to dwarf characters who hoard their gold. The other players build the world with their choices as well.

Nothing in the implied world or in anything I planned anticipated the players spending a lot of time knocking monsters unconscious and bring them back to town. The game does have rules for subduing enemies. From that kernel, the players in my longterm campaign invented the enterprise of capturing wild animals and monsters to sell in town. They relish the idea of running across wandering giant animals to place in cages.

The players behaved as if there were a market for giant animals. I didn’t dismiss the idea, so it became part of the game world. If everyone else around the table had declared it a rotten idea, maybe we’d have discarded it. It led to more interesting events. After the exhibition of a giant python in the town square, everyone knew the adventurers had been into the swamp where trespass within is forbidden by decree. That created an interesting interaction with the town sheriff.

The experience of the game is an evolving consensus that produces entertainment. It’s an average of the expectations of the players and the game authors. The game rules are mostly static, of course. The players add new ideas consistently. The game pleases everyone.

Now consider injecting the entire consensus of the Internet into the game world. Google Bard says it can take “several thousand” tokens as part of a prompt. It can’t track everything that happens in one game session, much less the entire chronicle of the game going back years. It can draw upon the generic information pulled from the Internet, and it might know something about the Basic Fantasy RPG campaign I’ve run since 2017 and relentlessly document on EmptyZ. When I asked it, “Who are Tienarth’s Raiders?” It guessed that I was talking about Dungeons & Dragons and then made up everything else.

Tienarth’s Raiders are a fictional mercenary group in the Dungeons & Dragons campaign setting of Forgotten Realms. They are led by the half-orc Tienarth, a skilled tactician and warrior. The group is known for their ruthlessness and efficiency, and they are often hired by wealthy patrons to undertake dangerous or difficult missions.

“Who are Tienarth’s Raiders?”, Google Bard

Tienarth is an elf magic-user, the game is BFRPG, and the Raiders don’t work for wealthy patrons. Almost everything in the response was generic tabletop roleplaying game dreck. It’s as if all the competing thoughts about a band of adventurers canceled out to equal nothing. Maybe it’s like that Harry Nilsson line from The Point, “A point in every direction is the same as having no point at all.”

I’d almost rather the model told me Tienarth’s Raiders are a type of cheesecake made from radioactive stardust, not something that seems sensible but is completely wrong. It asks too much of the public, generic models to provide anything meaningful to the personal game world built by a small group of friends. A model fine-tuned on issues of Dragon Magazine and White Dwarf could be interesting, though.

I wonder how long it will be until we can check off boxes of data from different subcultures (e.g. mix in Dragonsfoot, exclude The Forge) to fine-tune the models on demand.