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:

As I was trying to debug a problem using an STL vector, I looked at the resulting assembly and saw this strange thing:

mov eax,dword ptr fs:[0000000h]

And a little further down, the opposite:

mov dword ptr fs:[0000000h],eax

These statements are from VC++ so the first is "put fs:[0] in eax" and the second is "save eax at fs:[0]".

Curious I looked around and found a page describing what's really hapenning. If you need to know, that's actually initializing the exception structure for this function. The fs:[0] location is where that structure pointer is saved ...

LVM today can create a mirror of your data (RAID 1) without having the need for mdraid (or hardware raid).

Problem is, I did not find any documentation that makes sense and there doesn't seem to be a graphical interface that can help you with that (at least not under Ubuntu Gnome.)

So... I decided to spend the time because that's probably less time anyway than trying to create and maintain an md device. (I did that in the old days and it's not practical at all.)

The fact is, it is rather simple, but requires quite a bit of knowledge.

Copying the Partitions Exactly

First, I ...

IMPORTANT NOTE

These are instructions for Ubuntu 10.10 and these worked in Ubuntu 12.10 (which I have now). It may break in the future though.

I generally install my Ubuntu systems using the Server version of Ubuntu because it tends to works a lot better. The result is that I don't get all the Desktop features installed by the installer. That prevents me from installing the NVidia driver automatically.

The newest drives for X.org make use of some source for the client-side driver and that requires you to install the linux source code and headers. I'm wondering if each time we ...

In order to playback a DVD you need to make use of commercial encryptions (also called codecs.) Actually Ubuntu calls them "non-free". The reality is these are patented and protected so people cannot just ripoff a DVD. Which is not true at all since pretty much any computer can play DVDs and thus can copy all the data. Anyway, because Ubuntu is by default for free software, it doesn't include all the necessary DVD stuff. This being said, they provide 100% of all the necessary code, pre-compiled and all you have to do is install it all with apt-get as follow.

(You must be root to ...

Introduction

I just faught for a few hours trying to get the WNetAddConnection2() to work in my program and found out two things that I did not see explained anywhere in the documentation...

Folder that Works

I'm not too sure whether that's a new thing at the company I worked in to implement this function or whether that's every time, although I've seen other posts on the Internet with the same sort of path so I would imagine that this is a "normal" Microsoft network feature.

The fact is that to connect you have to use the name of the server followed by some ...

That took me forever because I could not find the place where my Unity icons where to edit them in order to add the necessary LC_TIME definition. This being said, it's relatively easy except that you have no real control over the exact formt, only the locale.

So...

I created a file named starter under my thunderbird folder, if you don't have such (because you're using the stock version of thunderbird) then you may want to create a bin folder as in:

mkdir ~/bin

The starter file is just a text file with a shell script like this:

#!/bin/sh
LC_TIME=en_DK.utf8
export ...

Strangest thing happened to me today! I'm working on a project with VC 2005 (yeah! pretty old version for 2012, I know!)

I use the Search in files which usually works great but today I got this strange error:

No files were found to look in. Find was stopped in progress.

And no real reason why it would say that!?

Searched on the Internet and found a page mentioning the problem.

When searching it is possible to stop the process with Ctrl-C or Break or, it seems, Ctrl-Scroll Lock.

In my case my bag was a bit on the keyboard pressing on one or more of those keys! Moving my bag was ...

As I'm working on a server I need dates in UTC. By default, the QDateTime object generates dates in local time.

How do you change that? There is a toUTC() but my input data is already UTC so using toUTC() would mess up the date and I'd get the same result anyway.

The idea is actually pretty simple. The toUTC() creates a QDateTime object in UTC mode. This is done like this:

QDateTime utc(QDateTime().toUTC());

Now the utc object is in UTC mode and can be used with your Unix dates as in:

utc.setTime_t(time(NULL));

and the string output can be generated with toString() as in:

 ...

Just got told that one of my servers was running WebDAV. I used that before so I thought it was turned on. Checking at the server, I could not find anything about DAV that was turned on in my server...

So, how could they detect WebDAV and not me??

The fact is that by default Drupal doesn't check the HTTP query method. It should! In fact, Drupal happily answers all methods with an HTML page. So I did not have WebDAV, just a flaky CMS.

How can you test methods that your server supports?

Knowing your IP address and port, use telnet like this:

telnet IP port (i.e. telnet 1.2.3.4 80)

...

As I was porting wpkg to Windows so it would compile under Microsoft IDE version 10, I ran in a problem with variables named min and max. Windows wanted to see them as the min(a,b) and max(a,b) macros.

That started happening when I included Windows.h which I needed for handling files (CreateFileA, CloseHandle, etc.).

Since these are macros, i.e. defined with #define ..., they take priority over anything in your C++ code (since that's handled with your preprocessor.)

One way to get rid of them is to undefine those macros after the #include, something like this:

#include ...

Thank you for visiting my website.