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:

Preparations after unzip

Installing SugarCRM is generally easy, but if you don't want to just make everything writable by Apache, you may find it tricky, especially if you have problems setting up the system.

First of all, you want to get the code from SourceForget.net and extract it in the root directory of the website where you want to use it. I prefer to dedicate a sub-domain name such as crm.m2osw.com to make use of SugarCRM. That way I don't have to deal with other weird things of using this under a sub-directory.

Once in there, the user and group should be a user other than ...

As I am working on my as2js compiler, I stumble on a couple of problems with the for() loop parsing because of the in keyword. That made me think and the for() statement was actually a very funny one. Yes! You can actually write something like this and it compiles:

int zero;
for(3;2;1) zero;

As you can see, all 3 entries in the for() statement are valid expressions and therefore the compiler can compile that code. This creates a loop that runs forever, similar to:

for(;;) zero;

but much less clear to read, obviously.

Now that's food for thought, isn't it?

In JavaScript, you ...

If you are using Apache and e-Commerce, you probably want to know all the details of the ciphers used by the Apache SSL module.

So listing Apache supported ciphers is done using nmap as follow:

nmap --script ssl-cert,ssl-enum-ciphers -p 443 secure.m2osw.com

This call gives you a complete list of all the ciphers currently accepted by your running version of Apache. For example, the list may look like this:

| ssl-enum-ciphers:
|   SSLv3:
|     ciphers:
|       TLS_DHE_RSA_WITH_3DES_EDE_CBC_SHA - strong
|       TLS_DHE_RSA_WITH_AES_128_CBC_SHA - strong
|       ...

Now a day, I very often lose my Gnome settings. Most of it, I couldn't care less, but a few things are very important, especially the way my windows work: I HATE it when a window comes to the front when clicked on. It is totally crazy to work that way. Gnome supports the normal X11 way but they don't use that as the default, which is sad.

So I wrote a little script in order to be able to reset my settings without having to open CCSM (the Gnome preference tool) although if you have a hard time finding what you are looking for, CCSM can be useful!

There is my current script that fixes ...

I use the Cassandra database cluster system to manage a new set of websites and once in a while I start getting many errors and the website stops working altogether.

When that happens, it is likely that Cassandra broke something in the temporary tables that it holds. The only way to go past that problem is to clear those tables. Until then, it will fail over and over again (they really would need some euristic to auto-clean up even if it means that you're losing some data.)

The command to repair the database, really quick, is as follow:

nodetool scrub snap_websites files

Note that ...

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

Foggy error reports when dealing with #PCDATA in a DTD.

If you are like me and write DTDs to check your XML files to make sure you don't have too many mistakes in them, then you probably have had this problem before.

The #PCDATA has a very special behavior and it is really restrained as follow:

  • #PCDATA must appear at the start
  • #PCDATA must be repeated from zero to infinity, so only * work with it
  • #PCDATA cannot be used with sub-groups (things between parenthesis)

Something like this:

<!ELEMENT Z (P | (#PCDATA | A | B | C)* | Q)+>

does not work because you use + and #PCDATA is within a sub-group.

What you ...

As we are working on a new website, we had a problem where a redirect would not work. I tried both: a simple Redirect and a RedirectMatch as follow:

Redirect / http://finball.m2osw.com/
RedirectMatch permanent ^(.*)$ http://finball.m2osw.com$1

Both of these entries would not work at all.

I verified, to make sure, that the alias module was turned on. It was.

ls -l /var/apache2/mods-enabled

This did list the alias.conf and alias.load entries as expected.

So? What else?

Well... This was installed on a new server and we left the default entry in there:

ls -l ...

Today I got a new video card because it looks like the old one I had was going bad. I hope that was not my KVM, although we'll see when it gets hot again, whether the video goes bouncy again or not... If not, then the old card is good for the trash (although it works in console mode just fine!)

So I got a new card. My old one was a NVidia GT 220. Fairly old model. Yes.

The new card is an NVidia GT 630 (to be precise: Asus GT630-SL-2GD3-L.)

When I tried to start X11, I saw an error (really quick) and the system did not come up. Looking closer into the matter, I could see that the NVidia ...

I use gVim all the time, I like that editor very much (emacs is just way too much, if you ask me.)

But once in a while I install a new server and by default they generally turn off the modeline feature. This is because there are potential security risks in link with that feature (i.e. vim starts running whatever script is defined in the text files that you edit...)

Anyway, I most often forget about the command to enable my:

vim: <setup>

(I most often define the tab stops, corresponding shift width and eventually the syntax of a file.)

Only, on those new servers, that doesn't ...

Unfreeze your Mouse when it Froze

Thank you for visiting my website.