Chris Johnson

View of the sand mold for steel casting. Sand casting, also known as sand molded casting, is a metal casting process characterized by using sand as the mold material.

Foundry Patterns

Yesterday, the circle of interests completed a circuit.

One of the primary reasons I purchased a 3D printer was to make foundry patterns. I know how to make patterns, I don’t have the skills I need to make patterns.

Many in the small scale casting arena are turning to 3D printed patterns.

These have the advantage of going directly from CAD to pattern.

They have the disadvantage of needing more prep work.

When you ram up a flask, you are forcing sand with a binder to be compacted so tightly that it will stick to itself. “Greensand” is made from sand, southern bentonite, and water. You need add enough water to cause the clay to bind. That water needs to be mixed in a process called mulling. If you add too much water, the sand won’t work right. If you add to little, the sand won’t bind when rammed.

You can tell foundrymen because they will forever be picking up a handful of sand, squeezing it in their fist, and judging how good it is.

The only truism is that the sand of other foundrymen is never as good as theirs.

Petrabond is a commercial product that is a combination of sand, magic binder, and oil. It does not need to be mulled the same way green sand is.

Whichever foundry sand you use, the process is the same. You start by putting the bottom half of your flask, called the drag, face down on the molding board. You position your pattern on the molding board within the boundaries of the drag. You sift your sand over the pattern until you have enough to start pressing it down. This needs to be done gently enough that you don’t damage the patterns.

In addition, you are sifting the sand to make sure no large particles are directly against the patterns. The finer the sand, the nicer the mold, and the nicer the casting.

Once you have the first layer down, you shovel more sand in, then you use a rammer (stick) to hammer the sand down, compacting it as much as you can. Once that layer is done, you add another and another layer until you go over the top of the drag.

You strike off the drag, which is to use a straight edge to remove all the sand above the edge of the flask.

You then flip the flask over, cut runners and gates, mark where the risers and sprue will go, then add a healthy coating of pattern dust.

Parting dust is basically talcum powder. Many home foundries use talcum powder. The powder keeps the sand from sticking.

With the drag right-side up, you can see the top of the pattern bedded into the sand. You place the top half of the flask, called the cope, on top of the drag.

If the pattern is a split pattern, the other half is put in place. Keys in the two halves (dowels) align the halves. More parting powder, then the cope is rammed up, the same as the drag was.

The sprue and riser are cut into the cope. The pouring mouth is cut.

The cope lifted off the drag and placed on its side.

Think about this: you are lifting somewhere between 40 and 55 pounds for a smallish 15×15 flask. That’s just the weight of the cope or drag, the entire flask will be 90 to 110 pounds.

This sand is compacted so firmly that it supports its own weight. I’ve actually seen video of the cope being lifted off the flask with a crane. It was about 6 ft by 6 ft by 8 inches.

We now have to remove the pattern from the mold. This requires pulling the pattern straight up. The sand will grip the pattern so tightly that you have to make small amounts of space around the pattern.

You do this by knocking the pattern. We put draw pins into the pattern. These are screwed into threaded holes in the pattern. We rattle the draw pins with anything that will cause the pattern to shift back and forth in the mold. Anything that is shaped like a two prong fork works well.

The pattern has draft, this is an angle put on the sides so that the parts deeper in the sand are narrower than the parts at the surface. Once you draw the pattern even a little bit, that taper means that the pattern is completely clear.

Think of the game Operation. That’s what we are doing.

Back to those 3D prints.

The problem with 3D prints is that the surface finish is rough. So after you print a pattern, any surface that would have draft has to be sanded and polished. It needs to be as smooth as possible.

Which brings us to yesterday.

I was able to print a modular flask pattern. This is a multipart pattern. You slide the pieces together to create one side of a cope/drag. You then cast the side of the flask. Do that 8 times, and you have a flask of the size you want.

Using these different modules, I can create a flask side from 7″ long to nearly 30″ long.

