The Linux Page

Help other users realize that everything is possible, especially avoiding Windows for their own personal use.

Welcome to The Linux Page

Fox Trot by Bill Amend. Click to enlarge.
Click to enlarge

This site is a collection of my own work with Linux. Certain things are easy, others take time to decipher and if I ever need to repeat the work (which usually happens!), then I need to remember everything by memory or... have a site with all the steps taken and to take again.

The following are my most recent posts:

The padlock of an old barbed wired gate

A Permission Problem

Today I noticed an error in my mail.log file about maildrop, a postfix tool, having permission problems.

The errors look like this:

Aug 22 20:58:01 snapwebsites postfix/postdrop[18189]: warning: mail_queue_enter: create file maildrop/255899.18189: Permission denied
Aug 22 20:58:01 snapwebsites postfix/postdrop[12347]: warning: mail_queue_enter: create file maildrop/524431.12347: Permission denied
Aug 22 20:58:11 snapwebsites postfix/postdrop[18189]: warning: mail_queue_enter: create file maildrop/258810.18189: Permission denied
Aug 22 20:58:11 snapwebsites ...

So many locations, you need many variables... or instead think of using one common location and find yourselves quickly every time

We have a large project named Snap! C++ which uses cmake to compile everything. It is clear that cmake is the right solution, I don't question that part even one minute. It would be a killer to try to use any other system.

Our environment is pretty large with many libraries, daemons, tools, plugins, scripts... all organized in sub-projects of one large project named snapwebsites. For example, we have the libsnapwebsites library and the snapmanager sub-projects. However, as far as cmake is concerned, this is but one project.


Well... to give you a concrete example, we have a file in ...

Address book, BIND and is an electronic address fast.

BIND Quoted String Support

I noticed a lack of description of the BIND support for strings in their documentation.

Unfortunately, there are many flags in their parser so truth be told, they support many different cases. First of all, some of the files that they parse do not support quoted strings at all. So I wanted to document what is supported:

No Strings

As I just mentioned, some files do not support strings at all. In that case, the double quote (") character is likely to be viewed as a character on its own.

Also "master" defines the double quote character as a ...

Rocket launch--installation of a service automatically starts that service under Ubuntu


In our environment, we install many daemons.

Most of these daemons are expected to be started as soon as they get installed even if they can't really run properly. For example, the snapserver needs a valid connection the snapdbproxy which requires Cassandra to be ready for the purpose. It still works since snapserver waits on a CASSANDRAREADY signal (sent by snapdbproxy through snapcommunicator.) While waiting, daemons are sleeping so they use their normal share of memory, but no CPU at all.

Now, a few of our daemons need to not be started by default. We ...

Today I got to work on a document including a few expressions (multiplications and a sum.) That was in a table that looked something like this:

Designation Price Quantity Total
Stuff #1 $10 3 $30
Thing #2 $20 0.5 $10
Other #3 $30 4 $120
Grand Total: $160

In my case, I made a copy/paste of such a table and I went ahead and deleted Thing #2 and Other #3 because I did ...

From a full hard drive to about 20% usage! All due to our MySQL script using the front host IP address.

One of our computers was setup to delete rows from a database. Anything older than 90 days should be deleted. Only the script to run that DELETE had the incorrect IP address and we weren't watching the database closely so it grew to over 107 million rows and on a small VPS that filled up the hard drive.

At that point, trying to run the DELETE command would generate this error:

ERROR 3019 (HY000) at line 1: Undo Log error: No more space left over in system tablespace for allocating UNDO log pages. Please add new data file to the tablespace or check if filesystem is full or enable ...

A bunch of fruits on a table with five smoothies

Unix in Colors

Whenever I run a command without piping it through less, I generally get colors.

This is true in this century that computer started to use more and more colors in the console. It's practical for all sorts of reasons.

However, you lose those nice colors when you want to use "less" to paginate the results. There are two reasons for that:

Terminal vs. Pipe

The fact is that many tools will check their stdout and determine whether it's a terminal or not. If not, it can generally be assumed that it's a file, a pipe, a variable, etc. and therefore a ...

A Telephone post with many lines to the surrounding homes.

I have noticed that quite a few people were trying to create UDP communication and I thought that proposing my class could help them. This is very basic as it does not define anything such as the size of a packet or any protocol to ensure arrival of the packets. However, it can be useful if you want to send a signal from one process to another, which is exactly how I use this implementation (i.e. I send a PING message to wake up a background process whenever the front end adds data to the database.)

This code is part of the Snap! C++ implementation. The latest version can be found in GitHub ...

An Ubuntu 16.04 login prompt just after boot, ready for you to log in.

As I just upgraded my 14.04 installation to 16.04, it booted right up to lightdm.

I had it properly setup to boot in a console before, but somehow it changed the behavior on me.

This is because the computer is now using systemd to boot.

I already had the GRUB variables setup as expected:


But this is not enough if you want to start in the console when running systemd (which is running since 15.04). See X11 Auto-starting for details about older versions.

systemd has a list of ...

A beautiful table ready to be server with plates, glasses, napkins, all very elegantly set.

Getting the OS

First go to and get the latest version you're interesting in. They offer server version that they support for 5 years or so. I suggest one of those if you want to run a server. This is an ISO, in generate around 600Mb so be ready to wait a few hours... Even with a really fast connection, because the transfer will be limited by the mirror in most cases.

Unless you know better, I strongly suggest you get the Ubuntu Server version. Maybe a bit more annoying to use BUT it works on ALL computers. ...

Thank you for visiting my website.