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:

Sling — an elastic and a piece of wood

The Problem with Mapping

Today I spent some 3 hours looking into why I could not setup a certain field as text. The newer versions of Elassandra (ElasticSearch, really) makes use of keyword and text instead of string for text-like data. Only, by default the system sees those as list<text> and not just text. I'm not exactly sure why they do that, though.

Anyway, after many questions to Google, I found out that you have to tell the search system that your field is a singleton or it's going to view it as a container of type list. To do that, you just have to add ...

Old Directory with missing and broken directions.

Today I had a weird one.

The PHP function named stream_socket_client(), used to create a socket to communicate with another computer over a network, may return $errno = 0 and $errstr = "".

The PHP reference actually mentions the problem:

On failure the errno and errstr arguments will be populated with the actual system level error that occurred in the system-level connect() call. If the value returned in errno is 0 and the function returned FALSE, it is an indication that the error occurred before the connect() call. This is most likely due to a problem initializing the socket. ...

Puzzle with a missing piece

If you are using Apache2, you may notice that the HTTP_AUTHORIZATION is missing from the list of variables sent to you. This is because Apache2 decides to not send clear passwords (even if base64 encoded) across processes.

In the old days (and the capability is still available), Apache would call processes with command line parameters as the data, instead of having environment variables.

Unfortunately, they decided to keep things that way when they switch to FastCGI. So you do not get the Authorization header passed down to your CGI scripts. Whether you use Node.js (through CGI-Node, for ...

Heart with a Heart Beat drawn inside, looks like a computer being kept alive

Today I was curious about whether a certain server was sending me keep-alives.

The fact is that Wireshark is capable of the feat. It has access to the low level data packets and can tell you whether one of those looks like a Keep-Alive sequence (SEG.SEQ) or acknowledgement (ACK).

So if you need to know for a specific server, it's easy enough. You need to connect that specific server and look at the packets using Wireshark.

However, in software, it is not actually possible to determine whether Keep-Alives are being sent. This is because the TCP stack just answers to a signal with a ...

Old buckle and padlock

Today I had a problem with letsencrypt. I did not want to give me the certificate as it could not verify the domain name I was trying to get a certificate for.

Looking into why I would get the error:

The client lacks sufficient authorization

I only found references to mainly stupid answers. Especially, answers that would tell you to create a directory under the .well-known folder as in:

http://example.org/.well-known/acme-challenge/test

Then make sure you could access "test" by going to that URL.

Sure enough that worked just fine. But it has nothing to do with ...

Once in a while, I want to create a struct which has a specific size because it has to match a file one to one.

To do that, you can use a simple trick which is to use a union instead of a struct.

union header_t
{
    char unused[total_size];
    struct
    {
        int field1;
        int field2;
        int field3;
        ...
    };
};

Note that the total size of the union may end up being more than total_size. It's up to you to assert that the size does not go over. However, this is an easy way to create a struct which has a hard coded size. However, it will not be ...

A treasure chest full of coins, jewels, and ornaments.

Become a pro in no timeIntroduction

As I am now using git, I like to create my own repositories. In most cases the documentation is not that easy to follow. Here are the instructions I use depending on the type of repository I want to save my work in.

Personal Setup

First of all, I setup my own personal configuration (it can be used as a global setup for you). This is written in the ~/.getconfig and looks like this:

[user]
    name = AlexisWilke
    email = me@my-top-secret-email-address.com
[core]
    excludesfile = ~/.gitignore
    editor = vim
[push]
    default = simple
[giggle]
    ...

Example of values going Up and Down with red/green and neutral (Black) colors

Introduction

This is not the first time I try to look into getting a color in a cell when the value of the cell is such and such, not just smaller than 0 and it becomes [RED]... which is a default available in your formula.

The fact is that you need to create styles that you're going to reference either with the STYLE() function or using the Conditional Formatting window.

So...

P.S. This is only available in Calc.

Creating New Styles and Formatting

First select a cell. You probably want to use an empty cell where you can enter a number or some text and then change it's ...

A Fatal Error...

Today I found out that Qt actually checks the executable setuid flag. If that flag is set, then it generates a fatal error in your console as so:

FATAL: The application binary appears to be running setuid, this is a security hole.

Then it aborts the process as we can see on the following line:

Aborted (core dumped)

If you have core dumped turned on, then it will also generate a core dump about it.

The error is very sensible and actually well explain in the documentation:

Qt is not an appropriate solution for setuid programs due to its large attack surface. However some ...

Drawing of the Wolf Susie.Jinx

Problem since Ubuntu 13.10

As I upgrade to 13.10 of Ubuntu, I'm having to do work to get my system back to normal...

Today I stumble on the fact that USB ports are now not accessible by everyone by default. So when I tried to scan a document, it told me that I had no scanners. Panic... and then I found out that the permissions were changed, widely, so only users who are root (by default) can access the scanners.

I changed the group to a group I'm in and it worked without having to reboot or relog in. However, it is not unlikely that the group won't stick... Ah! Correct! But ...

Unfreeze your Mouse when it Froze

Thank you for visiting my website.