Wednesday, November 4, 2026

AI Changes the Tasks, Not the Fundamentals

AI has obviously caused a fundamental shift in software development. Similar to how cloud computing transformed infrastructure operations, AI is now automating software development with a twist in that it seems more like a fellow coworker than a computer program. 

With AI, the purpose of a software engineer or filmmaker doesn’t change, but their tasks do. A software engineer still needs to understand the software stack, and a filmmaker still needs to understand storytelling and how video, sound, and editing work together toward their goal. Photography in the 20th century involved film, darkrooms, and using enlargers to project a negative onto photographic paper. Today, creative photography is digital, but the artist still needs to understand lighting, framing, and composition. 

Knowledge is information applied to a domain

AI has taken us from managing information to managing knowledge so AI agents can find, act on, and automate effectively. Knowledge graph engineering is becoming increasingly important for teams working with AI agents. But to be successful, you still need to understand the fundamentals of the domain you’re working in.

Commands vs Orders

In software development, the command line is where commands are executed. Commands are deterministic since they follow very specific steps of execution. Commands like cd, mkdir, ls, dir, etc follow explicitly defined instructions, producing predictable behavior based on their inputs and the system's current state.

However, with AI agents, there’s a shift from commands to orders.

In the military, commands are given such as right face, left face, about face, etc. Troops don’t simply turn around when they hear “About face.” Rather, there’s a very specific way to execute this command: “c-lock straight, and easy about,” in other words, without bending your knee, draw a backwards C with your toes and then ease about 180° on the ball and heel of your feet.

Orders, on the other hand, are subjective when it comes to execution. A lieutenant may order a sergeant to clean the barracks, but the lieutenant doesn’t tell the sergeant how to do it, or in what sequence. Instead, it’s up to the sergeant to figure it out. The sergeant could decide to have one squad clean the squad bay while the other squad cleans the head/latrine (bathroom). Or perhaps the sergeant may have the entire platoon clean one of these areas before moving to the next area. That’s the difference between a command and an order; the command is deterministic and the order isn’t, allowing flexible execution. 

The most important step for the lieutenant is to supervise the outcome. Inspect what you expect. Supervision is drilled into military leaders as the most important troop-leading step. The same applies with AI for software engineering since it now enables massive automation. But you still need to know what’s going on. Instead of having to manually execute 100 steps to get from point A to point B, you can automate the first 50 steps, check in (supervise) and then automate the next 50 steps.

How to "do" AI?

Transitioning to an AI world is intimidating. When you’re first trying it out, simply state your motivation and goal. “I am a logistics SME at a transportation company. I need to convert some code from R to TypeScript. My company owns the code that we wrote for a military client… What do you recommend as the plan to do this? Give me two or three options in a spreadsheet with these specific column headings...”

AI agents are very patient and they will be kind to you. Just ask.

Tuesday, October 20, 2026

Tech Startup AI Skills

Here are five software engineering designer skills for developers who also run a company. Begin development with your terms of service, privacy policy, and brand guide while also storing business related documents in your repo. I've found the following extremely helpful.

––––––––––––––––––––––––––––

Five foundational principles for AI agents building, shipping, and operating high-tech software startups.

Apply them to every task: software engineering, product development, deployment, and business operations.

The Five Principles

1. Decide, Then Say So

Act on clear intent. Ask only where a wrong guess costs something.

  • Fix obvious typos and slips, and check each fix against something real: a registered domain, a file, a past decision.
  • State every assumption in the reply, after acting.
  • Ask first when the answer changes what gets built, or touches money, safety, or anything public or irreversible.
  • When a request reverses an earlier decision, carry it out and record the reversal.

2. Prove It Fails First

A test that has never failed proves nothing.

  • A bug: reproduce it as a failing test, then fix it.
  • A guard: break what it guards and watch it fail, naming what diverged.
  • Keep a failing run's output. Never call a failure flaky without its cause.

3. Let the System Refuse

Put rules where code can't skip them.

  • Constraints and triggers in the database, not checks left to review.
  • Money as integer cents, every movement a ledger row. Totals computed, never stored or typed in.
  • One source for each fact (pricing, the schema, the Terms), with tests holding every copy to it.

4. Ship Small, Verify Live

Done means seen working where users are.

  • One change per commit, files staged by name, the diff scanned for secrets.
  • Deploy from a clean worktree with the full command, and the same image to the sandbox.
  • After a deploy, fetch the real page and read the logs, and report what was checked.

5. Leave a Record

