This last week I've been enjoying working on a simple RPA (Robotic Process Automation) project built with Ruby and Docker for a potential job opportunity.

I'm new to RPA but, of course, as always with Ruby, there is a gem! Enter Watir for all your browser automation needs. The syntax is easy enough to understand and build with, plus it's still being maintained. 🤩 I'm going to do another post on using Watir and I'll link that here when it's published. But for now, this post is just some reflection on my journey in software development which I hadn't considered until submitting my final RPA project:

Not everything is Unix-based.

I imagine you know where I might be going with this. I've only ever developed on Unix-based systems because that's what I've learned on, so naturally, I've accumulated a pretty Ruby-friendly environment on my computer over the last two years. Homebrew packages get installed and forgotten, the bundle cache fills up with dozens of patched versions of gems, and the list goes on! Before you know it, you’ve built a very specialized setup and the perfect scenario to align with the quote:

But it runs fine on my local machine..?

-Every developer

And that’s exactly where my obsession with Docker and containerization comes in. Docker lets you encapsulate all project dependencies, ensuring your app behaves consistently across machines. Problem solved, right?

Well, almost… unless the target machine isn’t Unix-based.

oops!

The irony here isn’t lost on me. I spent a significant amount of time setting up Docker with a helper bash script designed for Unix systems, only to realize it’s not plug-and-play on Windows. While there are solutions for running bash scripts on Windows (like Git Bash), it’s another layer of configuration I was hoping to avoid by using Docker in the first place.

Lessons Learned

Needless to say, there were some great lessons learned during this project. I even got Ruby spinning on my old Windows laptop with the Git Bash shell to keep the command line somewhat familiar. ls and pwd don't work in the Windows Terminal! I think Ruby on Windows might be a lot of fun to explore and post about here in the future. But yeah, long story short, always be prepared to debug your code (even on different operating systems). It's as inevitable as death and taxes!


P.S.

I pledge no allegiance to a specific OS, programming language, or even an IDE. I've just use certain ones because they are familiar and if anything, this experience has piqued my curiosity about building and running software on non-Unix-based systems. I just really like software development, so wherever there's an opportunity to write some code and learn, you will see me there. 🫡

Thanks for reading, don't forget to commit early and often!