People Trapped by Their Decisions

This is an eye-opening take on a heartbreaking situation. The woman being interviewed in this video is fighting against the incursion of biological men in women’s spaces. She describes the people who are fighting against her have motivations they are not being honest about. While not public knowledge, they have transitioned their children, so they have to fight for “trans rights” until the day they die. She says she has become a “standing reproach” to these people, and likens them to the Japanese soldiers in WWII who would never surrender after the war was over. They are forever compelled to attack her, because to agree that she makes a good point — any point — would mean they were wrong, and lest they have to face the fact that they have done irreparable damage to the very ones they had responsibility to protect from such abuse.

I’m not here to get into any of that argument. I simply realized it has a wider application.

This was my last post to Facebook, before I deleted my account.

I can’t get into details… at least not yet… but imagine, for a second, the length, breadth, and depth of the betrayal that would lead someone to make such a post. That might be captured by the image of being stabbed in the back, face, and heart. Got it? OK.

Now imagine the “support” system that has to be in place for someone to have implemented such a betrayal, not just of a person or a family, but an entire mid-sized church. The friends and family that had to have colluded. Got it? OK.

The people who played a part in committing this betrayal are still going around telling people that they were falsely accused, that there’s “another side” to the story, lying about that “side,” and blaming the entire problem on others (including me, I’m sure), despite the fact that scores of us who know the details about what happened are crystal clear about it. We have the figurative and literal receipts proving “our” side. I helped dig them up. Over the past couple of years, I’ve often agonized over the question, “How can they be like this?”

That’s where the video comes in. When I watched it, it was an aha! moment. I finally realized that the people who worked to enable this giant betrayal, this… gargantuan rug-pull, this… 40-year-long con will never — can never — admit to any wrongdoing or their part in it. The soul-crushing disappointment of facing the reality of being such a narcissistic sociopath would be too much. So they are going to go to their grave sticking their fingers in their ears and yelling, ignoring the plain facts of the situation, and avoiding their own consciousnesses over their multiple, decades-long moral and ethical failings

They have to live in a headspace where they say things like I’m “misinformed,” because if I’m not, it has soul-crushing implications. They’ll live the rest of their lives in an ivory tower of their own imaginations, locked away from the generational spiritual and emotional harm they’ve inflicted on hundreds of people, including some of their closest, so-called friends, because to admit they’ve committed such grievous injury would be impossible to reconcile with their their supposed beliefs and ethos, and their carefully-curated public image.

Even More on the Capabilities of Current-Gen “AI”

Another Twitter post led me to this Reddit post:

Further down in the comments, OP had this to say:

I copy-paste all of this for full context, but I want to emphasize this paragraph:

It tried a bunch of things before it had the breakthrough, but as you probably know it always said: “I found it! This is finally the root case of the problem!” but every AI does that on almost every prompt, so it wasn’t anything special. It was just another thing it did that I tested and noticed it worked without also regressing other stuff, and then I looked at it and compared it, and then realized what it did. Then I had to go and delete a bunch of other unnecessary changes that Opus also did that it insisted was good to leave in and it didn’t want to remove, but wasn’t actually pertinent to the issue.

Now, I make this sentiment on various social media sites so often that I have it as a shortcut on Mac and iOS: when I type, “reddits”, it autocompletes to say, “Reddit is a CCP-funded deep state psyop against a very specific demographic, and nothing on it should be taken at face value.” But in this case, it rings authentic. I deal with this most every day at this point.

A few years ago, a few Google searches would dig up StackOverflow answers and personal blog posts that specifically dealt with whatever you were asking about. But within the span of a few years, Google has become almost worthless for searching on programming problems. It’s lucky that LLM’s have come along now, or this work would be that much harder. I’d suggest that Google let their search product slide into terribleness in order to push people to their AI product, but they don’t have one yet, so their awfulness can just be ascribed to basic late-stage capitalism and utterly-predictable monopolistic malfeasance.

Anyway, this last quote is so appropriate. AI can’t figure out if what it did actually worked, but it always says it does, and when you see a move in the right direction, you have to figure out what part made it work, and then delete all the other stuff that the AI broke in the process. In this regard, it is exactly like a guy I used to work with who would break half a dozen things on my servers before he got something working. He never cleaned up his failed attempts. Every time he told me he had done something, I’d ask a few questions about his process, and then just quietly go put things back in order.

