RSS icon Articles 41 to 50

Configure VirtualBox Shared Folder as Apache Virtual Host

By Jimmy Bonney | February 27, 2013

As mentioned in the previous article, I am using a virtual machine in order to test locally a small website built with nanoc containing a couple of dynamic PHP pages. We left out with a functional VM running a LAMP stack that was setup with a shared folder between the host and the guest containing the website to test.

In this article, we’ll configure Apache on the VM in order to use this shared folder as the source for a website that can be accessed directly from the host.


Minimal LAMP Stack for Website Development

By Jimmy Bonney | February 17, 2013

Recently, I needed to have a LAMP (Linux, Apache, MySQL, PHP) environment in order to test out a few things for a website that was developed using nanoc but included a few dynamic PHP pages. While nanoc is mainly for static website, it is however flexible enough to include dynamic pages if one feels like it. The problem in this case relies in testing those dynamic components.

Even though I am using Linux on a daily basis, I didn’t deem appropriate to install a full LAMP stack just for the purpose of testing out a couple of pages. I therefore looked into some solutions providing a virtual LAMP stack that could then run inside a virtual machine - allowing me to do the development on the host system and test it on the guest one.


Extract Email Addresses from a Mailbox Hosted on CPanel

By Jimmy Bonney | December 28, 2012

If you are using CPanel default mailboxes, you may have noticed that the contacts from whom you receive emails are not added automatically in your address book on CPanel. This is not a big problem but if you are using a mail application such as Outlook / Thunderbird / Mail / … and collect multiple email addresses in this application, then there is no easy way to extract the contacts that belong to only one of your email addresses.

To better illustrate the situation, let’s assume that you are using a mail application on your computer / tablet that collects your professional ( and your personal email addresses (for instance or Usually such applications will create and maintain an address book for you but unfortunately, most of the time this is a common one that will therefore contain both your professional and personal contacts in one place. If you haven’t edited and sorted your contacts on a regular basis, then you most probably won’t be able to differentiate the professional from the personal contacts. In case you wish to send out some information to your professional network only, this might end up being a tedious work.

Everything is however not completely lost if your professional emails are hosted on a server using CPanel. Provided that all your emails are still on the server, it is possible to extract the email addresses of the different people that you have been in contact with. The following paragraphs will illustrate how to do that.


8 "Welcome" Tours for Web Applications

By Jimmy Bonney | December 1, 2012

D-Sight Web is evolving quite fast lately and as we are putting new functionalities in place, we estimated that it was time as well to bring some guidance for the users. As a first step, when new users sign up, we redirect them to a brand new home page listing the different projects that they can work on.

While this view is leaner than what we used to offer, we decided to create as well a Welcome Tour in order to introduce users to this new interface. We will re-use this component throughout the application in the future in order to bring some additional help to the different steps of the decision-making process.

In the following sections of this article, we will cover a few jQuery plugins or pure JavaScript implementation allowing to deploy tours to web application in a quick and easy way.


Identify Largest Tables in MySQL Databases

By Jimmy Bonney | November 25, 2012

Last week, as we were migrating to production the new version of our corporate web site, we came to realize that the database used on our dev / QA site had grown more than 20 times the size of the production DB.

Identifying the culprit table was however not that complicated. A simple SQL command allows to get the size of all tables in the DB:


Install GMVault on a Synology NAS - Follow-up

By Jimmy Bonney | November 17, 2012

Following the installation of a new version of the firmware on the Synology, I had to re-configure the gmail backup that I previously discussed in this article.

I took this opportunity to do two things:

  1. try out the alternative method that I suggest in order to install python easy_install tool
  2. install GMVault through the Python Package Index method

This article will be less verbose than the previous one and will mainly focus on the commands that are necessary during the installation.


Git Configuration Options

By Jimmy Bonney | November 17, 2012

For the same reason that pushed me to publish my configuration of Sublime Text 2, I will introduce my git configuration file in this article. This will allow me to import it more easily on other systems when I need it (and it might inspire someone else to use (some part of) it as well).

The current configuration (it lies in the ~/.gitconfig file in a Linux environment) can be found below and an up-to-date configuration file is available on this gist:


Configuration and Packages for Sublime Text 2

By Jimmy Bonney | November 10, 2012

It seems that within a year, Sublime Text has become one of the most loved text / code editor around here. I cannot count the number of articles that have been written about it, and it’s probably a good thing: it means that people like it… a lot.

I have been using it for some time now and I completely understand why people are so optimistic about it. Among others strong points, we can simply cite:

  • Cross platform (Windows, OSX, Linux) software
  • Configuration options for pretty much everything
  • Many, many packages to add even more functionalities


Recursively Search File and Delete Them

By Jimmy Bonney | October 15, 2012

When conflicts occur when merging files with GIT, some temporary files with the .orig extension are created.

One can easily add the *.orig extension to the .gitignore file so that these files are not commited to the remote repository. However, once the conflicts are solved, the files remain in the project directory. This is obviously not a big deal but it might result in unwanted matches when doing a global search on the project for instance.