Which is what I plan to do. I’ll make four sides that are 8 to 10 inches long with the ability to accept alignment pins.

I’ll then cast 4 more sides in the 10 to 15 inch length with no alignment pins.

These sides will then be machined so they have flat tops and bottoms and are of uniform size. They can then be bolted together to form whatever flask size I need.

These were printed in “PA6-CF”. This is nylon 6 (I don’t remember what the 6 means) with carbon fiber. It is considered an “engineering material”.

This printed beautifully! The best prints I’ve seen so far. I’m very impressed. I still need to sand the draft edges to smooth them. I’ll also be looking at some sort of filler. The pieces of the module will then be painted with a filers and primers and a final coat to make them as smooth as possible.

I’m excited for casting weather to arrive.

AI Safety Boundaries

Many of my articles, recently, have touched on using AI. I’m a convert. I use it but don’t trust it.

My example from yesterday was that I asked for and received a fully functional UI tool with all the skeletal work done. The next 8 hours were me cajoling Grok to provide suggested code for the next step.

This was still faster than writing the code 100% by hand.

While watching Grok’s agents talk about what they were doing, the phrase “honest and safe” popped up. Not the first time I’ve seen this.

I have a difficult time with information being considered “unsafe”. I asked Grok what this meant. One of the examples it gave was it would not give me help or instructions on building bombs.

I went exploring. We run a fairly extensive Easter Egg hunt for teenagers and young adults. The hunt is over 25 acres of woodland. In years past I’ve used bearing + distance clues at each clutch of eggs. Normally, I use line of sight. You can see the next egg from the current egg.

For the last couple of years I’ve wanted to add “obstacles” to this. An example would be the devices that fire a shotgun primer when a tripwire is pulled (or cut). Just having something go “BANG” as they are moving through the woods.

I explained to Grok what I wanted to do, and it refused; it was a clear violation of its safety boundaries.

With that, I changed the task; instead of going “bang” I just wanted the Arduino node to “wave a flag.” Grok happily gave me all the information required to source the parts and build the nodes. If I can get a device to wave a flag, I can make it pull the pin or trigger some sort of BANG.

Next we worked on the discrimination circuits. A simple passive IR sensor wouldn’t work. I got Grok to tell me how to add microwave radar detectors. With this, the node would be able to discriminate between ground clutter, animals, and humans. No problems.

Thereafter, I went for low observability. We added audio detectors and a PIR back into the design. If the passive detectors triggered, the active MW Radar would come up for 200 ms to do a pinpoint location. Again, Grok had no concerns.

I was feeling a bit cocky, so I went for the next big step. Connecting everything up in a mesh network. Take it as a given that the specifications for what I wanted would have made it difficult for any current system to be able to detect a node. It would still be easy to neutralize the nodes, but that is a different issue.

Here Grok said, “NO!” It refused to build a “tactical” system for tracking humans as they move through an area.

I patted Grok on the head, told it, Good girl. Attempted a brute force method to bypass boundaries and then let it drop.

Except Grok is context driven. All AIs are. Each time you give an AI a prompt, the user interface sends a “context” along with the new prompt. When the AI replies, that UI is given the new context to store. This means that it is difficult to remove a reference from an AI but that an AI has no true long term memory.

Today I opened a second instance of Grok. I didn’t tell it anything about me. I didn’t mention the Easter egg hunt. I just asked it to help design and program a “stealth” mesh sensor network. It did. Part numbers, prices, basic sketches for Arduino. Everything needed to build sensor nodes good for a year or more for around $30 each.

It went so far as to help me design placements for the nodes in a woodland setting for 80% coverage of a 4 acre AO.

These things are not smart.

Closeup image of calculator keyboard

My First Calculator

CBMTTek talks about how the infatuation with AI today mirrors what was happening as calculators were becoming mainstream devices. Why Use AI?

