What is the function of government?

Aug. 4th, 2025 08:47 pm
seawasp: (Default)
[personal profile] seawasp

People often will answer the above question with a list of things the government should *do* (operate courts, etc.), but these usually circle around the actual answer to that question. And obviously people will give many answers to it. 

My answer, after my years of thinking about it in different ways, is fairly simple:

The function of government is to provide the services, capabilities and resources to perform tasks that, for one reason or another, individuals and private enterprise are incapable, or ill-suited, to reliably provide.  

By its nature, the precise tasks the government should perform will vary depending on the size and nature of the governed region and population (and, indeed, by the available technology -- if you go back in time you'll find there's some very different constraints on both private and governmental ability to act than there are today). 

Today, here in the USA, we're dealing with a truly MASSIVE country in multiple ways. Our population is heading up towards four hundred million people -- as many people as there were in the entire world only about 800 years ago. The continental USA is close to three thousand miles across and a couple thousand or so North-South, and covers terrain and biomes of nearly every description. Economically, despite Trump and company's current attempts to blow it up, it's still one of the most powerful economies on the face of the Earth.

Moreover, socially it is, and has always been, a clumsily-assembled patchwork, made of everything from religious refugees to slaves and their descendants, the Native American survivors of dozens if not hundreds of different tribes and tribal networks, former slaveowners and abolitionists, Irish famine refugees and Europeans fleeing WWII, and many others. The elite designers of our Constitution, flawed as they were, at least were smart enough to steal ideas from the best (the Iroquois) and add their own, trying to create a structure that would serve to create a country somewhat better than the ones they left behind. They... sort of succeeded -- which is, to their credit, about all that ANY small group of people could be expected to do, especially when they can't benefit from our 200+ years of hindsight. 

This socioeconomic "patchwork", however, is a large part of the reason we see our current problems. To a great extent, the conflicts we see are not just racism, sexism, etc., but basic philosophies in conflict -- ones so basic that they are rarely actually taken out and EXAMINED by the people who adhere to them. 

The answers to a few relatively simple questions can reveal these divides. 

1) Are human beings of inherent worth?
2) What are the limits of an individual's rights? When can another individual, or a society, restrict them?
3) Do individuals owe anything to the society in which they live? Why or why not?

From my point of view, these are the answers:

1) Yes. We are the one species we know of that is not only sapient and self-aware, but inherently able to imagine the worlds that could be, but are not -- meaning we can create or destroy in ways that no other creature we know of. I believe that, to quote one of our classic founding lines, all human beings are endowed with certain inalienable rights, including life, liberty, and the pursuit of happiness.

2) Put simply, one individual's rights are limited whenever and however they come into conflict with other individuals' rights. A society, being a collective of individuals working towards a presumed common good (or at least stability) or another individual may restrict individuals' rights when the actions under those rights would harm others. (more complicated questions arise about judging harm on one side or another, but that's detail work, not basic principles)

3) Yes, absolutely. Even if you have a terrible, sucky childhood here, you're still in a setting that has resources and capabilities that you simply could not ever get for yourself. A single library is the accumulation of knowledge of centuries. If you continue to live in the society, you owe something to it, even if you owe nothing, or less than nothing, to specific individuals within it. 

There are some other similar questions and answers, but these suffice as a start. The problem, as I mentioned earlier, is that a lot of people don't really think about these things -- which means that not only may they not know their answers, but they may act in ways contradictory to their beliefs in one or more areas because it suits their particular preferences or needs in another context. 

So let's look back at those three rights, Life, Liberty, and the Pursuit of Happiness.

To me, it's intuitively obvious that you have no right to life if preserving your life is not in your personal control. This includes anything that's essential to life -- food, clothing, shelter, medical care. People who want these restricted or "means-tested" are, implicitly, saying that not EVERYONE is of inherent worth -- that some people don't deserve to live. To me, it's also obvious that the basic level should be one on which the recipients are comfortable; not some fabulous lifestyle, but not eating beans and rice every meal for months, not wearing terrible shoes and worn out clothing, not living in a house without sanitation or refrigeration or heating and cooling. At a level, in short, where they can quietly enjoy the life they have. 

You have no liberty if you are restricted from doing anything you might like that won't harm anyone. In a large society, of course, "harm" can come in a lot of forms, concentrated, diffuse, physical, social, economic, and the society and other individuals have the right to draw the lines there. But things like "I want to marry a person o fthe same sex" or "I want to watch this movie that someone else doesn't like" or "I want to wear this traditional clothing of my people without being bothered" don't harm anyone, and shouldn't even be a matter of question. The questions come in when you say, instead, "I don't want YOU to do these things because I don't like them". 

The Pursuit of Happiness is the most nebulous of them, but to me it's again fairly clear: a person can't really "pursue happiness" if they lack the time, resources, and freedom to do so. They should not be driven to work so hard that they cannot relax and enjoy life; they should have time to themselves and their friends and family. They should have enough spare resources to allow them at least some basic choices of luxury and entertainment. Otherwise, they can't "pursue" happiness, let alone attain it. 

A lot of people who may oppose these viewpoints are often doing so because in their gut they believe -- they WANT to believe -- that success comes from effort, that happiness is achievable by those who reach for it, and that the world is FAIR. And therefore, if someone's getting all that stuff without what they see as an appropriate amount and type of effort, it's Not Fair -- it's cheating at the most basic level. Maybe even it's theft, stealing the benefits that someone else could have gotten if they worked for it. 

This strangely idealistic concept is, unfortunately, one of the causes of some of the worst actions of our society, because such people will work extraordinarily hard to prevent any such things from happening -- often even if it costs them a great deal. For instance, drug testing for people on various government programs has essentially UNIVERSALLY shown itself to be hideously expensive -- it costs much more to do all the testing than it would to give the very few people actually on drugs the benefits anyway -- and it creates barriers for even those who "deserve" the support. 

If you accept that all human beings deserve their basic rights, these problems disappear; there's no need to waste money testing because everyone has the same rights. 

"But the cost!" is often one of the major arguments; the problem with that argument is that often it's the BARRIERS that cost. The American "healthcare system" is a prime example. The insurance company setup effectively DOUBLES the cost of our healthcare; providing Medicare for All without any gatekeeping would improve our country's health while cutting the actual cost of healthcare in half. 

And it's more than that; ensuring everyone IS taken care of on a basic level ultimately benefits everyone -- by reducing the cost of emergency care, of patchwork solutions to ongoing problems, of stopgaps that simply don't solve the problem. 

There's more to say on all this, but it's late and I've got to stop for now. 



[personal profile] mjg59
There's a lovely device called a pistorm, an adapter board that glues a Raspberry Pi GPIO bus to a Motorola 68000 bus. The intended use case is that you plug it into a 68000 device and then run an emulator that reads instructions from hardware (ROM or RAM) and emulates them. You're still limited by the ~7MHz bus that the hardware is running at, but you can run the instructions as fast as you want.

These days you're supposed to run a custom built OS on the Pi that just does 68000 emulation, but initially it ran Linux on the Pi and a userland 68000 emulator process. And, well, that got me thinking. The emulator takes 68000 instructions, emulates them, and then talks to the hardware to implement the effects of those instructions. What if we, well, just don't? What if we just run all of our code in Linux on an ARM core and then talk to the Amiga hardware?

We're going to ignore x86 here, because it's weird - but most hardware that wants software to be able to communicate with it maps itself into the same address space that RAM is in. You can write to a byte of RAM, or you can write to a piece of hardware that's effectively pretending to be RAM[1]. The Amiga wasn't unusual in this respect in the 80s, and to talk to the graphics hardware you speak to a special address range that gets sent to that hardware instead of to RAM. The CPU knows nothing about this. It just indicates it wants to write to an address, and then sends the data.

So, if we are the CPU, we can just indicate that we want to write to an address, and provide the data. And those addresses can correspond to the hardware. So, we can write to the RAM that belongs to the Amiga, and we can write to the hardware that isn't RAM but pretends to be. And that means we can run whatever we want on the Pi and then access Amiga hardware.

And, obviously, the thing we want to run is Doom, because that's what everyone runs in fucked up hardware situations.

