Caching Nameserver using dnsmasq

dnsmasq is a lightweight, open-source DNS forwarder and DHCP server. In this article we go through how to prepare the system in order to run dnsmasq and also how to configure the latter as a caching-only DNS server. A configuration file is also provided as a drop-in replacement for the default dnsmasq.conf that ships with your system. dnsmasq is available in most Linux distributions. This article was written while using CentOS, so it is safe to say that it also fully covers RHEL, Fedora and generally the whole Red Hat family of operating systems and possibly Novell’s SLES and OpenSUSE. Small modifications of the invoked commands may be needed for Debian, Ubuntu and other systems.
read more… »

CPU Time saved by WP-Super-Cache

I needed to make some changes to the website layout this afternoon, so I turned off WP-Super-Cache for a while. As you can clearly see in the following graph the CPU time consumed by php-cgi processes increased by 2-4 times when caching was turned off between 14:00-17:00. And this increase was caused by a single WordPress installation during low traffic hours. This is one of the many reasons I love caching plugins.
read more… »

Declutter Plugin for WordPress

Web applications that add unnecessary HTTP headers or meta tags and links in the HTML HEAD section of my web pages usually make me nervous. Today, WordPress, once again, made me spend my free time trying to find which filters add such useless data in my web pages and try to remove it. Removing the meta tags and links from the HTML head was rather easy using the remove_action() function, but the HTTP headers gave me a hard time. Before giving up, I decided to search for a plugin that could possibly provide a solution. Fortunately, I discovered a great plugin, named WP-Declutter, which makes it possible to remove all that useless stuff in one go. Below, there is some information about which items I have removed.
read more… »

The G-Loaded Experiment – 5 years of tech blogging

Okay. It’s been five years since I started this website and I feel I want to share with you one or two things about it. In this post I’ll try to go back in time and write about why I started it and what this web journal has accomplished so far. I also post some thoughts about the future plans.
read more… »

Software that detects violations of open source licenses

The rules make the game. You take out the rules, the game goes up in smoke. I think it’s still fine if someone takes advantage of any inconsistencies between the rules to win the game, but cheating is completely unacceptable.
read more… »

Some Preliminary Redmine Customizations

I’ve been using Redmine for several months now. During this period of time I had the chance to evaluate most of its features. Although I still consider it one of the most feature-rich project management web applications currently available, using it on a production website revealed some weaknesses in the anti-spam area. Truth is the application lacks anti-spam features, but, on the other hand, such features most probably belong to the plugin area instead of the application core, so noone can put the blame on the core developers for not making the app spam-proof. Apart from this, I also realized that some of its templates need some improvement in some cases. Time permitting, I’ll be working on these things in the upcoming weeks and release the customizations in the form of patches that can be applied directly on the latest official release of Redmine.

PHP Interactive Interpreter

The PHP interpreter supports running it in interactive mode by using the --interactive (short equivalent: -a) command-line switch. Running an interactive PHP shell can be useful when you need to quickly try code snippets. But, for this mode to be fully functional, PHP has to be compiled with readline support. Unfortunately, on CentOS PHP has not been compiled this way.
read more… »

A change of plans regarding a web-based VCS manager

About a month ago, I had finally decided to start writing a simple web-based VCS manager. This is a project I had been thinking about for the last 2 years as a solution for source-code management at CodeTRAX.org, but I never really started development. The initial plan included support (repository creation only) for the most popular open-source version control systems, like subversion, mercurial, git, and bazaar. The VCS manager, actually a Django application, should be able to create source code repositories and manage user permissions on a per repository basis. It would also include an authentication/authorization backend for httpd, compatible with mod_wsgi‘s access control mechanisms, in order to provide controlled access to the repositories over HTTP or HTTPS. During the last days, after exploring several of the Mercurial features, I am quite certain that Mercurial includes all the necessary features to meet any requirement of CodeTRAX. So, I seriously consider dropping support for any other VCS except hg and try to make the VCS manager more hg specific. Now I realize that this should be the approach from the beginning. The needs are quite specific, so supporting several version control systems was completely unnecessary.

Started using rdiff-backup on Windows

rdiff-backup is my favorite tool for keeping backups on Linux systems. Today, I started using it on a Windows 7 desktop as well. At first, I used rdiff-backup from the cygwin project, but I soon noticed that, if I did anything else that required moderate hard disk access on the computer on which the cygwin rdiff-backup version was already running, my system suffered from random lockups. For example, if I tried to open Thunderbird, my computer froze for several minutes. I finally decided to try the native Windows release of rdiff-backup and all this strange behavior is now gone. My computer experiences no lock-ups and is usable while rdiff-backup is backing up some subdirectories of my homedir. I am not really sure what is the problem with the cygwin version. However, I intend to investigate this when I have the time, because I use cygwin for several tasks and I’d like to know about any possible incompatibility issues with current Windows versions.

From Subversion to Mercurial

I’ve been using the Subversion version control system during the last 2-3 years. Although a VCS has never been a top priority for me, it seems there is always room for version control. I ended up using it for almost everything, from simple to more complex scripts and even system configuration files in some cases. A few weeks ago I decided to switch to Mercurial. I had read about Mercurial for the first time in some mailing list messages written by Giorgos Keramidas and also in several posts about Mercurial on his blog, but it was only a few months ago when I started experimenting with it for real. Although I use many of its features, my general use of version control systems is rather basic, so do not expect any sophisticated reasons why I have decided to switch:
read more… »