by Michael Cain
Revisiting the topic to incorporate Pro Bono's improvements to the various bits of code found in this post. If this is the sort of competition mentioned in that post, he gets to claim the "my code is faster than your code" crown for now. It's always sort of surprising to me that pretty much every politics/culture blog I visit has its own little contingent of science/tech types. This post doesn't stand alone, it assumes you've read the previous post.
And open thread.
To quickly review, the problem is to find four prices a, b, c, and d that yield $7.11 when the four are added together, or when all four are multiplied. An exact solution, in whole dollars and cents, not just a close one. This is an example of a combinatorial search problem. The only way to solve it is to consider all the combinations of possible prices, either by testing them directly or by eliminating some combinations using different sorts of mathematical logic. Finding faster ways to solve combinatorial problems remains a subject of substantial practical interest.
When we left off, the brute force code that found the answer in just under five minutes had been improved so it found the answer in 46 microseconds. Pro Bono's first addition is to use the arithmetic-geometric means inequality to establish a lower bound for the smallest of the four prices. The inequality states that for n nonnegative real numbers,
With a better lower bound on the smallest price we can establish a better upper bound for the largest price. Combined, these substantially shorten the list of possible factors. The second improvement is to take further advantage of the fact we are finding the prices from smallest to largest. The first smallest factor cannot be more than 711 divided by four, and the second smallest factor has a similar limit. The pseudo-code below reflects these improvements to the last code in the original post. These changes reduce the number of combinations of prices considered to 817. The code finds the answer in 5.5 microseconds.
Readers familiar with the Linux time program have no doubt asked, "That utility only measures down to a millisecond. How are you measuring microseconds?" The actual program used for timing purposes has another outer loop that runs the code to be measured anywhere from several thousand to a million times.
# Calculate price restrictions using AM-GM inequality small_price = 0 while (1): small_price++ temp = 711 - small_price temp = (temp * temp * temp) / 27 if (711000000 / small_price >= temp): next last big_price = 711 - 3 * small_price # Calculate list of factors, values strictly increasing n = 0 for (i=small_price; i<=big_price; i++): result = i * (711000000 / i) if (result == 711000000): factor[n++] = i # Search over combinations of factors max_first_factor = 711 / 4; for (a=0; a<n; a++): if (factor[a] > max_first_factor): last max_second_factor = (711 - factor[a]) / 3 for (b=a; b<n; b++): if (factor[b] > max_second_factor): last for (c=b; c<n; c++): d = 711 - (factor[a] + factor[b] + factor[c]) if (d < factor[c]): last prod = factor[a] * factor[b] * factor[c] * d if (prod != 711000000): next print "Solution", factor[a], factor[b], factor[c], d
Pro Bono's second improvement is to use the quadratic formula to solve directly for both c and d, rather than iterating over c. The code for the modified search is shown below; the part for building the list of factors is the same as above. For this problem, this code gets down to the point of starting evaluation of the quadratic formula 63 times. It finds the solution in 4.5 microseconds.
This is where you ask, "Only a microsecond faster?" Well, there are several things to consider. First, that's almost 20% faster. But we're not changing scale, like from milliseconds to microseconds. Second, the number of trips around the nested search loops is getting quite small. Big jumps due to improvements in the code inside the loops happen when the loops run many times. Third, there's a square root operation in there. Calculating a square root takes longer than multiplications or divisions or loop operations. How much longer is difficult to say. It will depend on a lot of details about how the compiler optimizes the code.
# Search over combinations of factors max_first_factor = 711 / 4; for (a=0; a<n; a++): if (factor[a] > max_first_factor): last target1 = 711 - factor[a] times_target1 = 711000000 / factor[a] max_second_factor = (711 - factor[a]) / 3 for (b=a; b<n; b++): if (factor[b] > max_second_factor): last target2 = target1 - factor[b] times_target2 = times_target1 / factor[b] if (times_target2 * factor[b] != times_target1): next square = target2 * target2 - 4 * times_target2 if (square < 0):
next spread = round(sqrt(square)) if (spread * spread != square):
next
c = (target2 - spread) / 2 d = (target2 + spread) / 2 if (c < factor[b]):
next print "Solution", factor[a], factor[b], c, d
"A search for factors, quite a feat,
Combining numbers, can't be beat,
Max factors set, to keep things neat,
And loops to find, a target sweet.
For each a and b, we must check,
If the factors meet, the max effect,
And if they do, then we select,
A target to solve, we must inspect.
Times target one, and two we find,
To help us solve, the goal in mind,
A square we calculate, to unwind,
And check if spread, is square aligned.
If all checks pass, we can proceed,
To find c and d, the final lead,
And print our solution, the end we heed,
A search complete, with great speed."
—ChatGPT
:)
Posted by: CharlesWT | February 26, 2023 at 05:10 PM
possibly related is this
https://www.youtube.com/watch?v=GEbn3nHyKnA&t=623s
it explains how a line of code blew up Cloudflare a while back.
Posted by: liberal japonicus | February 26, 2023 at 06:20 PM
it explains how a line of code blew up Cloudflare a while back.
I'm old. I remember when an improperly tested three-line code patch took down long-distance phone service in the eastern third of the US for several hours.
Humans can still sometimes compete. I know a guy who mistyped a command in a network operations center outside Denver that disconnected most of the UK from the global internet for a couple of hours.
Posted by: Michael Cain | February 27, 2023 at 10:35 AM
Once AI gets going seriously, we'll have an additional source of possible errors, too. Fun times!
Posted by: wj | February 27, 2023 at 12:02 PM
C - Cloudflare, a network that's known,
L - Leaked data for months, it was shown.
O - One HTML parser,
U - Unleashed a disaster,
D - Data scattered, like seeds blown.
F - Five million websites impacted,
L - Leaked data left their users fractured.
A - Attackers could have had access,
R - Revealing sensitive data with finesse,
E - Encryption keys, passwords, and much more captured.
—ChatGPT
Posted by: CharlesWT | February 27, 2023 at 12:38 PM
Fame at last!
Square root calculation is fast on modern processors, so I'm a bit surprised by the timings.
Posted by: Pro Bono | February 27, 2023 at 01:26 PM
Square root calculation is fast on modern processors, so I'm a bit surprised by the timings.
That's why we measure things :^)
Looking at the actual assembler code, there's assorted operations and tests to avoid doing the sqrt. Round turns out to be a subroutine call. For the 7.11 problem specifically, the AM-GM inequality shortens the factor list by a lot. (For other values not so much and the quadratic formula provides somewhat more improvement.)
Posted by: Michael Cain | February 27, 2023 at 04:50 PM
Truncation is faster than round, and will do the job here.
Posted by: Pro Bono | February 27, 2023 at 05:01 PM
Not a square root except in dirty talk
https://mikethemadbiologist.com/2023/02/28/best-preprint-abstract-evar/
Compensation anyone?
Posted by: Hartmut | February 28, 2023 at 12:56 PM
Compensation anyone?
And this finding about the attraction of sports cars was a surprise the who, exactly? Certainly not to the advertising departments of the sports car manufacturers. Nor to anybody who has ever seen a sports car ad.
Of course, the same phenomena could doubtless be found when looking at gun sales.... Wonder if anyone has done that study.
Posted by: wj | February 28, 2023 at 01:04 PM
From the inimitable Alexandra Petri (and too good not to share):
AI still has a ways to go.Posted by: wj | February 28, 2023 at 09:32 PM
This post set me off on calculating square roots by hand, primarily by the "long division" method. (In quotes for the first instance because it's not exactly long division as we learned it as kids, but close enough.) There's a special place in my heart for the binary search, but the digit-by-digit exactness of the long division method wins the day for me.
At first glance it's mildly confusing, but is easy to master after a couple tries. A little more time to understand why it works, and Bob's your uncle.
Anyway, thanks ... I guess.
Posted by: hairshirthedonist | March 03, 2023 at 09:58 AM
Here's something fun:
Pretend you’re in Congress and we’ll give you a committee assignment
It's the Washington Post, but doesn't appear to be paywalled.
P.S. I got the Energy and Commerce Committee and the Homeland Security Committee. Hmmm....
Posted by: wj | March 03, 2023 at 12:01 PM
Armed Services and Energy and Commerce for me.
Posted by: hairshirthedonist | March 03, 2023 at 01:17 PM
Somewhere, stuffed in an overstuffed bookcase, I have a book on the subject of "efficient techniques of doing difficult math problems BY HAND"
Just what you need if you're stranded on a desert island and have the uncontrollable urge to take a cube root, logarithm, or inverse tangent.
The individual techniques are hard to remember, but Newton's Method figures prominently.
Posted by: Snarki, child of Loki | March 03, 2023 at 02:40 PM
AI still has a ways to go.
And as progress is made what constitutes real AI keeps getting pushed back. Some of the current machine learning is sort of like linear regression with billions of independent variables.
But they keep chipping away at the problem.
Summary:
"Mechanical engineering researchers at Rice University have used Fourier analysis, a mathematical technique first proposed in the 1820s, to reveal how deep neural networks learn to perform tasks involving complex physics. The researchers analyzed a deep-learning neural network that was trained to recognize complex flows of air in the atmosphere or water in the ocean and to predict how those flows would change over time. Their analysis revealed what the neural network had learned, and enabled the researchers to directly connect what the network had learned to the physics of the complex system it was modeling." —ChatGPT
Scientific AI’s ‘black box’ is no match for 200-year-old method: Fourier transformations reveal how deep neural network learns complex physics
Posted by: CharlesWT | March 06, 2023 at 03:48 PM
Fourier transformations reveal how deep neural network learns complex physics
The thought that leaps to mind is: To what extent could this approach be applied to the way in which organic brains learn? Not just complex physics, but even basic ways to interact with the world.
Posted by: wj | March 06, 2023 at 04:40 PM
"To what extent could this approach be applied to the way in which organic brains learn?"
first you have to separate the brain into individual neurons, sorted by position, then multiply each of them by exp(-ik.x) and sum up the results.
I suggest starting with Trump. It's much easier when there's only a dozen or so data points.
Posted by: Snarki, child of Loki | March 07, 2023 at 08:38 AM
I suggest starting with Trump. It's much easier when there's only a dozen or so data points.
Bad idea. Especially when you only have a few data points, it's important to have high quality data.
Posted by: wj | March 07, 2023 at 10:18 AM
Whiplash warning: radical change of subject.
I've always heard the Large Magellanic Cloud described as a "dwarf irregular galaxy." But the resemblance to a barred spiral is really remarkable:
https://apod.nasa.gov/apod/ap230307.html
Posted by: wj | March 07, 2023 at 10:35 AM
ChatGPT is being used by teachers not just students.
"A national survey by the Walton Family Foundation has found that the majority of US teachers see the potential for OpenAI's ChatGPT to help accelerate learning, rather than viewing it as a tool for cheating. Within two months of its launch, 51% of teachers reported using the technology, with 40% using it at least once a week. Students were less likely to use ChatGPT, with just 22% using it weekly or more. The study surveyed more than 2,000 K-12 teachers and students aged between 12-17." —ChatGPT
ChatGPT Used by Teachers More Than Students, New Survey from Walton Family Foundation Finds
Posted by: CharlesWT | March 07, 2023 at 10:50 AM
Reading through that survey, and having sat through a whole lot of discussions from teachers about ChatGPT, I gotta say that the report feels like it completely missed the spirit of what teachers are actually saying and how they are actually teaching.
ChatGPT is being used, yes, but not so much as a drafting tool. It's mostly being used as a way to show the effects of poor media literacy. It's a bad example that becomes an opportunity to dig in and talk about the importance of critical thinking and engaged research,like:
-We will use this AI text generator to answer this prompt, then we will go through the answer in detail to show all the places where it failed and talk about how these things should actually be done.
-Let's look at several AI responses to determine what biases and blind spots are baked into the data. Now let's think about what, if anything, can be done to try to change that.
Yes, AI is a feature of modern life, but so is climate change. Doesn't mean teachers see it as a positive development, just as one that has to be addressed.
[Side note - while I remain quite capable of spotting AI text generated responses in my class, I have also submitted several human generated texts under suspicion of them having been AI generated simply because they were vague and full of commonplaces and clichés that made them sound empty and mechanical. AI texts are not uniquely bad. Students are also quite capable of generating texts using pattern recognition, organizational modeling, and no actual critical thought or reflection.
Thank goodness for the ones who do engage and who do care. They will save us all.]
Posted by: nous | March 07, 2023 at 12:57 PM
Posted by: ral | March 07, 2023 at 01:00 PM
The individual techniques are hard to remember, but Newton's Method figures prominently.
Newton-Raphson shows up in lots of places.
Posted by: Michael Cain | March 07, 2023 at 01:21 PM
Out of the mouths of
Well, at least that settles the question of whether Carlson is just an idiot, or someone who is as much out to destroy America as his supposed hero Trump.babesscumbags:Posted by: wj | March 08, 2023 at 12:35 PM
Well, well. Failing napalm in the morning, I love the smell of dissension in the Republican ranks. From today's WaPo:
Senate Republicans blasted Fox News on Tuesday for airing a show that twisted details of the January 2021 attack on the U.S. Capitol into a conspiracy-fueled narrative, breaking ranks with House GOP colleagues who cheered on the show.
From Senate Minority Leader Mitch McConnell (R-Ky.) to rank-and-file lawmakers, Republican senators largely rejected Fox personality Tucker Carlson’s vision of the deadly insurrection as a mostly peaceful protest that involved little violence.
Appearing at his weekly news conference, McConnell denounced the leadership of the conservative cable network for airing the entertainer’s vision of the assault on the Capitol, holding up a letter from U.S. Capitol Police Chief Tom Manger that accused Carlson’s show of being “filled with offensive and misleading conclusions.”
“It was a mistake, in my view, for Fox News to depict this in a way that’s completely at variance with what our chief law enforcement official here in the Capitol thinks,” McConnell told reporters.
Sen. Kevin Cramer (R-N.D.), once a vocal supporter of former president Donald Trump who has consistently denounced the attack, was blunt in his assessment of Carlson’s narrative: “To somehow put [Jan. 6] in the same category as a permitted peaceful protest is just a lie.”
The sharp criticism from his own party left House Speaker Kevin McCarthy (R-Calif.) on the defensive following his decision last month to grant Carlson exclusive access to 41,000 hours of mostly never-before-seen video from Capitol Police security cameras that day.
https://www.washingtonpost.com/politics/2023/03/07/tucker-carlson-jan-6-senate-republicans/
Posted by: GftNC | March 08, 2023 at 01:08 PM
Testing.
Posted by: Priest | March 10, 2023 at 03:26 PM
Testing.
Is that testing in the sense of "It's been quiet. Too quiet."?
Posted by: Michael Cain | March 10, 2023 at 06:20 PM
Over 48 hours with no new comments had me a little concerned there were site issues.
Posted by: Priest | March 10, 2023 at 10:15 PM
Posted by: ral | March 10, 2023 at 11:52 PM
Surely someone could code up a program to retrieve a random comment from the archive, feed it to ChatGPT as a 'prompt' and post the result, on a regular basis, just to see if everything is working.
On second thought, that would probably result in either an invasion of bots/outsiders, or the death of normal discussions, or both.
Better try it out on a different blog, then. Maybe Truth/Pravda Media?
Posted by: Snarki, child of Loki | March 11, 2023 at 10:41 AM
We could probably do something on the collapse of Silicon Valley Bank. And the demands of rich venture capitalists there to be made whole, even though they're way over the FDIC max. Especially when they were dismissive (or worse) of student debt forgiveness. Perhaps something along the lines of "sauce for the goose...."
Posted by: wj | March 11, 2023 at 11:05 AM
Anybody besides me read Chomsky's editorial in NYT about AI? Just askin' qwestons.
Posted by: bobbyp | March 11, 2023 at 05:10 PM
I admire Chomsky's affinity for being mostly right on the main topic while also being doggedly wrong in the particulars where they cross his biases.
Posted by: nous | March 11, 2023 at 06:30 PM
I've long thought that Chomsky misses two points. (1) Each of us starts as an egg, with 46 chromosomes, so we know that the instructions for the (incredibly complex protein chemistry) problem of growing the processing engine are finite. Also that the engine is enormously tolerant of low-level variations. (2) There's no obvious reason to believe that that design is the only platform that can deliver human-caliber intelligence. When a machine AI emerges, it is likely to be different. OTOH, spot on that ChatGPT and the rest are far from being intelligent.
For myself, ChatGPT and things like computer vision are interesting in the same way that human vision is interesting. Useful, too, eg for the cat-chaser project I should revive. But I'm much more interested in things like how to build models of the world based on the vision, and how to do goal setting.
Posted by: Michael Cain | March 11, 2023 at 06:42 PM
This may be going into the weeds, but I'd listen Chomsky's opinion a lot more closely if he hadn't been a vociferous opponent of corpus linguistics and approaches to linguistics using collected data.
https://www.researchgate.net/publication/228707954_Claimed_and_Unclaimed_Sources_of_Corpus_Linguistics
Posted by: liberal japonicus | March 11, 2023 at 07:53 PM
... if he hadn't been a vociferous opponent of corpus linguistics and approaches to linguistics using collected data.
But data can be so horribly inconvenient when one is wedded to an ideology.
Posted by: wj | March 11, 2023 at 09:30 PM
This reminds us that the universe, even our little corner of it, can throw up some really strange things. I might go so far as to say bizarre.
https://apod.nasa.gov/apod/ap230312.html
Posted by: wj | March 12, 2023 at 09:12 AM
Continuing on the Generative AI jag, I see a deep connection btw what the chips were originally designed to do and how they were employed. Folks with math can tell me if I'm off base or not.
The chips that make ChatGPT etc possible are not CPU (Computer Processing Unit) but GPU (Graphic Processing Unit) The main difference between the two is that a CPU handles operations serially, but a GPT can make parallel calculations in the form of matrix calculations. This is good because making these calculations allows them to do things like interpolate between pixels and smooth motion. Essentially, they are making up the values in between the pixels. Which is, in a sense, what Chatgpt is doing. We think it is operating serially, adding one word followed by another, but it is really acting in a massively parallel way, so in some ways, ChatGPT is really filling in rather than writing.
I was thinking about this because I read this article
https://techcrunch.com/2023/03/10/ubicept-computer-vision/
Most computer vision applications work the same way: A camera takes an image (or a rapid series of images, in the case of video). These still frames are passed to a computer, which then does the analysis to figure out what is in the image. Sounds simple enough.
But there’s a problem: That paradigm assumes that creating still frames is a good idea. As humans who are used to seeing photography and video, that might seem reasonable. Computers don’t care, however, and Ubicept believes it can make computer vision far better and more reliable by ignoring the idea of frames.
[clip]
The company’s solution is to bypass the “still frame” as the source of truth for computer vision and instead measure the individual photons that hit an imaging sensor directly. That can be done with a single-photon avalanche diode array (or SPAD array, among friends). This raw stream of data can then be fed into a field-programmable gate array (FPGA, a type of super-specialized processor) and further analyzed by computer vision algorithms.
Posted by: liberal japonicus | March 12, 2023 at 09:52 AM
The chips that make ChatGPT etc possible are not CPU (Computer Processing Unit) but GPU (Graphic Processing Unit) The main difference between the two is that a CPU handles operations serially, but a GPT can make parallel calculations in the form of matrix calculations.
Not just GPUs, but there are a whole bunch of new chips out that have hardware optimized specifically for neural network training and evaluation. Google deployed TPUs that support their TensorFlow model internally in 2015 and started selling them to the rest of the world in 2018. Apple's latest M2 system-on-chip design includes 12 CPU cores, 38 GPU cores, and 16 proprietary Neural Engine cores (also special-purpose hardware acceleration for media algorithms such as video compression). A company named Cerebras has a wafer-scale AI engine with 850,000 cores optimized for linear-algebra based neural networks.
Posted by: Michael Cain | March 12, 2023 at 11:21 AM
"This raw stream of data can then be fed into a field-programmable gate array (FPGA, a type of super-specialized processor) and further analyzed by computer vision algorithms."
I think Tesla is doing something similar with the cameras on their cars to reduce the time between perception and reaction.
Posted by: CharlesWT | March 12, 2023 at 11:41 AM
"The main difference between the two is that a CPU handles operations serially, but a GPT can make parallel calculations in the form of matrix calculations.
Machine learning is being used to discover more efficient matrix multiplication algorithms with different algorithms for different-size matrices.
Posted by: CharlesWT | March 12, 2023 at 11:52 AM
That NASA photo of Hyperion looks like a much larger version of rocks I've picked up on the slopes of cindercone volcanoes in Southern CA (near Amboy, IIRC) many years ago.
So interesting but not surprising. How those rocks got to Saturn IS a mystery.
Posted by: Snarki, child of Loki | March 12, 2023 at 01:17 PM
"The chips that make ChatGPT etc possible are not CPU (Computer Processing Unit) but GPU (Graphic Processing Unit) The main difference between the two is that a CPU handles operations serially, but a GPT can make parallel calculations in the form of matrix calculations."
"Thirty years ago, Taiwan immigrant Jensen Huang founded Nvidia with the dream of revolutionizing PCs and gaming with 3D graphics. In 1999, after laying off the majority of workers and nearly going bankrupt, the company succeeded when it launched what it claims as the world’s first Graphics Processing Unit (GPU). Then Jensen bet the company on something entirely different: AI. Now, that bet is paying off in a big way as Nvidia’s A100 chips quickly become the coveted training engines for ChatGPT and other generative AI. But as the chip shortage eases, other chip giants like Intel are struggling. And with all it’s chips made by TSMC in Taiwan, Nvidia remains vulnerable to mounting U.S.-China trade tensions. We went to Nvidia’s Silicon Valley, California, headquarters to talk with Huang and get a behind-the scenes-look at the chips powering gaming and the AI boom."
How Nvidia Grew From Gaming To A.I. Giant, Now Powering ChatGPT (CNBC YouTube)
Posted by: CharlesWT | March 12, 2023 at 04:44 PM
"Artificial intelligence is increasingly becoming part of our lives, from self-driving cars to ChatGPT. John Oliver discusses how AI works, where it might be heading next, and, of course, why it hates the bus."
Artificial Intelligence: Last Week Tonight with John Oliver (HBO) (YouTube)
Posted by: CharlesWT | March 12, 2023 at 05:18 PM
TPU vs. GPU. I'm not sure how different TPU and GPU are. My understanding is that TPU handle matrices better than GPU but it is roughly the same math.
https://towardsdatascience.com/what-is-a-tensor-processing-unit-tpu-and-how-does-it-work-dbbe6ecbd8ad
Of course, one could argue it is all the same math, but it is interesting to me that TPU gets its performance boost because instead of using 32-bit integers, it uses 8-bit integers, which reduces precision and then uses quantization to get that precision back.
Posted by: liberal japonicus | March 12, 2023 at 10:14 PM
(Open thread, so:
Michael Cain, I can't remember who recommended them, or where, but just in case it wasn't you I think you might like Ben Aaronovitch's Rivers of London series. They are sort of police procedurals - in which I would normally be uninterested - but with the added dimension which I think interests you, as well as being heavily dependent on London geography, places, history etc. I am halfway through the first one, and already on Abe Books for the remaining 8. I would be bankrupt without Abe Books.)
Posted by: Girl from the North Country | March 13, 2023 at 11:44 AM
Ben Aaronovitch's Rivers of London series.
Is this a good description of the series?
What are the overarching characteristics of Ben Aaronovitch's Rivers of London novel series?
"Ben Aaronovitch's Rivers of London novel series can be described as a mix of urban fantasy, crime fiction, and mystery, set in a contemporary London with a magical underbelly. Some of the overarching characteristics of the series include:
1. A diverse cast of characters: The series features a diverse range of characters from different backgrounds and walks of life, including police officers, wizards, river gods, and ghosts.
2. Blend of magic and technology: The series blends magic and technology seamlessly, with magical creatures and ancient gods coexisting alongside smartphones and modern policing methods.
3. Quirky and witty writing style: Aaronovitch's writing style is known for its quirkiness, wit, and humor, which infuses the series with a lighthearted tone despite the dark subject matter.
4. Detailed world-building: The series features a richly detailed world of magic and mythology, with nods to real-life London landmarks and history.
5. Procedural elements: The novels often follow a procedural format, with police investigations forming a key part of the plot, as well as the magical elements.
6. Themes of identity and belonging: The series explores themes of identity and belonging, particularly with regard to the main character, Peter Grant, who is mixed-race and struggles to find his place in both the police force and the magical world.
7. Continuous story arcs: While each novel has its own self-contained plot, there are also continuous story arcs that span multiple books, building towards larger conflicts and revelations." —ChatGBT
Posted by: CharlesWT | March 13, 2023 at 12:28 PM
Yup, not a bad description, CharlesWT. But, FWIW, although I recognise the probable importance of these kinds of AI developments, I find it hard to express just how tiresome I find these ChatGBT extracts!
Posted by: Girl from the North Country | March 13, 2023 at 02:26 PM
@GftNC
Yes, I've read all of the Rivers of London novels.
@CharlesWT
It misses one of the things that I enjoy about the series: the sheer number of named small tributaries to the Thames, many now surviving only as buried culverts. I'm a Great Plains sort of guy, so am more used to large areas where there's no permanently running surface water.
Posted by: Michael Cain | March 13, 2023 at 02:53 PM
ChatGBT reminds me of formulaic "reality" TV, where you can see a show's production just as much as the content. There's commonality among all of them in the narrative flow and phony heightening of drama, then a few things that are particular to subjects like home remodeling or true crime or (worst of all) relationships. The particulars change, but it's really the same predictable crap over and over again.
Posted by: hairshirthedonist | March 13, 2023 at 03:04 PM
ChatGPT makes lists and summarizes the most obvious parts of anything it is asked to analyze/summarize.
And like lower division college writers in general, it lacks the critical awareness and insight to pick up on any insightful details while aiming for its summary.
It's the digital performance art equivalent of Cliff Notes and never anything more. And it's incapable of anything more on a qualitative level.
Posted by: nous | March 13, 2023 at 04:23 PM
Michael Cain: Ah, I'm sorry to hear that. I was hoping to provide you with some pleasurable hours of distraction and/or information i.e. the small tributaries - there are amazing things (which may have already come up in the series) like certain of the tributaries which have been diverted underground still being accessible by little known entrances, as I believe one of them still is via the basement of a West End theatre (although I have just tried unsuccessfully to get a reference for this). And of course, Bazalgette's amazing Victorian sewer achievement is now, finally, being updated.
Posted by: Girl from the North Country | March 13, 2023 at 06:18 PM
Write a summary about the website https://obsidianwings.blogs.com/
"According to the web search results, Obsidian Wings is a group blog that covers topics such as politics, culture, philosophy, and history. The blog was founded in 2004 by a group of former commenters on Tacitus.org, a conservative blog. The blog features posts by several authors with different political views and backgrounds, such as Hilzoy, Doctor Science, Sebastian Holsclaw, and others. The blog also allows guest posts and open threads for readers to discuss various issues. Some of the recent posts on Obsidian Wings include “The End of an Era”, “The Future of Democracy” and “The Omicron Variant”. 1 2 3
This is a short summary based on the web search results. For more details, you can visit the website or read some of the posts.😊" —Microsoft Bing
Posted by: CharlesWT | March 14, 2023 at 05:38 PM
A bit out of date, wouldn't you say? It reminds me of the Microsoft joke about the lost helicopter pilot. The answer is technically correct but entirely useless.
I clicked the links. Perhaps "mostly useless" is a better description. Don't panic!
Posted by: ral | March 14, 2023 at 06:40 PM
It may not be many years before an AI can read everything on this site and generate profiles of everyone who has posted and commented here.
Posted by: CharlesWT | March 14, 2023 at 06:49 PM
It may not be many years before an AI can read everything on this site and generate profiles of everyone who has posted and commented here.
In the very old book The Psychology of Computer Programming there is an anecdote about a company giving its programmers a personality test in hopes of discovering traits that would let them more accurately hire productive programmers. One of the programmers asked the test administrator, "What personality are we supposed to use?" The administrator responded with, "We want you to use your real personality." To which the programmer replied, "What kind of fools do you take us for?" anticipating that if there were a "right" personality, those that didn't match would be fired.
I need to start thinking about which personalities I want to cycle through in my comments...
Posted by: Michael Cain | March 14, 2023 at 07:34 PM
Michael, you remind me I should go back and re-read that book. I once attended a "technical leadership" workshop given by Ethnotech, Gerald Weinberg's consulting company. It was a valuable experience.
Posted by: ral | March 14, 2023 at 08:11 PM
Some rather limited profiles can be generated already. lj I hope you don't mind but I've used you as an example because you've posted a lot and have a very unique handle.
Write a profile of the poster and commenter "liberal japonicus".
"According to the web search results, liberal japonicus is one of the authors of Obsidian Wings, a group blog that covers topics such as politics, culture, philosophy, and history. Liberal japonicus is also a frequent commenter on the blog, engaging with other readers and authors. Liberal japonicus lives in Japan and teaches at a university there. Liberal japonicus often writes about topics related to Japan, such as its culture, history, politics, and society. Some of the recent posts by liberal japonicus include “competition: from a Japanese perspective”, “The End of an Era” and “The Future of Democracy”. 1 2 3
This is a short profile based on the web search results. For more details, you can visit the blog or read some of the posts by liberal japonicus.😊" —Microsoft Bing
Write a profile of the poster and commenter "liberal japonicus" on the website https://obsidianwings.blogs.com
"Liberal Japonicus is a frequent poster and commenter on the website Obsidian Wings. he has been active on the site since 2008 and has been a part of thousands of conversations about politics, culture, and current events. He offers a unique perspective, informed by his experiences living in both the United States and Japan, and his diverse interests. he is well-versed in political philosophy, and often offer thoughtful analysis and critique of current events. Liberal Japonicus is also a big fan of science fiction and often references work from the genre in his posts. He is passionate about social justice and often takes a firm stance when it comes to defending the rights of the oppressed. He is also a passionate advocate for environmental protection and sustainability. His posts are often humorous and engaging, and he often has a knack for finding humor in serious situations. He is an active presence on the website, and his contributions are often praised by his peers."
—OpenAI Playground [This comes entirely from the language model itself, not from a direct connection to the internet. Edited to change they, their to he, him and to correct the knock-on grammar errors.]
Posted by: CharlesWT | March 14, 2023 at 08:23 PM
To "his," not "him."
Posted by: CharlesWT | March 14, 2023 at 08:30 PM
Edited to change they, their to he, him[s]
Hey, "liberal japonicus" ends in an S, so it must be (or, at least, is likely to be) plural.
Guess OpenAI Playground doesn't recognize Latin when it sees it. Which makes it even more monolingual than I am.
Posted by: wj | March 14, 2023 at 11:05 PM
I sometimes use OpenAI Playground because it doesn't have a lot of the annoying guardrails that ChatGPT has.
GPT 4.0 is out and you can access it if you have a subscription to ChatGPT Plus. I'm not ready to spend $20 a month to have access.
Open AI's NEW INSANE GPT-4 SHOCKS The Entire Industry!: (Microsoft GPT-4 ANNOUNCED!)(Multimodal) (YouTube)
Posted by: CharlesWT | March 14, 2023 at 11:27 PM
About Japonicus, see this
https://www.wordsense.eu/japonicus/
I picked masculine because, quite frankly, when I started, it was way before talk about pronouns etc, do it didn't occur to me to even consider using the feminine or neuter.
Some of the recent posts by liberal japonicus include “competition: from a Japanese perspective”, “The End of an Era” and “The Future of Democracy”
The last two aren't post titles that I remember and while the second one is in a post of mine, the third doesn't seem to turn up in anything I wrote. I was also surprised the links go to a livejournal feed that someone could have set up, but I don't recall
His posts are often humorous and engaging, and he often has a knack for finding humor in serious situations. He is an active presence on the website, and his contributions are often praised by his peers."
Definitely a hallucination...
Posted by: liberal japonicus | March 15, 2023 at 06:25 AM
My impression is that stuff written by ChatGPT can be like a movie script that's taken from a book wherein two or more characters get rolled into a composite character in the script.
Posted by: CharlesWT | March 15, 2023 at 06:57 AM
His posts are often humorous and engaging, and he often has a knack for finding humor in serious situations. He is an active presence on the website, and his contributions are often praised by his peers."
Definitely a hallucination...
Burns had it right:
The AI actually got it right this time.Posted by: wj | March 15, 2023 at 07:58 AM
Regarding the Silicon Valley Bank debacle, Alexandra Petri nails it again:
Millions of Americans hoping next child will be born a bank
Zing!
Posted by: wj | March 15, 2023 at 08:58 AM
On a completely different tack, granddaughter #3 is one now, and mobile, and believes that carpeted stairs are the greatest toy ever invented. Spent a chunk of the morning putting up a baby gate. There are a few cabinet doors that need to be secured.
I thought I was done with this.
Posted by: Michael Cain | March 15, 2023 at 11:18 AM
My takeaway from SVB is that any bank that lobbies for "loosened regulation" should be subjected to intense scrutiny.
You can apply that to other industries also, too!
If nothing else, it might get them to STFU, which is all to the good.
Posted by: Snarki, child of Loki | March 15, 2023 at 12:30 PM
But what am I going to do with all these tulip bulbs?
Posted by: nous | March 15, 2023 at 01:15 PM
nous, you become a flower child.
Posted by: wj | March 15, 2023 at 02:25 PM
"what am I going to do with all these tulip bulbs?"
Sell them for Giant Stone Wheels, of course.
Posted by: Snarki, child of Loki | March 15, 2023 at 06:53 PM
Open Thread: I wish Disney World didn't exist. Too many people in my life think I should spend a large sum of money so my family and I can trudge around a hot, crowded, and fake place. I'd rather go hiking in the Shenandoah Valley or wander around Boston. I'd even prefer sitting on my back patio with a beer listening to the birds. I really don't get it.
Posted by: hairshirthedonist | March 16, 2023 at 11:39 AM
hsh: I could NOT agree with you more emphatically! I have over the years been dragged around not only Disneyland but also Disney World by an old friend much loved by me, but regrettably emotionally stalled in their childhood and adolescence. At a certain point I had to bargain for "adult" (not the usual definition) vacations. I can see it for small children, perhaps once, but otherwise sitting on a (or indeed your) back patio with a drink listening to the birds would be infinitely preferable.
And, on a side note, I have noticed as I get older that experiences (which once would just have been incidental activities for reasonably comfortably-off Londoners) like shopping at Harrods, or having afternoon tea at Fortnum and Mason, have become like visits to a theme park called "Olde England". The themeparkification of the world is deeply irritating.
Posted by: Girl from the North Country | March 16, 2023 at 12:46 PM
There's a hidden river passing just down the road from me and like to imagine how it must have been nice to hang out there after a day's work.
Posted by: novakant | March 16, 2023 at 02:45 PM
Regarding the Silicon Valley Bank debacle,
As a number of pundits have predicted for some years, the Fed has painted itself into a corner. They raise interest rates to tamp down inflation. But raising rates has financial impacts like banks getting in trouble because they're sitting on a lot of treasuries or other reasons.
The Fed may be stuck between accepting higher-than-normal inflation and not tanking the financial sector.
Posted by: CharlesWT | March 16, 2023 at 02:46 PM
There's a hidden river passing just down the road from me and like to imagine how it must have been nice to hang out there after a day's work.
I have a friend who has just enrolled as part of a citizen initiative to monitor the release of pollutants into the river Wandle, which used to be a midden choked with debris (sewage overflow, abandoned supermarket trolleys etc), and is now considerably rehabilitated, even capable of being fished. It runs from Battersea, through Wimbledon and Streatham to Croydon, and many Londoners are absolutely unaware of its existence.
Posted by: Girl from the North Country | March 16, 2023 at 03:33 PM
But raising rates has financial impacts like banks getting in trouble because they're sitting on a lot of treasuries or other reasons.
I can't believe a self-professed libertarian wrote this. Why, it's as if interest rates have never fluctuated throughout recorded history! Who coulda' known?
If the f*cking bankers and our tech bro' overlords are owed no-risk profits, then they should be government employees.
It never ceases to amaze me when the so-called acolytes of pure competition economics preach to us that economic entities (workers, firms, etc.) are (in the theory) "price-takers" unless it is a economic class/interest they tend to favor. Then it's all about pure unmitigated coddling/subsidies and rent seeking/taking.
Just like us!
Posted by: bobbyp | March 16, 2023 at 03:51 PM
The themeparkification of the world is deeply irritating.
Yes! So now a positive story about avoiding that very thing:
My wife and I were in Manhattan last month for a Saturday-afternoon show. We didn't need to stay overnight, but decided to make more of trip of it. After dinner at a very cozy Greek restaurant, we wanted to go somewhere for drinks. We pulled up a few places in walking distance on her phone and picked what looked like an appealing Irish bar.
It turned out to be the most unpretentious, old neighborhood bar I could imagine finding a few blocks south of Central Park. It had been there since the 1920s and didn't look like anyone had put particular effort into making it look that way or making not look that way.
It was lively without being crowded. They were playing cool music (somewhere in the intersection of funk, jazz, and R&B). People were friendly. We were there when a few staff members were either coming in or leaving and they were hugging each other like family. (I don't know if I've ever seen coworkers who liked each other that much.)
It was the first place we tried, and it's my new favorite bar in NYC. Not a whiff of theme park to it! I doubt it's mentioned in any tourism guide.
Posted by: hairshirthedonist | March 16, 2023 at 03:57 PM
I wish Disney World didn't exist.
I have never been to either of their vaunted theme parks. Guess I have not missed much. I'd be happy to bring the beer and sit with you on your patio.
Posted by: bobbyp | March 16, 2023 at 04:00 PM
If anyone should find themselves in Atlanta and wanting a good neighborhood bar my local is the Euclid Avenue Yacht Club, which first opened in 1987. It closed for the Covid shutdown three years ago today, the original owner had already been putting out feelers about partially or completely selling out in late 2019-early 2020, and did sell during the pandemic. The new owner did lots of cleanup (the Yacht went non-smoking in 2019, a few months before city of Atlanta went non-smoking for bars, etc. on Jan. 2, 2020, so there was over 30 years of accumulated nicotine stains, along with grease and general grime), system repairs/upgrades, and some internal layout changes required by no longer being grandfathered in to older codes.
Manny, the new owner, was already the proprietor of Manny's Grant Park (opened March 2019), and Yacht 2.0 opened/re-opened June 2, 2021. Manny is the grandson of Manuel Maloof, who opened and owned Manuel's Tavern (est. 1956) for many years, Manuel's is not far from the Yacht Club and also worth a visit. The senior Maloof went in to politics and for years was the CEO of neighboring DeKalb County (Yacht and Manuel's are just barely in Fulton County), one of the main county government buildings in Decatur, the county seat, is named after him.
The original three owners of the Yacht Club, Hippie Don (who sold the bar), Don Sweet (died in a motorcycle accident spring 1990), and Michelle (bought out several years back) worked together at Manuel's Tavern before they opened the Yacht, so it was some comfort to old timers like myself that the bar was being bought by "family", so to speak.
Posted by: Priest | March 16, 2023 at 05:01 PM
Meant to include in the above, Manuel's Tavern is Democratic Party bastion, Bill Clinton and Obama have hoisted pints there, and Jimmy has been there many times over the years of course. The Carter Center is just down the road.
Posted by: Priest | March 16, 2023 at 05:07 PM
I've not been to Disneyland proper many times despite living close enough to be able to hear the fireworks every night. Maybe three times in 20 years, and then only because we were going with others - usually around Halloween for the Tim Burton Nightmare Before Christmas themed Haunted House ride.
There is, however, something wonderfully transgressive about going to Downtown Disney -just outside the park - to see an extreme metal band play at the House of Blues. You get to watch all of the Wholesome Families looking uncomfortable and threatened as all of the tattooed piercing people walk past dressed in solid black with evil looking symbols on their t-shirts and jackets. It's a real ethnographic panoply.
Posted by: nous | March 16, 2023 at 05:15 PM
I can't believe a self-professed libertarian wrote this.
I'm not sure what you mean. From a libertarian standpoint, there should be zero bailouts. The banks should have to take their lumps for their poor management. SVB's risk assessment officer quit months ago and the bank did's hire a replacement. And the depositors should take their lumps for putting their eggs in one basket and for not paying more attention to the condition of the basket.
Posted by: CharlesWT | March 16, 2023 at 05:37 PM
The first/last time I was in Disneyland was in 1970. I don't think I've missed much in the intervening years. But I don't begrudge it to people who enjoy Disney venues and want to spend their money there.
Posted by: CharlesWT | March 16, 2023 at 05:44 PM
We took my grandchildren (twins, almost 7 years old) to Disneyland in July. They had a great time and I was happy to accompany them.
CharlesWT, if you are a fan of roller coasters you should visit if only to ride what is now called the Incredicoaster. It launches the train using a linear induction motor. I have to admit that I don't enjoy roller coasters as much as I used to, but still this one is great and my granddaughter loved it.
A side note: the place was packed. It is not cheap, so taking it as an indicator of the state of the economy, things were just fine.
Posted by: ral | March 16, 2023 at 07:35 PM
I have a friend who has just enrolled as part of a citizen initiative to monitor the release of pollutants into the river Wandle ... many Londoners are absolutely unaware of its existence.
That's very good of your friend, England's rivers are in a terrible state:
Only 14% of English rivers meet good ecological status, with pollution from agriculture, sewage, roads and single-use plastics contributing to a dangerous ‘chemical cocktail’ coursing through our waterways. Not a single river in England has received a clean bill of health for chemical contamination.
https://committees.parliament.uk/committee/62/environmental-audit-committee/news/160246/chemical-cocktail-of-sewage-slurry-and-plastic-polluting-english-rivers-puts-public-health-and-nature-at-risk/
I have passed the Wandle many times in the Earlsfield area and the water looked a bit stagnant - but I haven't been there for a few years, so maybe things have improved since then.
Posted by: novakant | March 17, 2023 at 06:23 AM
Only 14% of English rivers meet good ecological status, with pollution from agriculture, sewage, roads and single-use plastics contributing to a dangerous ‘chemical cocktail’ coursing through our waterways.
Are the canals any better? I'm guessing not, but from what I've seen they do seem a bit more protected from some of those pollution sources.
Posted by: wj | March 17, 2023 at 08:28 AM
I begrudge all of humanity the ability to visit Disney World and wish a horrible fate upon all those who have visited or desire to visit Disney World. I proclaim this without reservation and without exception. Woe to you all!
Posted by: hairshirthedonist | March 17, 2023 at 09:21 AM
It appears that Arizona's vote audit wasn't the only case where Trump's fans tried to prove fraud and massively failed to do so.
https://www.washingtonpost.com/elections/2023/03/17/trump-fraud-report-2020/
Posted by: wj | March 17, 2023 at 09:41 AM
Well, Disney *World* lacks the essential national security justification of Disneyland, since they omitted the ABM installation that was located behind "It's a Small World" in Disneyland.
Long since removed since the (now defunct!) ABM treaty, but it did keep Kruschev from visiting Disneyland, back in the day.
Posted by: Snarki, child of Loki | March 17, 2023 at 10:12 AM
Here's a question for CharlesWT, based on a conversation I was having in a different forum. Can ChatGPT take a word problem from a calculus text and set up the derivative or integral that solves it? I don't need it to actually solve the integral, Mathematica has been able to do that for many years. Can it go from a text description to an equation, or set of equations?
Posted by: Michael Cain | March 17, 2023 at 11:47 AM
I've been to Disneyland twice.
The first time was as part of a group of four mid twenty-somethings in the late 1970s. It was a fascinating way to spend a day, both from suspending disbelief and enjoying the rides as rides, and as an observer of all the ways Disney managed the crowd psychology*. Needed to not be herding kids for that.
The second time was as part of a group of techies in the late 1990s who were being taken out to dinner to celebrate a very successful day of doing demos for people the big bosses needed to impress. Somewhere in the back of the big Disneyland hotel (the limo drove past dumpsters to get there) was a sushi place with amazing food.
The sushi would be worth repeating, although I hate to think what the private room cost. The rides, not so much.
* In Dream Park Niven and Pournelle borrow from Disney in the setup for people taking the grown-up equivalent of the Haunted Mansion ride. Where the now-sinister mood-setting voice tells them, in a locked elevator, "One thing you people forget is that we are allowed a certain number of . . . accidents per year."
Posted by: Michael Cain | March 17, 2023 at 01:11 PM
I have passed the Wandle many times in the Earlsfield area and the water looked a bit stagnant - but I haven't been there for a few years, so maybe things have improved since then.
I've never seen it, but according to what I read it seems to have improved dramatically, at least in many parts. For anyone interested in what might seem a galaxy far, far away, here is the site from which the following comes, and at the bottom of the site you will see many rather lovely, almost bucolic scenes.
https://www.southeastriverstrust.org/wandle/
The River Wandle has a long history with communities, dating back to the Roman era. Throughout the 17th, 18th and 19th centuries it became heavily industrialised, supporting the manufacture of textiles, paper and tobacco, with as many as 68 mills along its length. As a result of this industrialisation, the river suffered from severe pollution and for many years was considered to be ecologically dead. Since then, there has been a considerable effort to clean up the river and make it healthy again.
The river is now home to numerous fish species including the brown trout, an iconic chalk stream species that was reintroduced through our Trout in the Classroom programme. The Wandle and its surrounding habitats also support a diverse mix of invertebrates, birds and mammals such as damselflies, kingfishers and bats.
Posted by: GftNC | March 17, 2023 at 03:41 PM
Here's a question for CharlesWT, based on a conversation I was having in a different forum.
I did a search for calculus word problems and used the first one I found.
Going step by step and showing your work, solve this math problem..[Problem text and answer.]
"To estimate Bob's increase in weekly revenue for each one-dollar increase in tire price, we need to find the derivative of the revenue function with respect to the unit price:
R'(p) = N(p) + pN'(p)
Using the given information, we can find the values of N(55) and N'(55):
N(55) = 140
N'(55) = -0.2
Substituting these values into the expression for R'(p), we get:
R'(55) = N(55) + 55N'(55)
R'(55) = 140 + 55(-0.2)
R'(55) = 128
This means that for each one-dollar increase in tire price, Bob can expect his weekly revenue to increase by $128."
I tried it with Microsoft Bing, which is supposedly using some version of ChatGPT 4, and got the same answer.
"We can use the product rule to find the derivative of R(p) with respect to p:
R′(p)=N(p)+pN′(p)
We know that N(55)=140 and N′(55)=−0.2. So,
R′(55)=N(55)+55N′(55)=140+55(−0.2)=128
This means that for each one-dollar increase in tire price, Bob’s weekly revenue will increase by $128."
Which is one dollar less than the answer given in the link.
I'll leave it to those who are more familiar with calculus to determine who is right.
I read an article that said if you tell it something like to work step by step and to show its work reduces its error rate on math word problems from 80% to 20% over just giving it the problem.
Posted by: CharlesWT | March 17, 2023 at 03:48 PM
Looking at the problem again, it looks like ChatGPT got the formulation right and the math wrong.
Posted by: CharlesWT | March 17, 2023 at 04:20 PM
There was some talk earlier of numerical calculation of square roots. What modern processors actually do (or did, if times have moved on) is use a version of Goldschmidt's algorithm, which works something like this:
Write your number S in the form s.2^(2n) with s in the range 1 to 4. Now sqrt(S) is sqrt(s).2^n
Take a guess y0 at 1/sqrt(s). Simply using 0.7 is good enough for rapid convergence.
Calculate x0 = s.y0 (it's a guess at sqrt(s))
Calculate h0 = y0/2
Now calculate
r_n = 1/2 - x_n.h_n
x_n+1 = x_n + x_n.r_n
h_n+1 = h_n + h_n.r_n
And keep doing it until r_n is close enough to zero, or for a sufficiently large fixed number of iterations. Now x_n will be very close to sqrt(s) and 2.h_n will be very close to 1/sqrt(s)
This is fast because processors can do multiplication and addition at almost the same time ('fused multiply-add'). (And, since they work in binary, they can divide by two as easily as one can divide by ten in decimal.)
To see why it works you can do some analysis to show that given an initial smallish error in the estimate, it gets (much) smaller with each iteration.
Posted by: Pro Bono | March 17, 2023 at 04:51 PM
GftNC, that's great to hear and it was only my subjective impression.
On another note: Putin has finally been indicted for war crimes (based on the deportation of Ukranian children, which has been one of the more deplorable acts in this deplorable war).
But, alas, neither Russia nor the US recognize the ICC, so that they are free to commit war crimes when they see fit. And while that is to be expected of the former, it's rather disappointing of the leader of the free world.
The latest issue of The New Statesman argues on the occasion of the 20th anniversary of the Iraq War that it was the decisive event that brought down the rules based international order and ultimately led to the current mess.
https://www.newstatesman.com/international-politics/geopolitics/2023/03/after-iraq-great-unravelling-peter-ricketts
Posted by: novakant | March 17, 2023 at 05:33 PM
alas, neither Russia nor the US recognize the ICC, so that they are free to commit war crimes when they see fit.
Actually, no. All it means is that we won't extradite someone for trial. But, as someone pointed out to John Yoo a while back, if you travel overseas, you can still be arrested and sent to trial.
Posted by: wj | March 17, 2023 at 09:48 PM
What about the "Invade the Hague Act" to free US citizens from the clutches of these rogue judges?
Posted by: Hartmut | March 18, 2023 at 04:37 AM
No, the Rome Statute has been amended so that the ICC will not pursue subjects of countries which don't recognize it.
Russia can use this to to escape scrutiny by the ICC.
And as far as the US is concerned, the aptly nicknamed "Hague Invasion Act" is still in force.
https://en.m.wikipedia.org/wiki/American_Service-Members'_Protection_Act
Posted by: novakant | March 18, 2023 at 04:45 AM