Daily one-pagers about AI, leadership, technology, and being human.

johnmaconline

I'm writing to think, learn, and remember in public. I'll be here everyday.

May 25, 2024 3 minute read

The Conservation of Complexity

Remember trying to install a modem or network card into your PC in 1995?

First, you had to grab your screwdriver to deconstruct and open up that machine like you were performing open-heart surgery. Once laid bare, you’d insert the new card, being careful not to zap it with ESD and render it useless, into an open ISA or PCI slot on the motherboard. Once the new board was installed, you’d reconstruct it and hope you got everything back in the proper spots. Oh shit, I forgot to put this screw back somewhere…

But that was just the beginning because the real fight was still before you. You had to come to blows with the system software to get it to recognize what you just put in there. Boot into the BIOS. Now, which PC manufacturer is this? What was the key sequence? Oh shit, I didn’t hit it fast enough. Once into the esoteric BIOS screen, you had to hunt around for the ISA/PCI settings to configure the address range and interrupt. Address range? What’s that even mean? Which interrupt? What’s an interrupt? How many times will I have to reboot? Oh shit, I must have the interrupt wrong because now it won’t even start up. 

You were poking and praying. It was trial and error. Sometimes, it took an hour. Sometimes, you never got it to work. 

Even my colleagues and I, who knew and understood what this all meant, struggled mightily to make it all work. 

Then along came USB.

I worked on the development of USB technology in its infancy. I wasn’t the inventor or a contributor to the specs or working group, but I was part of a team inside Lucent Technologies working to implement it. We were developing a USB chip and low-level software to sell to PC manufacturers. 

USB was the first PC technology during that era that said, “OK, enough! This is stupid. There’s gotta be a better way.” 

The whole point of it was to make it dumb-simple for a user to use. Therefore, the part that the user sees and interacts with has to be easy to understand, robust, and “just work.” No opening up the computer. No connector mismatch. No “is this a Dell or a Compaq?” And, most importantly, no f’n software configuration. When I plug it in, the system sees it, and it just works. Let’s go. 

But, like it is with so much in this world, a pile of complexity under the covers is required to make it simple on the outside.

We call this the conservation of complexity — every application has an inherent amount of complexity that cannot be removed. You can move it around to different areas of the system — hide it here, deal with it there — but the complexity inherently exists. 

So, who gets exposed to that complexity? Who has to deal with it?

As an engineer or anybody who makes something for someone else to use, your goal is to deal with the complexity and keep it away from your users. 

Ask yourself, “Who is my user and how can I make the right thing to do the easy thing for them to do?”

May 24, 2024 1 minute read

Are You Preoccupied?

Preoccupied — A state of being so focused on a particular task, problem, or concern that it dominates one’s mental and emotional energy.

When you’re preoccupied, you’re focused, coming up with creative solutions, productive, and committed. 

But you’re also probably stressed, neglecting those around you, neglecting other responsibilities and tasks, neglecting what’s going on in the world, and not sleeping well.

Preoccupation, like so much else of our lives, is a double-edged sword. You can get there and solve the problem, but not without some cost. 

What are you willing to pay?

May 23, 2024 2 minute read

Commit Messages

Software developers work with a tool called a “Source Code Control” (SCC) tool.  

Think of an SCC tool as a library card catalog system that keeps track of everything about the books. The card catalog shows you what books exist, where they are, who the author is, and who has them checked out. And in this card catalog system, you’re allowed to change the contents of the books! If anybody checks out a book and changes it, that person becomes the new author. 

When you author a change, you attach a little note that describes it. This message is called the commit message.

It looks like this:

commit 14eacff768fcf58530a65f4bee4fc8f36b251c7a (HEAD -> DEVOPSDEV-1635-modify-status-utils, origin/DEVOPSDEV-1635-modify-status-utils)

Author: John Macdonald 

Date:   Fri May 10 15:54:52 2024 -0400

    DEVOPSDEV-1635 for the love of god...

The gobbledygook at the beginning is all of the “what” info that the tool includes automatically. The engineering stuff. With it, you can learn all you need to know about what changed, by who, when, and what it looked like before the change. You can even undo any change. 

The line at the end is what I typed in as the commit message. 

The best commit messages are brief, but tell you something beyond the what. The why. The purpose. Ancillary effects. Or the author’s state of mind at the time.

You only have a few characters. What will your commit message be?

May 22, 2024 1 minute read

Presence

Go, eat your food with gladness, and drink your wine with a joyful heart, for God has already approved what you do…Enjoy life with your wife, whom you love, all the days of this meaningless life that God has given you under the sun

– Ecclesiastes 9:7, 9

Racing to get to the end.
Why? What’s at the end?
What even is the end? Death, of course.

So why race?
Why look past what is now to get to what is later?

Presence. 
Presence is the gift. 

May 21, 2024 2 minute read

Common Destiny

All share a common destiny—the righteous and the wicked, the good and the bad, the clean and the unclean…This is the evil in everything that happens under the sun: The same destiny overtakes all. 

Ecclesiastes 9:2-3

We’re all on the unavoidable path. We share the common destiny. 

We may live virtuously. We may live in depravity. It doesn’t matter. Death awaits us all.

But perhaps, in this shared fate, we’re called to live fully. To embrace our moments, to feel the low times, to find joy in the present, because in the end, it’s the life we’ve lived that defines us, not the inevitable end.

