I love creating stuff, just a tool for myself, a small application for a friend, or bigger systems for clients.
When doing that, more than often I need some glue between applications or a small gear to make things work. I try to be as pragmatic as possible, so build small libraries or tools to help with that task.
Here is a non-exhaustive list of some of those tools I've created over the years.
You can visit my profile on GitHub and peek around for other projects not mentioned below.
Let's be honest, Windows was never the strongest platform for Ruby. RubyInstaller helped change that and became the primary distribution used by projects like Vagrant, Bitnami, and many others. It uses MinGW (GCC and GNU tools for Windows) to avoid the need for Visual Studio.
While I'm no longer involved with the project, the RubyInstaller2 team took the baton and continued to build and support newer versions of Ruby.
Born from the pain of having to submit patches for each Ruby gem out there, I created this tool trying to normalize the build and compilation step of C extensions used by several gems like Nokogiri, Puma, ffi, bcrypt, msgpack, sqlite3, and many others.
Because most of the Ruby developers creators of those gems didn't use Windows, rake-compiler included a functionality that allowed cross-compilation of gems from Linux or macOS to Windows. This process, along with CI configuration allowed gem authors to reduce their stress to support platforms like Windows.
rake-compiler did a lot of things, and sometimes doing all that was not well received by some developers. With gem-compiler, I decided to take a different approach: not only reduce the number of patches and modifications needed to be sent upstream — to gem authors — but also simplify the compilation process on any platform, not just Windows.