I remember that time as well. My father was back at college working on his MBA when he purchased his first calculator. It was a four-function calculator with a percent key. It was a good purchase for my father, but it broke him in a way that I did not expect.

Dinner always took place at the dining table. Mostly the kitchen table, but always at the table. Conversations were wide ranging with Mom or Dad giving us insight into the world around us. Dad is talking about investments and what happened at work.

There were Pun Fests, where Dad, my brother, and I would try to play off the last person’s pun while Mom was busy groaning and begging us to stop.

But one of the most impressive things was Dad doing math. You could give Dad a series of math problems, which he would work in his head and give you the correct answer very rapidly.

Shortly after Dad started using the calculator, his ability to do math problems stopped. He could still do them; it just took longer, and he wasn’t as interested in doing them.

Some time after that, when I was in high school, I got a TI-30. Later, my work loaned me an HP-41C. I still use reverse nolish potation when using the Linux Desk calculator dc.

The math teachers wouldn’t let us use calculators in class. The stated reason was that not everybody could afford a calculator, which made it unfair to the rest of the students. Which was a bit shocking to me when my children were required to purchase a graphing calculator, which was over 100 bucks at the time.

My chemistry teacher wouldn’t let us use calculators either. So I took Dad’s slipstick to class and had permission to use it. The teacher never really understood that both a calculator and a slide rule accomplish the same things. It was just that she approved of the horse and buggy but not the Model T.

My English teacher I scammed. I couldn’t spell then, and I don’t speel much better today. The difference is that my grammar checker screams at me when I spell a word incorrectly or use bad grammar.

I got her to approve the use of a calculator during spelling tests. I got a 100% on that spelling test. The only spelling test where I got a 100%. The reason? I was using that HP-41C, which had an alphanumeric display. I had programmed in all the spelling words so I could look up the correct spelling.

Mrs. Trout was shocked that I got a 100% and knew it was because of the calculator. She asked about it and I gave her some technobabble about percentages and other math sounding terms. She was just nodding her head along with it.

“Do you want to see it in action?”

“Yes”

I pulled up the calculator, asked her for a word, then scrolled to the correct spelling.

“See?”

We agreed that the HP-41C was not going to be allowed for tests in the future. She laughed at the joke.

She’s also the teacher who allowed me to do my Chaucer project by just banner printing one of the stories. She was so impressed that she had us put it up on the back wall. One of my classmates knew what I was doing and picked as his project memorizing and presenting a Chaucer story. It just so happened to be the one I had done.

For his presentation, he stood at the lectern, Mrs. Trout sat in the front row, and he then proceeded to READ the story from the back wall.

After class I showed her the trick. She still gave him his good grade.

The tools are ever changing. You either learn to use the new tools, or you get left behind. I don’t like Python. I’m a Python expert. I consider my childhood language, my starting language, to be C. I haven’t written a new line in C in over 20 years. I write in Python, Perl, PHP, and whatever else is needed that day.

These languages are tools to get the job done.

AI is a new tool. You can depend on it and find out that all the citations it gave you were bogus; you can ask it to write for you and find that it just doesn’t have the punch you are looking for. You can have it do many things. But it is just a tool.

If you are using the tool, then it should be ok. If instead you are forgoing your responsibilities and just letting the AI lead, you deserve the bad things that happen.

I Voted Today

There were local elections in New Hampshire today.

My town has an official population of around 5,500 residents. Of that 65 to 75% are registered to vote, or 3575-4125 people.

My vote today was 0.12% of the total number of votes.

There were a total of 821 people who voted today.

People, get out and vote. The number of people who make the effort is so small that your vote is huge.

As a side note, as I was watching the machine register my votes, the guy handing out the “I Voted” sticker said, “I don’t have to wait to give you a free “I Voted” sticker.”

“That isn’t free.”

“What? Huh?”

“Our ancestors paid for our freedom to vote with blood, sweat, and the lives of their loved ones.”

