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:

MS-Access can be programmed with VBA which is neat. I do that a lot because the default forms do not allow you to strongly verify the data validity or even better: prevent you from editing certain record because they are too old, you don't have permissions, it was already archived in some way (i.e. invoice paid), etc.

However, I often encounter problems with the focus. The main thing I do to make it as safe as possible is show or hide buttons. If you cannot activate function A, then there is no point in having a button for function A. Instead, we should hide the function A button when we ...

You can check that all the packages currently installed on a Debian system (i.e. Debian, Ubuntu, etc.) with many different tools.

Root Kits

I run rkhunter to verify for root kits.

Some hackers replace a well known command such as ls or cat with a version that takes over your computer by becoming root without your consent and then hacking your system in all sorts of ways. In most cases, just the feat of installing such a tool requires the hacker to already have root access, so it generally doesn't happen, but better safe than sorry!

File Changes

I use tripwire to verify that ...

I started the stock SeaMonkey browser by mistake as my Unity icons disappeared (i.e. seamonkey as is on my command line started /usr/bin/seamonkey which is not the correct version!) This had several bad side effects. For of all, it destroyed my bookmarks (argh!) and then it decided to install the 64bit Flash plugin. That did not work well since the version I like is a 32bit version.

Once I had the correct version started again, each time it was trying to open a Flash animation, it would be "stuck" for a few minutes, until I tried to open a page with a movie in a Flash shell. That ...

MS-Access has forms, but no real means to know whether a form exists. It looks like you could go through the list of forms (Forms.item(i)) but I'm not too sure that would work in all circumstances.

Instead, I used code I found on another site which runs a system command to determine whether a form is currently attached to a window (has a state other than zero.)

The code looks like this:

IsLoaded = False
If SysCmd(acSysCmdGetObjectState, acForm, strFormName) <> 0 Then
    If Forms(strFormName).CurrentView <> 0 Then
        IsLoaded = True
    End If
End If

The first ...

Polkit-1

This feature works along systemd and loginctl to create sessions for users and check current statuses defined in rules files. This is supposed to be enough to prevent someone from shuting down a computer from the GUI when an administrator is logged in via SSH.

Thus far, I have not been able to find a way to get that to work for like 1 year. I'm going to put information about my research. Various pages talking about, documentation, etc.

First of all, there is a manual page which is likely already installed on your system:

man pklocalauthority

Now a list of pages I have ...

As I'm slowly learning CUDA, I got some of the tests running. Those under 1_Utilities actually define the parameters (stats) of the card. There are the parameters for an NVidia Quadro 600:

Device 0: "Quadro 600"
  CUDA Driver Version / Runtime Version          5.0 / 5.0
  CUDA Capability Major/Minor version number:    2.1
  Total amount of global memory:                 1024 MBytes (1073283072 bytes)
  ( 2) Multiprocessors x ( 48) CUDA Cores/MP:    96 CUDA Cores
  GPU Clock rate:                                1280 MHz (1.28 GHz)
  Memory Clock rate:                      ...

The attached package currently includes a C function and a SIMD function that both are used to blend two images together.

At this point I do not like the fact that the result is invalid (1 off with large values—if you have an alpha of 255, then you are likely to get the source component value minus 1). Outside of that, it works nicely and it is VERY fast.

I can blend 3,300 NTSC images per second with my i5 (Intel(R) Core(TM) i5 CPU 760 @ 2.80GHz.) With my newer computers I can run 3,750 NTSC images per second. These have Xeon processors (Intel(R) Xeon(R) CPU E31220 @ 3.10GHz.) The ...

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:

tcp-bug

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 many-hits.sh to run the client many times and test the result. ...

I use subversion and once in a while I have a rather large number of changes to check in. In most cases I can just do svn diff and be done with it. But today I have changes in quite many files (12, I know, it's not that much, but still... when you're by yourself on a project...) and some of the changes were quite large.

To have something better than svn diff, I looked into the different graphical diff tools available a little while ago and I installed meld. I think that's the best I can find under Linux at this point. In my situation I can simply open the SVN diff in the current ...

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

Thank you for visiting my website.