As some of you that follow me may have seen, I’ve been quiet in the last week. This is/was for good reason. I’ve been a bit busy doing quite a number of things including writing more articles, some of which are more around the grey areas in development like Architecture, Methodologies of Development, Design Practices and so on. I’ve also been busy trying to get my Code Project articles completed, which I’m hoping to publish very soon. It’s been a bit strange putting these together and even though I’m going to take a while to publish all of them, they did get me to read a lot about various things and they also got me thinking about things that I’ve always done and re-evaluating those principles that I have and that most of us developers like to talk about.
So, hopefully I’ll get those done and hopefully they will get people talking a bit and I may even have some of you challenge my thoughts on some of the concepts that I’ll put out there, even though there won’t be too many new things. The idea is to start having the discussions in an open platform where everyone is on the same foot and all the different paths can be explored in an honest manner. Anyway, I’m not going to go too much into it right now… Just know that it will be coming in the next month or so and it should be interesting to hear what some of you say…
In the meanwhile I’ve just finished my article on Git-Flow called “Getting Started – Git-Flow” and I hope you’ll enjoy it. Git-Flow is a very interesting concept that builds on the powers that Git gives you, even though it can be implemented on just about any and every other Version Control System there is. So, if you were looking for a good Branching Strategy or a good process to implement for when your company/team is doing development, try it and give me some feedback to say where I can help you adopt it or where my explanations are lacking a bit.
In the meanwhile, I’m going to continue writing those other articles which will hopefully take me a bit more into the code and a bit less into the environmental things that makes our lives easier by giving business the visibility they need.
I’ve just completed another article related to Environments called “Setup – Jenkins and RVM“. In this article I take you through the setup process to get Jenkins and Ruby Version Manager (RVM) to play nice with each other. I start with the Build Server and RVM setup and then take you through to pulling your first GitHub hosted Ruby code, doing a Bundle Install and finally running a rake for your Unit Tests. I hope this will help someone out there, seeing that I have struggled to understand why things on Jenkins don’t work or why my Jenkins install doesn’t pick up that I have RVM running with the correct Rubies. It was fun and it seems to be working. So, enjoy!!!
I’ve just completed a new article called “Using – Ruby Version Manager RVM” which will be another article that I’ll refresh, change and update on a regular basis. Ruby Version Manager (RVM) is one of the best tools to use when you do Ruby Development seeing that it allows you to run multiple versions of Ruby and Gems together and to switch between these environments in an easy and straightforward way. The idea behind RVM is to have a sand-boxed environment that does not affect your system installs and can be dumped and recreated ad-hoc without having to worry that you’ll be breaking things on your system. By way of Gem Sets it also allows you to weave different Rubies together using different Gems. In all it’s an extremely powerful tool and in my upcoming article where I’ll be going into the use of Bundler and how you can use this powerful Gem with RVM, you should start seeing some of the more powerful management tools at work.
I’ve found RVM to be a life saver and can’t really imagine writing code in Ruby without it. When you start mixing in some of the other tools like Bundler, you’ll see how the power of Ruby and these tools come to life. I hope you enjoy it and that you learn something from the article and if you have feedback on the matter or if you would like me to explore certain point in more detail, please let me know.