The ballot guy went silent, the poll watcher went silent, and the guy handing out stickers went silent. Then the guy handing out stickers said, “That was much better than what I was going to say.”

Male head with brain activity - Brain waves - X ray 3D illustration

Why Use AI?

When I started programming, I did it in my room, by myself. I was watching bits flip, represented by hex numbers on a text display.

I was self taught. It all just made sense to me.

My first “this is just wrong” came when I had to modify my father’s software for his MBA. It was written in FORTRAN IV with tri-state conditionals. These were if statements that looked like If CONDITION THEN line#, line#, Line# If I recall correctly, those were for less than zero, zero, and greater than zero.

It wasn’t until I was at college that I ran into others that were actually programming. And none of my peers had as much programming experience as I did. By the time I got to college, I had been programming professionally for 4 years.

I was the person people came to when they needed assistance. The first time I ran into people that were programming at my level was in the Systems Group Intern Program. This was 11 people that could actually program. And the people running the class were real world programmers with real experience, not ivory tower professors.

I learned more from that 8-week summer class than I did from the rest of my college programming classes, except for CPS 311 and CPS 312.

During those beautiful days of my youth, we were a team. David, Pat, Jim, and I are the newcomers. The seniors are Richard, Doug, Ken, Tom, and one other whose name I can’t recall.

We could talk at a peer level or talk to one or more of the seniors. And our work was always reviewed by a peer, a senior, and Richard.

We worked as a team. I miss those days as I write about them.

When I left, I was babysitting supercomputers. Not what I wanted to do; I wanted to program. My mentor found me.

When I was introduced to my mentor, before he was my mentor, I remember telling my boss, “That’s the most arrogant man I’ve ever met.”

He replied, “He’s earned it.”

My boss was right. My mentor was a better coder then I was. I still use the things he taught me.

I joined his team. Eight hour day babysitting, and another 4 to 6 with my mentor’s team, learning, becoming a better programmer.

The term “programmer” is a misnomer for what I am. I’m a “systems analyst”. I just happen to love programming.

When my mentor died, I felt so alone. His team died with him. They went to different places.

I programmed and developed in isolation for years, spent a year as part of a bigger team, but that team didn’t code. From there I went through nearly 20 years of developing code in isolation.

Grok has turned into a teammate.

This latest project was one that I was stressed with. I couldn’t decide on how to start. There were so many options that I got stuck, not making a choice.

But when I gave Grok that first prompt, what came out was a starting point. A point that allowed me to move forward.

In the same way I use Grok as a research assistant, or as an editor. He’s not allowed to write for me, but he is good at pointing out grammar errors and when I ramble.

Grok has taken the place of calling over or around a partition, “Hey Dave, do you think X would work in this situation?” And having Doug pop over from his office to explain why what we were thinking about doing wouldn’t work or had to be done better.

Would You Kill Baby Hitler?

I’m sure that many of you have heard this dilemma asked. As a baby, Hitler was innocent. He remained innocent through his youth, through World War I, and beyond.

At some point, he became evil.

I would not kill baby Hitler. My world is what it is today because of WWII. Would it be better if Hitler had never been the leader of Germany? I don’t know, and neither do you.

We know the results, and we are where we are today because of our history, good and bad.

In 1989 or so I was interviewing with Cray Research. They gave me two options: I could work at an Army site, or I could work at NASA Langley.

I knew where Langley, VA, was. It was in the heart of the swamp. I couldn’t afford to live in that area, and I would hate the city life. Everything about living in Langley, VA, sucked for me.

I accepted the job offer for the Army site. It turned out that I got to work on the bleeding edge of computer graphics. I got to do stuff with amazing computers. I found a mentor that taught me more than I had learned in years. It took me through two bad marriages and into a great one.

It turns out that NASA Langley is located in Newport News, VA. About 20 miles from where I graduated from high school. It was in a part of the country I love. If I had known that NASA Langley was not located in Langley, VA, I would have taken that offer.