I just went through this process over the last weekend. I’m trying to move a codebase from Rails 6 to Rails 8. There’s a lot of changes in the way Rails handles Javascript between these two versions, from the bundling to the running. I’ve gotten left behind on a lot of this. Even when I spun up this Rails 6 app six years ago, I was using the old asset bundling technique from Rails 3/4. I was happy to make the jump to “no-build” in 8 all at once, but my application servers needed upgrading from a version of Ubuntu which is no longer getting security updates. This upgrade forced me into upgrading NodeJS. This upgrade broke the asset building process in Rails because the dreaded SSL upgrade has moved to this part of the stack now. So I moved to Webpacker, which took way too long to work out. I tried to use AI throughout, but it was of almost no help at all.

After finally getting moved to Webpacker, just in time to move to ImportMap, I have had to tackle how Stimulus, Turbo, and Hotwire work. Rails 7 focused on Turbolinks, which utterly broke the Javascript datatable widget, AgGrid, which I use all over the site, so I removed Turbolinks from my Rails 6 app, and never upgraded to 7. Now I’m learning how to do things in the new “Rails way,” and AI has been helpful… in precisely the same way that this Reddit poster describes. I’ve had to run many prompts and tweak and cajole it’s “thinking,” but I finally got a really neat and tiny solution to a question… All while verifying the approach with videos from GoRails. (Which I subscribed to just to make this turn of learning.)

After I had a working function to a particular feature I wanted, I had an “aha!” moment. I could see what all this new tooling and plumbing was about. I felt a little foolish, because it winds up just being a way to move the Javascript you need out of the view code. That’s a Good Thing (TM), but I couldn’t see the forest for the trees until that moment.

And even after this success, I’m plagued with a more philosophical question. The way that Claude factored the feature I wanted was all Javascript. Meaning, once the view was loaded, it dealt with the interactivity without going back through a server-side render step. It relied on the browser doing the DOM manipulation. Which is the “old” way of doing things, right? I asked it to specifically use Turbo streams to render the HTML that the browser could use to simply replace the div, and it said, “Oh, yes, right, that’s the more idiomatic way to do this in Rails,” and gave me a partial that the Stimulus controller use to do the same thing. But now I have a clean, one-file, entirely-Stimulus approach, versus having extra calls to format_for in a controller, a turbo-stream ERB file, and a partial. Seems to me like too much extra to make things idiomatic.

Also, when I asked Claude for this refactor, it broke the feature. So now I have to figure out if I want to fix the turbo-stream approach to keep things “the Rails way,” or just let Stimulus handle the whole thing. I think I will be using turbo-streams to refresh data in my AgGrid tables, but I think I’ll let Stimulus do all the work when it can. It keeps things simpler, and it’s basically what I was doing before anyway.

I want to go back to what I was saying before about how you have to “clean up” after the AI. This is critically important, and it’s a problem in the making that I’m hoping corporate managers figure out before it becomes permanent. If you hire juniors and expect them to produce code like seniors with AI, you’re going to wind up with a bunch of instability because of extraneous code that AI leaves behind. I expect that this problem is too “viral” to survive. I don’t think an actual, useful, non-trivial application could last very long being vibe-coded. It would start to teeter, and people would hit it with more AI, and it would fall over and shatter, and then they’d get to keep all the pieces. I worry that current applications will be patched here and there by juniors who don’t clean up the mess left behind, and these errors will accumulate until the codebase is so broken that…

Oh, for Pete’s sake. What am I even saying!? The same thing will happen here that has been happening for 40 years of corporate IT development: systems get so wonky and unmaintainable and misaligned that new middle managers come in, pitch senior management into doing a massive system replacement, spend twice as much time and three times as much money as they said it would take, launch the system with dismal performance and terrible UI, piss everyone off, polish their resume, get a new job, and leave the company and everyone in it holding the bag with the accretion their terrible decisions made by committee over years.

AI will change absolutely nothing about this. The problem isn’t technology, or code, or languages, or databases, or API’s, or anything else. The problem is people. It’s always BEEN people. I’m not clear that it ever NOT be about people.

More on the Capabilities of Current-Gen “AI”

Eric Raymond, another bright star in the programming universe, weighed in on the actual capability of current-gen “AI.” He echoed DHH and Carmack, again reiterating my own opinion that LLM’s cannot replace humans at (non-trivial) programming. Yet. Sure, it can make a single function or a web page, but even then you’ll have to fix things so that it doesn’t accumulate error into the project.