What does a full and authentic life look like to you? Only you can define that, but for sure, it doesn’t come from your social media feed. It doesn’t come from your neighbor. It doesn’t come from the outside. 

It comes from within. Within you and your inner circle. Within your relationship to God or the Universe or the Spirit. 

We call share common destiny. Look within to find your road. 

May 20, 2024 1 minute read

Time and Chance

The race is not to the swift or the battle to the strong, nor does food come to the wise or wealth to the brilliant or favor to the learned; but time and chance happen to them all.

Ecclesiastes 9:11

Solomon got it (assuming Solomon wrote it).

You can plan. You can get ready. You can be wise, swift, and strong. And sometimes, it will go exactly as you predicted or prepared for. You should be prepared.

But time and chance happen to all of us.

Life has a way of surprising us. What will you do when time and chance happen? With the proper mindset, they open doors to unexpected opportunities and paths previously unknown.

I just keep telling myself this. Maybe you should too. 

May 19, 2024 2 minute read

The Network Topology Problem

In engineering, choosing a network topology affects the short-term and long-term operations, performance, reliability, and abilities of the network and its constituents.

Star Network

The hub and spoke model. Every connection runs through the critical hub. It’s simple to create and easy to maintain and can be efficient. The overall network remains unaffected if an outside node goes down. However, if the hub goes down, everything crashes and burns. 

If you’re the hub of your network, you are the one maintaining the direct relationships to your people. You control who and how deep the relationship. However, it puts a lot of pressure on you to manage all interactions, and can be vulnerable if you’re unavailable.

Ring Network

The loop model. Data moves in either direction serially through each node. It’s very efficient and predictable. It’s also easy to configure, create, and diagnose issues, as each node needs only know about two others. However, a single breakage brings the entire network down. 

You’re connected to a small number, and relying on the connections of your connections. Each person linked to the next can pay dividends without you. But if a single person drops the ball, or doesn’t care as much as you, the whole thing falls apart. 

Mesh Network

The distributed web model. Every device has a connection to every other device, either directly or indirectly. Mesh networks are complicated and costly to create and diagnose issues but offer superior resilience. Nothing can bring the entire network down. 

You’re part of a larger web of interconnected contacts. Each person is not only linked to you but also to each other. This creates a robust network where referrals and recommendations can flow freely, increasing your reach and resilience. But it requires more effort to build and maintain.

Which One?

Any of these topologies can bring you success. However, only the mesh network can help you knock it out of the park.

How will you build your mesh network?

May 18, 2024 2 minute read

Too Many Ice Cream Flavors

My 19-year-old son and I were in the grocery store recently, and he said to me, “Hey, Dad, don’t you think the number of ice cream flavors has exploded since I was a little kid? It’s crazy how many there are.”

He’s right. It’s crazy. 

My Dad always talked about setting up an ice cream stand on the boardwalk at the beach with only two choices: vanilla or chocolate. And every scoop is served in a cone. No dishes here. 

He’d smile, actually relish, as he could picture the conversation with the customer who asked for something off-script, “But don’t you have anything else? What about mint chocolate chip?”

“We got vanilla, and we got chocolate. Which would you like?”

He loved talking about that. 

Vanilla and chocolate are by far the most popular ice cream flavors in America, and have been since the beginning. Most people choose one, even when presented with a potpourri of other choices. 

So why all the flavors?

Do more flavors help the ice cream industry as a whole sell more ice cream? Do you, as an ice cream retailer, need to stock a million flavors? Can you build a better business with more choices?

I don’t know. Maybe. 

I do know, however, that the number of choices, not just in ice cream but in all things, has increased exponentially over the last 50 years. That has split markets into ever-decreasing niches.

In a world of endless choices, find the one that you can most delight your people with, and focus there.

May 17, 2024 1 minute read

Tap into Why

When you’re stuck, frustrated, or feeling like you might not be able to, start asking more questions. Specifically the why questions.

Why are you working on this project?
Why are you trying to start a company?
Why are you spending time on this task?
Why are you designing it for that platform?
Why would someone care?
Why do you care?

At the end of the day, it’s the why that matters. 

May 16, 2024 2 minute read

Working Hard or Hardly Working

“Hey, Bob! Great to see you. How’ve you been? Working hard or hardly working?”

Sometimes, we use time to determine the answer.

“Boss said we could have as much overtime as we want. I’ve been pulling double-shifts.”
“We gotta ship next week. I’ve been sleeping at the office twice a week.”

Sometimes, we use physical effort.

“It’s mulch season. By the end of the day, my crew is a dishrag.”
“That fire last night was the most intense I’ve been on. The EMTs had to give me oxygen at one point.”

Sometimes, we use the complexity.

“I’ve been working on this algorithm for days and I still don’t have it yet.”
“I have a patient with something I’ve never seen before. I’ve been talking with experts across the globe to figure out the best treatment.”

Sometimes, we use the level of responsibility.

“We’re shipping next week, and it’s my butt on the line if something doesn’t work.”
“I’ve got three people on my team who are not pulling their weight. I’m gonna lose the rest of the team unless I fix the problem.”

Sometimes, we use the emotional danger.

“I’ve gotta stand in front and defend our position.”
“I’ve written the piece, but it’s so personal that I’m afraid to publish it.”

No matter what kind of work you do, you want to do the hard part. The hard part is what makes a difference. The hard part is how you separate yourself. How you stand out.

AI could never do the hard part. 

Pin It on Pinterest