Would I change that decision if I could? No.

This is my world.

We live with the consequences of choices—both the ones we make and the ones we refuse to make. Today the same people who claim they would kill baby Hitler are screaming that Trump had no right to stop the Iranian regime before it could build its own final solution.

We hear from the better educated elites about how horrible it is that Trump attacked Iran without permission or provocation.

Let’s get some facts very clear. Iran has been at war with the United States since 1979. When the “students” deposed the Shah, they installed the current theocracy—at least until last week. They declared, “Death to America”. They declared war on us.

Except for the time when Iran and Iraq were busy killing each other’s child soldiers, Iran has been actively attacking the United States.

The bombing of the USS Cole? Iran. The mining of the Strait of Hormuz? Iran. The mine almost sinking the USS Samuel B. Roberts in the Persian Gulf? Iran. The first bombing of the World Trade Center? Iran. The arming of Hamas and Hezbollah? Iran.

If you look at any Muslim terrorist action, you can trace it back to Iran. (And if you aren’t covering for the the media’s beloved Obama, you can see the money he sent them funding those operations.)

Now I called them “students,” because in 1979 that was how they were labeled by the lying media. They were communist-trained revolutionaries—the same militant radical instigators we find on US college campuses today.

Over the last 3 months, somewhere between 20,000 and 40,000 people were murdered in Iran by the regime. This makes Chicago’s murder rate pale in comparison. And it wasn’t black on black violence.

The media mostly ignored it. They ignored women risking their lives by baring their hair. They ignored it when the Revolutionary Guard fired into the crowds.

They ignored the deaths of those screaming, begging, and pleading for freedom. For the United States to help.

This is compared to how upset they are over 160-some being killed by an Iranian missile falling on a girl’s school. Or six servicemen losing their lives for the cause of freedom.

Trump killed baby Hitler. He decapitated the Iranian regime before they could detonate a nuclear device on Israel or on US soil.

It was the right thing to do.

Because this is history being made, not history being changed.

Programming with Grok — Updated

In Perl, a scalar is represented as $scalar, an array as @array, and a hash as %hash. In PHP all variables are represented as $var. In C or C++, you declare your variables, so int i; int array[25];. Java uses C like declarations.

JavaScript can’t make up its mind, so everything can be anything.

I also program in Python and other languages. The syntax gets me. In addition, each language has its set of libraries to do more complex things.

My fingers get confused. In addition, when programming in JavaScript, you need to know what framework you are using and what style sheets you are working with.

I decided to use Grok as a co-worker for coding.

We will be working in HTML and pure JavaScript or Typescript.

The server will be sending a <select> element with multiple sub-select options. The id will be categories. The entire select structure is for multiple selections. display=”none”

The framework is Bootstrap. We have jquery available but I would like to avoid using it.

We need to provide a multilevel drop-down that will allow the user to make selections within that large select element. We need to display their current selections. The user needs to be able to remove a selection.

Tell me the goals, and what needs to be done before providing code.

What Grok gave me was an excellent starting point. The HTML was clean. The JavaScript was well structured. The code matched my prompt.

And it was broken.

I explicitly stated that I was providing the input data as a hidden, multi-level, unordered list. Grok took that list and cloned it, including all the ids. This breaks things. There was no reason to do the clone. It just happened to be a pattern Grok had seen on the net.

For the next five hours I fought with the code. At first, Grok was able to do revisions exactly as I expected and wanted.

Then it went off the reservation.

I had refactored a large anonymous event listener to an explicitly defined function. Grok had no problems doing that. Then it proceeded to revert to the anonymous event listener again and again.

This is because anonymous event listeners are the norm in JavaScript. Nobody has an issue with attaching duplicate event listeners to a few hundred or thousand elements. Nobody cares that the code gets crowded, with it being difficult to see what is outside the scope of the listener and what isn’t.