Maybe better “meta-LLM’s,” with more specialist subsystems, will be able to do better, but we really already have them. It’s not a difference in degree, but of kind. We will need to come up with some other technology before AI supplants humans at programming. Maybe the next step is AGI, maybe there’s a couple more intermediate developments before that becomes a reality.

At this point, it should be becoming clear that people who are obsequiously bullish on how AI is going to replace all your programmers at your company are grifting. As the line in the Princess Bride says, “Anyone who says differently is selling something.”

Crossplay Coming to ESO

There’s an evergreen request from people who play Elder Scrolls Online (ESO) that Zenimax Online Services (ZOS) add crossplay to the game. ESO came out 11 years ago. I wasn’t there for it. While the combat system was designed for console controller limitations, it launched on PC first. When the console ports became available, ZOS offered a one-time migration of PC accounts to a console account.

Ever since, people have been asking for crossplay. It comes up month after month, year after year on the forums. Currently, people on the console EU “megaservers” are particularly animated about it, because the current, quite-miserable state of PVP mechanics, combined with widespread performance problems, is leading their instances of Cyrodill and Imperial City to be desolate of players. They want crossplay at least between Xbox and Playstation just to have enough people to make it worth the effort.

Every couple of years, some muckety-muck at ZOS will say, yes, we understand people want it, but, no, we’re not working on it. They try to blunt people’s fervor over it, but never quite shut the door on implementing it, and wind up contributing to this never-ending communal belly-ache as much as anyone else.

As someone who has been doing full-stack development for 30 years, it seems to me that it would be an absolute nightmare to go back into an 11-year-old code base and add something as architecturally fundamental as crossplay. I would imagine that literally everything would be impacted. Every database call would have to be re-thought in the light of merging all the databases together. The structure of the databases themselves might have to change. And they can’t just lump it ALL together. They still have to have US and EU “megaservers” because of connection latency. (But maybe combining PC, PS, and Xbox servers per region would enable them to finally make one in the PAC, which people have also been requesting for years.)

When I wade into these arguments on the forums, I always ask if anyone thinks ZOS could justify the investment in time and equipment to implement crossplay, in terms of addition revenue over time for the company. I remind people that it has to not just make more money that it would cost, but it also has to make them more money than other things they could be doing. I’ve asked what percentage of the current player base would be added by doing it: 100%? 50%? 25%? 10%? No one has been willing to state that they think it would be significant.

The last time I was banging around in one of these threads, someone said that many games have implemented crossplay after launch, and that it had been very successful for them. I was incredulous, so off to ChatGPT I went. Imagine my surprise when I discovered he was right! Several notable games have, in fact, done this, and it seems to have been quite successful: Destiny 2, Apex Legends, Overwatch, Borderlands 3, Dead by Daylight, No Man’s Sky, Minecraft, and Halo. And it wasn’t like these were all using Unreal Engine, which added the capability for “free” with some big release. Most of these games use custom engines, and still managed to pull it off. Further, I asked ChatGPT to summarize the effects in a graph.

Adding Crossplay to Existing Games

As you can see from the (somewhat poorly rendered) graph, player engagement jumped after implementing crossplay in all of these games. Not only that, but bump has been sustained. So it would seem that this is, in fact, a pretty solid idea, even from a business point of view. At this point, I can see a scenario where ZOS’s hedging about implementing it is less about playing a PR game has been not telling hard core fans, “NO!”, but rather more about internally waffling while trying to figure out how to pull it off, given the demands of the constant monetization game that is the core of ESO as a business. But just like that, as I was writing this up, it’s become official! Just today, Matt Firor just said that they’re working on (the architectural elements needed to support) crossplay.

Crossplay Confirmed

This same request keeps coming up in ZOS’s sister company Bethesda’s game Fallout 76. Just sayin’…

Dead Reckoning • Damn Interesting

During one such inspection in 1731, a British merchant captain named Robert Jenkins protested the intrusion, and in the ensuing scuffle the Spanish captain’s blade somehow separated Captain Jenkins from his left ear. This civilian injury was far from newsworthy back in Britain⁠—after all, smuggling was a rough business. Eight years later, however, when Great Britain sought a pretext for war, it became politically expedient for British politicians to suffer outrage over this unauthorized amputation. Legend has it that Captain Robert Jenkins himself held aloft the very ear in question at a Parliamentary hearing, as evidence for the grave insult to the crown⁠—though there is no historical proof that this exhibition actually occurred. Ear regardless, the outrage was successfully fabricated, and the resulting years of hostilities would come to be known as “The War of Jenkins’ Ear.”

