Sunday, December 8, 2013

Visualization with gourse

Recently I made this visualization for contributors to for the last two years (2012-2013). This visualization was done with gource. It was a bit of hacking, so I would like to describe here how I did it.

Thursday, July 18, 2013

Cloning a B-Translator Server

Why do I need to clone a B-Translator server? An obvious reason is to have a backup server. In case that something goes wrong with the main server I can quickly switch to the backup server, until I find and fix the problem.

A clone can also be used for testing. Before applying something on the main server I can test it first on a clone/backup server.

Another reason for cloning can be load-balancing. It is possible to keep several clone servers synchronised with each-other, and then the work can be shared between them with a load balancer. I haven't tried this yet, but I think that it should work.

It can be possible and even simple to make identical clones just by copying the physical disk or the filesystem. However I prefer to build a new server from scratch and copy only the relevant data from the old server.

Friday, July 12, 2013

Easy Blogging With Emacs

Time after time I write technical blogs and articles that describe and summarise my experiences. Nowadays all the blogging sites and tools offer WYSIWYG editors. And it makes blogging so easy, right? Not for me! I always find WYSIWYG editing tedious and frustrating.

Tuesday, July 9, 2013

Using Drupal Features In B-Translator

Features are very useful for building Drupal profiles (re-usable applications). They provide a way to capture and save in code the customizations that are done to a Drupal site/application. Here I will describe how I use them in B-Translator.

Monday, July 8, 2013

Development Setup Of B-Translator

B-Translator helps to get feedback about l10n (translations of the programs). It tries to collect very small translation contributions from a wide crowd of people and to dilute them into something useful. It is developed as a Drupal7 profile and the code is hosted on GitHub. Here I describe the development setup and process that I use for this project. Most of the the tips are project specific, however some of them can be used on any Drupal project.

Monday, July 1, 2013

How To Manage Your Own Domain Name Server

In the old times (when men were real men), people used to manage their domains with their own domain name server. There is now a long time since things got easy and sweet. Nowadays you usually rely on the services provided by your ISP for managing your domain, which often means that you do everything from a nice web interfaces.

However there are people (like me) that prefer to do things the old and sweaty way, which means that you install and manage your own name server. I will describe here how I did it for myself. Actually it is not so difficult, if you know some concepts about how DNS works and you have some basic command-line skills.

Friday, June 21, 2013

Dual Boot Puppy Linux With Ubuntu

Puppy Linux is so nice that I always keep it around even if I don't need it. I have a small partition on my laptop where I install different versions of Puppy, and they co-exist with my main Ubuntu (actually Xubuntu) system. The installation is very easy.

Wednesday, June 12, 2013

How to Setup a WiFi Access Point on Ubuntu

If you have a single wired Internet connection (like in a hotel room) you can create Wireless Access Point with Ubuntu and share the Internet connection among multiple devices. This can be done very easily on Ubuntu (whatch this tutorial: It will create an ad-hoc wifi network. However ad-hoc networks are not supported in some android models, windows mobile, and iOS devices. A more universal solution is to create an Access Point (or Infrastructure, or Hotspot) wifi network. This is a bit more complicated but not so difficult. Here I will describe how to do it.

Saturday, May 4, 2013

Solving an interesting algorithmic problem

The second problem on Google CodeJam 2013, Round 1B was interesting: Problem B. Manage your Energy . The obvious solution of trying all the possible cases and combinations would not work, unless the input had very small limits (besides being not so easy to implement).

Friday, March 15, 2013

Exporting Custom Configurations From a Drupal 7 Site

After installing a Drupal7 site, I have made several configurations/customizations over time. Now I would like to export them somehow, in order to load them to another site. But the problem is that I don't remember exactly what I have done. The Features module does not help because you have to tell it exactly what to export, but I don't remember all the changes.

Friday, February 22, 2013

How to find all the modifications in the configuration of a server

I manage a virtual web server in the cloud ( where I have made lots of configurations over time: installing new packages, tweakings for optimization, changes related to security, etc. Now, if I want to build another server that has the same function and purpose as the first one, I don't remember all the things that I have touched and changed. The long and tedious way would be to go over all the installations and configurations again, and still I may miss something.

Thursday, February 14, 2013

How to set up a chroot environment for testing

Recently I have suffered a total system destruction in one of my computers. It happened while I was testing a software that I am developing, due to a simple bug. It helped me realize my lack of caution while testing unstable things, and I learned that it is always better to do the testing inside a chroot environment. Chroot’s provide isolation from the rest of the operating system, so that in case of severe errors damage can be mitigated.