Guido Socher

Guido's personal home page

My blog: "No Preservatives Added"

Baie-d'Urfe history project, Richard Gregson's book about species found in Baie-d'Urfe.

My pocket watch shop: Molnija pocket watch shop, sorry, sold out.

  1. =>Online toolbox (utilities and calculators)
  2. =>A HISTORY OF THE TOWN OF BAIE-D'URFE, by Thomas Roche Lee
  3. =>shortcut to Baie-d'Urfe history pages
  4. =>Free desktop background images, nature photos
  5. =>HP calculator/RPN calculator page
  6. =>Molnija pocket watches
  7. =>Hamilton 992b railroad pocket watch
  8. =>Quartz pocket watch repair
  9. =>Guido's Quartz pocket watch collection
  10. =>Building a good sledge/toboggan
  11. =>2018: Installing xubuntu linux on a thinkpad T60
  12. =>2018: Installing ubuntu linux on a thinkpad x220
  13. =>2009, update 2017: gentoo Linux on a Lenovo thinkpad X301
  14. =>2005: gentoo 2005.1 Linux on a IBM thinkpad T43p notebook
  15. =>2004: gentoo 2004.0 Linux on an IBM Thinkpad T20 notebook
  16. =>2003: gentoo 1.4 Linux on a TP600e notebook
  17. =>Slide show on a projector with linux X11, xrandr screen configuration
  18. =>Dos boot floppies
  19. =>Archive of endangered software
  20. =>windows survival kit
  21. =>The vi editor (vim)
  22. =>Origin of the name Socher
  23. =>Button cell/watch battery cross reference
Sections on this page:
  1. ftff, ftwhich and whichman
  2. ethwireck, is a wire connected to ethX?
  3. Unicode::UTF8simple
  4. exifdate, rename digital images
  5. exiftimestamp, rename digital images
  6. HTML::TagReader web design utilities.
  7. Perl 5 Quick Reference Guides
  8. lfwmail: a light weight web mail program
  9. webgrep web utilities (now replaced by HTML::TagReader).
  10. ftdibb, a BitBang mode library for the ft232 and ft245 chips from
  11. Sine wave signal generator
  12. sled, a shutdown button for your linux server
  13. plhtml, server side scripting in perl
  14. cdspeed, reduce cdrom speed
  15. blkcrypt, des, blowfish and idea
  16. amr2wav, covert Ericsson/Nokia mobile phone recorder files into wav
  17. gpppwrap, a gtk GUI to run ppp-on/off
  18. BNG preschool
  20. wedding photo
  21. Shell, awk and Perl scripts, little GO programs, advanced linux
  22. Linux tips
  23. old Montreal map


ftff, ftwhich and whichman: fault tolerant search utilities

ftff, ftwhich and whichman are fault tolerant search utilities. whichman allows to search for man pages that match approximately the specified search key. ftff is a fault tolerant file find utility and ftwhich is a fault tolerant version for the 'which' command. The error tolerant approximate string match is based on the Levenshtein Distance between two strings. This is a measure for the number of replacements, insertions and deletions that are necessary to transform string A into string B.


ethwireck -- check if the wire in the Ethernet port is live

ethwireck can detect if the physical layer of the Ethernet is up. This can then be used in the init script for your network card to determine whether or not an interface should be brought up. You can branch then and bring e.g the cooper ethernet interface up if a wire is plugged in otherwise use wlan.

ethwireck implements basically the link state of ethtool and mii-tool in one program.

    # this is how you can use ethwireck:
    if ethwireck eth0; then
        echo "eth0: physical layer up ..."
        echo "eth0: no wire plugged"
        return 1
ethwireck may not work with all network cards. It depends on the driver. You have to try if it works on your PC


Unicode::UTF8simple - Conversions to/from UTF8 from/to charactersets

Unicode::UTF8simple provides UTF-8 conversion for perl versions from 5.00 and up. It was mainly written for use with perl 5.00 to 5.6.0 because those perl versions do not support Unicode::MapUTF8 or Encode.

Unicode::UTF8simple is written in plain perl (no C code) and will work with any Perl 5 version. It is just slightly slower than Encode.
In the CPAN perl archive UTF8simple is available at:


exifdate: sorting and renaming digital camera images by date and time

This application allows you to consistently name files taken with different cameras. It makes sorting and archiving very easy.

It is basically the same as the below exiftimestamp but it is written in C++ instead of perl. It is much easier to install because it has no dependency other than standard libraries and itself. It runs under Linux, Mac and Windows.