Source: Dead Reckoning • Damn Interesting

Emphasis mine, and that may be the best turn of English I’ve ever read.

To ESO or Not to ESO

Back at the first of the year, I “retired” from the Elder Scrolls Online. I let my ESO+ subscription lapse, and simply stopped playing. There were many reasons.

First, I really felt like the game was dying. The monthly user counts were as low as they had been in 7 years. People were complaining about the changes in the game in on their forums and on Reddit. There were many performance problems, crashes, and disconnects. There was a 9-month ongoing thread on their forums about it. Even if you weren’t affected (I wasn’t), you couldn’t play through a whole trial without several people dropping, and having to wait for them to rejoin. This was causing trial prog groups to give up, because you couldn’t satisfy the time requirement part of the trifecta. Also, ZOS canceled the American half of their big 10 year anniversary tour, after having had the one in Amsterdam, and they were being jerks about how streamers were covering them. Even though it came out a few weeks after I quit, the collective atmosphere around the game was such that the most prominent ESO streamer, NefasQS, quit as well, and made a whole video about why.

Second, running vet trials was pretty stressful. Thanks to the Oakensoul ring (for heavy attack builds) and the Arcanist class, I was able to put characters together to run vet content, and farm endgame gear. I got all geared up on 2 DPS characters, a tank, and a healer. But vet trials are 2 hours of sustained clicking, with very little break. I felt that it was hurting my health. It’s far too much to get into here, but I feel that part of my health problems stem from holding stress in my gut, and I started to realize that I was clenched and barely breathing for most of those 2 hours. Vet trials require everyone to be paying attention, or you will wipe the group. It also requires all the DPS you can manage, all the time, or you will wipe the group. And, most of the time, when the group wipes, you know who caused it. So there’s a lot of pressure to perform, and there’s a surprising amount of skill involved in playing the game at that level.

Third, I was running with a casual guild a couple times a week, and it felt like I wasn’t really clicking with the leader. One evening, I volunteered for a 4-man dungeon that the leader wanted to run, and even though I was vocal about wanting to run the dungeon, she ignored me and chose someone else to run who chimed in well after I did. It hurt my feelings. It was done in a way with plausible deniability, as only people who spend a lot of time on Discord can appreciate, but I had enough history to contextualize it, and I just couldn’t not see it as personal. She just didn’t want me to run with her. I mean, everyone is allowed to do what they want, but if I’m honest, it hurt my feelings quite a bit. Also, the guild leader had allowed another guild to merge with hers, and I didn’t really care for the people who had joined. Altogether, it was just another piece of the puzzle that was deflating my interest in playing.

Fourth, I had managed to knock out most of the achievements in the game, except the PVP stuff. The only major areas I had left to do were running the Infinite Archive and playing Tales of Tribute. IA is pure ESO combat, and I think ESO’s combat is the least likable thing about the game. And ToT is a card game. I didn’t start playing an MMORPG to play a digital form of Dominion. I hate any game that you can spend a bunch of time working on, and then lose suddenly. I didn’t want to do either of those things, so what was left?

So I quit.

I also retired from Fallout 76 at the same time, for the health reason. The FOMO about needing to log in every day and do the things that get you the rewards was anxiety inducing.

But then after several weeks, I got bored, and started playing 76 again.

Then 76 released a fantastic update that I have been loving.

And now ESO has announced an update which sounds like it will also be awesome.

So now I’m considering picking up ESO again, and the question is: To ESO or not to ESO?

First, I like the depth of the game. While I love the combat in 76, it’s very shallow. You can do everything there is to do in a day in the game in about an hour. That’s more like 3 hours in ESO, and that’s just one character. In ESO, you can have 20, while 76 is limited to 5. 76’s main quests will take at most a couple weeks to do. ESO’s takes at least months, if not years. There’s just a lot more to do in ESO.

Second, I like the look of the game. 76’s runs poorly on the PS5. The textures are mushy, the draw distance is clipped, and it rarely feels smooth. And it crashes. A lot. I mean, a lot. ESO runs flawlessly at 4K@60FPS in ultra mode on my modest PC, and it’s beautiful.

