Saturday, April 4, 2026

Everyone Needs a Miyagi: What I Understand Now About Mentorship

I have loved The Karate Kid for years, which is why I use the word "Miyagi." To me, a Miyagi is more than a teacher. He is the kind of man who shapes you by example, raises your standards, and leaves something in you that stays long after the lesson is over. Looking back now at age 67, I realize I was blessed to have that kind of influence in my own life - not once, but twice.

Pictured left to right:  Bill Wallace, me, and Reggie Wournos

The Reunion

In 2008, a bunch of us from GSE got together in Memphis for a weekend.

Most of us had not seen each other in more than 25 years. Time had done what time does. Hair was grayer. Waists were thicker. Rank was no longer something we were chasing. It was something we had already carried and put down.

But the minute we got in the same room, a lot of that disappeared.

For one weekend, we were not old men, retirees, grandfathers, or civilians. We were those same young Marines again, laughing too hard, telling old stories, and picking up right where we left off.

At some point during the weekend, I made a toast to Reggie Wournos.

I thanked him for what he had meant to me back in the early days and told him, in front of everybody, that he had been my Miyagi.

Everybody knew exactly what I meant.

If you ever served around Reggie, you knew. He was one of those Marines. Squared away. Steady. Sharp without needing to show off. The kind of man who could teach you something without making a speech about it.

My First Miyagi

When I was a young Marine on my first four-year enlistment at MCAS Tustin, Staff Sergeant Reggie Wournos was one of the men who helped shape me. He taught me the Marine Corps version of "wax on, wax off."

Not karate. Standards.

Do it again.
Do it right.
Pay attention.
Carry yourself like you belong here.
Take pride in the little things because the little things are never little for long.

He did not just bark orders and move on. He took several of us young Marines under his wing and worked on us. He expected something from us. More important, he made us expect something from ourselves.

And I was not the only one.

If you asked the enlisted Marines from Headquarters and Maintenance Squadron 16, GSE, back in those days, I think you would hear the same thing from a lot of them. Reggie had a way of leaving a mark on people.

Now, if the story ended there, it would already be a good one.

But it does not end there.

My Second Miyagi

A few years later, military life did what military life always does. People moved. Units changed. One chapter ended and another one began.

By then I was at MCAS Cherry Point, North Carolina. I had picked up a couple of promotions and was now a sergeant. I had a new boss: Gunnery Sergeant Bill Wallace.

And just like that, I had Miyagi number two.

Wallace taught me a different set of lessons.

Reggie had helped teach me how to be a young Marine. Wallace helped teach me how to carry responsibility.

He had a reputation, both inside and outside our organization, as the guy who had his stuff together. When people talked about Wallace, they did not talk about flash. They talked about confidence, competence, and trust. He was the kind of man people counted on.

And if you worked for him, you learned why.

So yes, I was lucky. Luckier than I knew at the time.

I had one Miyagi early, and then another one later.

The Realization

Back in Memphis that night, after the toast and after the laughter had died down a little, I found myself in a private conversation with Reggie.

By then, we were both retired, me as a Gunnery Sergeant and Reggie as a Chief Warrant Officer 4.

I thanked him again for being my Miyagi.

Like a humble man usually does, he tried to wave it off.

But I meant it, so I pressed the point.

Then I asked him a question I had never asked before.

"Who was your Miyagi?"

He looked at me and said, "Bill Wallace."

That stopped me cold.

In one sentence, two separate chapters of my life snapped together.

The only way I can describe it is this: it was like having a light bulb go on inside another light bulb.

First I realized Reggie had a Miyagi too.
Then I realized it was Bill Wallace, my Miyagi number two.

Out of all the people Reggie could have named, he named the one man who had later shaped me too.

That hit me hard.

Because all those years, I had thought of these as two separate blessings in my life. Two separate men. Two separate chapters.

But they were not separate.

They were connected.

What Wallace built in Reggie, Reggie helped build in others.
What one man took seriously enough to pass on, another man was humble enough to receive.
And somewhere along the line, some of it made its way into me.

What Good Mentors Do

That is what good mentors do.

They do not just help you in the moment.
They put something in you that keeps working long after they are gone.
They steady your hands.
They raise your standards.
They change the way you carry yourself.
And if you are paying attention, they become part of what you pass on to somebody else.

Everybody needs a Miyagi.

I was blessed enough to have two.
And in the end, they turned out to be part of the same light.

- Michael Riley

Friday, January 23, 2026

Low Carb Breakfast #01 - 3.2 Net Carbs

Low Carb Breakfast #01 - 3.2 Net Carbs

Yes! That's Real Buttered Toast!

You are probably thinking, "How can you have two slices of buttered toast and keep that breakfast to 3.2 net carbs?" 