Doom was Amiga kryptonite. Its entire graphical model was based on memory directly representing the contents of your display, and being able to modify that by just moving pixels around. This worked because at the time VGA displays supported having a memory layout where each pixel on your screen was represented by a byte in memory containing an 8 bit value that corresponded to a lookup table containing the RGB value for that pixel.

The Amiga was, well, not good at this. Back in the 80s, when the Amiga hardware was developed, memory was expensive. Dedicating that much RAM to the video hardware was unthinkable - the Amiga 1000 initially shipped with only 256K of RAM, and you could fill all of that with a sufficiently colourful picture. So instead of having the idea of each pixel being associated with a specific area of memory, the Amiga used bitmaps. A bitmap is an area of memory that represents the screen, but only represents one bit of the colour depth. If you have a black and white display, you only need one bitmap. If you want to display four colours, you need two. More colours, more bitmaps. And each bitmap is stored in an independent area of RAM. You never use more memory than you need to display the number of colours you want to.

But that means that each bitplane contains packed information - every byte of data in a bitplane contains the bit value for 8 different pixels, because each bitplane contains one bit of information per pixel. To update one pixel on screen, you need to read from every bitmap, update one bit, and write it back, and that's a lot of additional memory accesses. Doom, but on the Amiga, was slow not just because the CPU was slow, but because there was a lot of manipulation of data to turn it into the format the Amiga wanted and then push that over a fairly slow memory bus to have it displayed.

The CDTV was an aesthetically pleasing piece of hardware that absolutely sucked. It was an Amiga 500 in a hi-fi box with a caddy-loading CD drive, and it ran software that was just awful. There's no path to remediation here. No compelling apps were ever released. It's a terrible device. I love it. I bought one in 1996 because a local computer store had one and I pointed out that the company selling it had gone bankrupt some years earlier and literally nobody in my farming town was ever going to have any interest in buying a CD player that made a whirring noise when you turned it on because it had a fan and eventually they just sold it to me for not much money, and ever since then I wanted to have a CD player that ran Linux and well spoiler 30 years later I'm nearly there. That CDTV is going to be our test subject. We're going to try to get Doom running on it without executing any 68000 instructions.

We're facing two main problems here. The first is that all Amigas have a firmware ROM called Kickstart that runs at powerup. No matter how little you care about using any OS functionality, you can't start running your code until Kickstart has run. This means even documentation describing bare metal Amiga programming assumes that the hardware is already in the state that Kickstart left it in. This will become important later. The second is that we're going to need to actually write the code to use the Amiga hardware.

First, let's talk about Amiga graphics. We've already covered bitmaps, but for anyone used to modern hardware that's not the weirdest thing about what we're dealing with here. The CDTV's chipset supports a maximum of 64 colours in a mode called "Extra Half-Brite", or EHB, where you have 32 colours arbitrarily chosen from a palette and then 32 more colours that are identical but with half the intensity. For 64 colours we need 6 bitplanes, each of which can be located arbitrarily in the region of RAM accessible to the chipset ("chip RAM", distinguished from "fast ram" that's only accessible to the CPU). We tell the chipset where our bitplanes are and it displays them. Or, well, it does for a frame - after that the registers that pointed at our bitplanes no longer do, because when the hardware was DMAing through the bitplanes to display them it was incrementing those registers to point at the next address to DMA from. Which means that every frame we need to set those registers back.

Making sure you have code that's called every frame just to make your graphics work sounds intensely irritating, so Commodore gave us a way to avoid doing that. The chipset includes a coprocessor called "copper". Copper doesn't have a large set of features - in fact, it only has three. The first is that it can program chipset registers. The second is that it can wait for a specific point in screen scanout. The third (which we don't care about here) is that it can optionally skip an instruction if a certain point in screen scanout has already been reached. We can write a program (a "copper list") for the copper that tells it to program the chipset registers with the locations of our bitplanes and then wait until the end of the frame, at which point it will repeat the process. Now our bitplane pointers are always valid at the start of a frame.

Ok! We know how to display stuff. Now we just need to deal with not having 256 colours, and the whole "Doom expects pixels" thing. For the first of these, I stole code from ADoom, the only Amiga doom port I could easily find source for. This looks at the 256 colour palette loaded by Doom and calculates the closest approximation it can within the constraints of EHB. ADoom also includes a bunch of CPU-specific assembly optimisation for converting the "chunky" Doom graphic buffer into the "planar" Amiga bitplanes, none of which I used because (a) it's all for 68000 series CPUs and we're running on ARM, and (b) I have a quad core CPU running at 1.4GHz and I'm going to be pushing all the graphics over a 7.14MHz bus, the graphics mode conversion is not going to be the bottleneck here. Instead I just wrote a series of nested for loops that iterate through each pixel and update each bitplane and called it a day. The set of bitplanes I'm operating on here is allocated on the Linux side so I can read and write to them without being restricted by the speed of the Amiga bus (remember, each byte in each bitplane is going to be updated 8 times per frame, because it holds bits associated with 8 pixels), and then copied over to the Amiga's RAM once the frame is complete.

And, kind of astonishingly, this works! Once I'd figured out where I was going wrong with RGB ordering and which order the bitplanes go in, I had a recognisable copy of Doom running. Unfortunately there were weird graphical glitches - sometimes blocks would be entirely the wrong colour. It took me a while to figure out what was going on and then I felt stupid. Recording the screen and watching in slow motion revealed that the glitches often showed parts of two frames displaying at once. The Amiga hardware is taking responsibility for scanning out the frames, and the code on the Linux side isn't synchronised with it at all. That means I could update the bitplanes while the Amiga was scanning them out, resulting in a mashup of planes from two different Doom frames being used as one Amiga frame. One approach to avoid this would be to tie the Doom event loop to the Amiga, blocking my writes until the end of scanout. The other is to use double-buffering - have two sets of bitplanes, one being displayed and the other being written to. This consumes more RAM but since I'm not using the Amiga RAM for anything else that's not a problem. With this approach I have two copper lists, one for each set of bitplanes, and switch between them on each frame. This improved things a lot but not entirely, and there's still glitches when the palette is being updated (because there's only one set of colour registers), something Doom does rather a lot, so I'm going to need to implement proper synchronisation.

Except. This was only working if I ran a 68K emulator first in order to run Kickstart. If I tried accessing the hardware without doing that, things were in a weird state. I could update the colour registers, but accessing RAM didn't work - I could read stuff out, but anything I wrote vanished. Some more digging cleared that up. When you turn on a CPU it needs to start executing code from somewhere. On modern x86 systems it starts from a hardcoded address of 0xFFFFFFF0, which was traditionally a long way any RAM. The 68000 family instead reads its start address from address 0x00000004, which overlaps with where the Amiga chip RAM is. We can't write anything to RAM until we're executing code, and we can't execute code until we tell the CPU where the code is, which seems like a problem. This is solved on the Amiga by powering up in a state where the Kickstart ROM is "overlayed" onto address 0. The CPU reads the start address from the ROM, which causes it to jump into the ROM and start executing code there. Early on, the code tells the hardware to stop overlaying the ROM onto the low addresses, and now the RAM is available. This is poorly documented because it's not something you need to care if you execute Kickstart which every actual Amiga does and I'm only in this position because I've made poor life choices, but ok that explained things. To turn off the overlay you write to a register in one of the Complex Interface Adaptor (CIA) chips, and things start working like you'd expect.

Except, they don't. Writing to that register did nothing for me. I assumed that there was some other register I needed to write to first, and went to the extent of tracing every register access that occurred when running the emulator and replaying those in my code. Nope, still broken. What I finally discovered is that you need to pulse the reset line on the board before some of the hardware starts working - powering it up doesn't put you in a well defined state, but resetting it does.

So, I now have a slightly graphically glitchy copy of Doom running without any sound, displaying on an Amiga whose brain has been replaced with a parasitic Linux. Further updates will likely make things even worse. Code is, of course, available.

[1] This is why we had trouble with late era 32 bit systems and 4GB of RAM - a bunch of your hardware wanted to be in the same address space and so you couldn't put RAM there so you ended up with less than 4GB of RAM
fanf: (Default)
[personal profile] fanf

