I've created some mapping applications.

Another kernel upgrade has caused an error to occur on the console and log ever second saying "probed a monitor but no|invalid EDID". For RedHat clones the fix is to edit /etc/default/grub and add "nomodeset" to the line for GRUB_CMDLINE_LINUX. Then update grub with 'grub2-mkconfig -o /boot/grub2/grub.cfg' and reboot.

Recent kernel changes can cause VSFTP to randomly fail at the login step with the error "500 OOPS: priv_sock_get_cmd". The fix is to add the following line to vsftpd.conf:


then restart VSFTP.

Took all day to find a way to have a draggable object detect if its been moved outside of a valid droppable object and then go home:
<!doctype html>
<html lang="en">
<title>drag and drop</title>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
.dragbox { width: 50px; height: 25px; border-top: 1px solid white; }
#d1 { background: red; }
#d2 { background: orange; }
#d3 { background: yellow; }
#d4 { background: green; }
#d5 { background: blue; }
#d6 { background: indigo; }
#d7 { background: violet; }
#dropbox { width: 200px; height: 200px; border: 1px solid black; }
<script type="text/javascript" src="jquery-3.1.0.min.js"></script>
<script type="text/javascript" src="jquery-ui/jquery-ui.min.js"></script>
<script type="text/javascript">
$( init );
function init() {
  $(".dragbox").each( function( index ) {
     $( this ).draggable({
       revert: function( valid ) {
         if ( ! valid ) {
           $( this ).animate( {top: 0, left: 0}, 'slow' );
Drag into "drop here", then drag outside and colors will go home.
  <td><ul style="list-style: none;">
     <li><div class="dragbox" id="d1">red</div></li>
     <li><div class="dragbox" id="d2">orange</div></li>
     <li><div class="dragbox" id="d3">yellow</div></li>
     <li><div class="dragbox" id="d4">green</div></li>
     <li><div class="dragbox" id="d5">blue</div></li>
     <li><div class="dragbox" id="d6">indigo</div></li>
     <li><div class="dragbox" id="d7">violet</div></li>
  <td><div id="dropbox">drop here</div></td>

This is all it takes to make a bootable Linux USB stick:
dd bs=4M if=download.iso of=/dev/sd?

Mobile test = Awsome.

I was hit with the infinite reboot problem caused by Microsoft Patch KB3033929 because I dual boot Microsoft Windows and Linux. Solved it like this:
  1. boot Knoppix CD
  2. use fdisk to remove active flag from Linux partition
  3. use fdisk to add active flag to first Microsoft Windows partition, the small one
  4. boot Microsoft Windows
  5. start Windows Update
  6. click the list of important updates
  7. right click KB3033929 and set it to hidden
  8. allow the updates to install
  9. reboot to Microsoft Windows to allow the updates to complete
  10. boot Knoppix CD
  11. use fdisk to remove the active flag from the Microsoft partition
  12. use fdisk to put back the active flag on the Linux partion

The Drupal-ageddon is nasty. An SQL ingestion and your site is hosed. What went wrong:
1) Drupal developers build an SQL statement with tainted values rather than building the statement with placeholders.
2) not following the principle of least privilidge, as I've been railing about for years
a) CMS shouldn't connect as the database owner, and should use read-only connections as much as possible
b) the web server process should not have write access to the code
c) uploaded files should be cleanly separated from code
d) the login pages should be easily locked down to your home domain.

Sometimes logrotate chews up 100% cpu. Turns out some situations can cause a huge /var/lib/logrotate.status which needs to be deleted. Others have found a similar situation.

Someone else has outlined what I was trying to describe as the threats to passwords:

Interesting talk on modern development processes: Move Fast and Break Nothing.
Some ideas similar to the technique of upgrading stored passwords by changing the login code
A. If user has updated password field then use that
B. If user doesn't have updated field then create updated if old field matches.

Durn it. Spammers are running a Joe Job against me and I'm getting hundreds of bounces to message I never sent:
X-Received: by with SMTP id xv8mr42576755pab.81.1411839780497;
        Sat, 27 Sep 2014 10:43:00 -0700 (PDT)
X-Received: by with SMTP id xv8mr42576749pab.81.1411839780444;
        Sat, 27 Sep 2014 10:43:00 -0700 (PDT)
Return-Path: MYDOMAIN
Received: from ([])
        by with ESMTP id o7si496037pdl.118.2014.
        for SOMEVICTIM;
        Sat, 27 Sep 2014 10:43:00 -0700 (PDT)
Received-SPF: none ( MYDOMAIN does not designate permitted sender hosts) client-ip=;
       spf=neutral ( MYDOMAIN does not designate permitted sender hosts) smtp.mail=MYDOMAIN
Received: from ([])
Message-ID: FA33AEDEBB1740159D54E2348AFA90C6@blackpoint49
From: "Felicia" MYDOMAIN

On Celebrity Photo Hacks
  1. Most people said "don't take nude photos".
    Bzzz. Thanks for playing.
  2. Some people said "use better passwords".
    Except that the iCloud had (has?) some security mistakes which allow account hacking. Here's a description of the likely sequence of events.
  3. Others said "don't store them in the cloud".
    But it appears that most people don't know what their phones are doing.
  4. Still others said "use better passwords".
    Unless you're being targeted by the likes of Rupert Murdoch.
  5. Others said "use two phones"
    But if you don't know how to secure the first one, a second one won't do much good. Besides, if the intention is sharing, having a second non-connected one isn't of any value.

Do I care about equivalance and if f2=f2=f2 on non-fullframe cameras? Its not till quite a way into the discussion that someone points out that the confusion is because focal lengths are presented in 35mm equivalents but the f-number is not.

Struggling a work to get rid of someone's infection of Snap.Do malware. Had to use Malwarebytes Corporate, and found out about a Firefox config option that it set: about:config -> browser.newtab.url

Is the FZ1000 the camera upgrade I've been wishing for ?
  Lumix FZ200 FZ1000
sensor area (mm^2) 28 116 (4.1x)
pixel size (microns) 1.54 2.41 (1.6x)
weight (g) 588 831 (1.4x)
volume (mm^3) 1337625 1776753 (1.3x)
bulb no, manual to 60s yes, 120s
lens f2.8, 25-600 f2.8-4.0, 24-400
manual focus control wheel lens barrel
manual zoom no lens barrel
macro focus (cm) 1 3
battery life (shots) 540 360
wireless/NFC no yes
color space sRGB choose sRGB or AdobeRGB
pixels (M) 12 20
viewfinder 1,312,000 2,359,000 (1.8x)
time lapse video (fps) 1/10 1/10, intervalometer, stop motion
burst (fps) 12 continuous, 2,5,12,40,60 12 continuous, 2,7,12,50
engine Venus VII FHD newer
flash wireless source no yes
autofocus fast faster
ISO 100-3200, extend 100-6400 125-12800, extend 80-25600
slow-mo video (fps) 120, 240 120
OIS (axis) 3 5, but noisy
dark frame required optional
features   focus peak,
in camera raw,
rubber eye cup,
silent mode,
multiple exposure,
4K video

Other comparisons at FZ1000 vs FZ200 and FZ1000 vs G6 and FZ1000 vs RX100III and at .

Lots of interesting stuff on the FZ200 over at flickr.

Decades after the Modula-2 VS C safety debates we finally have people admitting to C's design flaws which can produce serious trouble.

I can confirm that DVD/BluRay burner software Cyberlink Power2Go LE crashes when a folder contains only shortcuts. This seems to be an old unfixed flaw.

How Do Passwords Get Stolen
  1. a person guesses it or watches you type it
  2. a person uses brute force to type it in
  3. a computer program uses brute force to type it in
  4. a cracker reads network traffic
  5. a cracker attack on a server gathers passwords as they arrive
  6. a cracker uses SQL injection, physical theft or some other method to obtain a copy of the stored password
  7. a keylogger program on your computer gathers typed passwords
How Does A Person Protect Against Thieft under construction...

Links to discussions on password complexity and cracking:

Prof. Jack Anderson ("its an obviosity") studied computer science before it was a science. What ever happened to him? Lets see if this gets picked up by Google.

The new Sony RX10 looks interesting. By comparison:
  Lumix FZ200 Sony RX10 Lumix G6 kit
price ($CA) 600 1400 700
sensor type 1/2.3" CMOS 1" BSI-CMOS 4/3 CMOS
sensor size (mm) 6.17 x 4.55 (area 28) 13.2 x 8.8 (area 116) 17.3 x 13 (area 225)
weight (g) 588 813 500 (390 body+110 lens)
min shutter (s) 60 30 60
max shutter (s) 1/4000 1/3200 1/4000
Leica f2.8 yes yes no
zoom 25-600 fixed 24-200 fixed µ4/3 mount, 14-42 kit
lcd articulated tilt articulated+touch
remote yes no yes
weather resistant no yes no
wifi/nfc no yes yes
slow mo video (fps) 120, 240 ? ?
time lapse video (fps) 1/10 ? ?
burst (fps) 2 to 60 ? ?
Much as the quantum mechanic in my wants a bigger sensor, I still pick my FZ200 and otherwise would pick the G6 base on price/features.

In order to get my camera's mp4 videos to play on my Android phone I used ffmpeg to reduce the size to 480x270: ffmpeg -i $in -q:a 0 -q:v 0 -s 480x270 -f mp4 -strict -2 $out

Yikes. Can't get my email because DNS lookups are not working. EasyDNS is under attack.

After reading a list of what others would like changed in an FZ200 I too would add 0) a little bigger sensor, 1) a rubber eyecup and standard holder, 2) a notch for a tripod plate, 3) an aperature smaller than f8. 4) built-in intervalometer Not interested in Wifi or GPS because they would suck the battery. Not interested in automatic EVF switch, I find it annoying.