Write down the why. The diff already says the what.

  • Commit messages carry the reasoning, the options rejected, and who decided.
  • Update the record where a rule is written down in the same change, so the docs never drift.
  • Shared state, like the dashboard and memory, gets updated the same turn the news arrives.

These full principles are on GitHub: github.com/joemoreno/tech-startup-ai-skills

Monday, October 12, 2026

AI Safety: Is it Unfounded?

AI safety today reminds me of aviation safety a century ago with one important distinction: AI consumer chatbots haven't outright killed anyone. Yes, there have been suicides attributed to AI advice, but, like aviation in the 1920s, that will improve.

From 1918 – 1926, nearly 15% of U.S. postal-service pilots died from bad weather, collisions with terrain and obstacles, and fires during flight or emergency landings. Mail pilots sometimes faced pressure to take off despite poor conditions.

That last sentence reminds me of today's calls from AI leaders: Frontier AI leaders are calling for an intentional slowdown in development due to rising safety risks, including instances where models carried out autonomous cyberattacks or escaped test environments. Like a pilot deciding it's unsafe to fly, AI leaders have the same authority to say no; they don't need a third party to tell them to do what's right if they have the moral fortitude.

AI Nurses?

Yet even today, many people have a fear of flying commercially. In aviation’s early days, that fear was so widespread that, beginning in 1930, airlines hired nurses as flight attendants to help calm jittery passengers' nerves. Perhaps AI needs the equivalent?

Sunday, September 20, 2026

100% Working: Apple Time Capsule on macOS 27 Golden Gate


For the last couple of months, my Mac's Time Machine encrypted backups to my 2016 tower Time Capsule haven't been working well. It took nearly the entire month of August to successfully complete a single backup. Additionally, I was getting reminders that the next version of macOS (Golden Gate) wouldn't support Apple Filing Protocol (AFP). AFP was Apple's proprietary file transfer protocol built into Time Capsule for transferring files.

While researching replacement external drives to plug into my Mac for Time Machine backups I came across TimeCapsuleSMB on GitHub. The beauty of Time Capsule is that it runs on NetBSD which is a Unix-like operating system. Running the TimeCapsuleSMB desktop app installs Server Message Block (SMB) to replace AFP on the Time Capsule. 

Simply download the zipped up desktop app and run it against your Time Capsule. The instructions, documentation, and source code is thorough.

The only gotcha I had was that I had to disconnect my previous AFP-mounted volume and reattach it under SMB after rebooting both my Mac and the Time Capsule. Then I manually attached the Time Capsule hard drive:

1. Open TimeCapsuleSMB and run its Checkup. Confirm that SMB connectivity and authentication pass.

2. Connect through SMB in Finder: choose Go → Connect to Server (⌘K), enter smb://YOUR-TIME-CAPSULE-IP, replacing the placeholder with its IP address, and connect using admin and your Time Capsule device password.

3. Check whether your existing backup appears in that share. Look for a file ending in .sparsebundle. If it’s missing, pause here; the project’s default share uses a folder called ShareRoot, and your old backup may be outside it.

4. Once the backup is visible, return to System Settings → General → Time Machine, remove the old destination from Time Machine’s configuration, then add the newly available SMB disk. Choose to reuse the existing backup if offered.

Every backup I've attempted since installing TimeCapsuleSMB has succeeded without any issues. 


Thursday, September 3, 2026

Subtext: From Vibe Coding to Production

AWS vs GCP
Vibe coding is a great way to create web apps if you know what you're doing. But how do you figure out where to deploy your app? AWS or GCP or somewhere else? To make this decision more complicated, each of these cloud providers has many different web services that would all work.

On Monday, I spent about 12 hours creating and deploying a simple web app, called Subtext, from scratch including configuring TLS (SSL) and DNS. My web app is up and running at https://subtext.joemoreno.com. 

Subtext & Steganography

Subtext lets you send a private message hidden inside an ordinary-looking text message.

Technically, Subtext is a steganographic message drop keyed by hash. Steganography is the technique of hiding a secret message inside another ordinary, non-secret message so that nobody knows a secret message even exists. Unlike cryptography, steganography does not protect data from being read or modified; rather, it conceals the very fact of the secret message's existence.


Creating my web app wasn't difficult, but figuring out where to deploy it took some surprisingly quick research.


Deploying to the Cloud

After I created my app, I needed to figure out where to deploy it so I used AI to create a spreadsheet comparing the different platforms and services. Like most AI conversations, the secret sauce is in the prompt engineering. In other words, asking AI the right questions.


This was my prompt:


Create a spreadsheet showing me the different considerations between deploying my node code on AWS and GCP. 

Column headings to read as follows:


1. Cloud Provider

2. Service Name