https://dotat.at/@/2025-08-04-p-fast-trie.html

Here's a sketch of an idea that might or might not be a good idea. Dunno if it's similar to something already described in the literature -- if you know of something, please let me know via the links in the footer!

The gist is to throw away the tree and interior pointers from a qp-trie. Instead, the p-fast trie is stored using a hash map organized into stratified levels, where each level corresponds to a prefix of the key.

Exact-match lookups are normal O(1) hash map lookups. Predecessor / successor searches use binary chop on the length of the key. Where a qp-trie search is O(k), where k is the length of the key, a p-fast trie search is O(log k).

This smaller O(log k) bound is why I call it a "p-fast trie" by analogy with the x-fast trie, which has O(log log N) query time. (The "p" is for popcount.) I'm not sure if this asymptotic improvement is likely to be effective in practice; see my thoughts towards the end of this note.

Read more... )

Happy Civil Holiday!

Aug. 4th, 2025 09:59 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
Living as I do in Ontario, a province run for and by assholes, the Civic Holiday is an "optional" holiday that employers may either observe or spend beating their employees with a stick no thicker than Andre the Giant's thumb.

Clarke Award Finalists 2008

Aug. 4th, 2025 09:42 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
2008: Norovirus is a smash hit with three million-plus Britons, an avoidable market collapse relieves boredom, and Boris Johnson’s election as mayor of London surely is not a harbinger of dark days to come.

Poll #33463 Clarke Award Finalists 2008
Open to: Registered Users, detailed results viewable to: All, participants: 20


Which 2008 Clarke Award Finalists Have You Read?

View Answers

Black Man by Richard Morgan
9 (45.0%)

The Carhullan Army by Sarah Hall
7 (35.0%)

The Execution Channel by Ken MacLeod
8 (40.0%)

The H-Bomb Girl by Stephen Baxter
0 (0.0%)

The Raw Shark Texts by Steven Hall
3 (15.0%)

The Red Men by Matthew De Abaitua
1 (5.0%)



Bold for have read, italic for intend to read, underline for never heard of it.

Which 2008 Clarke Award Finalists Have You Read?
Black Man by Richard Morgan
The Carhullan Army by Sarah Hall
The Execution Channel by Ken MacLeod
The H-Bomb Girl by Stephen Baxter
The Raw Shark Texts by Steven Hall
The Red Men by Matthew De Abaitua
siderea: (Default)
[personal profile] siderea
I finally got around to pursuing a replacement of what we in the Bostoniensis Household refer to as the Lorem Ipsum card, which was itself a fiasco.