If you are using Windows and you are afraid of the command line then just go to your filemanager. It's drag and drop from within the graphical user interface of the filemanager:
[using exifdate under windows]
p0444.jpg -> 2014-04-19_1240-444.jpg
p0445.jpg -> 2014-04-19_1240-445.jpg

exifdate-1.7.tar.gz, 2021-03-30, 1695558 bytes

Previous versions:
exifdate-1.6.tar.gz, 2020-02-07, 1694137 bytes , as zip-archive:, 2020-02-07, 1700591 bytes
exifdate-1.5.tar.gz, 2019-08-26, 1694684 bytes , as zip-archive:, 2019-08-26, 1698121 bytes
exifdate-1.4.tar.gz, 2019-07-19, 1479809 bytes , as zip-archive:, 2019-07-19, 1485599 bytes
exifdate-1.3.tar.gz, 2019-06-08, 1473189 bytes , as zip-archive:, 2019-06-09, 1478534 bytes
exifdate-1.2.tar.gz, 2019-01-06, 1375249 bytes , as zip-archive:, 2019-01-06, 1380467 bytes
exifdate-1.1.tar.gz, 2014-05-27, 1307654 bytes , as zip-archive:, 2014-05-27, 1312993 bytes
exifdate-1.0.tar.gz, 2014-05-19, 959390 bytes , as zip-archive:, 2014-05-19, 951894 bytes

Installation and usage instructions:
Please see the README file inside the package. For more detailed documentation on how to use the exifdate command see:


exiftimestamp: perl script for sorting and renaming digital camera images by date and time

exiftimestamp is a little command line utility to rename jpg camera image files by using the exif date information inside the image.

exiftimestamp works unchanged on Linux and Mac. Windows users should take a look at the above exifdate application which can be used with "drag-and-drop" from the file manager.

USAGE: exiftimestamp [-h] filename1.jpg filename2.jpg ...
    or let the shell do the work:
USAGE: exiftimestamp *.jpg

OPTIONS: -h this help

exiftimestamp is very useful for sorting and archiving your various
digital images. The file names are constructed such that they
sort automatically by time. The date/time information is read out
of the image exif data.

The new filename will look like this:

The 3digitserial are the last 3 digits of the serial number that
the camera assigns to the image e.g pict04668.jpg

exiftimestamp-1.1.gz, 2014-05-17, 1624 bytes

Previous versions:

Installation instructions:

exiftimestamp needs a basic perl installation and Image-ExifTool. Image-ExifTool is avalable from (local copy: Image-ExifTool-9.60.tar.gz, 3821772 bytes).
  1. Install Image-ExifTool
    tar zxvf Image-ExifTool-9.60.tar.gz
    cd Image-ExifTool-9.60
    perl Makefile.PL;
    make; make test
    make install
    Image-ExifTool is now installed.
  2. download exiftimestamp, unpack it, rename it and make it executable:
    gunzip exiftimestamp-1.0.gz
    mv exiftimestamp-1.0 exiftimestamp
    chmod 755 exiftimestamp
    cp exiftimestamp /usr/bin
  3. That's it. Enjoy.


HTML::TagReader, perl extension to process html tags

HTML::TagReader is a perl extension module which allows you to read html/xml files by tag. That is: in a similar way as you can read textfiles by line with "while(<>)" you use HTML::TagReader::getbytoken to read a file by tag.

[HTML::TagReader Logo]

The HTML::TagReader package contains some applicaition programs which are very useful for web-masters. All programs start with the prefix "tr_" to make it easier to remember their names.

tr_blck is a utility to check for broken links in web-pages. blck is very fast and checks only relative links but together with tr_httpcheck it can also check for dead absolute links of protocol type http/https.

tr_httpcheck is a perl script that checks for the existence of a web-page by issuing a GET request to the web-server.

tr_llnk is a utility to build tar archives from a number of html pages. It helps you to include all images, textfiles etc.. into the tar archive. It can also be used to list all linke included in a html page.

tr_xlnk can process html files and expand links on directories. This is useful if you want to click through html files without a web-server.

tr_mvlnk modify links in html files with perl commands

tr_staticssi expand SSI directives #include virtual and #exec cmd

tr_tagcontentgrep grep for strings inside tags only.

tr_delfont delete font tags that hardcode the size or font face

tr_imgaddsize add width and height to <img src=...>

In the CPAN perl archive HTML-TagReader is available at:


Perl 5 Quick Reference Guide

