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:

Got an email from SourceForge.net 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.

Ubuntu (and Debian) come with many "alternatives".

The system offers many editors, browsers, compilers, shells, etc. Just have a look at the large selection under /etc/alternatives.

ls /etc/alternatives

Under Unix, one can create soft links to soft links to soft links to an actual file. The alternatives work in that way. The soft links defined in the /etc/alternatives folder are pointers that one can change to make his/her system more likeable.

To change one of these alternatives, Ubuntu offers the update-alternatives script. For example, if you don't like Nano, change your

Setup

When writing a CRON job script that you want to install under /etc/cron.*/job-name you must remember to apply the following steps:

1. Write the script and test it as root

2. Make sure to give it execution permission, usually 755

3. The ownership is expected to be root:root

4. The filename cannot include a period or the file it completely ignored

5. The script MUST start with #!/bin/sh or an equivalent (i.e. #!/bin/bash works too.)

6. Use full paths for most everything1

  • 1. Remember that the cron environment is minimal, you generally will have PATH defined and not much

Today I finally found out how to fix the path of the forums.

The name of the vocabulary is "Forums". To access it as expected in pathauto, you use [vocab-raw].

The result of [vocab-raw] is "forums" (all lowercase.)

Then, by default, pathauto adds the list of categories to the path. This is done using the [catpath-raw]. Say you have a forum named "Linux Stuff", [catpath-raw] will return "Linux Stuff" as is. This makes sense because paths on Linux are case sensitive (actually, it's the same thing with Apache wherever you are using it, although it's a

Network connections

This morning I was attacked by a robot. I quickly noticed that my websites were slow and saw a pretty large amount of traffic on port 80: 208 connections!

tcp        0      0 192.168.1.1:80          109.230.213.100:65413   ESTABLISHED
tcp      441      0 192.168.1.1:80          109.230.213.100:65445   ESTABLISHED
tcp        0      0 192.168.1.1:80          109.230.213.100:65071   TIME_WAIT 
tcp        0      0 192.168.1.1:80          109.230.213.100:65279   TIME_WAIT 
tcp      497      0 192.168.1.1:80          109.230.213.100:49326   ESTABLISHED
tcp ...

Today I discovered that I couldn't include the QDebug header file at the time I need it.

When I write in C/C++ I like to add my test libraries at the point where I'm writing the debug function I'm working on so that way I can delete it all at once.

So the skeleton of a file would look something like this:

Comment (copyright/purpose of file)

#include of all headers necessary

code

#include of debug headers

debug code

However, today I had problems compiling and/or linking doing so. The qDebug() << ... expressions did not want to work.

Moving the #include of debug headers to

I create this page to talk about the work I've done to create a small Flash animation (under 1Kb) used to play a stream of audio (most specifically, from the radio Hotmix 106.)

Ubuntu Installation

In the last few days, I've been testing SquirrelMail. It's neat. Really ugly, but neat as it is very small and still quite functional.

To install on Ubuntu, just use apt-get install as in:

apt-get install squirrelmail

The available plugins as of Ubuntu 10.04:

  squirrelmail-compatibility - SquirrelMail plugin: Let other plugins work with older/newer SM versions
  squirrelmail-decode - SquirrelMail support for decoding exotic character sets
  squirrelmail-locales - Translations for the SquirrelMail Webmail package
  squirrelmail-lockout - SquirrelMail plugin:

Of Note: This only applies to C99, not C++.

I learned something quite interesting today and wanted to keep a note of it.

Whenever I use a printf() with a format such as %ld and try to compile my code on "many" different platforms, I often get warnings on another one.

The fact is that an int, a long, a long long, an int32_t, int64_t all use a different combination depending on your platform and whether you're running in 32 or 64 bit.

So, the answer to this problem are the #define found in the inttypes.h header file:

PRId8
PRId16
PRId32
PRId64

These entries are used after

I have been wondering why gcc adds so many nop instruction in the binary code of my 64 bit programs.

The fact is that code is expected to run faster if properly aligned.

How's that?

A nop instruction does nothing, by definition: No OPeration.

On amd64, the CPU instruction cache (called L1) works by loading 16 bytes at once in the processor decoder. So if you can align your code to a 16 byte boundary, all the better. That way the instructions part of these 16 bytes will be executed at once. When you jump to a non-boundary area, the processor only executes what is left (i.e. say you jump ...

Unfreeze your Mouse when it Froze

Thank you for visiting my website.