This sounds nice, but what if your neighbor's political views are an existential threat to you personally? What if they don't want you to live in their neighborhood because of the color of your skin, or if they don't think you're a fit parent because you let your kid wear certain clothes? There are some things about which we can have friendly disagreements, like Laffer curves, school vouchers, the death penalty, environmental regulations, or whatever. But there are other disagreements which mean we cannot be friends.
What if you were friendly with your neighbor, but on the way to return a shovel you get hit by a bus?
Point being: you're dreaming up edge cases, presumably as a justification for... what? Refusing to engage with people who don't wear their political views like a badge on their chest?
If your stance honestly is "we cannot be friends unless I know your political views", then those who keep their views to themselves in the face of that are wise.
In my experience, yes, the irredeemable bigot is rare. For everyone else, regardless of whether their political views are unknown to you or they are threatening your personal way of life, the world will be a better place for you being good neighbors with them. Not to mention that it will improve your own living situation as well.
Most bigotry doesn't come from an inherent maliciousness or evil. It's often just limited experience and never having had reason to reflect on one's views. If you instinctively go "fuck off bigot", you're not only not helping, you're their mirror image.
To be clear, there's a point at which you have to be intolerant of intolerance, but starting off with that is not only counterproductive by reinforcing echo chambers and increasing division, it also makes you not unlike the thing you're opposed to.
Madame Tracy poked her head around the door. "Coo-ee, Mr. Shadwell," she said, giving Newt a friendly little wave. "A gentleman on the telephone for you. Hallo, Mr. Newton."
"Awa' wi' ye, harlot," said Shadwell, automatically.
"He sounds ever so refined," said Madame Tracy, taking no notice. "And I'll be getting us a nice bit of liver for Sunday."
"I'd sooner sup wi' the De'el, wumman."
"So if you'd let me have the plates back from last week it'd be a help, there's a love," said Madame Tracy, and tottered unsteadily back on three-inch heels to her flat and whatever it was that had been interrupted.
Xenophobia and racial (or religious ) animus are hardly edge cases. On the contrary, they are the default setting for our species, as evidenced by (flips through history book) the last few millennia.
Bigotry is innate and one has to fight it. And that's exactly chmod775's point - stop being a bigot towards other people's reasonable opinions, stop being dramatic, stop making a mountain out of a molehill.
The word "bigotry" actually has a meaning. Trying to equate "unjustified hate against a person for their skin color, ethnicity, or religion" with "distaste for a set of chosen political opinions" is a hoot.
> stop being a bigot towards other people's reasonable opinions
I welcome all reasonable opinions. But not all opinions are reasonable.
In particular, the Maga crowd favors opinions based on hero-worship credulity and irrational vibes, completely divorced from factual reality. Very often, this leads to a place of xenophibia and bigotry, which no one is obligated to tolerate.
Just look at the "conservative" "arguments" in this thread. Just a chain of non-sequiturs and preconceived biases.
Then you live next to them and let them borrow a cup of sugar or ask to borrow one from them and collect their mail while they’re away and thank them when they let you know you left a light on when you left for work the other day. And realize that your hangups, quirks, and beliefs are just as offensive to them as theirs are to yours but that doesn’t mean either one of you is. Or a good neighbor that can’t crack a beer and just live next door to one another.
> Then you live next to them and let them borrow a cup of sugar or ask to borrow one from them and collect their mail while they’re away and thank them when they let you know you left a light on when you left for work the other day.
You would have liked my grandmother, who shared your opinion that kindness between neighbors can heal political rifts.
Unfortunately it didn't work out so well for her, as despite her kindness, the neighbors sent her to Dachau anyway.
Was it really her neighbors that sent her there or a police/military? I very much doubt that.
But let's play the hypothetical.
- Would your grandmother's fate be better if instead of kindness she would be spewing vitriol? Don't think so, the situation would have been even worse, much faster.
- What about the other side of the coin - about all of those people, who survived, because they were nice and friendly?
- In general, always having the same strategy, no matter what is happening around you, is dumb. When the environment changes, so should the behavior. Kindness often helps, but not against wild animals like bears, nature forces like tornadoes, and the faceless state bureucracy.
> Would your grandmother's fate be better if instead of kindness she would be spewing vitriol?
"Spewing vitriol" is loaded language used to smear people you disagree with.
The fact is that during the Nazi regime, some people did speak out against the atrocities, and some people did fight back. More people should have. Those who did resist would certainly have been described as "spewing vitriol" by those in power. I wish my grandmother was that brave.
> What about the other side of the coin - about all of those people, who survived, because they were nice and friendly?
Once again with the implication that conservatives are equivalent to Nazis and therefore should be treated with vitriol. The hyperbole isn’t unwarranted and the whole point.
That's not the implication. Read it again, stop playing the victim. The point is simply that hate is not rational, and that your proposal of kindness does nothing to assuage the rampant ignorance and xenophobia that animates evil ideology.
Would you prefer a Communist rather than Nazi parable? Either way works.
Authoritarian Communism and its variants mostly fail by the same standard: lots of misery and death.
A good principle here I think is “a thing is what it does.” It effectively banishes all the sophistry that these kinds of ideologies deploy in their defense. No, a thing is what it does, and these ideologies murder and impoverish.
I find it really disheartening that so many people today seem to want to revisit one of these two ideologies. These are the failed death cults of the early 20th century. They should be forgotten.
If what we have is not working we need new ideas, not these.
The modern right wants to replace democratic rule of law with enlightened despotism focused on eliminating perceived racial, sexual, and ideological impurities.
The modern left wants universal healthcare and high taxes for billionaires, similar to the well-known death cult of Norway. /s
The president has given up pretending to obey the law. He's torn down the east wing of the White House (which does not belong to him), he's issued Executive Orders that contradict a plain reading of the Constitution (14th amendment, among others), he has gratuitously and repeatedly violated the Emoluments Clause, he has used the DOJ to attack political enemies on the thinnest of pretenses, he is continuing an illegal "armed conflict" in violation of the War Powers Resolution, etc, etc. This has all been documented thoroughly elsewhere: the president acts like a king and demonstrates contempt for his oath of office.
That, in combination with his civil rights abuses, are tantamount to fascism. Under the guise of "immigration enforcement," he's unleashed a horde of undertrained, overpaid henchmen who apparently act above the law, killing people, including US citizens, and denying medical care to detainees, without any fear of accountability. He's also sought to withdraw citizenship from and cancel visas to those people who are legally in the US but, for whatever reason, displease him. This kind of capricious, content-based discrimination, without Congressional oversight, is exactly what the Founding Fathers fought to prevent.
I wasn’t talking about people who want social services like Sweden or Norway or more progressive taxes. That’s why I used a double qualifier of “authoritarian communism.”
That being said, I see that kind of rhetoric and adjacent rhetoric around.
Not really. I see it on social media though… the way I saw fascist and fascist adjacent ideas blossoming on social media in the 20 teens. It feels like it’s coming the way I saw fascism coming in 2014.
That makes me think first we will finish our current bad LARP of fascism with our tacky parody of Mussolini or Franco (Trump is more like them than Hitler) and then we will do some kind of bad LARP of communism in the 30s when youth unemployment and the total decimation of entry level jobs really starts to hurt bad. It will (like fascism is doing for the grievances it was marketed to) make everything worse, because these fascism and communism don’t work.
It’s probably waiting for a good populist (which means a charismatic malignant narcissist) like a tankie Trump. Imagine a more extreme Mamdani or Bernie Sanders with Trump’s narcissism.
Ultimately we are LARPing these bad ideas because there are no new ones. It’s a testament to intellectual bankruptcy that anyone takes fascism or Marxism seriously in 2026.
(Lack of anything entry level was already a problem before AI. Now we are looking at there being basically no entry level jobs in multiple fields other than “bot herder.”)
Your grandmother sounds incredible, and her story tragic. I read your earlier comment a slight towards her. Perhaps that’s not what you meant.
Since OP was adding a counter argument to the article that some people shouldn’t be trusted, your comment seemed to reinforce the point that differing ideologies inferring that current preferences could result in similar outcomes. In another comment you equated that same group with Jim Crow.
I find the hyperbole counterproductive, immature, and annoying. It seems like you don’t know any conservatives very well, the ones you do know are the scum of the earth.
Either way, way, I find your Grandmother’s story noble, inspiring. It represents the best of humanity when faced with the worst. I’d want to be known for that a million times before being known for being the angry neighbor that knew he was more virtuous than everyone else.
> I find the hyperbole counterproductive, immature, and annoying.
I'm sorry you find it annoying, but I don't find the comparison hyperbolic at all, and perhaps if you understand the historical context and the facts on the ground, you wouldn't either. You are letting your feelings (in this case, being annoyed, combined with a cult of personality) get in the way of a sober analysis of the situation, which is unambiguously the decay of the rule of the law and the persecution of morally innocent people.
> It seems like you don’t know any conservatives very well, the ones you do know are the scum of the earth.
I agree with the second part. I live in a red state. I see these people every day. People just as bigoted and short-sighted as you. People who are utterly convinced of their correctness, even as they reveal their complete ignorance of and indifference to what is actually happening. Instead, what I hear again and again is blind trust for the billionaire in power based solely on his rhetorical style.
> Either way, way, I find your Grandmother’s story noble, inspiring.
It's not noble to be a victim. I hope that those persecuted in today's America won't be as naive as my grandmother.
> being the angry neighbor that knew he was more virtuous than everyone else.
This perfectly describes my actual neighbor, who regularly blames poor immigrants for all his self-inflicted ills and demands violent retribution against the gays, the liberals, the trans, the foreigners, and brown people, all while claiming to speak in the virtuous name of Jesus Christ.
I don't want to sound hyperbolic, but what if you were a jew, and you applied that reasoning to your hitler-loving neighbors back in nazi germany?
Modern politics is fundamentally different from the way things used to be. The right-wing political parties in america today have almost nothing at their core besides hatred for marginalized communities. Demonizing trans people, immigrants, muslims, "communists"- that's it. Everything else is just the whims of an impulsive imbecile - the tariffs, the war with Iran, kidnapping the president of Venezuela, the belligerence towards _greenland_ (?!?!?), etc...
And the purpose behind demonizing them it to energize a shrinking demographic base to compensate for how many reasonable people they've driven away. So at this point, the ones who remain under the maga umbrella have been exposed to so much vitriolic propaganda that they are just at a fever pitch of hatred at all times. I've seen it countless times in my own life- People who used to say that Obama was naive and inexperienced and that his policies were misguided, but who now say he's a muslim jihadi who wanted to destroy america. And so on with many other political issues.
I have several close relatives who used to be like bob, or van- but MAGA has changed them. They are just completely dripping with hate, now. And if I was a member of one of the communities they've been frothed up against, I don't know if I'd feel safe trying to engage with them like the person on the OP.
> what if your neighbor's political views are an existential threat to you personally?
Then you are uniquely placed to show them you're not the baddie they thought you were. Say hello, introduce yourself, smile and wave, bring cookies or stuff from your backyard garden once in a while, be personable.
Firearms lobby, institutionalized prejudice in law enforcement, Justice system, etc all have made this additional labor of the marginalized minority extraordinarily dangerous.
> Then you are uniquely placed to show them you're not the baddie they thought you were.
Great idea! If only we had thought of this sooner. We could have avoided Jim Crow and segregation if only black people had thought to be friendly to racist whites!
If you're in physical danger, then flee. I'm not talking about that. There's a bigger reality than your street - pay attention and be wise.
But at the same time, it is true than many white kids had racist parents but chose not to be racist themselves, largely because they rubbed shoulders with black kids and learned they had a lot in common with them. Don't underestimate the power of patience, kindness, generosity, and general personability to win, eventually. It took a generation of integration before racism disappeared from most US neighborhoods.
> I haven't talked personally with a racist in probably 25-30 years.
How do you know that you haven't talked with a racist? Are you in the habit of asking new acquaintances if they are racist, and then believing their answer? Or do you just assume that all racists wear the same uniform?
A racist is known by their speech or actions. Like making prejudicial comments about people of one or more other races, or demonstrating through actions that they do not view other races as equals. If someone does neither, then they're not racist.
The last people I heard do that were my grandparents - like "Did you hear? She married a black man." with raised eyebrows.
You didn't answer my question - do you have racist neighbors?
If your friends are not making unprompted bigoted statements, all it means is that they are tactful. I hope you can understand that bigotry is more subtle, in comparison with your grandparents' generation when it was more socially acceptable.
Do you know the definition of the word "prejudice"? It means "preconceived opinion that is not based on reason or actual experience."
You say you think a lot of my acquaintances are racist, without even knowing who I am, let alone who they are, let alone what they act like or say. That's pretty extreme prejudice.
Don't judge people before you've at least learned who they are.
> You say you think a lot of my acquaintances are racist, without even knowing who I am, l
Nothing personal. The fact is that a lot of people are racist: that's the basis of "implicit bias" which I gather you did not bother to read about, despite my encouragement. Given that, it's statistically likely that everyone knows a racist. I know plenty of racists, and I wish I didn't. I'm not judging people, I'm just playing the odds.
As I understand it, structural racism is less of a notion and more of a series of facts; eg: post WWII white servicemen largely got easy bank loans and a greased entry into generational family owned housing, black servicemen didn't, real estate agents and HOAs redlined (?) rental and purchase applications to separate out black American families, infrastructure tended to destroy and break up black communities over white communities, etc.
Fair enough then, you don't reject past structural racism existing as a fact, and likely acknowledge that has cast a shadow that continues into today's US society.
You might want to be clear to the other commentator (I'm just a drive by) what the "notion" is that you reject.
> I reject the notion of "structural racism". That's not about civil rights, it's critical theory masquerading. It's a destructive ideology.
It's clear that you didn't read past the headline of the article that I linked, since the article makes it clear that structural racism is not the same as implicit bias.
You are welcome to disagree with the extent that structural racism is present in American society today, but it makes no sense to dismiss the idea of structural racism. Slavery, as practiced in the US before the civil war, is a clear example of structural racism. Or do you think that race did not play a part in slavery?
> It teaches us to suspect everyone around us, which promotes division and hatred, not love and unity.
Perhaps, but that's an argument from outcomes, not from principles. Just because you don't like something doesn't mean it doesn't exist.
I read the first few paragraphs. It's all critical race theory and intersectionality. A worldview I reject. It leads to odd conclusions like saying it's impossible to be racist against white people, or that a black person can't be racist.
That's absurd. It's possible for anyone to judge another person by the color of their skin instead of the content of their character or their actual traits. No race is morally superior or inferior (and to say otherwise is very racist).
> It's possible for anyone to judge another person by the color of their skin instead of the content of their character or their actual traits.
It might be helpful if you understood the definition of "racism" as used in this article before you reject it. Racism is not the same as discrimination. I agree that anyone can judge another person by the color of their skin: that's racial discrimination. Racism (again, as used in this article, not necessarily as used in everybody life) is defined as a particularly hierarchical view of the races based on social order. Thus, by that thinking, black people can't be racist because they aren't in a position to oppress white people.
But all of that is a digression from the original point of this conversation, which is implicit bias, according to which everyone is somewhat racist because they judge people at an automatic, unconscious level. You might find this article less challenging: https://en.wikipedia.org/wiki/Implicit_stereotype
> I haven't talked personally with a racist in probably 25-30 years.
Let me guess, you mostly mingle with white people? It's a different story among Latinos, Asians (toward blacks and other Asians), but especially among African-Americans.
> Let me guess, you mostly mingle with white people? It's a different story among Latinos, Asians (toward blacks and other Asians), but especially among African-Americans.
Fascinating. I've found the perfect example of "white victimhood." Thank you for sharing your truth that "minorities are the real racists."
Oh, you must be one of those anti-White racists...
> White Democrats showed the effect: they imposed a somewhat weaker norm against offensive statements targeting Whites than against statements targeting other racial groups.
> So there is genuine evidence of something reasonably described as selective tolerance of anti-White prejudice among White Democrats.
> The present study demonstrates that Whites (in comparison to other Americans) are also more likely to perceive a social norm governing anti-White prejudice. Interestingly, the strength of this norm follows a political ‘gradient’ and is most pronounced among White Republicans.
> Within this context, an interesting question is whether this norm can be expected to spread outside the core of White Republicans? For instance, it is possible that racial minorities within the Republican party will come to adopt the same position as White Republicans on the social inappropriateness of anti-White prejudice (in much the same way that White Democrats have come to adopt norms around anti-minority prejudice). At the same time, the social norm appears strongly linked to the Republican party. And given current levels of affective polarization in American society, efforts at norm propagation will likely make little headway among Democrats of any race. These considerations therefore suggest that the norm against anti-White prejudice is likely to remain a ‘particularistic norm’ for some time to come.
I get this but there’s this thing called the contact hypothesis. Friendly contact with people makes it harder to hate them.
I’ve heard many stories of people who were once racists or some other kind of bigot losing that attitude from living close to people of the other ethnic group. It’s common.
It’s a major hypothesis for why xenophobia is more popular in rural areas: lack of contact with out groups.
But if you instantly call someone out for their views, condemn them, take a self righteous position, that doesn’t happen. It might even have the opposite effect.
So maybe let the bigot next door borrow some eggs. Smile at them. But make sure they know it if you’re one of the people their dogma or emotional conditioning says they’re supposed to hate.
Might change someone’s mind every now and then.
It’s also important to note that people often don’t change their minds quickly. Seeds get planted. Experiences that contradict a dogma or an unexamined conditioned attitude are noted. The brain slowly updates its priors.
The essay makes a token gesture toward this ("privilege and power dynamics play a complex and unavoidable role"), but ultimately Marco, who is a rich straight white male unaffected by any meaningful or existential prejudice, is willing to overlook those views (which do not impact him) as things that do not matter.
The chromaticity diagram is basically a straight line between 640nm (red) and 545nm (green), so anything in between (including pure yellow around 570nm) can be reproduced with a linear combination of red and green.
RGBY televisions do exist, but their goal is to boost brightness in the yellow region, not color gamut.
All the package managers that provide shell wrappers kinda tend to be bad at this, unless they use their own command to wrap over project specifications, like uv.
These days, I've been personally relying more on direnv to automatically activate certain shell configurations, and then nix to manage binary dependencies like node or go or php.
The Australian-Vietnamese continuum is well-explained by Australia being the geographically nearest region which can supply native English language teachers to English language learners in Vietnam, rather than by any intrinsic phonetic resemblance between Vietnamese and Australian English.
Those seem like standard needs for any kind of CRUD app, so I would call this approach pretty useful. Currently I do something similar by keeping a private primary uuidv7 key with a btree index (a sortable index), and a separate public uuidv4 with a hash index (a lookup index), which is a workable but annoying arrangement. This solution achieves the same effect and is simpler.
Could this be used in reverse to correct for color vision disorders, e.g. by punching down greens and blues and punching up reds into the outer range of the P3 gamut?
I don't think R&T will ever ship at this point, since the browser vendors are apparently unwilling to absorb the complexity that would be required to add new primitive types with value semantics.
I've been following that proposal closely, and even (unsuccessfully) tried to contribute suggestions to it. I think what's killing it is that the authors of the proposal won't accept arbitrary values as fields of R/T, but all the potential users are saying that they won't use R/T if they can't put arbitrary values in them.
The reluctance of the authors is due to backward compatibility with sandboxed "secure" JavaScript (SES). That said, every other language in existence that has immutable structs and records allows to put arbitrary values in them.
> If you allow arbitrary values, what's the difference between a record and a frozen object?
The behaviour of equality. Frozen objects are already considered to have unique identities, in that `Object.freeze({}) !== Object.freeze({})` even though both objects are otherwise indistinguishable. This behaviour can't be changed and it relates to the fact that `Object.freeze(a) === a`.
> I thought that the whole point is to have guaranteed deep immutability
Not really. The whole point apparently according to most people[0] is to have composite values that don't have unique identities, so they fit in with all the existing comparison operations (eg, `===`, `Map`, `indexOf`, `includes`) just as you can do with strings.
Immutability is a prerequisite for this, since if `a` and `b` are mutable, mutating `a` might be different to mutating `b`. Thinking again about strings, equality works because strings are immutable:
const foo = "foo", bar = "bar";
const a = foo + bar;
const b = foo + bar;
a === b; // true
Implementations will typically use different underlying memory allocations for these strings[1], but at a language level they are considered to be the same value. If it were possible to modify one of the strings (but not the other) using `a[0] = "x";` it would mean `a` and `b` are not equivalent so should not be considered equal.
As explained here[2], deep immutability is not necessary for this behaviour.
In my opinion guaranteed "deep immutability" is not generally useful/meaningful (if you have a particular use case, feel free to share it). In theory it's not possible to enforce "deep immutability" because someone can always refer to something mutable, whether that's an object reference or a number indexing a mutable array.
If you really do want something that guarantees a certain notion of "deep immutability", this concept seems somewhat orthogonal to records/tuples, since there are existing values (eg, strings and numbers) that should be considered deeply immutable, so you'd expect to have a separate predicate[3][4] for detecting this, which would be able to effectively search a given value for object references.
In case you're interested I tried to summarise the logic behind the rejection of this behaviour[5] (which I disagree with), but it's very much a TLDR so further reading of linked issues would be required to understand the points made. Interestingly, this post is on an issue raised by the odd person that actually tried to use the feature and naturally ran into this restriction.
Sorry for this massive wall of text, but I think it's hard to capture the various trains of thought concisely.
Thanks for the history! Reading through the issues, I agree with you that some of the motivations against objects in records seem pretty strange. Mostly they seem to be around existing JS-written 'membranes' (related to the SES stuff mentioned above?) getting confused by primitives-containing-objects, depending on which permutation of typeof checks they use. Out of curiosity, do you think that the Shadow Realms proposal they refer to will ever go anywhere?
Otherwise, there's the argument that "x.y" syntax shan't be used to access a mutable object from an immutable record, but that just feels like the all-too-common motive of "we must ensure that users write morally-correct code (given our weird idiosyncratic idea of moral correctness), or otherwise make them pay the price for their sins".
> Out of curiosity, do you think that the Shadow Realms proposal they refer to will ever go anywhere?
I haven't really been following the Shadow Realm proposal (I'm not part of TC39, so only familiar with certain proposals), but I don't think it should conflict with R/T.
If R/T values are allowed to be passed between realms, they should effectively be "transformed" such that eg, `f(#[v])` is equivalent to `f(#[f(v)])` (where `f` is the transformation that allows values to be passed between realms). For "deeply immutable" values (no object references), `f(v)` will simply return `v` (eg, `#[42]`, f(#[42])` and `f(#[f(42)])` are all the same) and a membrane should be able to trivially optimise this case.
From this comment[0] it sounds like `f({})` in the current Shadow Realm proposal will throw an error, so I'd expect that `f(#[{}])` would also throw an error.
As you were pointing out, I think the only real contention between R/T and realms is in existing JS implementations of membranes, particularly because they might use the following condition to detect if something is "deeply immutable":
v === null || typeof v !== "object" && typeof v !== "function"
If `typeof #[{}] === "tuple"`, then their `f` function will pass that value through without handling the contained object value by throwing or by creating/finding a proxy.
If `typeof #[{}] === "object"`, it should be fine because `f(#[{}])` will either throw or create/find a proxy for the tuple. There might be some unexpected behaviour around equality of R/T values passed through the membrane, but this is pretty obscure and it should be fixed once the membrane library is updated to handle R/T values.
Personally, I'm still not 100% convinced that the assumptions made from the above condition are important enough to cause such a change to the proposal, but I don't see the value of `typeof #[]` as being a usability issue. Code that needs to check the types of things is a bit smelly to me, but in cases where you do need to check the type, `typeof v === "tuple"` and `Tuple.isTuple(v)` both seem usable to me, so just making `typeof #[] === "object"` should be fine and it solves this hypothetical issue. This is similar to array objects, which are also fundamentally special (`Object.create(Array.prototype)` is not an array object) and are detected using `Array.isArray(v)`.
> Otherwise, there's the argument that "x.y" syntax shan't be used to access a mutable object from an immutable record, but that just feels like the all-too-common motive of "we must ensure that users write morally-correct code (given our weird idiosyncratic idea of moral correctness), or otherwise make them pay the price for their sins".
Agreed, and I've pointed out[1] that even the current proposal doesn't address this, since unless you've done some defensive check on `x`, there's nothing stopping someone passing a mutable object for `x` instead of a record. If you do want to perform a dynamic[2] defensive check, perhaps you should be asking "is it deeply immutable?" or even checking its shape rather than "is it a record?".
[2] If you're using a type system like TypeScript, this check should happen statically, because you'll use a type that specifies that it's both a record and the types of the properties within it, so your type will encode whether or not it contains mutable objects
I would use Americium-241 instead, longer half life and much more availability.
Lower power, but a telescope like this does not need constant power, so some kind of short term power storage (capacitor I would assume, or some kind of ultra long life battery) could handle that.
in terms of the potential plutonium shortage, wikipedia: Americium-241 is not synthesized directly from uranium – the most common reactor material – but from the plutonium isotope 239. The latter needs to be produced first
Last I remember, RTG manufacturing was very constrained, period. And that was before Russia took a massive shit in Ukraine and got themselves embargo'd by most of the rest of the developed world.