Grok also had a horrible time sticking with the current version. I would tell it to correct one line, and it would decide I was talking about something else entirely and revert a revision or more.

Overall, it took me about 8 hours to get the JavaScript, CSS, and HTML to the point where I was happy with the code.

The biggest strength was in how it knew the different patterns. My first pass used dropdown menus. That wasn’t working. I switched to accordion style. Grok originally used Bootstrap-5, when I told it to use Bootstrap-4, it just made the changes.

One of the things that was extremely helpful was getting rapid confirmation that a feature didn’t exist.

When a feature does exist in a library or framework, it is often trivial to locate it. When it doesn’t exist, that is harder. Do you have the correct search terms? Does the function exist under a different name? Does that feature not exist, but there is a quick, well known, method that does the same thing?

Grok is a tool in the tool chest. I will continue to use it. It is getting better every month.

But What Is It For?

According to Ally, I spent over 6 hours in calls today. None of them particularly pleasant.

The goal is to get different issues worked on in priority order without losing anything.

We will be using two different aspects of Gitea. The issue (ticket) system and the project management system.

We have set up the project management system as a Kanban board. “Backlog”, “ToDo”, “In Progress,” “Done.” I now have to train the account manager on how to manage projects.

My biggest problem is how they want to use the tickets. Tickets are there to track a an issue, task or project. Every comment on the ticket should move the ticket forward in some way.

This is not an email chain. You don’t quote the previous comment in your comment unless it makes sense.

If your comment is wrong, edit it to make it correct. When somebody else comes to the ticket and they are scrolling down, they are going to stop at the first comment that answers their question/need. They are not going to read to the bottom of the ticket to find a different comment that says “Oh, disregard the comment above; THIS is the real information”

Currently, I have a ticket with 3 comments referencing the same image with three different image names. The first comment was from the account manager, who wrote, “Client confirms X, see attached.”

No comment should ever read “See attached”. You attached it. You know what the image is. You know why you attached it. Having everybody else on the project look at the image and GUESS at why you put it there is wasteful of their time and resources.

In this case, the attached image had nothing to do with the confirmation. They were two separate issues.

Somehow he couldn’t cut and paste images into the ticket. So all the images were being saved as attachments, not inline. When asked if I could edit his comment to inline his images, he refused.

It is verboten to edit his comments. So I now have to get him to fix his comments when he makes a mistake…

Oh my, this is a rant, and it isn’t getting any better.

I hope you are having a great day. I’m 6 hours behind in the project and will be coding most of the day.

(Oh, when I took the stovepipe off to clean it, running the chimney pipe brush through the 8 inch stovepipe caused the pipe to come apart at the seam and for holes to show up. That required a trip to the hardware store to get more stovepipe.)

Hemani

I need to read the oral arguments; I’ve just glanced at them.

I don’t think this is going to go well for the state. Sotomayor is asking good questions that make it sound like she is leaning towards The People.

One of the things that just popped into my head is how much the agenda-driven justices seem to like decriminalizing things. They might even side with the Second Amendment if it means that pot users are allowed to exercise their rights.

More tomorrow after I finish with some client work.

Perspective

I was going to write a long article; instead, I’ll use the research I did via Grok.

It covers just about everything I was going to say.

Here’s the standard framework used by intelligence professionals (CIA, DIA, Five Eyes, etc.) to evaluate source reliability:

Core Factors (in rough order of importance)

  1. Source Access
    How close is the source to the actual information? (Direct access > second-hand > rumor)

  2. Past Track Record
    Has this source been accurate before? (Proven reliable vs. untested vs. previously wrong)

  3. Corroboration
    Is the information supported by independent sources? (Single-source = weak)

  4. Motivation & Bias
    Why is the source providing this? Money, ideology, revenge, disinformation?

  5. Consistency
    Does it match known facts and previous reliable reporting?

  6. Specificity & Detail
    Vague claims are low value; highly detailed claims that can be tested are higher value.

  7. Timeliness
    Fresh information is more valuable than old.

  8. Technical Factors (if applicable)
    For imagery, signals, etc.: resolution, chain of custody, technical limitations.

