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:

I have been wondering about setting up one of my computers for 2 or 3 users with 3 mice, 3 keyboards and 3 monitors.

This apparently may require 3 video boards with Ubuntu. That could be a problem with AGP, but PCI Express may work fine with that. Only problem, in most cases boards only have 2 slots these days...

Anyway, if I ever try to do that, I'll put the info here on how I got it to work... for now, you'll want to look at this page on Ubuntu:

https://help.ubuntu.com/community/MultiseatX

https://wiki.ubuntu.com/MultiseatTeam/Status

...

As I was working on a table extracted from a PDF file, I wanted to load that table in Excel. By default it would put all the fields in column A. Not good. So I put that in a text file, added a pipe at the end of each time and then join lines really quick (with vim, it's J to join lines.)

Now I had a nice .csv file, with fields separated by a pipe (|) character.

123|Something|More info|This "worked" before?!

Now, time to load that file in Excel. I tried that and it gave me everything cut in "strange" places but especially, no way to select the column separator. Why ...

In the last few days I have been working on a small project to get a really nice form for one of my sites. The form uses a lot of JavaScript for all sorts of fancy things (such as check user input to make sure we don't accept total crap such as an empty entry or just "1" as a credit card number.)

The information finds itself in an IFRAME, which was the easiest way to get the time to load at decent speed and  to better manage the form in a separate area and not the main landing page. This will make it easier to maintain the landing page itself.

however, that created ...

Large version of the waiting wheelAs I'm working on a new feature for our Snap! Website system I wanted to have a turning wheel that asks users to wait while the computer does work.

The graphic is very simple: a rectangle with a border and a background color that rotates. However, I do not have a tool (that I know of) which could create the graphics automatically. So I did it with quite a bit of manual labor, but it was fun to learn a few things along the way.

I use inkscape to create such graphics. First I created the rectangle on the left. With that I had to have it rotated going 360 degrees repeating the rectangle 24 ...

In the last 3 days I've been working on a new page and ran in some strange problem. There was an error in the console but things seemed to otherwise work just fine so I ignored it (since it wasn't in my own code...)

That error was an unhandled jQuery error which resulted in "let's stop the JavaScript at once." This meant all the page initialization failed (or did not occur.) The code was there otherwise. What give?!

The script in question was loaded from a hidden IFRAME, something like this:

  <div style="display: none;">
    <iframe ...

Today I worked a bit with jQuery to create an advanced form. Advanced just because it is tabbed and appears in a pop-up, nothing too major really. Maybe later I'll add some tests to validate the data being entered before someone can submit the form...

In any event, I ran in a problem which was to create a set of click callback functions (event handlers) and each of which should make use of a different index. So... I have 4 tabs and each one has a number: 1, 2, 3, and 4.

Say I call each one of these numbers #tab1, #tab2, #tab3, and #tab4. Now I want to create a click function on each one ...

Today I wanted to check whether a table existed in a MS-Access database from a macro define in a MS-Access module.

The test opens the specified database (databaseName) and from that object checks wether a table definition exists (name). I wonder whether there would be a better way to go through the list of items and just know whether an item with that name exists or not instead of generating an error (because the underlaying system will anyway search that list of items for the name, although it may be faster this way in visual basic.)

There is the function I wrote (sample usage: if ...

As I was working on a new Report, I had two fields with computations.

These are easy to handle, for example, for a Total you write something like this:

=[Quantity]*[Price]

And you get a product of the quantity and the price.

That works great. At first I had a very simple query and it looked like there was a problem in computed field, but I still decided to first add the WHERE clause to allow the user to limit the data to a given set of dates:

WHERE (((Invoice.CreatedDate)>=[Enter start date:])
   AND ((Invoice.CreatedDate)<=[Enter end date:]))

Notice all the parenthesis. Also ...

Introduction

These are common questions for MS-Access users:

  • How can I get the name of the currently logged on user?
  • How can I get the name of the computer the user is working on?

Both names are available in the Kernel and we can make use of a function declaration to access those names.

MS-Access Functions

To determine the name of the current user:

Private Declare Function GetUserName Lib "advapi32.dll" _
    Alias "GetUserNameA" (ByVal lpBuffer As String, nSize As Long) As Long

Public Function GetLogonName() As String
    Dim lpBuf As ...

Today I started having some problems with my tables.

I had a default value set to Now() and it would tell me that it was invalid. I removed it and the save worked.

What would really be the problem though?

The thing is the compiler is used against ALL your Visual Basic modules and if any one of them fails to compile, then you get the error. I had one error in one module. Definitions of external (DLL) functions such as GetUserName() and GetComputerName() must all appear before any function declation. I had the GetUserName() declaration such as:

Private Declare Function GetUserName Lib ...

Thank you for visiting my website.