The secret is Sola Low Carb bread. Before when I was doing low carb I tried a different bread (Hero). Hero bread was hard to find in local stores. When I did find a local store that carried it, it was either out of stock, or too close to the "eat by" date.

So, I stared at the bread shelf for a long time. And... I saw a huge 1G Net Carbs on a wrapper. It was a brand of bread I had not heard about - Sola

I bought a loaf.
Brought it home.
And...

I've been hooked ever since. And the best part... it's always in stock and has an extend shelf life.

1G Net Carbs Sola - Always in Stock

Sola Seeded - 1G Net Carbs

Here is the breakdown of my breakfast:

Qty Item Net Carbs
2 Hard Boiled Eggs 1.2
2 Bacon Strips 0.0
2 Slices Buttered Toast (Sola Seeded) 2.0
Total Net Carbs 3.2

My wife made hard boiled eggs yesterday, and the bacon was cooked a few days ago. I reheated the eggs and bacon in the microwave for 45 seconds on 50% power (twice). Came out perfect.

I can't express how grateful, and pleased I am to have discovered Sola bread. It really is delicious just like it says on the wrapper.



Enjoy!
Semper Fi
Gunny Mike
https://zilchworks.com



Tuesday, December 2, 2025

Delphi Tip of the Day: Editor Font > Line Height

Delphi 13 Options: Editor > Display > Font > Line Height

I recently installed Delphi 13 on my new development machine. And ever since I watch Alister Christie's Code Font video, I've been hooked on using Consolas. I like how it distinguishes between zero and capital "O".

When I brought up the options to change the editor font to Consolas I noticed a new Line Height feature. I played around with some different line heights and for me personally, I settled on 1.2 which fits my eye nicely.

Line Height of 1.2 fits my eye nicely


I don't remember seeing Line Height in Delphi 11. And a quick confirmation of the Delphi 11 IDE options proves it's not there. I installed Delphi 12 but never really used it. I did a quick check and lo and behold the Line Height feature is available in Delphi 12. I must have missed it because I totally skipped using 12 all together.

I also decided to check out if there were any other fonts I might like. Here is the list of  alternatives to Consolas that ChatGPT gave me. I tried the ones that were available in Delphi and decided to stick with Consolas.

Font What makes it good
Fira Code A modern monospaced font with programming ligatures (so =>, !=, ->, etc. can render as single, clean glyphs). Improves readability of symbol-heavy code.
JetBrains Mono Designed specifically for developers: clean shapes, tall lowercase letters (makes code easier on the eyes), and good clarity even at smaller sizes.
Hack A clean, well spaced monospaced font — good if you like clear distinction between similar characters (0 vs O, l vs 1). Good for plain-text editing or coding without fuss.
Cascadia Code Created by Microsoft for terminals/editors. Has optional ligatures and good support for modern coding environments. Works nicely for both GUI IDEs and terminals.
Source Code Pro A straightforward, clean monospaced font with consistent spacing and good legibility — useful if you prefer simplicity over styling.
Iosevka A very flexible monospaced font (lots of glyph/width/variant options), popular among people who want tight control over how their code appears.
DejaVu Sans Mono A classic, reliable open-source monospace font with wide character coverage and solid legibility — good fallback or default choice on many platforms.


Here is Alister Christie's video on code fonts I watched many years ago. Wow, this video was released in 2013.



Enjoy!
Semper Fi
Gunny Mike
https://zilchworks.com



Saturday, November 29, 2025

How Ray Konopka Improved My Delphi Code Overnight

Every now and then, you get a piece of advice that stays with you. Not because it was dramatic or complicated, but because it quietly made everything better.

Two years ago, I sent a simple question to Ray Konopka — the Ray Konopka — about his coding style. I had noticed that his Delphi method declarations didn’t look like the IDE defaults. He added spaces inside parentheses and brackets, and his code just… breathed better. It had clarity.

I finally went back and reread that email thread, and I realized something.

The guidance Ray gave me that day permanently changed how I write Delphi code.

This blog post is long overdue.

How It Started

Here is the short version of what I asked Ray. I wanted to know why his method declarations looked like this:
procedure FormCreate( Sender: TObject );

Instead of the standard IDE formatting:

procedure FormCreate(Sender: TObject);

My question was simple:
Is there a setting that does this automatically? And why do you prefer this style?

Ray’s reply was thoughtful, detailed, and generous. And it opened my eyes to something subtle but powerful.

Why Ray Adds Spaces Inside Parentheses

Ray explained that adding a space after the opening parenthesis and before the closing parenthesis helps your eyes distinguish the method name from the parameter list. It creates a visual delimiter that makes code easier to scan.