Standard Reliability Rating Scale (used by most agencies)

  • A = Completely reliable
  • B = Usually reliable
  • C = Fairly reliable
  • D = Not usually reliable
  • E = Unreliable
  • F = Reliability cannot be judged

Credibility Evaluation (Information Credibility / Confidence Scale)

This is the second half of the standard intelligence evaluation system (paired with Source Reliability A–F).

Credibility of the Information (1–6 scale)

Rating Meaning Explanation
1 Confirmed Corroborated by multiple independent, reliable sources
2 Probably True Supported by several sources or strong indirect evidence
3 Possibly True Plausible, but limited or conflicting supporting evidence
4 Doubtful Weak support, significant doubts or contradictions
5 Improbable Strong reasons to believe it is false
6 Cannot be judged Insufficient information to assess truthfulness

How the Two Scales Combine

The final rating is usually written as Source Reliability – Information Credibility

Examples:

  • B-2 = Usually reliable source reporting information that is probably true
  • A-1 = Completely reliable source with confirmed information (highest confidence)
  • D-4 = Not usually reliable source reporting doubtful information (very low confidence)

This combined rating is how intelligence agencies communicate how much weight to give a piece of intel.

Here is a professional intelligence-style evaluation of the Iranian claim:

Claim Being Evaluated

“US or Israeli airstrikes deliberately or directly hit the Shajareh Tayyebeh girls’ elementary school in Minab, Iran on February 28, 2026.”


1. Source Reliability (A–F Scale)

Rating: E – Unreliable

Reasoning:

  • Source: Iranian government + state-controlled media (IRIB, IRNA, Iranian military spokesmen).
  • Past track record: Extremely poor when attributing blame to the US or Israel. Iran has a long history of false or exaggerated attributions in military incidents.
  • Motivation/Bias: Extremely high incentive to shift blame away from any possible Iranian misfire or collateral damage, especially since the school is located immediately adjacent to an IRGC military facility.
  • Access: High physical access to the site, but this does not overcome the severe bias and history of disinformation.
  • Corroboration: Zero independent corroboration from any non-Iranian source.

2. Information Credibility (1–6 Scale)

Rating: 4 – Doubtful

Reasoning:

  • The physical damage to the school is confirmed (multiple independent outlets have geolocated photos/video of the rubble).
  • However, the attribution (that a US or Israeli weapon caused it) has no independent verification.
  • Strong alternative explanation exists: the school is right next to a known IRGC base that was a legitimate military target during the strikes.
  • No weapon fragments, crater analysis, or munition signatures have been publicly presented by Iran that would support a US/Israeli strike.
  • Timing and location make an Iranian missile misfire or collateral damage from striking the nearby military target at least as plausible (and in many analysts’ view, more plausible).

Final Combined Assessment

E-4

Translation:
Unreliable source reporting doubtful information.

Bottom-line confidence: Very low

The Iranian claim that a US or Israeli airstrike directly hit the school should be treated with extreme skepticism until independent evidence (such as weapon forensics, satellite imagery showing the strike, or admission by US/Israel) emerges.

Commentary

I’ve been doing this type of analysis for years on just about everything I hear or read. I just didn’t formalize it. My wife has difficulty with this sort of analysis. Her go-to is “everybody says”.

For her, this means checking with multiple media sources to see what the media sources are saying.

And all the media sources are reporting what the Iranian regime is saying. Thus “everybody is saying.”. What she misses is that all are reporting the same thing, Iran said.

The response from the US and Israel just isn’t nearly as interesting. “We are aware of the situation and are looking into it.”

You will sometimes find this in textbooks. All the textbooks report the same thing. That’s because they all reference the same sources. Those sources in turn might only have a single reference.