Chris Johnson

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.

Dirty and torn Iran flag, symbol of resistance and victory. A scene of war and devastation, the ruins of a city destroyed by conflicts. 3D Rendering.

Iran, FAFO

As some astute readers might have noted, Jimmy Carter is, in my not so humble opinion, the worst president to ever serve.

His utter spinelessness on the world stage led to the Middle East exploding with violence. His inability to trust the military lead to the deaths of soldiers in a sandstorm in Iran.

His sanctimonious platitudes let the Muslim world know that the United States was morally weak and unwilling to stand up for what was right.

His actions after the “students” took the US Embassy the first time led to the marines being disarmed when the “students” attacked and took the Embassy and held US citizens hostage for over a year.

I hope he is frying in Hell for what he did to my country and the world.

Side note, the day after the students took the Embassy the second time the skies over my home were free of navy aircraft for the first time ever. A couple of weeks later, one of my friends, a Tomcat driver, explained to me that he had been flying around us and for those two weeks was in flying on the other side of the ocean. The military was ready to take action within 24 hours of the Embassy being taken. Their commander in chief decided to sit with his thumb where the sun doesn’t shine.

Since that day, every Muslim terrorist attack can be traced back to that time of weakness. Reagan made them back down but everybody on the world stage knows that when there is a Democrat sitting in the Oval Office, the United States is weak.

Yesterday Iran got to Find Out. The president of the United States, using the authority given to him by Congress, acting with the Israelis, took out the Iranian regime.

Thank you Trump.

A Plan with Phases of Project Management on the board.

Project Management

In software development, project management comes in several phases. The first phase is presale, the second is scope and function, the third is product development, and the fifth is quality control.

Once we are past the design stage, it is important to track progress and issues. If you don’t, your project is likely to fail, horribly.

I’m dealing with a maintenance project with ongoing enhancements.

The tool I have settled on is Gitea, Git with a cup of tea. It is similar to GitHub.com, GitLab, and others. I don’t want a public hosting site where there is a potential for code leakage; this omitted GitHub and its competitors.

GitLab has a self-hosting option, but it is such a pig that even though I started with it, I dropped it when I couldn’t upgrade it as needed.

Gitea was the next, and it is working much better for me.

While there is a cloud version of Gitea, I don’t feel pushed into it. With GitLab, half the things I wanted to do required a license. Even when self-hosting, there were limits on the number of users, number of projects, and everything.

I’ve not noticed that with Gitea. In fact, it wasn’t until I wrote this last paragraph that I remembered that Gitea had a paid version.

Feature Requirements

  • Git repository. This is my version control system of choice. Having used everything from CDC’s “update,” SCCS, RCS, CVS, SVN and likely a few others, Git is the one that works for me.
  • A document repository. Gitea comes with a git based wiki. It is not as powerful as a full wiki and adding images to pages is painful, but for text, it just works.
  • Branch management, i.e. pull requests. Standard feature.
  • Project management. This is provided with a KanBan style interface. I use it for development.
  • Issue tracking.

Ticket System

I believe it was Admiral Grace that was having issues with a program on an early computer. It just wasn’t working. During the process of figuring out what was wrong, they did a hardware check. They located an insect that was causing electrical issues. They located a bug. That insect was framed, and the term “debugging” was coined.

Unfortunately, proper communication means we can’t call a bug a bug anymore. Nor can we call them errors or mistakes. Instead, everything is clumped together as an “issue”. Bah, Humbug.

Thus we have an “issue” system. This is really a ticket tracking system. I use the term ticket because it allows me to use the term “issue” for issues, bugs, enhancements, requests.

First Requirement

An issue should be well defined. The other day a client emailed us. It was a screenshot of a page of the product list page from the backend of their site. The client has drawn an angry spiral in red like a child coloring. His comment was, “This page is busted.” The account manager got this email, forwarded it to me with the following text “Thank you”.

This is a horrible issue statement. Ok, it’s broken. How is it broken? The screenshot doesn’t show any error messages; it looks like everything is right. So what is “busted” or “broken”.

It is the job of the person taking the error report, in this case the account manager, to create the ticket. To document the issue.

Actual ticket, after I started working on it: “The filter panel that is not functioning. All filters are ignored.” The actual problem was that a piece of JavaScript was failing if a filter selection was not made. This caused the filter button to not do anything.

The fix was about 4 minutes of coding and 40 minutes of explaining it to the account manager.

There should be a single issue per ticket, and the ticket title should be meaningful and properly identify the issue.

A Good Problem Description

Years ago I got a bug report from my boss; it was something to the effect of “such and such page is broken.” I went to the page and looked for the error. After about an hour I spotted the error. It was subtle but real, and it required significant effort to fix.

I pushed the fix reported that I had fixed the page to my boss.

About 30 minutes later, my very upset boss was at my desk telling me on no uncertain terms that the page was still broken and I hadn’t fixed a damn thing.

When I finally got him to calm down and to tell me exactly what was broken on the page, he pointed to the background of a button. “That’s the wrong color!”

It happened to be the color he approved, but it wasn’t the color he wanted in that spot, so the entire page was broken.