Third, I miss doing group content with real humans playing mechanics. I’ve become friends with many people in 76 through doing its one raid, but that’s really just cheesing the first (and maybe last) stage, and there’s really not much to talk about. So most of the time, people are just blathering on about nothing in comms, and I have nothing to add. ESO’s trials require comms, and talking about what’s going on, in order to get through them. I guess it’s all pretty impersonal, but on console, in 76, it’s REALLY impersonal. At least in ESO, there’s more camaraderie, and longer times in doing the content lead to closer relationships than in 76.

Fourth, this new update will make it easier to do damage, which will make all content easier. So trials should be less stressful, and Infinite Archive should be less tedious and grindy.

Unfortunately, that still leaves the “problem” of Tales of Tribute, and the fact that they “hid” a mythic lead behind doing it.

There’s also the issue of PVP. I’ve tried serious PVP with one of the big PVP guilds, and it was interesting. We were always getting beat, but I would do more if the game engine was more fair. Mechanically, PVP is in terrible shape in this game. It leads to nothing but gimmicks. I know — and ZOS knows — what the problem is, and they’re going to have to make a lot of people very mad to fix it, so the future is not great. Additionally, socially, the pressure brings out even more cringey behavior in guild comms, and there’s probably nothing to be done about that. So PVP is a negative regardless.

I don’t know what the answer is. At least, not yet.

Bethesda’s Roadmap

I found this 10-month-old interview with Todd Howard, the president of Bethesda. As usual, there’s a lot of talk, but little of substance. Look, I get it. Given his position, he can’t be very specific, or gamers will hound him until his dying day about something he said that didn’t work out the way they wanted. But if you listen between the lines, he says something that lines up with where I think this is all going.

Given my previous and salty experience of buying the advance-availability digital deluxe version of Starfield, and then refunding it because of the nightmarish inventory management, I just went and looked at the Steam chart for Starfield.

Ouch. That seems low. So I went and looked at Skyrim too, for comparison.

Like, ouch, man. The 12-year-old Skyrim has almost ten times as many players as Starfield. Maybe this is an unfair comparison, as Skyrim has twice as many players than Elder Scrolls Online and three times as many as Fallout 76, so Skyrim is sort of a juggernaut of video games. But still. Dang.

I found another video (which I won’t bother linking), lamenting the lack of updates to Starfield since launch while the player numbers languish. He complains that the potential of the game isn’t being realized. However, the “potential” of this game is being worked on, just not in the way he’s looking for it.

When Fallout 4 released, the settlement building aspect was widely criticized as not making much sense in the context of a single-player game. You could build up all the settlements in the game, and create supply routes between them, so that you could pool all your building materials together, and then… the people of those settlements would… help you fight random encounters all over the map? Really? All those hours of effort for this benefit? It was a really good subsystem, but that was the weird part. It made you question why a great, in-game building tool had such an obviously significant development effort put into it, when the in-game utilization of it was so weak. When they eventually released Fallout 76 on the same engine, it suddenly made perfect sense.

Well, they’re doing the same thing with Starfield. It’s well understood through some online leaks of recruiting posts that the studio is working on another “untitled” MMORPG, but it seems patently obvious (at least to me, given previous history) that this will be based on Starfield. So the lack of updates with Starfield has to be understood in this context.

They are surely coordinating the direction of the inevitable single player game expansions with the work going on with the MMO version of the game. In the same way that they timed the big Fallout 76 Ghoulification update to land with the TV show, I believe they’re holding things back waiting on other teams. Don’t forget that they promised to port it to Playstation, and now people are noting that this is being hinted in the Creation store, so that’s coming, and what better way to hype that re-launch on a new platform than with the forthcoming Shattered Worlds update? And after that, the next big update will probably land with the reveal of their new MMO based on the property.

The Inevitable Monetization of Subclassing

The well-known Elder Scrolls Online streamer, Alcast, has a writeup about the forthcoming ESO subclassing feature here: https://alcasthq.com/eso-how-to-prepare-for-subclassing/. He points out that you have to level a skill line to 50 on a class in order to unlock it for use in subclassing, then you have to re-level it to 50 as a subclass line, at half the normal rate of advancement. However, at least that subclass skill line is shared among your other characters.

When they announced this feature was going to be free for base game, I was surprised. Given previous history, I expected this to cost 1500 or 2000 Crowns per character. Now the monetization angle becomes clear. I think they’ll offer instant subclass skill leveling in the Crown store, and the only question becomes will it be 1500 or 2000 Crowns, and will that be for all 3 skill lines as a class, or per individual skill line? My first guess was going to be 1500 per skill line, but on further reflection, I think it will probably be 3000.

Now we wait to see…