Alright, so I am loving these new tools that I am using for my personal web development. This weekend I feel like I made some big strides in my mental state of my web development. Didn’t actually get anything done as far as the look and feel of my website, however I have some new goals and just the design flow of the website, things which will really improve my development efficiency and productivity. I also learned that these free and open source tools are awesome. I don’t want to go into the details of how everything works, since there are tons of documents out there that describe everything in more detail than I care to put effort into.
VirtualBox. I knew there were ways that you could create a virtual machine and run linux or any other OS on your home machine, however I never set it up, so I wasn’t sure how well it worked or if I would want to do it. At the last Drupal meeting I attended, I heard someone mention how they want to set up their virtual box to enable some tools for Drupal, such as Drush. I also heard of Drush and saw that it seemed like a command line interface to do common things in drupal that I could do through the web interface. At work I use the command line interface for a lot of things, and I am pretty comfortable executing commands like this, and thought Drush would be useful, but didn’t think it would be useful enough to set up a Virtual machine for. Then I figured, if I can automate my update process, backup and migrate process, and just pushing my website from my localhost to dev/test/prod servers then it could be worth it. So I installed VirtualBox and put Ubuntu on it. I couldn’t be happier. I really like that I can make it full screen and have it appear as if it is my native machine. I really like installing applications and such in linux from the command line, rather than finding the executable and clicking through a bunch of prompts etc. So I had pretty much everything that was on my windows machine on the linux virtual box on day 1 as far as server/sql/php/drupal. Then I installed Drush. I was going through a bunch of tutorials and references just trying to get familiar with Drush, and I am a fan. I can see a lot of potential as far as making everything automated, or at least semi-automated. Creating scripts to do redundant tasks seems like it should be pretty simple with Drush.
Git. I have heard people talk about Git for some time now, and I understood that it was version control software, but I didn’t really look into it further than that. I also was in the mindset that in general I don’t need to merge changes often since I am the only developer of my website, and I should be able to copy and paste the files that I need to change. As you may be able to infer, this wasn’t working out as nice as I would have planned. Git comes in with tools that allow me to make super fast branches to test things even as simple as just updating my modules. It can make pushing code between dev/test/prod servers way easier, combined with Drush could be a very powerful duo that I was just not utilizing before now. So in a typical linux fashion, git install was a one line command essentially, and bam now I have a powerful version control software that has many features as the version control that I use at work all the time, for the low low price of free…I haven’t determined if I need services like github yet, as far as I can tell, it seems like I should be able to do everything locally, or on my host.
Anyways, the point of this post was just that if you had any reason for wanting to use linux over windows, I would recommend setting up a VirtualBox, it’s pretty easy and free. The other point is, if you need version control, or you can think of any reason why having multiple branches of code would be useful, then Git is amazing…and free. Git on it and let me know what you think.