Make sure you have a good problem description.

Make Your Comments Meaningful and Useful

The way I explain it to people is that you are writing comments for yourself, six months from now. Yes, RIPLVB is very meaningful to you, right now, but RIPLVB on line 32627 isn’t really useful to you in six months nor to anybody else following behind.

(This was a real comment in a large piece of code, something like 60 thousand lines of code. It was the only comment. When the code broke, programmers spent way to much time trying to figure out the meaning of this incredibly important comment.

It stood for Rest in Peace, Ludwig van Beethoven, who died March 26, 1827, 3-26-27.)

If there are any supporting documents, screenshots, data files, log files, they should be attached to the comment.

If there are supporting documents, the comment should state what the document(s) are.

A comment of “See attached.” is a shit comment. It is your command to every person that follows you to open the attached document to figure out what it is.

“See the attached CSV for an example of the import format the client is looking for” tells you exactly what the document is for.It is meaning full.

Don’t Use Propritary Documents

If there is a common format, use it. Just because your system can magically open that particular file doesn’t mean that anybody else can. Yes, you have the latest version of Vizeo installed; putting a Vizeo document on the ticket shouldn’t be an issue. And it isn’t for you. But if your client doesn’t have Vizeo installed, or your coworker doesn’t, then that Vizeo Document is worthless.

Sure, you can attach the document, but also attach an SVG or other non-proprietary way of viewing the content of your file.

This one just pisses me off no end. The number of times I’ve had to deal with some PC user sending me a megabyte Word Document with a short paragraph in it when they could have sent a text message is uncountable. Or worse, every PC user assuming that every other person in the world has the latest version of Microsoft Excel.

Yet, I I send them a LibreOffice document, I will never hear the end of it.

Email is not a ticket system

Just because the client sends you an issue report in email doesn’t mean that email is a good ticketing system. I can’t count the number of times I’ve had to spend 10 or more minutes in a phone call tracking down the particular email my account manager wants to talk about. Often because he says things like, “Did you read the email client sent?”

Which one? When? What was the subject?

Worse is when the subject of the email chain changes, but they continue to use the same chain. Now there is a new issue in the middle of an email about a different subject.

In the same way, taking an email and attaching it to a ticket isn’t useful. This goes back to “Does everybody who has access to this ticket have the right program to read that attachment?” as well as violating the requirement of not needing to open an attachment to know what is in the attachment.

I Don’t need a meeting to read you the content of comments on the ticket

All good ticketing systems, including Gitea’s, send email when tickets are updated. Before you demand a meeting to discuss a ticket, check your email for updates on that ticket. Read the ticket. If the answers to your questions are in the ticket, there is no need for a call.

If you have questions that haven’t been answered, add them to the ticket.

No, you don’t need to call me to decide if you are going to add another issue. Add the issue. We’ll put it where it belongs or close it if it is a duplicate.

Use The Tool, Don’t Sabatauge It

Gitea ticket tracking system is a tool. You can subvert it and make it do bad things. You can make it useless. You can avoid using it forcing everyone else to use email.

Don’t! It is a powerful tool that should be used correctly.

Hospital Hallway with Doctors, Nurses and Specialists in Hospital. Female and Male Physicians, Surgeons, Healthcare Officials Walk Together in Corridor with Their Back to Camera

American Health Care

Today was shot for productive work, but I was able to observe American health care in action.

My wife had extreme abdominal pain. I got off the phone, loaded her into the truck, and we took off for the local, community, hospital.

20 minutes later we were at the hospital. This is faster than we could have gotten EMS to the house and for them to transport her to the same hospital.

When we got there, I parked right in front of the doors. Went inside and grabbed a wheelchair. This was noticed by the intake personnel.

I load my wife into the chair, reach across the cab to turn off the truck, and grab my keys. Then locked the truck and just left it there.

The intake lady apologetically quickly finished what she needed, about 2 or 3 minutes. My wife is in pain, and her moans of pain are carrying very well.

The first thing she says as she looks up was “She’s already on the board. They will see her as soon as they can.” She had started things moving when we entered the ER.

The intake person gets her name, does person verification, hands me the wristband to put on my wife. Total time, maybe 3 minutes.

“We’ll deal with the insurance paperwork after you are seen.”

We are now waiting for the ER staff to get things started.

5 minutes later, the triage nurse opens the door to the triage room and gets my wife moving into the room. He asks me to wait. I tell him I’m going to move my truck and be there waiting for him.

They do this separation to be able to ask abuse questions safely. For all they knew, the pain she was in could have been caused by me.

She was under care, getting treatment in less than 15 minutes from entering the ER.

Once she was in process, there was a delay before she had her first meds onboard. This is because they had to have some idea of what was happening before they could medicate her. They got a bunch of fluids into her. Some pain meds and things settled.

She’s home, recovering.

Conclusion

American health care is darn good. It is responsive. People get seen, and they get taken care of rapidly.

While there, the ED had at least a dozen more people come in. Everyone was treated the same. All got served.

I would have hated to have this happen in a “free” health care country. The cost my be free at point of service, but the wait times and access to the actual health care are normally pretty damn bad.