Interesting introduction to on-line services for storing time-series sensor data.

A ha, mod_lod_dbd, an Apache module for logging to a database.

I needed a new camera better than a digital point and shoot. Being a big fan and owner of Olympus OM Systems I wanted some of those OM innovations Full frame DSLRs are expensive, huge and heavy. I was disappointed with the viewfinders of entry level DSLRs, and kit lenses are not very good. I picked a Lumix FZ200 bridge camera. A great lens and loads of features. The only thing I could want is a bigger sensor. I'll admit that I wanted a µ4/3 Limix G5, but how much for a couple of good lenses that match the FZ200.
   A few questions for Panasonic Notes: OM-2n body was 520g with dimensions 136×83×50 mm and the Zuiko 28mm f2.0 weighed 246g.

The FortiGate VPN client for Linux needs a fix for Fedora and related distros. In the file helper/ change the line:
addr=`ifconfig $ifn |grep "inet"|awk ' {print $2 }'| awk -F : '{ print $2}'`
addr=`ifconfig $ifn |grep "inet addr"|tr ':' ' '|awk '{print $3}'
Because Ubuntu, etc. ifconfig gives:
inet addr:
but newer Fedora, etc. have a space instead of a colon. And we're handling only IPv4.

How about this t-shirt "Life is waisted without anthropology.".

I've recently been having some frustration with the HRM Call Center, trying to get past the help desk mentality. In summary:
I don't want an answer. I want to get a fix to the problem.

Time for an update of my older backup media prices (click on titles to sort):
name size (GB)4 unit ($) $/GB GB/$ drive ($)
Amazon S31N/A N/A 0.142 7.142 N/A
BLU-Ray25 2 0.08 12.5 100
DAT-7272 18 0.25 4 490
DAT-160160 37 0.23 4.32 636
DAT-320320 46 0.14 6.96 1060
disk2000 80 0.04 25 N/A
DVD4.7 0.35 0.08 12.9 20
rsync.net3N/A N/A 0.802 1.252 N/A
SuperDLT320 60 0.19 5.3 719
Ultrium2400 34 0.085 11.7 1040
Ultrium3800 32 0.04 25 1238
Ultrium41600 34 0.02 47 1600
Ultrium53000 89 0.03 33 2500
1: has a fee for bandwidth
2: per month
3: assuming unlimited bandwidth
4: 2:1 compression on tapes
N/A: not applicable

A documentary on nature and the brain: Urban By Nature. The Japanese call the stress release technique "Forest Bathing".

I like this S3QL project. A filesystem front end to remote storage that supports de-dup, compression and encryption plus it handles filesystem operations such as rsync.

Tableau Software has a fabulous free interface to their data visualization tool. Reminds me of visualizations from Hans Rosling's "data bubble" and David McCandless' "data compression".

Not allowing parking on a bicycle lane is a good move, as described in the NS proposed legislation. Also agreeable is the proposed Subsection 171(3) of Chapter 293 4(d) which allows for legally avoiding "a condition on the roadway".
Update: this bill has been approved by the Queen.

I've found a bug in Apache:

I'm glad to see that Cycle Bertrand is still in business.
  I may be the only one in Nova Scotia riding one of his hand made bikes.
  Note to self: Get a jersey.

The head start formula. Give someone travelling at a speed of s a headstart of h minutes, then chase with a speed faster by e. You will catch-up in this many minutes:
sh(s/e + 1) / (s + e)

"The National" Interview with Tony Blair

Dear Tony Blair,

You've told some very big lies in the recent past. I no longer believe anything you say.

I found an article at the Ottawa Citizen on "Taking the Lane" which doesn't come to any strong conclusions.
   My experience leads me to suggest taking the lane at intersections, during slowly moving traffic, and when road conditions are unsafe.
   The clause from the Ontario traffic act discussed there is also found in the Nova Scotia Motor Vehicle Act at 171(3).

I see that the Roots Magic genealogy software people now offer a free version called Essentials. It can't do some advanced features or printing (ouch) but may be usefull as a way to distribute work across family members.
  Also interesting is that the data is saved in an SQLite database. This allows anyone to use the SQLite tools or language bindings to hack at the data.
#sqlite3 skywalker.rmgc 

sqlite> .tables
AddressLinkTable     FamilyTable          PlaceTable         
AddressTable         GroupTable           ResearchTable      
ChildTable           LabelTable           RoleTable          
CitationTable        LinkTable            SourceTable        
ConfigTable          MediaLinkTable       SourceTemplateTable
EventTable           MultimediaTable      WitnessTable       
ExclusionTable       NameTable          
FactTypeTable        PersonTable        

sqlite> .schema NameTable
RMNOCAS E, NameType INTEGER, Date TEXT, SortDate INTEGER, IsPrimary 
INTEGER, IsPrivate INTEGER, Proof INTEGER, EditDa te FLOAT, Sentence 
BLOB, Note BLOB, BirthYear INTEGER, DeathYear INTEGER );
CREATE INDEX idxGiven ON NameTable (Given);
CREATE INDEX idxNameOwnerID ON NameTable (OwnerID);
CREATE INDEX idxNamePrimary ON NameTable (IsPrimary);
CREATE INDEX idxSurname ON NameTable (Surname);
CREATE INDEX idxSurnameGiven ON NameTable (Surname, Given, BirthYear, DeathYear);

sqlite> .exit

More proof that anti-virus products have lost their usefullness. In the article "Zeus Trojan Infiltrates Bank Security Firm" from Security Fix in the Washington Post contains:
Mather said Silver Tail scanned the former employee's system with three different anti-virus tools, yet none of them detected any suspicious or hostile files. Company technicians only located the malware by conducting a manual search for telltale files most commonly associated with different Zeus variants.
I've just started playing with Radiant CMS with Passenger (i.e. mod_rails). Results are a powerful and easy content management system which is fully capable of using PostgreSQL on the backend.

"Reunion" is a a very good product for handling family trees. I have been using it since the MS-Windows 3.1 days and it's the main reason I've kept Windows98 running. The MS-Windows version was eventually dropped from development then sold to Sierra, renamed to "Generations", sold again to Broderbund, then dropped from their sales line. The last version (8.5a) for Win32 is available only from TWR Computing for the reasonable price of £19.95.
  There are some tips and bug lists available from Mike Hobart.
  The packaging says support for Windows 95/98/ME/2000/NT and a patch for Win-XP and Vista with the caveat that XP and Vista runs only as an Administrator.
  My testing shows that temporary files are written to the program files location. The following command allows a limited user to run the program (after Adminstrator installs the program and the patch):
       cacls "\Program Files\Generations" /E /G USERS:C
Running tests as a limited user with a sample data set looks like everything works fine.

I wanted a method to prevent the emptying of a database table once it has some rows:
CREATE OR REPLACE FUNCTION no_empty_tables() RETURNS "trigger" AS $_$
 rowcount integer;
  SELECT count(*) INTO rowcount FROM test_table;
  IF rowcount = 1 THEN
    raise exception 'Cannot allow empty table';
$_$ LANGUAGE plpgsql;

CREATE TRIGGER dont_allow_empty_table BEFORE DELETE ON
test_table FOR EACH ROW EXECURE PROCEDURE no_empty_tables();
That doesn't stop the use of TRUNCATE from emptying the table. But the newly released PostgreSQL 8.4 offers an "ON TRUNCATE" trigger and a TRUNCATE priv.

Trying out Movable Type Open Source as a blog engine. The database password should be protected from web browsers by hiding the configuration file once the confguration is completed. Its a well known technique.
    <Files mt-config.cgi>
       deny from all

Note to self: some articles worth keeping. top, maxima, fireHol

Lots of speculation going on about the future of Oracle and Sun. Lots of people are worried about MySQL (I would prefer if it just went away).
   MySQL doesn't have a future anyway. It is being eaten away on the top end by PostgreSQL, at the bottom end by SQLite, and on the sides by key/value pair data systems such as Bigtable and CouchDB.

Doing package updates on virtual private servers probably requires that kernel updates be skipped. On RPM based systems, one can put "exclude=kernel*" in /etc/yum.conf, or use `yum --exclude="kernel*" update`.    But what about Fuse updates matching with kernel modules ? On Linode kernel updates are ignored.

Avi Rubin and I have come to the same conclusion about Facebook privacy. They should have created a system of overlapping circles of friendship into which you can group friends. Probably something like: "immediate family", "family", "extended family", "close friends", "cow-orkers", "acquaintances", "sports teams", "school chums".

I wonder how common is it that people accidently destroy the contents of their digital camera memory ?
   My Fujifilm camera manual has two warnings. Page 21: "Images held in the camera's internal memory may be corrupted or erased due to problems such as camera faults. Save your important data to another media...". And a more serious one on page 107, the second item under "CAUTION": "Always use the FUJIFILM AC Power Adapter AC-3VX (sold separately). If the camera suddenly loses power during data exchange, the Memory Card or internal memory could be damaged.". But nobody reads manuals.
   I got bitten by that power loss problem and erased the camera's internal card. Apparenly it happens a lot on the HP and Kodak cameras that we use where I work.
   Now I always use a USB-SD card reader gadget, but worry about static electricity.
   Taking a look at some other randomly selected cameras, the Canon D10 manual under "Separately Sold Accessories" says "AC Adapter Kit ACK-DC40: This kit lets you power the camera using household power. Recommended for powering the camera for an extended period of time or when connecting to a computer." Page 140, under "Using Household Power" where the first step is to plug the data cable into the computer, says "Do not unplug the plug or power cord with the camera turned on. This could erase images you have taken or damage the camera." A ha; that looks like the warning I'm talking about. Otherwise no caution notes in the associated software manual.
   The manual for the Nikon D40 DSLR says on page 102 under "Memory Cards" "Do not remove memory cards from the camera, turn the camera off, or remove or disconnect the power source during formatting or while data are being recorded, deleted, or copied to a computer. Failure to observe these precautions could result in loss of data or in damage to the camera or card."
   Its no suprise that removing power from an active filesystem could cause partition table corruption. Camera manufacturers could at least remount the card into read-only mode while the download is in progress. Are they also stuck using FAT32 instead of some much more resiliant filesystems.

I was building a database table in which a flag column specifies one row as the default. Using PostgreSQL with a test table:
create table small_test ( name varchar(10), is_default boolean default false );
Couldn't a table constraint could be used to guarantee only zero or one rows have that flag set to true. I thought a function plus this constraint would work:
alter table small_test add constraint allow_only_one_default check (count_default_rows() < 2);
But it only kicks in after two rows have the default flag. That constraint runs before the insert so it doesn't pick up on one row already having the flag set. Setting the comparison to "< 1" doesn't really make sense. Using a custom trigger with a custom function does the trick:
create or replace function test_only_one_default() returns trigger as $_$
  rowcount integer;
  if new.is_default then
    select count(*) into rowcount from small_test where is_default;
    if rowcount > 0 then
      raise exception 'Second default setting is not possible';
    end if;
  end if;
  return new;
$_$ language plpgsql;
create trigger allow_only_one_default before insert or update on
  small_test for each row execute procedure test_only_one_default();

Later explorations lead me to a simple table constrant of a partial unique index.

The newly released RootsMagic 4 has passed my Windows XP limited user (UAC) tests. It allows the user to save files where ever they wish.

RootsMagic 3 and Legacy 7 trial versions have failed my Windows XP limited user (UAC) tests because they don't use "Application Data" locations. They use "C:\Program Files\RootsMagic" and "C:\Legacy\Data" respectively. Family Teee Maker does not have a trial version, anyhow it gets a lot of complaints from customers.

The primary lesson to be learned from the Ma.gnolia crash is not about saving point-in-time backups, but rather that MySQL tables are likely to silently and irreparably become corrupted.
  Also see the news item from Wired.

This document has good examples of how to mount a single drive from a software raid mirror.
mdadm --examine --scan /dev/hda1 |
sed 's/[a-z09-]*/&,missing/' |
cat >> /etc/mdadm/mdadm.conf
/etc/init.d/mdadm start
/etc/init.d/mdadm-raid start

Some GUI, syntax-highlighting, non-modal, programmers editors for Linux: similarily for MS-Windows: And cross-platform is Komodo Edit.

Prices of backup media (click on titles to sort):
name size (GB)4 unit ($) $/GB GB/$ drive ($)
Amazon S31N/AN/A0.1526.672N/A
1: fee for bandwidth
2: monthly fee
3: unlimited bandwidth
4: 2:1 compression on tapes
N/A: not applicable

Physics engine games: splitter and fantastic contraption

Backups are hard to get right and computers will stop working. How can everyday users protect their data.
Hard disks in external drives are still just electro-mechanical devices which will eventually fail. Similarily, flash drives can be corrupted by static charges and mechanical wear and tear (i.e. insertion torque, sitting on them, etc.), failing to "safely remove hardware". And on; not forgetting theft, fire, hurricanes, etc. depending on the importance of the data and how much you want to spend.

Any primary storage needs some backup. So if you rely on an external USB drive as a primary storage ... then I guess you need a second one to make backups.

Copying to DVD periodically is a good idea.

Other options include on-line backup. Amazon S3 is a good storage product. It's is not free, but there are lots of tools: mozy offers 2 Gb for free for home use. Some others are, Carbonite, elephantdrive,, E-Vault, etc. But on-line backup providers can go out of business making your backups disappear. OmniDrive has gone away and XDrive is kind enough to say so in advance of Jan.12/2009.

With vpsville having suffered a serious outage; I've switched VPS hosting to linode which gets a lot of good reviews.
  I would have preferred to stay with a Canadian provider, but there currently aren't any.

Ragged right or full justification ? I vote with the writer of this article that it should only be done when very good software is doing the spacing for you. That means that is shouldn't be done in generic web pages.

I've left the world of shared hosting for a virtual private server at a Canadian hosting company
  For a bit more money I get to lock down services to my own liking, get to run preferred services such as PostgreSQL, and forward DNS matches reverse DNS for www and mail.

A work related note that I had to write regarding MS-Access. I conclude that its usefull as a GUI front end to a real database system or as a small single user desktop application, but its utility stops there.
  There are other options: PostgreSQL, SQLite, DB2 Express, Oracle Express, MS-SQL Server Express and more

Regarding the MS-Access/Jet database file format, we can say that: it is not reliable, it is not scalable, it is not multi-user, it is not portable, and it is not free. Searching the Internet will help to find some evidence to back-up those claims.

Google for "access database corruption" Results 1 - 10 of about 364,000
Google for "access database limitations" Results 1 - 10 of about 634,000
An older document ( ) regarding Access97, but still available from Microsoft contains:
FAQ section summary:
Jet at best can handle 50 users and 100 mb of data.
Jet's limit is 1.2 Gb of data.
Jet can't be back'ed up while in use.
A newer Microsoft document ( ) lists limits from real life use:
"Jet can support up to 255 concurrent users, but performance of the file-based architecture can prevent its use for many concurrent users. In general, it is best to use Jet for 10 or fewer concurrent users."
This Microsoft document ( ) updated on January 24, 2007 warns against its use:
"While Microsoft Jet is consciously (and continually) updated with many quality, functional, and performance improvements, it was not intended (or architected) for the high-stress performance required by 24x7 scenarios, ACID transactions, or unlimited users, that is, scenarios where there has to be absolute data integrity or very high concurrency."
And updated on January 9, 2007 contains several red flags about corruption and performance:
"An efficiently designed database also helps reduce the risk of file corruption."

"Microsoft Jet is not intended for use with high-stress server applications, high-concurrency server applications, or 24 hours a day, seven days a week server applications. This includes server applications, such as Web applications, commerce applications, transactional applications, and messaging server applications. For these types of applications, the best solution is to switch to a true client/server-based database system, such as Microsoft Data Engine (MSDE) or Microsoft SQL Server. When you use Microsoft Jet in high-stress applications such as Microsoft Internet Information Server (IIS), you may experience any one of the following problems:
- Database corruption
- Stability issues, such as IIS crashing or locking up
- Sudden failure or persistent failure of the driver to connect to a valid database that requires re-starting the IIS service.

This link is to an article at SecurityFocus with a checklist for home computer users to be aware of tools for keeping computers secure. Very usefull. A Home User's Security Checklist for Windows.

I've decided to add a memories section to the Sydney Mines site where I will add messags which others send to me.

News on the net today that RedHat Linux is no longer available for free.
Instead there is the Fedora Project.
But Fedora:
  1. is bleading edge
  2. has very short lifespans (6 months)
  3. will recieve no RedHat quality assurance
  4. will not undergo hardware certification
I'm not the first to conclude that RedHat has dropped small businesses which cannot afford RedHat Enterprise products. I'm currently trying out SUSE.

Renowned security expert Bruce Schneier offers some tips on 'Safe Personal Computing' which are worth reading and heeding.

Yesterdays Internet troubles which even took out bank machines was reported on radio, tv and newspapers. But I really wish that the media were able to drive home the fact that the trouble was due to yet another poorly designed Microsoft product.

Added Perlfect search to my site. Easy to setup, works well, written in Perl and is GPL.

I learned that Kodachrome 25 was discontinued on May 2001. I haven't been shooting many slides these days. The good news is that Kodak E6 films have gotten a lot better in recent years, and that the E6 process is much more environmentally friendly than the Kodakrome process.

MS-InternetExplorer can be removed. This free tool does a fine job, IEradicator.

First law of optimization: Don't.
Attributed to Don Knuth.

My site has been offline for a few months due to problems at which were beyond our control. Now I've moved to hosting at and things are almost all back to normal.

RedHat asks for product suggestions. I suggested that if they made a red toque with the RedHat logo that I would certainly buy some and they would probably be popular with cold climate Linux geeks. The response I got back - "what's a toque ?". Hmmm, maybe it's a Canadian thing.

Unix design philosophy: a large number of small programs which interoperate
Microsoft style: a small number of large programs which can't interoperate
I know which path to choose.

I decided to change the design of my plain ole site which hadn't changed much since about 1995.
Today I got started.

I posted the following note on my alma mater listserv
Anyone remember the huge chess matches in the late 70s / early 80s where Prof. Dik van Kleef would take on dozens of players all at one time in Bloomfield Centre.

Prof. van Kleef (passed away a few years ago) was a visiting researcher from the Zeeman Lab in Amsterdam (split spectral lines of sodium and all that). He often spent summers in Antigonish collaborating with Dr. Y. Joshi. They published skads of papers together.
  I got to know him during the years I spend working in Dr. Joshi's lab.

I played once or twice in those simultaneous chess games. He was at the Master level, I forget his ranking, I could never win.

But I remember that I was there when someone did beat the Master, perhaps it was in the very last of those simultaneous games.
  I think the guy was a high school student at the time, and I'm also pretty sure that he went on to become an X Physics grad.
  Does anyone remember who that was ? Was it Cliff Liem, was it Allan Brent, one of the Pham brothers maybe ?

I posted the following note on my alma mater listserv
How many out there remember the refrain of the late Fr. F. Ginnivan of the Math Dept. "Read the book, it's in the book".

I never had him as a prof, but he was the chair of the dept in my grad year. Stories from long ago seem to have the same ring as recent ones; he was a pretty tough nut.

I'm not sure that I saw him smile while on campus; until the day he retired. I kid you not. Those of you who did suffer though his classes may find it hard to believe but on the day he retired he became one of the easiest going, most friendly persons you could meet.
  I was working on campus during that time. I'm pretty sure that he smiled from that day till the day he died.

He took up an interest in computers, took some classes and where would you find him most evenings, why it was in the computer labs, cheerfully helping students with their assignments.

During the winter he tried to spend time on the slopes. I remember one time when he was more than happy to share a funny story about how the slopes were so icy that he had to slide down all the way from the top on his bum and wore a hole in his pants.

Sometimes I miss Fr. Ginn.
I hope that my kids will get to know a teacher like him.

I posted the following note on my alma mater listserv
I'm interested in hearing some personal stories about the late Fr. E. Clarke of the Physics Dept.

I remember meeting him once or twice in the late 1970's, probably in the Science Library and in the then Electronics Shop.
  He was retired then, elderly but with an air of importance. I recall that others who knew him showed great respect.

I think that someone once told me that he designed the transmission facilities for CJFX Radio.
  Years later, Regis Kell told me a story of one day when CJFX was off the air. Someone called Fr. Clarke to see if he could troubleshoot the problem. He went up to the transmission tower on the highway, took a piece of wood and gave it a few bangs with a hammer to wedge it under one of the legs of the tower. Problem solved.

More years later Prof. T. Weingartshofer (I apologize for any misspelling) told me of how Fr. Clarke's research was a vital part of the international effort towards the understanding of the electron.