wxFormBuilder – on Linux!?!?

I have been programming on various operating systems for… about 20 years now. First on the Mac, then on Linux, and finally on Windows. I’ve been primarily writing code on a Windows desktop for about seven years now.

In this time, I’ve had the opportunity to try out many different GUI building applications. I’ve also skipped the GUI builder and just written an interface from scratch many times. The best option I’ve found so far is called wxFormBuilder.

I like wxFormBuilder because, among other reasons, it will generate your interface code in Python, C++, PHP, Lua, or XRC. Awesome! I like how quick it is to build something, though I do find spatial arrangement fairly annoying. It is true, however, that I’m just not a GUI person in general. I would much rather forego a mouse and use a command prompt or terminal to do pretty much anything on any system.

Anyway, for a recent project I built an interface using wxFormBuilder on Windows. Thinking I was ready to deliver, I tapped my coworker and let her know she could check it out anytime. She said, “Great, can you just put in on the Linux box out on the production floor?”

“Linux?”

“Uh, yeah. That’s what we’re using to program the product.”

“… I’ll be right back.”

I stepped back into my office and shut the door.

“Aargh.”

I had never used wxFormBuilder on Linux, nor tried to run any of my Windows applications on Linux for production. So I set about setting up a Linux machine in my office. Grabbed a spare machine and downloaded Ubuntu 20.04. Ran the install and then popped in a flash drive with my program. So many missing dependencies.

About 180 commands later, I got my program to run as expected, connecting to the database with a modified driver – I was delighted.

I skipped out to the production floor and sat down at the Linux machine there which was…Ubuntu 18.04.

Fortunately, the install was 10x easier here. For whatever reason, I only had to run about half of the commands I needed in my office. One obvious but incredibly useful tip: if you have to get a second machine set up to run whatever program that took you forever to install on some other Linux computer, run theĀ history > history.txt command to get your entire history written to a file that you can then put on a flash drive with your program and reference when you need to repeat the installation elsewhere.

Another day another victory. Another tip: enjoy the little things – small victories are still victories worth celebrating.