RIP Ian Murdock #Debian Founder

Today is a sad day not only for the Open Source Community but for the whole humanity as well. Ian Murdock is the founder of Debian, the greatest Linux distribution ever.

I still recall the very first time I slide in my Debian Hamm cd  to install Linux back in the late 90’s. Dpkg was the package manager back then and I remember struggling with it.

From that point on, my view of the operating system has changed and my Linux education started.

Python virtualenv

During my first few weeks of learning Python, I ran into the concept of virtualenv which most experts school of thought suggest is the best way of developing with Python.

Virtualenv provides you with a sandbox which keeps your global Python installation pristine. The step is real simple. You just need to have virtualenv installed in your system and you’re good to go.

This command will create a venv directory in your current path. Inside you will find 3 sub-directories: bin, include and lib. The bin folder will have your Python executable.

The first thing you have to do is to activate that executable. You can do this in 2 ways:

If you wanted to use Python 3 instead, you can use the –python option and supply with the Python3 value or you can provide the actual Python3 executable, depending on the version which you have:

That’s all she wrote.

Git, big boss.

When I was starting my career in web development, the source code control we were using was Visual Source Safe. Partly because it was the easiest to use that we could find.

Shortly after finding out the limitations of Visual Source Safe, we switched to Visual SVN. The developers were happy making the switch. We were happy campers like the minions but something was still missing.

That’s when TFS took our attention. Our team was growing and so was the cost of licensing our developers with SVN. I was also learning new developers we bring on board are not keen with SVN but guess what? TFS.

So we were happy again, but something was still missing. We got caught up with the creating branches crossroad with TFS. It was more painful than standing on one leg and watching the Chicago Bears loose against the Packers.

Then Gru came along. And with that I meant Git. We found Big Boss!

Git just felt so natural for everyone in our team. We were using it like there’s no tomorrow. We have our senior developers playing the role of masters committing those critical changes to the master branch.

Creating branches was so fast developers were committing to them before the ink dry. Merging changes were also trivial. The features I love the most are cherry picking and switching branches.

In the production servers, our team moved away from creating backup files for rolling back. Staging changes before applying to production paved the way for stable environments.

I think development shops should have a solid source code control management process. Git should be part of the tools you should be evaluating if you don’t have one yet.

In the next post, I’ll share with you some best practices we use in-house to avoid some of the pitfalls of using Git.

If you made it this far, I’d like to share with you the .gitconfig we use heavily in our shop to improve productivity.

Here’s what I love the most:

This code compares the current branch log with the remote origin master branch. Great for comparing differences in the commits.

Enjoy. Hit me up with your comments.

Dig now Curl

You’re a developer yeah or an engineer maybe?  If you answer yes to any of this, you’ve probably used dig or it’s web equivalent  And if you are into examining HTTP headers, you’ve probably used curl as well.

Wouldn’t it be nice if there’s also a web interface to help you examine headers of your web applications? Let me be the first to tell you that there’s a new site called which actually allows you to do that.

I hope you find this tidbit of information helpful. Enjoy.

Nginx.conf reverse proxy sample configuration

Here’s an example of the nginx configuration I normally use. It includes HTTP headers which are pretty helpful when deploying web servers.

Get Docker and WordPress up in minutes

So almost everyone I know of is working on getting their solution onto Docker. I will not be talking about Docker in here today; there are tons of blogs and published content around that subject.

What I will be talking about is how to fire-up a WordPress website in minutes using Docker.


  1. You will need a linux server – I use nothing but Ubuntu 14.04 LTS
  2. You will need to have docker-compose installed in your system. If you don’t have it, you can install it using pip:
  3. You will need to have a docker-compose file. I’ve included mine in here for your reference:
    image: wordpress
    container_name: wordpress
    hostname: wordpress
    - mysql:mysql
    - "8080:80"
    image: mariadb
    MYSQL_ROOT_PASSWORD: a_sophisticated_password_here
    image: nginx
    container_name: nginx
    hostname: nginx
    - ./nginx:/etc/nginx
    - "80:80"
    - wordpress:wordpress
  4. If you notice, in my nginx section I’ve added a volumes line. What this does is I’m telling the container to map my nginx directory relative to the current path in the host to the container’s /etc/nginx directory. What my nginx directory contains is just the default files/directories of the nginx image. I just copied them to the host so I can modify it directly. You don’t really have to do this it’s just my preference.
  5. You should modify your nginx configuration related to your new wordpress website.
  6. Once you have everything setup, just run the following command:
    $ docker-compose up
  7. This will start up the process of pulling all of the images you have defined in your docker configuration file. Once all images are up, the containers will be started.
  8. Once you validated that everything is working, it’s time to start the docker containers in the background. Exit your current session by hitting Ctrl-C.
  9. Start docker-compose again in background mode:
    $ docker-compose up -d
  10. And that’s all she wrote.

I hope you learn something from this and try spinning some docker images on your own. My recommendation, try to spin up a MediaWiki website.

Hit me up with your comments.

Hello you!

Hello and welcome. I have started writing again. I will be sharing whatever I think is useful for humanity – to be read as developers. I have started putting my thoughts on paper/wiki and I thought why not start writing again.

So here we are.