(Recap: PayPal, an organization full of people who are not as smart as they think they are and blessed with perhaps the deepest marketing reach in the US into the small business market for financial services, decided to offer to its business customers the greatest credit card deal of their lifetimes, unlimited 2% cash back on all purchases, and the market responded with all the decorous restraint of a river full of pirhana given a whole cow. Apparently we collectively took PayPal for all they were worth – I heard of small tech companies running their cloud services bills to the tune of five figures a month across on the card – until sometime in Sept 2024, when the grown-ups at PayPal discovered they were hemorrhaging money, and very abruptly shut the party down and exit the business credit card market all together. The hard inquiry on my credit report lasted longer than the actual card did. At the time, it was pretty upsetting, but now it's just hilarious.)

A couple weeks ago I decided to apply for an American Express Blue Business Cash card, which has no fees and has a cash back offer. I have to say, absolutely all the customer service agents – five now – I've spoken to have been exemplary. Yeah, alas, that's foreshadowing.

Unfortunately their IT services are demented. First there was the fact they sent me a notification saying my application had been, and I quote, "DENIED", with a link to find out why, and when I followed the link, I discovered my application hadn't been denied: it said that they couldn't run a credit check on me because my credit reports were locked (true), so I need to go unlock the specified credit report and let them know so they could continue processing my application. So I called in and did it in real time with an agent on the line and was approved on the spot. Fabulous. "Okay, you will be getting your card at your home address in three to five business days." "Uh, it's a business card, could you send it to my business address?" "Oh, no, it won't let me send your initial card to any other than your home address." "*sigh* Very well."

My new Amex card arived at my home on like the 30th or 31st, while I had my nose to the grindstone writing. Friday the 1st, I opened the envelope to find my new card, and then to activate it at the website.

I couldn't get it off the paper.

Or rather: in attempting to get the card off the paper, I wound up with a layer of glue and paper stuck on the back of the card, such that I could not read any but the first five digits of the card number, and the CVV was completely covered. It was like the paper was superglued on. It was annealed.

So I called Amex, and discovered that you can't get through the phone tree to a a customer service agent about an extant account unless you can prove you're the owner of the account with, yes, the CVV. Which I can't read. Because there's a half thickness of paper glued across it.

Also, you can't set up an account on their website without the full card number, which I also couldn't read, because there was a half thickness of paper glued across it.

So I called the number for applying for a card in the first place, and threw myself on the mercy of the sales agent, explaining why I was calling them instead of regular customer service: I can't get to customer service without knowing the CVV, and the problem I need help with is that I can't read the CVV. "I know I shouldn't be laughing," he said, "But this is kind of hilarious." He kindly set up a three-way call with customer service so I didn't wind up wandering unattended in a phone tree maze, and once I was talking to the nice people who could replace my card, he ducked out.

The customer service agent and I then discovered that Amex doesn't let you replace a card, for some reason, until an account is 10 days old. My account was, as of that moment, nine days old. She gave me a direct number to business card services in the hopes I could avoid the phone tree of doom; the agent also gave me some pointers about pressing zero to get through it, which trick I had tried on the other phone tree and it hadn't worked.

Saturday I was busy sleeping. Today, I called the phone number I had been given for business card services, and despite the phone tree trying to authenticate with the CVV, I managed to confuse the robot enough it finally found me a human. I got to explain all over again about the disfigured card, and they transferred me again to card replacement, who put the order right in.

I observed to the agent that the issue with the glue and the card might have something to do with them sending it to my home, where I have a black mailbox on a south-facing side of the building, and we had been having a heatwave, and maybe they would like to send my replacement card to my business address, where the mailboxes are indoors in air conditioned comfort? She agreed that would be a much better plan.

So now I await my new Amex. It's a 2% cash back on purchases offer, but only up to the first $50k of purchases, so companies can't use their AWS bill to bleed them dry, so maybe it will stick around a little longer than PayPal's Lorem Ipsum card.

Speaking of credit card offers possibly too good to last, for any of you sad you missed out on getting your own bite of the cow:

I recently discovered that AAA – yeah, the American Automotive Association, the roadside assistance people – has a really great credit card offer. (This may be region specific – I'm in their "Northeast" region.) Their Daily Advantage Visa Signature card has 5% cash back on groceries, no annual fee. Only the first $10k of grocery purchases per year, and then 1% thereafter – which is good, actually: it has a chance of sticking around. But that does mean up to $500/year in cash back on grocery purchases. Given what's happening to the price of food and paper goods, having a permanent 5% discount on groceries is freaking fantastic. It also has a bunch of other features (3% cash back on gasoline or electric car charging stations, e.g.) and 1% cash back on everything else (no limit).

The interest rate is usurious, so under no circumstances do you ever want to carry a balance on it. But if you are the sort of person who can reliably always pay off their balance every month on time: permanent 5% off groceries!

And, no, apparently you do not need to be a AAA member to get the card. (Though we are.)

We got one and I just finished reading the fine print. Seems reasonable. We don't know that our grocery delivery service will be recognized by the card company (it's Comenity Capital Bank under the hood) as a grocery store, but the service is run by a grocery store, and the charges have appeared on the previous card under the name of the grocery store, so here's hoping. We'll know later this week – our next grocery order is for Wednesday, and the charge typically shows up a day or two after that.

Also, we've never had a card with Comenity, so we don't really know how their IT and customer service are. The web interface for account management is very nice. We'll report back as we know more.

I'm not generally in the practice of recommending credit cards, and I can't wholly recommend this one, having not really exercised it yet to discover its landmines. But what's going on here in the Bostoniensis household is that we're cashing in on our good credit scores to take advantage of financial offers that pinch our pennies for us, as a form of hardening our household financially against inflation and other future economic vicissitudes. This has generally meant getting credit with better terms (either lower rates or higher rewards), and opening High-Yield Savings Accounts for our nest egg and my estimated tax payments as a self-employed person.

Given that eating food is a pretty universal custom and groceries are getting scary-expensive, I thought I would mention for anyone who wants to do likewise, and is in a position to do so.
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
Poll #33455 Books Received, July 26 to July 31
Open to: Registered Users, detailed results viewable to: All, participants: 47


Which of these look interesting?

View Answers

The Laundry Roleplaying Game: Operative’s Handbook by by David F Chapman, Calum Collins, Christopher Colston, Alister Davison, Michael Duxbury, Warren Frey, Gareth Hanrahan, and Elaine Lithgow et al (Q4, 2025)
19 (40.4%)

The Laundry Roleplaying Game: Supervisor’s Guide by Anthony Boyd, Greg Buchanan, David F Chapman, Calum Collins, Christopher Colston, Alister Davison, Michael Duxbury, Warren Frey, Gareth Hanrahan, Derek Johnston, and Elaine Lithgow et al (Q4, 2025)
19 (40.4%)

You do know at least one person in the group needs both books, right?
24 (51.1%)

Some other option (see comments)
2 (4.3%)

Cats!
42 (89.4%)

Books Received, July 26 to July 31

Aug. 2nd, 2025 09:18 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


Just two items this week (although maybe two halves of one thing). Both cosmic horror, both part of (or related to) a series.


Books Received, July 26 to July 31

Empath by Hoa Pham

Aug. 1st, 2025 08:49 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


Many people spend their lives wondering if there's a point to their existence. Vuong and her clone sisters have a purpose. With a little investigation, they might find out what it is.

Empath by Hoa Pham
siderea: (Default)
[personal profile] siderea
Canonical link: https://siderea.dreamwidth.org/1879923.html


Americans, if you are not already onboard with the Epstein files scandal, I suggest you get onboard. Non-Americans, feel free to pitch in.

For about nine years now, our side – meaning everyone who thinks fascism is bad and has been voting accordingly – has been ardently wishing any of Trump's excesses would be regarded as a scandal that would take down his presidency, and been bewildered why that wasn't happening. Well, it is finally, finally happening, so get out of the bus and come push.

But before you do, there's some things you should know.



1.

Over on Pod Save America (2025 July 25, "EXPLOSIVE REVELATION in Trump’s Epstein Files Scandal") Dan Pfeifer had some things to say about how our side responds to the Epstein files which I think are incredibly important for us to all hear:
[3:15] [Jon Favreau:] Dan, how does this explosive revelation – that we all saw coming – change the nature of this almost 3-week old scandal?

[Dan Pfeiffer:] I would hope that this changes how everyone, ourselves included, talks and thinks about this scandal.

Because we've had a lot of fun about with this. We're going to have fun about it on this podcast, I hope. It is... There's something amusing about it.

But I feel like everyone has been treating this kind of from a perspective of...bemusement? Like, "Ah, look at these conspiracy pushing grifters who've been hoisted on their own petard!" right? Where the real crime here is hypocrisy and deception. Right? That they they say they released the Epstein files but they didn't do it. Trump's breaking a campaign promise, ha! Take that! The dog that caught the car, and all of that.

But I think we do really have to to take a step back, and I know this is going to sound like hyperbole, and I know it will, but I truly believe it: that this scandal, now with this revelation, this scandal, now, should be treated like Iran-Contra, Watergate, other major political scandals.

Because what we have here is the president of the United States, the attorney general, the intelligence community, the FBI director, and the Republican Congress, all part of a conspiracy to cover up information about the President of the United States' relationship with America's most notorious child sex trafficker.

[Jon Favreau, profoundly missing Pfeiffer's point:] And lying about it, right?

[Dan Pfeiffer:] And he lied– he lied to the American people.  Whether– either by direct order or by implicit request, the intelligence community! We have intelligence professionals, like, the most– what's theoretically supposed to be the most, one of the most apolitical parts of the government, concocting a bullshit report we're going to talk about to try to distract people from the political fallout of this. You have the Republican Congress shutting down and going home, for a month because they are so afraid to vote on a measure that could shed light – once again – on the President of the United States' relationship with America's most notorious child sex trafficker.

Like this really is a giant deal. Like, we need to know what is that hearsay Trump's worried about, in the files? What is in there? What do we not know about Trump's relationship? Like, what, what other steps have been taken to try to cover this up? Have there been efforts to alter or destroy the records? Right? What what other government officials have hid it? Who else has been lied to? Like, this is a big deal and it should be treated as a big deal, in my view.

[...]

[...] this is one of the clues that [5:44] you and I took as evidence that Trump knew his name, or at least suspected his name, was in the Epstein files, was he kept saying, "How are we going to know they're real? Maybe Comey and Biden and whoever else doctored them?" To put his name in there, right?

[...]

I mean the, the chain of events here is they were planning to release the files; they were on Pam Bondi's desk; they released that first tranche that had his name in it, that did not– that at that point they did not say We're not going to release more, because after that went out Pam Bondie said These are on my desk for review; she reviewed them, found something that she thought would be quite embarrassing to the president, and they changed their plan. And they've continued to believe that the massive amount of political fallout they've been getting now for almost 3 weeks is preferable to whatever they believe is in the files.
And:
[Jon Favreau:] How do you think Dems should [17:09] handle this issue over the next few months?

[Dan Pfeiffer:] I think our goal should be to keep the issue in the news as much as possible without putting too much spin on the ball. Right? I've seen other testing which shows that the most effective online posts are not Democrats talking about it. It is clips of Republicans or people who previously supported Trump – you know, podcasters, influencers – criticizing Trump for this. That's the most effective medium.

When we think about how we, like, if we are messaging– if you're an elected official and you're thinking about how to use your platforms, that's one way to do it. If we're thinking about it in the context of how all of us are messengers, and people in our lives, and you're sharing things in your group chat, the better thing to share is the clip of Andrew Schultz talking about this on Flagrant, than it is, you know, some Democrat ranting about this on MSNBC.  Or Pod Save America, or anywhere else, right? It's like the... Think about someone who is– who's motivations are not automatically questioned even in an issue on this one where they're, they're quite sincere.
Commentary follows, below.

Please try not to forget... [4,570 words] )

This post brought to you by the 220 readers who funded my writing it – thank you all so much! You can see who they are at my Patreon page. If you're not one of them, and would be willing to chip in so I can write more things like this, please do so there.

Please leave comments on the Comment Catcher comment, instead of the main body of the post – unless you are commenting to get a copy of the post sent to you in email through the notification system, then go ahead and comment on it directly. Thanks!
[personal profile] mjg59
LWN wrote an article which opens with the assertion "Linux users who have Secure Boot enabled on their systems knowingly or unknowingly rely on a key from Microsoft that is set to expire in September". This is, depending on interpretation, either misleading or just plain wrong, but also there's not a good source of truth here, so.

First, how does secure boot signing work? Every system that supports UEFI secure boot ships with a set of trusted certificates in a database called "db". Any binary signed with a chain of certificates that chains to a root in db is trusted, unless either the binary (via hash) or an intermediate certificate is added to "dbx", a separate database of things whose trust has been revoked[1]. But, in general, the firmware doesn't care about the intermediate or the number of intermediates or whatever - as long as there's a valid chain back to a certificate that's in db, it's going to be happy.

That's the conceptual version. What about the real world one? Most x86 systems that implement UEFI secure boot have at least two root certificates in db - one called "Microsoft Windows Production PCA 2011", and one called "Microsoft Corporation UEFI CA 2011". The former is the root of a chain used to sign the Windows bootloader, and the latter is the root used to sign, well, everything else.

What is "everything else"? For people in the Linux ecosystem, the most obvious thing is the Shim bootloader that's used to bridge between the Microsoft root of trust and a given Linux distribution's root of trust[2]. But that's not the only third party code executed in the UEFI environment. Graphics cards, network cards, RAID and iSCSI cards and so on all tend to have their own unique initialisation process, and need board-specific drivers. Even if you added support for everything on the market to your system firmware, a system built last year wouldn't know how to drive a graphics card released this year. Cards need to provide their own drivers, and these drivers are stored in flash on the card so they can be updated. But since UEFI doesn't have any sandboxing environment, those drivers could do pretty much anything they wanted to. Someone could compromise the UEFI secure boot chain by just plugging in a card with a malicious driver on it, and have that hotpatch the bootloader and introduce a backdoor into your kernel.

This is avoided by enforcing secure boot for these drivers as well. Every plug-in card that carries its own driver has it signed by Microsoft, and up until now that's been a certificate chain going back to the same "Microsoft Corporation UEFI CA 2011" certificate used in signing Shim. This is important for reasons we'll get to.

The "Microsoft Windows Production PCA 2011" certificate expires in October 2026, and the "Microsoft Corporation UEFI CA 2011" one in June 2026. These dates are not that far in the future! Most of you have probably at some point tried to visit a website and got an error message telling you that the site's certificate had expired and that it's no longer trusted, and so it's natural to assume that the outcome of time's arrow marching past those expiry dates would be that systems will stop booting. Thankfully, that's not what's going to happen.

First up: if you grab a copy of the Shim currently shipped in Fedora and extract the certificates from it, you'll learn it's not directly signed with the "Microsoft Corporation UEFI CA 2011" certificate. Instead, it's signed with a "Microsoft Windows UEFI Driver Publisher" certificate that chains to the "Microsoft Corporation UEFI CA 2011" certificate. That's not unusual, intermediates are commonly used and rotated. But if we look more closely at that certificate, we learn that it was issued in 2023 and expired in 2024. Older versions of Shim were signed with older intermediates. A very large number of Linux systems are already booting certificates that have expired, and yet things keep working. Why?

Let's talk about time. In the ways we care about in this discussion, time is a social construct rather than a meaningful reality. There's no way for a computer to observe the state of the universe and know what time it is - it needs to be told. It has no idea whether that time is accurate or an elaborate fiction, and so it can't with any degree of certainty declare that a certificate is valid from an external frame of reference. The failure modes of getting this wrong are also extremely bad! If a system has a GPU that relies on an option ROM, and if you stop trusting the option ROM because either its certificate has genuinely expired or because your clock is wrong, you can't display any graphical output[3] and the user can't fix the clock and, well, crap.

The upshot is that nobody actually enforces these expiry dates - here's the reference code that disables it. In a year's time we'll have gone past the expiration date for "Microsoft Windows UEFI Driver Publisher" and everything will still be working, and a few months later "Microsoft Windows Production PCA 2011" will also expire and systems will keep booting Windows despite being signed with a now-expired certificate. This isn't a Y2K scenario where everything keeps working because people have done a huge amount of work - it's a situation where everything keeps working even if nobody does any work.

So, uh, what's the story here? Why is there any engineering effort going on at all? What's all this talk of new certificates? Why are there sensationalist pieces about how Linux is going to stop working on old computers or new computers or maybe all computers?

Microsoft will shortly start signing things with a new certificate that chains to a new root, and most systems don't trust that new root. System vendors are supplying updates[4] to their systems to add the new root to the set of trusted keys, and Microsoft has supplied a fallback that can be applied to all systems even without vendor support[5]. If something is signed purely with the new certificate then it won't boot on something that only trusts the old certificate (which shouldn't be a realistic scenario due to the above), but if something is signed purely with the old certificate then it won't boot on something that only trusts the new certificate.

How meaningful a risk is this? We don't have an explicit statement from Microsoft as yet as to what's going to happen here, but we expect that there'll be at least a period of time where Microsoft signs binaries with both the old and the new certificate, and in that case those objects should work just fine on both old and new computers. The problem arises if Microsoft stops signing things with the old certificate, at which point new releases will stop booting on systems that don't trust the new key (which, again, shouldn't happen). But even if that does turn out to be a problem, nothing is going to force Linux distributions to stop using existing Shims signed with the old certificate, and having a Shim signed with an old certificate does nothing to stop distributions signing new versions of grub and kernels. In an ideal world we have no reason to ever update Shim[6] and so we just keep on shipping one signed with two certs.

If there's a point in the future where Microsoft only signs with the new key, and if we were to somehow end up in a world where systems only trust the old key and not the new key[7], then those systems wouldn't boot with new graphics cards, wouldn't be able to run new versions of Windows, wouldn't be able to run any Linux distros that ship with a Shim signed only with the new certificate. That would be bad, but we have a mechanism to avoid it. On the other hand, systems that only trust the new certificate and not the old one would refuse to boot older Linux, wouldn't support old graphics cards, and also wouldn't boot old versions of Windows. Nobody wants that, and for the foreseeable future we're going to see new systems continue trusting the old certificate and old systems have updates that add the new certificate, and everything will just continue working exactly as it does now.

Conclusion: Outside some corner cases, the worst case is you might need to boot an old Linux to update your trusted keys to be able to install a new Linux, and no computer currently running Linux will break in any way whatsoever.

[1] (there's also a separate revocation mechanism called SBAT which I wrote about here, but it's not relevant in this scenario)

[2] Microsoft won't sign GPLed code for reasons I think are unreasonable, so having them sign grub was a non-starter, but also the point of Shim was to allow distributions to have something that doesn't change often and be able to sign their own bootloaders and kernels and so on without having to have Microsoft involved, which means grub and the kernel can be updated without having to ask Microsoft to sign anything and updates can be pushed without any additional delays

[3] It's been a long time since graphics cards booted directly into a state that provided any well-defined programming interface. Even back in 90s, cards didn't present VGA-compatible registers until card-specific code had been executed (hence DEC Alphas having an x86 emulator in their firmware to run the driver on the card). No driver? No video output.

[4] There's a UEFI-defined mechanism for updating the keys that doesn't require a full firmware update, and it'll work on all devices that use the same keys rather than being per-device

[5] Using the generic update without a vendor-specific update means it wouldn't be possible to issue further updates for the next key rollover, or any additional revocation updates, but I'm hoping to be retired by then and I hope all these computers will also be retired by then

[6] I said this in 2012 and it turned out to be wrong then so it's probably wrong now sorry, but at least SBAT means we can revoke vulnerable grubs without having to revoke Shim

[7] Which shouldn't happen! There's an update to add the new key that should work on all PCs, but there's always the chance of firmware bugs
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


...or at least, sending them away. Sometimes for good.

Five Books About Sending the Kids to Camp

July 2025 in Review

Jul. 31st, 2025 08:57 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


23 works reviewed. 12 by women (52%), 10 by men (43%),1 by non-binary authors (4%), 0 by authors whose gender is unknown (0%), and 11 by POC (48%).

July 2025 in Review

Hypothetically speaking

Jul. 30th, 2025 04:00 pm
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
If someone asked for a list of issues with the Reactor site, what would be your top five? Not counting search. Assume search will be mentioned.
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


11 digital issues of The Official BattleTech Magazine from Catalyst Game Labs, Shrapnel.

Bundle of Holding: BattleTech Shrapnel 2
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


One day the General will be victorious. Earth will be his! Humanity will be exterminated!

However, today is the General’s day off.

Mr. Villain’s Day Off, volume 1 by Yuu Morikawa

Heads up for the Pacific

Jul. 29th, 2025 09:28 pm
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
8.7 quake in Siberia, tsunami warning across the Pacific.

desk experiments

Jul. 29th, 2025 08:08 pm
cellio: (Default)
[personal profile] cellio

Dani and I both concluded, at about the same time, that our office chairs were past their use-by dates. We both also want to test a chair, not just order blind, so we headed off to a well-stocked office-supply store and found replacements. (As it turned out, we both liked the same model.)

While we were there I asked if they had any kneeling chairs, because I'd like to try varying my posture. I had one of those 30+ years ago that I liked (at work), but also encountered several I didn't like, so I definitely want to try first. (Also, I don't know if it's compatible with the arthritis that is starting to form in one knee.) Alas, the sales rep said, that business has moved entirely online, so I gave up on that.

I had a height-adjustable (sit or stand) desk at my last job, back before Covid. Replacing my current desk would be a pain (as well as expensive), but after we got the chairs I started looking at "adapters", an adjustable thing you can put on your desk to raise a platform rather than the whole desk. Many of them make strong (maybe even binding) assumptions about monitor placement that do not work with my vision, but eventually I found a "just raise this (basically) rectangle and don't do anything else" model with metal, not plastic, core parts.

Raised platform holding a monitor, keyboard, and mouse, with space behind; the L-shaped desk below has two visible computers, a headset, a coffee mug, a water bottle, part of a printer, and assorted peripherals and papers. The monitor shows a MacOS lock screen.  A two-part footrest is visible below the desk.

With nothing on it the platform lifts easily (there's a control on one side). With a monitor that is well below the rated weight limit, the first few inches of lifting are a fair bit of work, and then it goes fine. Lowering is easy. I switch back and forth once or twice a day, so that initial push is ok; if I were working full-time and wanting to change it up every hour or so, it might be more annoying.

I thought of half of a second-order effect. With this setup, even with the desk lowered the platform is about three inches higher than the desk surface. That's ok, I said; I'll just raise the chair. I rejected similar products that added more "resting" height; I did think about this. The part I didn't think about is that I'm short, so that change to chair height makes the difference between my feet reaching the floor and not. So now I am experimenting with footrests, courtesy of a friend, one of which is visible in the photo. I think this is the style I want, particularly if I can get a wedge of foam to stick in there to hold the "V" shape.

It all goes to show that you can't change just one thing. So far, though, I think this is working out.

Angel Station by Walter Jon Williams

Jul. 29th, 2025 08:54 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


Two orphans try to make a living in an unforgiving universe.

Angel Station by Walter Jon Williams

Dance!

Jul. 28th, 2025 10:32 pm
jducoeur: (Default)
[personal profile] jducoeur

Oh, and here's a little note worth calling out:

Over the past year, I've been getting more into Scottish Country Dance. I'm by no means an expert -- sadly, I've had to accept that I'm not as bouncy as I once was, and after fracturing my foot a couple of years ago I'm allowing my style to be loose and sloppy -- but I've become a regular member of the Gender-Free Scottish Country Dance class happening in the NESFA Clubhouse twice a month, and am quite enjoying it.

A couple of weeks ago was ESCape, the annual Pinewoods week co-hosted by the local English, Scottish, and Contra communities, which has become a highlight of my annual schedule. Classes all day and balls all night, it's a dancer's dream, and the community is relatively young, queer, geeky, and thoroughly fun to be around.

A particular tidbit this year was the day where Sorcy taught McCloud's Wedding (? I think that was the name), a delightfully weird, intricate, five-couple dance where basically everybody is active. Wild stuff, and at the end of the rather large class they asked for ten volunteers to perform a demo set during the ESCape Chocolate Party on Thursday. They got over a dozen volunteers, so I demurred, but told them that if they came up short, they should pull me in.

Not astonishingly, the party rolled around and they were short on people, so I got grabbed for a quick once-through and then on to the performance. And it was caught on video, so if you're curious what this SCD stuff looks like (in a rather complex form), give it a look!

The gooshy food

Jul. 28th, 2025 09:41 pm
cvirtue: CV in front of museum (Default)
[personal profile] cvirtue
I mentally send the best of gooshy food to the cat of a friend, now traveled over whichever metaphor she prefers for him.
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


English-language ebooks of Apocalisse and Inferno, the Acheron Games campaign settings based on the Book of Revelation and the Divine Comedy for Dungeons & Dragons Fifth Edition and compatible systems.

Bundle of Holding: Apocalisse & Inferno
cvirtue: CV in front of museum (Default)
[personal profile] cvirtue
Posted this on other social media, and am also posting it here in case anyone is interested.

Wheel of Time (TV): I don't know if anyone has done a back-of-the-envelope analysis of the demographics of people who LOATHED the TV series.

I have a thought: the series, like any movie/tv adaptation, changed some things around. I have a lot of commentary on the LotR movies, for example, but I still enjoy them. But there were a number of people who thought the WoT adaptation was completely horrible.

One of the things that the series did differently from the books was to make it more of an ensemble show from the start; the first book is mostly centered on Rand, although that changes a lot with books 2 & 3, and onward - there are at least a dozen viewpoint characters. One of the effects of this is to give the women more prominence in the series. Moiraine (the blue wizard, who is also not young) gets good screentime, plus the two young women from the village, not just the three young men.

I'd be interested in the demographics of the people who loathed the show vs. demographics of people who like the books. Are men much more likely to not like the series than women? Is this because the male characters aren't the only ones in the spotlight? (If it is, not many men would admit to it.)

Running second to this is the inclusivity of race/skin color in the show compared to the assumed white European people in the books. Are there as many people annoyed with Lan being Asian as they are with more women in a central role?

So for the analysis, I'd want to see comparison of fan percentages, which might be something like this if my hypothesis holds water:
Fans of WoT: 55% male, 45% female
Fans of WoT TV: 30% male 70% female

So this would show a drop of 25% favorability amongst men compared with the books. I stress again that these are entirely made-up numbers.

That drop could then be compared to a different adaptation that doesn't have the gender emphasis changes -- what if the LotR movies only had a 10% drop in male fans compared to the books? One could then conclude that the difference (15%) might well be due to the race or gender emphasis.

I did find this, which is interesting, especially as I think the genre categories are extremely porous, so separating them might not be as useful as Harris thinks they are:

"the Harris Interactive study on 2015 adult reading habits shows that fantasy might be slightly more popular among women, with 25% of female survey respondents having read a fantasy novel in the past year compared to only 23% of male respondents. This is only a sliver of a difference, though, which means it is more likely that men and women read fantasy at mostly even rate. Science-fiction is a completely different story, though, with men reading novels published in that genre almost twice as often (35% to 19%). "

Re: porous: IMHO, if you're going to separate this into two categories, I'd want SF to have very solid science at its base -- and there are a lot of alleged strong-SF which do NOT have strong science underpinnings; a lot of the "SF" category is Science Fantasy. But this isn't the place for that argument - I'm sure you can find plenty online, by professionals in the field, if you're interested in the topic.

If you've seen any hints of this kind of demographic analysis for any WoT item, please mention it.

Clarke Award Finalists 2007

Jul. 28th, 2025 09:36 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
2007: The Blair government is rocked by rumours of Tory-style corruption, Matty Hull’s killers escape justice and are free to kill again, while the global financial markets to which the UK belongs are absolutely secure and in no way headed for a shocking correction.


Poll #33435 Clarke Award Finalists 2007
Open to: Registered Users, detailed results viewable to: All, participants: 14


Which 2007 Clarke Award Finalists Have You Read?

View Answers

Nova Swing by M. John Harrison
9 (64.3%)

End of the World Blues by Jon Courtenay Grimwood
3 (21.4%)

Gradisil by Adam Roberts
3 (21.4%)

Hav by Jan Morris
7 (50.0%)

Oh Pure and Radiant Heart by Lydia Millet
0 (0.0%)

Streaking by Brian Stableford
0 (0.0%)



Bold for have read, italic for intend to read, underline for never heard of it.

Which 2007 Clarke Award Finalists Have You Read?
Nova Swing by M. John Harrison
End of the World Blues by Jon Courtenay Grimwood
Gradisil by Adam Roberts

Hav by Jan Morris
Oh Pure and Radiant Heart by Lydia Millet
Streaking by Brian Stableford

State of the Justin

Jul. 27th, 2025 05:46 pm
jducoeur: (Default)
[personal profile] jducoeur

Wow, I've completely failed to do any long-form posting lately. Mastodon is a seductively easy outlet, encouraging quick thoughts (and occasionally rewarding them highly with boosts and faves) without the effort of serious writing. I'm kind of disappointed in myself in principle, but not sure whether it's likely to change.

That said, it's been A Lot recently, so let's catch up on some stuff. This is going to be a bit of a long wander across several topics; hopefully it won't be entirely boring.

Work

As promised, I took three months off for a sabbatical, before starting to look for a new position at the beginning April. I did talk to a few companies, but in practice, it turned out to be all about Networking, as usual.

When I say "it's all about Networking", mind, I don't mean spending all my time pressing the flesh at cocktail parties. Real-world networking mostly consists of being good to the people around you, helping them out when you can, and being pretty clear about when you're looking.

In practice, I got Just Plain Lucky this time. Right around the time I started looking, I got a ping out of the blue from Carlos, asking, "Hey, Justin -- would you happen to be in the market?" After a response of, "Wow, good timing", we got to talking.

To explain this, I have to step back half a dozen years. From around (it's complicated) 2017 through 2021, I was working for Rally Health, primarily on a project called Rally Recover. Recover was great -- a product I was really proud of, to help surgical teams keep in touch with patients post-op. There was a lot to it, but the backend was mainly three of us: me (the Scala expert), Steve (the Ruby on Rails expert), and Carlos (not quite as expert in either, but solidly good at both, so he acted as the essential glue).

Sadly, Recover got cancelled -- great though it was, Optum (our Corporate Overlords) weren't figuring out how to sell it effectively. So our team got shunted onto A Project Of Which We Will Not Speak (suffice it to say, it was a political clusterfuck, and largely collapsed after six months), and thence over to start building a new product called OnePass.

I laid down a good deal of the technical foundation of OnePass (built in my preferred stack: Scala, using the Typelevel functional-programming framework), and was having fun on it when The Merger happened.

Like I said, Rally had been a wholly-owned subsidiary of Optum (which itself is part of the UHG empire). We'd known for most of a year that Optum had decided to absorb Rally, and a lot of folks were nervous about that, but I'd initially blithely said, "We build all of the best software in Optum -- surely they won't kill the goose that lays the golden eggs, right?"

But some months later, one or two senior folks who I particularly trusted abruptly left, so I started to get nervous. I wound up interviewing at Troops while on vacation in Hawaii in late 2021; by the time I got home, the merger had happened, and I survived precisely one day at Optum before noping out, giving notice and joining Troops.

Anyway...

After four years "incubating" at Optum, they apparently decided that OnePass was going to thrive better as an independent company, so they were spinning it off. Carlos knew that I don't enjoy working at a corporate giant like Optum, but a scrappy startup like OnePass is becoming is right up my alley.

So basically, I'm boomeranging back to my old project, even through it's a completely new company. I know that I like the tech stack, and I can probably bring a lot to the table -- it seems like the right move.

My first day is tomorrow, so I'm preparing for the roller-coaster now...

Querki

During the sabbatical, and even more during the subsequent months while negotiating things with OnePass (we agreed to wait until the company was fully established before starting the process, so it's taken a while), I've been finally making progress on Querki.

Reminder for those who haven't been following it forever: Querki is my little garage startup, which I've been working on (with a lot of help from Aaron, who also owns a chunk of it) for a dozen or so years now. It's a hybrid between a wiki and a database, designed for "small data" problems -- enabling individuals and small communities to keep track of and organize stuff.

Fairly early on, I made a decision that seemed like a good idea at the time. Querki was built using a product called Conductr -- an early "containerization" system that was optimized for the Scala/Akka architecture that Querki is built on. It seemed like a good fit, and as a result I wound up as the smallest customer for Lightbend, the consultancy behind Scala, Akka, and Conductr: we had a handshake agreement that I would alpha-test Conductr and help them work out the kinks.

But things change over time. Lightbend decided not to be the primary supporter of the Scala 3 language (which is instead managed by the Scala Center), and has instead doubled down on Akka; indeed, they changed the company name to Akka recently.

And Conductr? It just kind of quietly died. It was a clever idea, but Kubernetes sucked all the air out of the containerization room, and there was no point in competing with it.

Querki was, AFAIK, the only third-party product ever built using Conductr (that is, the only one not built by Lightbend). And by the time Conductr was clearly dead, I had a dayjob, and didn't have time to extract it from Querki's architecture.

But there was a huge problem: Conductr was invasive. Much of its power came from the fact that it was actually laced through the application itself, not just wrapped around it. And it was built using Scala and Akka.

Which meant that Querki was bound to the specific versions of Scala and Akka that Conductr had been built with. And Conductr was dead.

So Querki has been stuck on an increasingly antique platform for the past ten years. I was able to make some progress on features during that time, but have been more and more stuck because of that.

So the sabbatical was spent learning enough about AWS to figure out how to do the things that Conductr had been providing, and then "ripping out the tablecloth" -- rewriting Querki so that one day it was built on the Conductr architecture, and the next day it wasn't.

Since then, I've been speed-running a decade of ecosystem evolution: step-by-step upgrading Scala, Akka, Play, and dependencies. That's not yet done (indeed, there's quite a lot to do yet), but making progress has been extremely satisfying, and I'm probably halfway there.

(The next step is upgrading from Cassandra 3 to 5, because Querki's Cassandra host will be removing support for 3 late this year. Thank heavens I've gotten as far as I have, or we'd be in serious trouble come November.)

The plan is to get it all up to Reasonably Modern -- probably not Scala 3 (which is a big jump), but modern versions of Play and Akka (or more likely Pekko, the open-source fork that got set up when Akka locked down its license). Then I'm going to fix a few horrible long-standing bugs (eg, Eric discovered the hard way that Querki Spaces start having serious trouble loading if their history becomes very long), and make some long-desired architectural changes (in particular, rewrite the heart of the QL engine to use cats-effect and fs2). And then I can figure out what comes next.

Typelevel

I've mentioned before that I'm on the Steering Committee for Typelevel, the above-mentioned organization that OnePass (and many other companies) is built on. Suffice it to say, there are some changes coming there: it's not all public yet, but I expect my responsibilities to grow in the coming months. I've been avoiding taking on additional responsibilities elsewhere as a result.

SCA

That said, it's been a busy year for me in the SCA, especially for my two offices.

Chatelaine

I've been Baronial Chatelaine (the new-people officer) for just about three years now. I mostly enjoy the work, but I've been getting a little toasty, and was starting to get quite worried by the beginning of the year: I wanted to hand it off, but had no idea to whom.

Once again, I got super-lucky. Within days of each other, around the time of Birka, Thorfinn and Revna -- both of them young, energetic fighters -- asked whether I was looking for a deputy. I gratefully said absolutely, and suddenly found myself heading a Chatelaine team, which is a vastly healthier state of affairs.

Both of them have been very helpful, and Thorfinn in particular has been a force of nature, doing much of the work to drive the new Baronial Discord, working with the Webminister to improve our site, and generally help new folks. So I'm happily trading places with him around now (we haven't really worried about exact dates, but Pennsic is my three-year anniversary), with him stepping up as Chatelaine and me stepping down to Deputy. I expect that to continue to work well.

Dance

One of the questions I kept hearing from new folks was, "Do you have a dance practice? I'd like to try dancing!" And of course, we allowed Dance Practice to go quiet a year or two ago, so I didn't have anything to tell them.

So early this year, I basically declared that I was coming back as Dancemaster, but changing it up a bunch.

Aaradyn managed to get us the "friends and family" discount for the church she works at, which eased the way a lot -- having a nice site within walking distance of Harvard Square made it much easier to get things going again.

Since we've had difficult sustaining a frequent practice in recent years, I decided to scale it back to monthly for the time being. That allows each Dance Practice to be a bit special, and lets me lean into the publicity harder.

And I decided, entirely on my own recognizance, to start running it using the gender-free "Larks and Robins" protocol. That replaces "Lords and Ladies" -- it's mnemonically brilliant, and I've been using it with great success for the Arisia Renaissance Ball for the past couple of years. The younger dance community in this area are largely used to it, and I'd very much like to bring in some of those folks, so I decided that we're going to follow along.

It's going reasonably well. We're not getting the 30-40 dancers we had in our heyday (much less the 150 who show up for the BIDA contradance in Porter Square), but we're generally getting a decent critical mass, including a fair number of new folks. I'm taking the summmer off, but plan to continue in the fall -- it's being a good deal of fun.

General

Suffice it to say, I'm trying to keep my head on straight during these "world on fire" times. It's not easy, finding the right balance of staying engaged while not letting myself fall into fear or depression, but so far, so okay.

I miss y'all! I'm trying to stay social, but opportunities don't present themselves enough. I hope to see folks more: we need each other, if we're going to stay sane through all this.

As always, comments and questions on any of this highly welcome...

inherited iPad

Jul. 27th, 2025 02:50 pm
cellio: (Default)
[personal profile] cellio

My mother has never learned to use computers, aside from a smartphone that she uses for calls and texting with the grandkids. After my father died and she asked me to do something with my father's several desktop and laptop computers, she cancelled their Internet service that she wouldn't be using. But she held onto my dad's newest tablet, thinking she could use it to browse news and look at photos. This requires a network connection, so I set up her phone for tethering, set up the tablet to automatically connect to that network, and showed her how to turn that on and off on her phone. (I described this as "turning on Internet for the tablet".)

In the end she found this too difficult and she's never used that tablet, so this week she gave it to me. It's an iPad Pro (3rd generation, 12.9") and comes to me with a keyboard cover and a couple of Apple pencils. I'd already downloaded his Apple cloud backups more than a year ago, so I could safely reset the tablet. I'm new to iOS (I use Android), so I figure this is a chance to check it out before the next time I need to replace a phone or tablet. I'm happy to accept pointers, app recommendations, and warnings. I do have a Mac desktop, but their mobile setup is new to me.

Apple aims for intuitive user interfaces, but that doesn't mean they always succeed. When deleting personal information as part of resetting, I had to enter first the PIN and then my father's Apple password. That makes sense. After I entered the password I hit return, but there was no visible change. I hit return again, thinking it hadn't taken, then tried delete to see if that changed anything, and concluded that it was stuck. I let it sit there for a while. Five minutes later, I got a "no connection" popup. Ok, yeah, now that you mention it I should have realized I'd need to connect it to my WiFi for that to work, but if it had given me any indication of what it was doing ("connecting...") while it was doing it, I would have known (a) that it was doing something and (b) that I needed to fix that. Instead, the interface just gave me a mystery for a while. Oops.

Those two Apple pencils are an as-yet-unsolved puzzle. My mother gave me one that was with the tablet (there's a magnetic connection) and one in a box that she thought was new (my father ordered it but never got a chance to use it, she thinks). The two pencils look identical to me, except that the one in the box is missing the plastic cap that should be on its stylus. The plastic cap from the other one does not fit it -- so they seem to be different, but that's my only clue. The box says "2nd generation". Something I found online describes the first generation as round and the second as mostly round with a flat side (because it was too easy for the first generation to roll off of desks). Both of these have that flat side, so I conclude that my father replaced one second-generation pencil with another, but if so, I am left wondering why the cap from one doesn't fit the other. I have no idea which of these is actually newer; maybe he did replace it (maybe he broke his first one?) and he put the old one in the box the new one came in? So many mysteries.

The tablet is now busy updating from iOS 17.1 to 18.5. Yeah, it's been offline a while.

james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll
The quoted material below is quoted material.

I wrote in 2022 that the election system used by WSFS should be changed. At present, the rules for electing the Mark Protection Committee, the body charged with ensuring that the intellectual property of WSFS is protected, are set out in Standing Rule 6.2:

Voting shall be by written preferential ballot with write-in votes allowed. Votes for write-in candidates who do not submit written consent to nomination to the Presiding Officer before the close of balloting shall be ignored. The ballot shall list each nominee’s name. The first seat filled shall be by normal preferential ballot procedures as defined in Section 6.4 of the WSFS Constitution. There shall be no run-off candidate. After a seat is filled, votes for the elected member shall be eliminated before conducting the next ballot. This procedure shall continue until all seats are filled. In the event of a first-place tie for any seat, the tie shall be broken unless all tied candidates can be elected simultaneously. Should there be any partial-term vacancies on the committee, the partial-term seat(s) shall be filled after the full-term seats have been filled.

I warned that this carries the risk that a single faction with roughly half of the total votes could win every single seat and squeeze out other viewpoints.

My warning has come dramatically true.

Books Received, July 19 to July 25

Jul. 26th, 2025 09:13 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


Eight works new to me. Mostly novels but there are two tabletop roleplaying rule books in there. Four are fantasies (including the ttrpgs), one seems to be horror, one non-fiction, and two are SF. Four could be said to be series books and other four appear to be stand-alone.

Books Received, July 19 to July 25


Poll #33429 Books Received, July 19 to July 25
Open to: Registered Users, detailed results viewable to: All, participants: 58


Which of these look interesting?

View Answers

Stone and Sky by Ben Aaronovitch (July 2025)
35 (60.3%)

The Adventure of the Demonic Ox by Lois McMaster Bujold (July 2025)
34 (58.6%)

They Call Her Regret by Channelle Desamours (February 2026)
4 (6.9%)

Sky on Fire by E. K. Johnston (July 2025)
15 (25.9%)

The Rainseekers by Matthew Kressel (February 2026)
10 (17.2%)

Warhammer: the Old World Roleplaying Game, Gamemaster’s Guide by Dominic McDowall and Pádraig Murphy et al (Q1 2026)
4 (6.9%)

Warhammer: the Old World Roleplaying Game, Player’s Guideby Dominic McDowall and Pádraig Murphy et al (Q1 2026)
4 (6.9%)

Starlost Unauthorized by D G Valdron (October 2024)
18 (31.0%)

Some other option (see comments)
0 (0.0%)

Cats!
37 (63.8%)

cvirtue: CV in front of museum (Default)
[personal profile] cvirtue

I'm bringing together a couple of related things here.

First is the essay linked below. It addresses a frustration I have inside my own head -- how can regressive/evil politics be fought against when much of it is presented in a slick and appealing format? When it seems the loudest proponents are outright lying, they know it, but pretend otherwise?
Fighting on that ground is against my religion! We must treat bad faith as disqualifying.

How Liberalism Sabotages Itself Our intentional blindness to bad faith is a loophole fascists use to gain respectability and power. -- Brian Beutler

CV summary: You can't win a discussion with people who view deception as fair means to their political ends. Liberal freedoms are merely loopholes to exploit in their pursuit of power.

Quote: "means-to-an-end-style of bad faith in discourse is endemic on the right—not just among ascendant fascists—and has been for a long time. ... Estelle lays out the method plainly: Rightists appeal to whomever they can with whatever false commitments they intend to break, knowing that, once delivered to power, they will pull the rug."

https://www.offmessage.net/p/how-liberalism-sabotages-itself

The related second idea is in the graphic below. Here is the text (which of course I corrected punctuation, because I can't not do that.)

The paradox is: should you be tolerant of people who are IN-tolerant? The people who are jerks will insist you tolerate them.

thoughtportal wrote:

The Paradox of Tolerance disappears if you look at tolerance, not as a moral standard, but as a social contract.

If someone does not abide by the terms of the contract, then they are not covered by it.

In other words: The intolerant are not following the rules of the social contract of mutual tolerance.

Since they have broken the terms of the contract, they are no longer covered by the contract, and their intolerance should NOT be tolerated.

commasameleon replied: As someone who teaches rhetoric this is a wonderful response to the Paradox of Tolerance. I cannot tell you how many times my students have had debates about this. This is the response. This does indeed fix it. I cannot wait to tell this to my classes now. Philosophically and rhetorically, this completely resolves the Paradox of Tolerance and I am floored by its simplicity, and I am angry I never saw it before!

The Whisperer in White by Y. R. Liu

Jul. 25th, 2025 08:52 am
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


A young hunter's carelessly loosed arrow earns her imprisonment under the supervision of a mage.

The Whisperer in White by Y. R. Liu

Bundle of Holding: Neon Lords

Jul. 23rd, 2025 02:16 pm
james_davis_nicoll: (Default)
[personal profile] james_davis_nicoll


The all-new Neon Lords Bundle featuring Neon Lords of the Toxic Wasteland, the gonzo slime-punk post-apocalyptic cassette-future tabletop roleplaying game from Super Savage Systems.

Bundle of Holding: Neon Lords
Page generated Aug. 5th, 2025 08:37 pm
Powered by Dreamwidth Studios