The Linux Page
  • Yesterday I had a customer sending me emails from a different account from last time. That different account is a Yahoo! account so in general there is no problems with that.

    Yet, this one time it did not make it. One of my email filters failed. Namely, the DKIM filter. It uses the dkim library to check mail messages and make sure that they indeed originate from where they say they are from.

    It is an interesting concept. In the following figure I show the standard scenario of a hacker sending me spam and a valid domain sending me an email:

    As you can see, if I communicate with the ...

  • Today I noticed many errors on one of my websites. Looking closer into it, I noticed that the code for the mo_references Drupal module stopped working.

    It took me some time, especially because the code seemed to work just fine as all the files could easily be displayed.

    Actually, that was not the case. The unpack() character 'a', which I used, was transformed from a simple string that gets trimmed, to all the characters, including the NULL characters. Ouch! Now we have to use the 'Z' character instead.

    I use it to unpack() a tar file by loading 512 bytes of data in a ...

  • GIT

    Drupal now offers git to access its source code and 3rd party modules, themes, etc.

    The GIT system is interesting but it has a huge difference between the CVS and SVN scheme: it requires an action, such as commit, and a push. The push is what synchronize your copy with the repository. Without the push, all the actions you've been taking will have no effect (they only are on your hard drive.)

    As you will see in each project, there is a Version Control tab at the top. Clicking on it gives you most of the instructions you need to know to work with Drupal git. I will not repeat them here. The only two things I often do is commit + push and tagging (to create new official versions.)

  • Today I got a new router, a Belkin G Wireless Router, the F5D7234-4 to be precised.

    I have been looking for the IP address of the device for 30 min. It is actually specified on page 26 (i.e. the Alternate Setup Method area). The IP address is

    Very annoying since my server is also In other words, I cannot talk with my server to that darn thing!

    Well... I'll do it from another computer, but quite annoying, if you ask me!

    I have a Cayman for my Internet connection and it uses At least I find that much more practical.

    Next I wanted to setup the ...

  • Got an email from today and they mentioned a new binary editor that works under MS-Windows.

    Yes, they have one in DevStudio, but it's cumbersome to open a file in that more. You have to go through hoops and it often changes a tiny bit between versions and even just installs!

    This one's small and fast and works on large files too.

    It's called Frhed.

  • Using BIND as a Master and a Slave simultaneously

    I got BIND on two servers (the named service). Each server is at the same time a master and a slave depending on the domain name. For instance, I host on my server and on my company's server.

    Up to here, easy.

    The slaves are expected to update themselves whenever the master emits a change in a zone.

    Somehow, one of my domain names would not work at all on the slave (company's server). I searched and searched and I just couldn't find out why it was not working. Finally, I tried to search the

  • 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).

    systemd has a list of variables you can tweak using the systemctl command. To boot in ...

  • Today I got a little challenge trying to get a bar at the bottom of the SMS From Me public pages.

    I was thinking to use CSS to animate size. Already here there is a trick to know about. You cannot use the height (or width) parameter. However, you can use the max-height (max-width) to make the transition work as expected.

    So my CSS transition included the following important parameters:

      padding: 0;
      margin: 0;
      position: fixed;
      bottom: 0;
      left: 0;
      right: 0;
      max-height: 0px; /* at the start, it is hidden */
      transition: max-height ...
  • I've been working on a TCP/IP server/client with Qt and got a problem which I present in the attached package.

    The example called tcp-bug. Start it with:

    tcp-bug -s

    in one console and then start the same command without the -s in another console:


    The client (this second tcp-bug without the -s) saves the file sent by the server in /tmp/out.html and it has to be exactly the same as the example.html file in the project. If not, then the transfer failed.

    Most often, the transfer works so I wrote a script called to run the client many times and test the result. ...

  • Since December 2008, I have noticed that many RSS feeds include invalid ampersand characters. XML has a very specific way to handle the ampersand character, you have to write & and not just &. Although it is similar in HTML, in XML it is actually enforced.

    This is neat, it ensures that your files are really valid.

    [toc hide:1]