The documentation tree used to contain a very good Perl Quick Reference Guide written by Johan Vromans. This this small booklet is now also available as a Pocket Reference from O'Reilly (" Since the move of documentation out of the directory tree this Quick Reference Guide is no longer part of the perl documentation.

I provide it therefore here for download. In addition you find also links to a HTML version made by Rex Swain (originally from and a pdf version.

perlref-5.004.1.tar.gz(complete booklet)
Instructions on how to print this as booklet are included in the tar file

perlref-5.004.1.pdf (pdf version)

perlref-5.004.html (HTML version)
This HTML version identical to the HTML version by Rex Swain but I corrected a number of HTML syntax faults.


lfwmail -- a light weight but full featured webmail program


lfwmail is a light weight web mail program written in perl. It will run with acceptable speed even on a Pentium 100Mhz Linux mailserver. It has just basic features and no calendar or folders but it is fully mime compatible and can handle attachments.

The code is clean and structured. The installation is straight forward and you don't need a lot of non standard modules.


webgrep, web-page search and check utilities

Note:webgrep will not be developed further. It is now replaced by Tagreader (see above).

webgrep is a set of small programs for the web-master. blnkcheck is a utility to check for broken links in web-pages. blnkcheck is very fast and checks only relative links but together with httpcheck it can also check for dead absolute links of protocol type http. httpcheck is a perl script that checks for the existence of a web-page by issuing a HEAD request to the web-server. httpcheck can also do requests via a proxy server. srcgrep is quite useful to quickly check which images are included in a web-page and to see where they come from. It searches for the <... src="..." or < ... background="..." in a web page. hrefgrep works basically like srcgrep except that it searches for < ... href=...>. taggrep is a generic grep utility to search for a given html tag. E.g to list the document title of a number of web-pages. webfgrep is a poor man's web search engine. lshtmlref is a utility to build tar archives from a number of html pages. It helps you to include all images, textfiles etc.. into the tar archive.


ftdibb, a BitBang mode library for the ft232 and ft245 chips from

[circuit diagram]
Bitbang mode is a special mode of the ftdi serial IO chips which allows you to use all 8 IO-pins either as input or output. You can query the state of each pin at any time (function ftdibb_getBitMode) An output pin can be set to 1 (=+5V) or 0 (=0V). It will stay in this state until you change it again.

This is a simple and easy to use library for linux. Examples are included.


Linux audio sine wave signal generator

sine wave
This is a software only sine wave generator. It uses the sound card of your linux computer to generate any sine wave between 50Hz and 5kHz. It is based on a piece of example code from alsa-lib.


sled, a shutdown button for your home Linux server

[circuit diagram]
A real server machine does normally not need any keyboard, monitor or mouse. It needs a good operating system, like Linux, and a network card. External devices like mouse and keyboard disturb only. With Linux running on the machine, remote administration is the best and most convenient solution. However sometimes you would like to have a little button to properly shutdown the server: sled is the solution.

sled is the driver software for a little push button to connect to your server on the serial line. You can use it to shut the machine down when needed. It has as well 2 LEDs to monitor the state of the server.

I have written an article in LinuxFocus about sled. The article describes the circuit and its functionality in detail:

2019: There is an updated version of this button.


plhtml -- server side scripting in perl

plhtml is a preprocessor for html documents. Its purpose is to simplify the work of writing large numbers of HTML documents. It acts like a compiler, i.e. you provide an input source text and plhtml produces the HTML documents. Unlike many other programs of this type plhtml does actually report the line number in the html input file if it comes across a syntax error. This makes it very easy to find faults.


cdspeed -- decrease the speed of your cdrom

Modern cdrom drives are too fast. It can take several seconds on a 60x speed cdrom drive to spin it up and read data from the drive. The result is that these drives are just a lot slower than a 8x or 24x drive. This is especially true if you are only occasionally (e.g every 5 seconds) reading a small file. This utility limits the speed, makes the drive less noisy and the access time faster. cdspeed is also very good if you prefer to listen to the musik on your mp3 CDs rather than the noise of your CD drive.

Note: recent versions of the eject command include the functionallity of cdspeed (via the -x option).


blkcrypt, three block encryption algorithms

The link below goes to a page from which you can download three programs that implement the block encryption algorithms des, blowfish and idea.
Please note that there are different legal regulations in different counties. Check first if you are allowed to download cryptographic software from that page and use it in your country.
Idea is patented in the US and can be used freely only for non-commercial purposes. THEREFORE DO NOT USE THIS SOFTWARE FOR COMMERCIAL PURPOSES.

Go to the download page:


amr2wav -- A linux shell script to convert amr files from Ericsson or Nokia phones to wav

This is a simple script based on To use it do the following:

  1. Download the amr coded C-code from (local copy: Note that this is a double zip-ed file and unpacks into the current directory. Make a sub-directory before you unzip it.
  2. cp makefile.gcc Makefile
  3. Edit Makefile and remove "-DETSI"
  4. Edit decoder.c and add at the beginning: #include "sp_dec.h"
  5. Type make to compile (this will generate the executable called decoder)
  6. cp decoder /usr/local/bin/amr_decoder
  7. Download the amr2wav shell script
  8. Save amr2wav in /usr/local/bin and make it executable (chmod 755 amr2wav)
  9. You can use the program lame to convert the .wav file then to .mp3 if you want


gpppwrap: a graphical user interface wrapper around the ppp-on/off scripts

gpppwrap is a graphical user interface to conveniently select a phone number and dial into your ISP. It's very convenient if you use different ISPs.
gpppwrap is only a wrapper around the ppp-on/ppp-off scripts and gives you therefore still the power and flexibility of these scripts. gpppwrap uses ppp-on/ppp-off perl scripts which are Set-UID root to give ordinary users the possibility to setup a ppp connection to the selected phone number. gpppwrap is based on the gtk GUI libraries.

gpppwrap is written for people who like the power and flexibility of shell and perl scripts and want at the same time an idiot proof way to connet to the internet when grandmother is using the computer.

From version 0.6 on a cgi-script called pppcontrol is included in the package. It provides the functionallity as gpppwrap and can run on a local webserver.

This package contains ready configured real "internet by call" ISPs for Germany. You can use them if you are in Germany. You just pay via your normal phone bill. No prior registration needed.
Please let me know if you have such "internet by call" ISPs also in other countries. I would like to add them.

gpppwrap-1.1.tar.gz (sources)
gpppwrap-1.0.tar.gz (sources)
Look at a screen shot of the gtk gui, gpppwrap:
Look at a screen shot of the cgi-bin, pppcontrol:


BNG, an awesome daycare on the west island

This is a really nice pre-school/part time daycare on Montreal's West-Island. Beaurepaire Preschool or "Beaurepaire Nursery Group" (BNG) is a community and volunteer supported pre-school for children from 2 to 5 years old. Everybody has only positive things to say about this small daycare.

I can really recommend BNG (that's why I put it here).

For more information see , an international Linux Magazine

Linux Focus is the multi lingual magazine about the Linux operating system. Linux Focus is managed and produced by Linux volunteers, fans and developers. There is no subscription necessary to read LF, it is freely available on the web all over the world.

Linuxfocus is no longer updated but it is an archive with a lot of information.
[linuxfocus logo]

==>Click here to download GDM and Grub background screens with a logo


Wedding of Katja and Guido

[Wedding of Katja Korn and Guido Socher] Here is a picture from our wedding (16 July 1999). More information about my wife can be found on her homepage.


Scripts: Shell/AWK/Perl, little GO programs, advanced linux commands by example

This is a collection of some Shell and Perl scripts. The scripts are most of the time plain text files. Therefore DO NOT try to download them under Windows. Windows will change the character set and some scripts will not work any longer:

Advanced unix commands by example:
Links to GO resources: Some small GO programs
  • renclean fix file names to make them more UNIX friendly


tips for Linux

Linux friendly use of the middle mouse button in firefox

Do you hate it that firefox simply opens a URL when you copy/paste data into a form and you hit accidently the body of the page rather than the input field? Here is the solution:
Navigate to about:config
search for middlemouse.contentLoadURL
set it to false

Firefox with emacs key bindings, much better

It is possible to support standard emacs key bindings for firefox. I use it all the time to change the url (crtl-a = jump to begining, crlt-u erase line, ...).

create a .gtkrc-2.0 file in your home directory and add the following in that file
include "/usr/share/themes/Emacs/gtk-2.0-key/gtkrc"
gtk-key-theme-name = "Emacs"


Old historical map of the Isles of Montreal, Canada

I have this old map of Montreal (does not have a date but it must have been drawn between 1750 and 1800 based on the details shown). It is possible that this is a copy of another more original map but it is not a modern re-print. It might be of scientific and historical interest to other people. Click on the map to get a more detailed view.
[montreal around 1800]

© Guido Socher, [Guido Socher's public key]
The page is available at: |