He illustrated this beautifully by showing side-by-side method declarations from the TString class. With spacing added, the entire block becomes more readable and less cramped.

When you look at example after example, the difference becomes obvious — almost impossible to ignore.

Smart Tab: The Secret Weapon

The second thing Ray emphasized was the use of Smart Tab.

With Smart Tab enabled, wrapping long parameter lists becomes far easier and dramatically cleaner. Ray demonstrated it with a real method declaration on multiple lines, perfectly aligned with a single press of the Tab key.

After seeing that, I turned Smart Tab on — and I’ve never turned it off again.

Delphi 13 Options - Smart Tab

https://docwiki.embarcadero.com/RADStudio/Florence/e/index.php/Source_Options#Options_tab

The Three Rules That Changed My Coding Style

After just three days of practicing what Ray shared, I wrote him back with a summary of what made the biggest impact on my coding clarity. Here were the top three:

1. Smart Tab On

It makes aligning wrapped parameters effortless. This one toggle improves readability more than people realize.

2. Spaces after ( , [ and before ] , )

This small visual pause gives every method declaration and parameter list more clarity. It is now second nature for me.

3. Two blank lines between method implementations

This simple spacing rule makes code blocks easier to navigate, search through, and mentally organize. It is one of the fastest ways to reduce visual clutter.

These three rules alone made my Delphi source code noticeably cleaner.

Not fancy. Not complicated. Just better.


Ray’s Full Coding Style Guide

At the end of our email exchange, Ray did something incredibly generous. He made the full Raize Delphi Coding Style Guide available as a free PDF download.

If you want the complete reference, you can access it here:
https://raize.com/wp-content/uploads/RaizeDelphiCodingStyleGuide.pdf

This is required reading for any Delphi developer who cares about clean, consistent, readable code.

Two Years Later

I’ve been following Ray’s guidance ever since that email exchange. You’ve even seen it in the code I’ve generated or shared online — it became the standard I hold myself to.

What surprised me most is how such small adjustments created such a big improvement. Enough improvement that I felt compelled to finally write this post, two years delayed but not forgotten.

Ray — thank you for the clarity, the generosity, and the craftsmanship you bring to the Delphi community.


Enjoy!
Semper Fi
Gunny Mike
https://zilchworks.com

P.S.
Over the past two years, every time I asked ChatGPT to help me generate Delphi source code, I asked it to follow the Konopka Style Guide. It became my north star for clean, readable formatting — and even AI had to get on board.


Wednesday, November 26, 2025

Delphi Tip of the Day: Restore Tools > Manage Features... After an ISO Install

 



I recently installed Delphi 13. I went back today to install the Help and Samples and could not.

Tools > Manage Features,,, gave me the following error:



WTF! 

I remember this happening to me about 3 years ago. I was as lost today as I was back then. 

How do you recover from this?
It's 2025, how can Embarcadero still let this crap happen?


A simple dialog that says "Would you like to switch to online mode instead?" which then gracefully handles the fact that the temporary ISO directory used during the initial install is no longer available.

Aren't we paying enough money for Embarcadero to put this type of fix in place?

Anyway, I dug up the old instructions Glenn Dufke posted three years ago when this happened. And his instructions worked today, just like they did back then.


If this happens to you, here is the fix:

  1. Open an elevated Command Prompt
    Right-click Command Prompt ? Run as Administrator

  2. Navigate to your RAD Studio 13 bin folder
    cd "C:\Program Files (x86)\Embarcadero\Studio\37.0\bin"

  3. Run the command Dufke mentioned
    getitcmd.exe -c=useoffline typo
    getitcmd.exe -c=useonline


Semper Fi
Gunny Mike
https://zilchworks.com

Monday, August 18, 2025

Zilch and Delphi: Standing Strong Since 1991

 


Zilch and Delphi: Standing Strong Since 1991

I’ve heard it said that if you don’t tell your story, you may not like the story that’s been told. For more than three decades, the story of Zilch debt reduction software — built on Turbo Pascal and powered by Delphi — hasn’t really been told. Yet both Zilch and Delphi share a remarkable trait: they’ve quietly endured while so many giants of the software world have faded away.

Turbo Pascal first appeared in 1983, giving programmers an accessible, structured language at a fraction of the cost of its competitors. Three years later, in 1986, I saw Pascal for the first time when my college professor put C and Pascal source code side by side on the blackboard. The C code looked cryptic. The Pascal code? Clear as day. That choice — Pascal — shaped my entire path as a programmer.

Five years after that moment, in 1991, Zilch was born. And from the very beginning, it carried Pascal in its DNA. As Delphi evolved, Zilch evolved with it. The same clarity and stability that drew me to Pascal has allowed Zilch to keep going strong for decades.

