A history of website development of sofobomo.com Part II

Note: Part I here

Part II : Setting up a development environment for sofobomo.com

The question is, as a one-person team of sofobmo.com (until 2016 – when Matt joined me … Hi Matt!), how did I set up http://www.sofobomo.com, and how have I managed, updated, made changes to SoFoBoMo till now? Why, by myself of course. The site is live on a webhost. Any changes I need to make, I make it directly on the site itself – the production environment, so to speak? Are you cringing, shuddering reading this? You should be….

Crazily, until I started my job as a front end engineer, I never realized the magnitude of my mistake. No development environment, no version control, none of these safeties for my baby! (Shudder…)

Back in July, when SoFoBoMo 2016 started, I vowed to myself this would change. Because Matt joined Sofobomo, and it doesn’t help a team when one person makes random changes on the website – just to try things out. And also because of the massive UI changes we need to make to the website for Sofobomo 2017 – make the site responsive, add Facebook integration, add beautiful forums, some voting scheme and other features.

So I spent some time in September, setting up a development environment on my Macbook. I had, in the past tried to use the MAMP stack, but never actually got it completely functioning – mostly because I was not as motivated. This time however, I was as highly motivated as can be, and was commited to a development environment. As of writing this, the Drupal official site seems to recommend using Virtual Box and a pre-made Vagrant setup. I decided to try this out and use Drupal-VM.

The setup was super easy – following the instructions in the quick start guide. I downloaded my production site files, downloaded the current database from the production site using the Backup and Migrate module. I then downloaded and installed Virtual Box, Vagrant and Ansible. As per the instructions, I made a copy and updated the config.yml file to point to my downloaded codebase (Drupal files) (and disabled installing a fresh Drupal instance). I also updated the config file with the downloaded database details, and enabled Adminer as one of the development dependencies. Then a “vagrant up” on the command line and waiting for everything to be installed. And finally adding the VM IP address to my hosts file and I was ready to go. Simple, easy. In fact, much easier than what I was expecting. Now, if only my shared web hosting provider would enable Drush so I can just push updates via the command line!

And so, that’s how I have a development environment for http://www.sofobomo.com. Pair it with version control with Git and backup the files in bitbucket or github, and I am ready to start making changes for SoFoBoMo 2017!

A history of website development of sofobomo.com Part I

Part I :A History of sofobomo.com (the second SoFoBoMo that is…)

For as long as I have been running SoFoBoMo 2.0… That’s not a good way to start this post is it? Let me try again…

I made the decision to restart SoFoBoMo (or start SoFoBoMo 2.0) back in mid-2013 after obsessing about it for about 8-9 months. The first and most immediate thing I needed was a website – which I decided to build by myself.

Sometime in September 2013 or so, I built a plain HTML+CSS kind of website – and realized I needed something with more features, something a little more complex like authentication and user profiles and some such.

I then spent the next 5 months building a Ruby on Rails version of the SoFoBoMo website – this without ever having understood or learnt MVC or any other software architectural patterns. Indeed, I didn’t know of such a thing as a software architectural pattern. Now that I do this for a living, I appreciate how ignorant I was, and how brave I was in my ignorance. It’s funny how you always realize how ignorant you were in the past…, and how the more you learn, the more there is to learn…

I actually had a completed RoR website by March 2014– but I rightly realized that with my limited understanding and expertise, maintenance would become a huge issue and decided to abandon it. I did learn a lot with that iteration of the website- how much I didn’t know, how much my learning methodology needed tweaking and how eager I was to learn new things. There are good things to learn about oneself, if you ask me…

At this point, I was a little panicky as I needed a website by at least October to run SoFoBoMo 2014. Actually I needed it a little earlier – to add content, to reach out to the previous SoFoBoMo participants and to add their books to this new website I was building, start a mailing list etc. So I decided to fall-back to the easiest option – to use a Content Management System.

But which one? Word Press? Joomla? Drupal? Something else? Doing some research, I had to choose between Word Press and Drupal. This choice was easy. Since I had used Word Press for various self hosted blogs and such, I picked up Drupal. One always chooses the complete unknown over something one has tried and tested before, right?

And so today’s SoFoBoMo site is in Drupal 7. (I did manage to curb my enthusiasm for the unknown and chose 7 over 8).

And that is the short history of www.sofobomo.com – at least when it comes to web development.