🧠 Leonardo Revisited via Go!

About two years ago I wrote a small Java application to convert MP4 files for use with the free version of DaVinci Resolve on Linux – named Leonardo. See, Linux users get the short end of the codec stick — the free version of DaVinci Resolve doesn’t play nice with MP4s. (Apparently, we Linux folks are still considered a niche tribe who enjoy punishment and command lines.)

On Windows or macOS, you can just drag and drop MP4s in like civilized people. But on Linux? Nope. You have to use FFmpeg, that command-line Swiss Army knife of video conversion. The full command is long enough to make your fingers file a complaint with OSHA. So, to save myself from typos and creative cursing, I wrote a Java GUI app to do it for me.

I like Java because of its ā€œwrite once, run anywhereā€ philosophy — as long as you have a compatible Java Virtual Machine (JVM), your app just works. And indeed, my little converter worked beautifully… with a few caveats:

  • Anyone you share it with must be running the same OpenJDK version (or higher), or it just sits there mocking you.
  • FFmpeg throws a tantrum if your filename has spaces. (Apparently, 2025 technology still can’t handle ā€œMy Vacation Video.mov.ā€)
  • The only sign of progress was the ā€œConvertā€ button staying pressed until the job was done. Not exactly the height of user feedback — more like a poker-faced butler silently waiting in the corner.

Still, it worked! I proudly shared it with the Linux community for free — because that’s what open-source tinkerers do when they’re proud of their offspring, flaws and all.


šŸ§‘ā€šŸ’» Enter GoLang — The Fast Kid on the Block

Fast forward a bit. My oldest son — an actual software engineer (not just a weekend hobbyist with caffeine and optimism like his old man) — tells me about a fast-growing programming language called Go, or GoLang.

It’s not brand new (born in 2007, making it barely old enough to rent a car), but it’s fast, efficient, and designed for cross-platform applications. Unlike Java, which uses a virtual machine, Go compiles directly for each operating system. Same code — just different builds. No virtual babysitters required.

Color me intrigued.


āš™ļø The Experiment Begins

So, after watching a few YouTube tutorials (and getting distracted by a video titled ā€œ10 Things You Should Never Do with FFmpegā€), I fired up Code-OSS on my trusty Garuda Dragonized Linux machine.

I knew I wanted a GUI, so the Fyne library was a must. And of course, it needed to call FFmpeg behind the scenes — no more manually typing commands longer than a CVS receipt.

Here’s the part I’ll admit publicly: I asked ChatGPT for help with running external commands and handling errors. In less than a heartbeat, it showed me exactly how to do it. Not only that — it even added a progress display while FFmpeg was working… without me asking!

At that moment, I realized two things:

  1. AI might actually deserve its hype.
  2. I’m officially out of excuses for not modernizing my old Java projects.

šŸš€ The New Leonardo

The end result? A sleek little GUI app that runs natively on Linux — no JVM, no version mismatches, no ā€œbutton-stays-pressedā€ nonsense.

There’s a new Leonardo in town — Version 8 — lightweight, efficient, and finally acting like it belongs in the 21st century.

Now if only it could grill ribs while transcoding videos, I’d call it perfect.

Leave a Reply

Your email address will not be published. Required fields are marked *