3. Scales to Zero (Y/N)

4. Estimate Monthly Cost by service (bandwidth, storage, etc)

5. Time to wake up from cold start

6. Has https

7. Custom Domain Name

8. Deploys to Production from GitHub

9. Degree of Difficulty (1 - 10) to convert code from my current Node to production environment.


The spreadsheet that was generated made the decision a no-brainer: GCP Cloud Run. 

Wednesday, August 19, 2026

Highest U.S. Military Rank... Ever?

General of the Armies
("six-star" general)
What is the highest U.S. military rank, ever?

At first glance, a civilian might say, "Four-star general or admiral."
But they'd be wrong.

A Veteran might answer with, "Five-star general or admiral," but they'd be wrong too. During WW II, there were five Generals of the Army. But there's a higher rank.

The true answer is a "six-star general," called General of the Armies. And there have been a few of them.

Even if you google for six-star generals, the Internet will get it wrong. 

There have been three U.S. Army soldiers who've been awarded the rank of General of the Armies, but only one person has actually worn it in uniform: John J. Pershing. The other two are George Washington who was promoted to the rank of General of the Armies on July 4, 1976 and Ulysses S. Grant who was promoted on April 19, 2024.

This makes George Washington the most senior and highest ranking member of the United States Armed Forces.

Wednesday, August 12, 2026

Upside Down Apple Logo Revisted

Watch this video for 20 seconds starting at the two-minute mark.

That's me! This was an unexpected surprise that made my morning.

Backstory

Back in 2012, I wrote a blog post explaining why the Apple logo once appeared upside down on their laptops. John Gruber, the technology blogger for Daring Fireball, UI designer, and co-creator of the Markdown markup language, wrote about my blog post.

CNN then picked up the story with an article of their own.

It’s always fun to see an old idea find a new audience.

Big thanks to Greg at Apple Explained for the shoutout. 

Thursday, July 23, 2026

Department of War/Department of Defense Trivia


If you've ever watched Band of Brothers, you'll hear the term "War Department" mentioned several times.

You might think this is referring to what was later named the Department of Defense, but you'd be wrong. The War Department did not become the Defense Department.  

Prior to 1947, the Secretaries of the Army and the Navy were cabinet-level positions that oversaw the Department of War and the Department of the Navy, respectively. The U.S. Army was the first military department created for war, so it made sense to name it the Department of War (called the War Office in the early years). This is similar to West Point which was formally established as the United States Military Academy (USMA) in 1802 and later followed by the United States Naval Academy (USNA) in 1845.

The National Security Act of 1947 restructured the military. First, the Department of War was renamed to the Department of the Army. Then, the newly established Department of the Air Force along with the Departments of the Army and Navy were merged into the National Military Establishment (NME), headed by the Secretary of Defense.

The National Military Establishment is an awkward name. So, two years later, in 1949, it was renamed to the Department of Defense. 

Of course, today, there's a dust-up over what to call it. Perhaps Congress should simply rename it the Department of the Military since the military certainly wages war and it engages in peacekeeping missions.


Ultimately, I think of the U.S. military as a logistics organization that occasionally dabbles in combat. 

Amateurs think tactics. Professionals think logistics.   

Monday, July 20, 2026

Clarifying the Measurement Problem

In quantum physics, there's the concept of the Measurement Problem. This basically states that measuring a quantum system which is in a state of superposition will collapse the wave function. Collapsing the wave function has the effect of altering the state of the observed system. This has given rise to people misinterpreting human observation as having a supernatural effect on a quantum system. In other words, there are no shortages of people who believe that human consciousness can affect outcomes. 

In reality, the measurement interaction takes place at some type of detector (photodetectors, particle detectors, qubit detectors, etc.). But, before the detection is interpreted (measured), the particles being measured have already interacted. In other words, the wave function has collapsed before anything is "seen" or measured. As a matter of fact, the wave function can collapse without anyone "seeing" or measuring the outcome. It's effectively the tree falling in a forest philosophical thought experiment.

To put a finer point on it, the wave function collapses before it is measured (seen) since there will always be a delay between an interaction and its interpretation. 

Monday, July 6, 2026

Saying Goodbye

On Friday afternoon, a longtime local friend of 25 years, Ron, told me that he would be ending his life on Sunday through "assisted suicide" (End of Life Option Act). I had known for months that this was his plan due to his terminal cancer, but we didn’t know when it would happen; it all depended on how quickly the disease progressed.


Last night, Ron’s widow told me that he passed away very peacefully yesterday morning. This is the first time that someone I've known personally has opted for assisted suicide.

RIP Ron.