And here’s the part I think the Delphi community will appreciate most: just as Turbo Pascal and Delphi have stood the test of time, so has Zilch. While giants like Lotus 1-2-3, Netscape Navigator, and MSN Messenger have all faded into history, Pascal/Delphi continues to endure — and so does Zilch.

👉 I just published the full story, including a list of 25+ once-dominant apps that disappeared while Zilch endured. You can read it here:
Zilch: Standing Strong Since 1991

If you’re part of the Delphi community, it would mean the world if you visited, left a comment, and helped boost the presence of this new blog. Your voice will help shine a light on one of Delphi’s quiet success stories — and on the remarkable longevity of Zilch and Delphi, standing strong together since 1991.

Semper Fi,
Gunny Mike
https://zilchworks.com


Saturday, July 26, 2025

💾 A 35-Year-Old Turbo Pascal Program Gets a Delphi 11.3 FMX Facelift

 Back in 1989, while stationed at MCAS Cherry Point as a U.S. Marine, I wrote a debt reduction program using Turbo Pascal. I called it Zilch. It was a side project—a DOS program to help people get out of debt faster by applying logic and structure to their monthly payments.

What I didn’t expect was that the program would still be alive 35 years later… and that I’d be rewriting it in Delphi 11.3 FMX to run natively on both Windows and macOS.

Today that same program—has helped over 16,000 people eliminate more than $114 million in debt. It’s been featured on Good Morning America, profiled in Military Lifestyle magazine, and used by people from all walks of life who just wanted a fair shot at financial freedom.

Turbo Pascal 1991 (640 x 480)


Delphi 5 2000 (640 x 480)


Delphi 5 2019 (640 x 480)


Delphi 11.3 FMX 2025 (Light)


Delphi 11.3 FMX 2025 (Dark)

🧰 Rewriting It with Delphi 11.3 FMX

After years of maintaining a Windows-only VCL version, I finally gave the software a full FireMonkey makeover. The new version runs beautifully on 64-bit Windows and macOS, thanks to Delphi’s powerful cross-platform capabilities.

Here’s what I used:

  • Delphi 11.3 Alexandria (FMX)

  • SQLite for local embedded storage

  • FastReport FMX for printable reports

  • Pure native code — no external dependencies, no subscriptions, no nonsense

I designed the UI using nested TLayout structures with TRectangle backgrounds and TLabel overlays for text. Simple. Clean. Predictable. Just the way I like it.

📣 Hoping to Share This Story Wider

I recently sent out a press release titled:

“Veteran’s 34-Year-Old Software Quietly Wipes Out $114M in Debt”


I'm hoping it catches the attention of journalists—not because it's flashy, but because it's quietly helped people get out of debt with logic, structure, and a clear plan.

But if the story does spread, I want the Delphi community to know this moment belongs to all of us.

I didn't build this alone.

🙏 Thank You, Delphi Community

I want to take a moment to thank the developers and authors who helped me along the way—people whose work made this possible, directly or indirectly:

  • Jeff Duntemann, whose Complete Turbo Pascal (1989) was my original gateway into programming. Without that book, none of this would have happened.

  • Ray Konopka, for his generous email responses and beautifully structured coding guidance. His style continues to shape how I write and organize code.

  • Cary Jensen, for his FireDAC and database wisdom. Cary’s knowledge and books helped me modernize the back-end without losing the software’s soul.

  • Ian Barker, for both encouragement and that persistent (okay, desperate) nudge to add a dark theme. You were right, Ian. It looks sharp. 😉

  • Andrea Magni, for Delphi GUI Programming with FireMonkey. His insights helped me tame layouts and think more visually in FMX.

  • David Cornelius, for Fearless Cross-Platform Development with Delphi. That book gave me the confidence to finally step outside of the Windows-only box.

  • Harry Stahl, for Cross-Platform Development with Delphi 10.2 and FireMonkey, which filled in several key gaps during this transition.

  • William Meyer, for Delphi Legacy Projects. His book helped me realize where I’d been going off track from the beginning—and finally set me straight in the right direction.

To all of you—thank you. Whether it was your book, your blog, your talk, or a few kind words on Twitter or in an email… you’ve helped keep ZilchWorks alive.

🧭 Final Thoughts

I’ve always believed that code should serve people—and this project has served thousands. Not because it’s cutting edge, but because it’s clear, honest, and built to last.

Delphi made that possible.

If you’re a Delphi developer with a legacy app—or a dusty old Turbo Pascal project—you don’t have to rewrite it in something new. Sometimes, all it needs is a fresh FMX coat of paint.

Thanks for reading.

Semper Fi,
Gunny Mike
https://www.zilchworks.com