Contents

Editorial



June 2018

This month has a more technical flavour as I discuss compiling and swapping kernels. I even revisited woof-CE which is a series of scripts to build a Puppy distro from scratch.

Although Audio Compact Discs are slowly joining the archives with 78's LP's, 45's EP's, 8 Tracks and Cassettes I'll bet many of you still have a fair collection of them. This month I am going to introduce you to two of my favourite CD rippers.

There is an exciting new distro called TazPup that has entered the playground. It's not technically a Puppy, rather Slitaz, with lots of Puppy cross breeding to make you feel at home. It is a very small and fast distro.

I have also included an article about the fetch box. I'm not sure how widely it is available overseas but it is quite popular in Australia. A fetch box is basically a Personal Video Recorder (PVR) with four tuners.

Forum member wiak has been quite prominent in the Puppy Linux Forums lately. A couple of his contributions are:

Cast2Chrome bash/gtkdialog app and Auto-build a Puppy iso; single script with optional gui




smokey01

Distro's

The Puppy Linux Discussion Forum is the main source for a lot of the information repeated here. Where appropriate, links will be provided so you can read first hand about the distribution development. This section will likely just provide highlights as a starting point.

TazPup

Written by smokey01

TazPup is being developed by forum member mistfire. After having a quick look at this in Qemu, all I can say is WOW, WOW and WOW. What a great little distro. I say little because it weighs in at only 82M which is unbelievable because it does come with quite a lot of software.

Read all about it on the Puppy Linux Forum.







Software

This months covers:

Asunder - CD ripper
RipperX - CD ripper



Asunder

Written by smokey01

Asunder has been around for many years and has been included in many Puppy distributions throughout the years. It is still one of my favourites and I still use it. It's easy to drive. Simply pop a CD into your CD/DVD drive and run asunder. It will automatically read the tracks in the CD and verify them with the CDDB on the internet displaying each song title and time. By default each song is ticked ready to rip. If you only wish to rip a single song then you need to untick the rest.



By default it can rip to WAV and MP3 format. If you wish to include other formats like OGG and FLAC you need to install
the codecs.

If your distro does not have a package for asunder you can always compile your own.

This is the asunder home page.

RipperX

Written by smokey01

RipperX is another great little audio CD ripper just like asunder. Again it's simple to use. By default ripperX does not automatically load the CDDB data. To get the track information just click on the CDDB button and it will be provided. The interface is a little different but quite similar to asunder.



If you can't find a copy for your distro go to the ripperX sourceforge page where you can
download the source and compile your own.

Tutorials


Networking a Fetch Box

Written by smokey01

Many years ago I bought a PVR (personal Video Recorder) called a TiVo. It was quite a good machine with an easy to use menu system that made it easy to drive. Recently the TiVo became unsupported which included the EPG (Electronic Program Guide). Without the guide it makes it very difficult to record your favourite programs.

A few of the large electrical stores in Australia had a scheme where they would buy back your old TiVo for $100 if you bought the new Fetch Mighty PVR for $299. I did this and I suspect many others did as well. Having bought this new shiny bit of kit I thought it would alleviate some of the annoyances I had with the TiVo, one being the lack of networking for Linux. Apparently there was windows software to fix this problem.

The Fetch box has quite a few more features than the TiVo such as four tuners instead of two. It also comes with Netflix, Stan and Youtube built in, so it smartens up your TV somewhat. Nice if you have an old dumb TV like mine. The menu system is also better than the TiVo, in my opinion anyway.

I have the fetch box connected to my main TV which means all my recordings have to be watched on the main TV. For most of the time this is not a problem unless one or more people want to watch a recorded program at the same time. Now it is possible to buy a fetch mini which will allow you to watch recorded programs on a different TV. Last time I looked the fetch mini was about $160.00 so bugger that.

Having installed the fetch mobi app on both my phone and my bride's iPad I thought this would allow one to watch the recorded programs on the mobile devices, not so. I did a lot of searching only to find it was not possible using the fetch app. I did find an app called oplayer which worked quite well but the advertisements get in the way. I know the app developers want to make some money but so many apps are crippled with advertising.

The way to get around this problem is with my favourite media player, VLC. It is available for Linux, Windows, Android and iOS.
To give my wife access to all of the recorded programs all I had to do was install VLC on her iPad. When VLC is run, simply select local network as the source. In my case it found both my Fetch Box and my external HDD plugged into my Modem/Router. From there simply drill down through the folders and watch what you want.

This may not work with all Modem/Routers but it does on mine. Mine is a Technicolour TG-789 modem/router.

Swapping the kernel

Written by smokey01

Swapping the kernel, why would I want to do that?

Probably the main reason is when using an older distro with a new computer. The older distro may not recognise some of the newer hardware, or some people just like to use the latest software available.

Swapping the kernel sounds like a very technical and difficult procedure when in fact it is quite simple when using a huge kernel package. The woof-CE development kit includes a kernel kit which provides a bunch of scripts to help you compile kernels. You may go this route if you like, but I suggest for the not so confident, simply download a huge kernel that has already been compiled.

Many huge kernels can be downloaded at ibiblio, nluug, internode, uoc and aarnet. I'm sure there are a few other mirrors as well.

Locate the directory/folder where your distro files are located. In the latest slacko-6.9.9.9 you should have about six files in that directory:

adrv_slacko_6.9.9.9.sfs
fdrv_slacko_6.9.9.9.sfs
initrd.gz
vmlinuz
puppy_slacko_6.9.9.9.sfs
zdrv_slacko_6.9.9.9.sfs

The two files you need to swap out are vmlinuz (kernel) and zdrv_slacko_6.9.9.9.sfs (external modules). Both of these files are in the huge kernel package but will likely have different names.

What I usually do is create a subdirectory alongside all the other files called original and then move the vmlinuz and zdrv_slacko_6.9.9.9.sfs files into it. I then unpack the huge kernel package into the main distro directory and rename the files to the same as the ones I just moved into /original.

Let's assume the huge kernel package was called huge-4.16.10-slack.tar.bz2. Once extracted you would find two files, kernel-modules.sfs-4.16.10 and vmlinuz-4.16.10-slacko. Rename vmlinuz-4.16.10 to vmlinuz. Rename kernel-modules.sfs-4.16.10 to zdrv_slacko_6.9.9.9.sfs. This is very important if you want your distro to boot.

Now all you have to do is reboot your computer and the new kernel and external modules should be loaded.

If you have any issues you can always boot into another distro and replace your original files from the /original directory.

Compiling

This is a good section to discuss how to compile software. Compiling is not everyone's cup of tea but the more people that can manage it, the longer life Puppy will have.

The hardest part of compiling is the build recipe as there are so many options. Let's include some proven recipes here.

You must have the devx loaded as this is where most of your compiling tools reside. In some cases you may also need to have the kernel sources loaded.

The woof-CE kernel kit

Written by smokey01

This month I am going to introduce you to the kernel kit. This is a bunch of scripts that will help you build a kernel.

Download woof-CE by clicking on the button on the page. Then click on Download ZIP link.

Extract the woof-CE-testing.zip to a Linux partition EG: Ext2, Ext3. NOT NTFS or FAT32 etc.

Enter the woof-CE-testing directory and then the kernel-kit directory. Once inside make sure you read the README file thoroughly and follow the steps.

To compile a kernel you need to have a DOTconfig file. This file turns on and off features of the kernel and determines which modules will be included in the kernal or placed in the external sfs file. There are copies of DOTconfig files included in the woof-CE package. 32 and 64bit kernels require different DOTconfig files and you will find some example in different directories. Understanding what all the options of a DOTconfig means is quite exhaustive and beyond my knowledge. I did find this page quite useful however.

Good luck.
Scripts & Code

Cast2Chrome - wiak

Cast2Chrome

Provided by forum member wiak

Cast2Chrome is a bash/gtkdialog full-featured GUI frontend to Stream2Chromecast. Basically this means you can stream your local multimedia content to a television with a chromecast device.

I, smokey01, haven't actually played with this but it looked interesting so I thought I would mention it.

Read about it here: Cast2Chrome bash/gtkdialog app on the Puppy Linux Forums.


Tips & Tricks

Tips & Tricks are simple little actions you can take to make your life easier when using Puppy. You will probably know most of the tips but there are always new users that don't.

dmidecode - system information
inxi - system information
dmidecode

Written by smokey01

Sometimes it's nice to be able to integrate your hardware without actually opening the box. Dmidecode is a nice bit of software that will do this for you. If you type dmidecode in a terminal you will be presented with a lot of information, in fact probably too much information so you can break your hardware into different types. To find out the types type dmidecode -t and you will be presented with:

# dmidecode -t
dmidecode: option requires an argument -- 't'
Type number or keyword expected
Valid type keywords are:
bios
system
baseboard
chassis
processor
memory
cache
connector
slot
#

Now lets just look at your baseboard.

# dmidecode -t baseboard
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0002, DMI type 2, 15 bytes
Base Board Information
Manufacturer: ASRock
Product Name: 970 Extreme3 R2.0
Version:
Serial Number: M80-4C023800248
Asset Tag:
Features:
Board is a hosting board
Board is replaceable
Location In Chassis:
Chassis Handle: 0x0003
Type: Motherboard
Contained Object Handles: 0


What about the processor?

# dmidecode -t processor
# dmidecode 2.12
SMBIOS 2.7 present.

Handle 0x0004, DMI type 4, 42 bytes
Processor Information
Socket Designation: CPUSocket
Type: Central Processor
Family: Unknown
Manufacturer: AMD
ID: 20 0F 60 00 FF FB 8B 17
Version: AMD FX-8370 Eight-Core Processor
Voltage: 1.4 V
External Clock: 200 MHz
Max Speed: 4000 MHz
Current Speed: 4000 MHz
Status: Populated, Enabled
Upgrade: Socket AM3
L1 Cache Handle: 0x0005
L2 Cache Handle: 0x0006
L3 Cache Handle: 0x0007
Serial Number: To Be Filled By O.E.M.
Asset Tag: To Be Filled By O.E.M.
Part Number: To Be Filled By O.E.M.
Core Count: 8
Core Enabled: 8
Thread Count: 8
Characteristics:

To find out more information about dmidecade try:

# dmidecode --help
Usage: dmidecode [OPTIONS]
Options are:
-d, --dev-mem FILE Read memory from device FILE (default: /dev/mem)
-h, --help Display this help text and exit
-q, --quiet Less verbose output
-s, --string KEYWORD Only display the value of the given DMI string
-t, --type TYPE Only display the entries of given type
-u, --dump Do not decode the entries
--dump-bin FILE Dump the DMI data to a binary file
--from-dump FILE Read the DMI data from a binary file
-V, --version Display the version and exit

A good web page about dmidecode

dmidecode source code on github

inxi

Written by smokey01

Another command line utility similar to dmidecode is inxi.

Typing inxi in a terminal isn't quite as overwhelming as dmidecode.

# inxi
CPU~Octa core AMD FX-8370 Eight-Core (-MCP-) speed/max~1400/4000 MHz Kernel~4.4.35 x86_64 Up~1:09 Mem~602.7/32134.5MB HDD~6241.2GB(1.7% used) Procs~224 Client~Shell inxi~2.3.7
#

Inxi has a lot of command line options. To see what I mean type the following in a terminal:

# inxi --help
inxi supports the following options. You can combine them, or list them one
by one. Examples: inxi -v4 -c6 OR inxi -bDc 6. If you start inxi with no
arguments, it will show the short form.

The following options if used without -F, -b, or -v will show just option
line(s): A, B, C, D, G, I, M, N, P, R, S, f, i, m, n, o, p, l, u, r, s, t -
you can use these alone or together to show just the line(s) you want to see.
If you use them with -v [level], -b or -F, it will show the full output for
that line along with the output for the chosen verbosity level.
- - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Output Control Options:
-A Audio/sound card information.
-b Basic output, short form. Like inxi -v 2, only minus hard disk names .
-B Battery info, shows charge, condition, plus extra information (if
battery present).
-c Color schemes. Scheme number is required. Color selectors run a color
selector option prior to inxi starting which lets you set the config
file value for the selection.
Supported color schemes: 0-42 Example: inxi -c 11
Color selectors for each type display (NOTE: irc and global only show
safe color set):
94 Console, out of X
95 Terminal, running in X - like xTerm
96 Gui IRC, running in X - like Xchat, Quassel, Konversation etc.
97 Console IRC running in X - like irssi in xTerm
98 Console IRC not in X
99 Global - Overrides/removes all settings. Setting specific removes
global.
-C CPU output, including per CPU clockspeed and max CPU speed (if
available).
-d Optical drive data. Same as -Dd. See also -x and -xx.
-D Full hard Disk info, not only model, ie: /dev/sda ST380817AS 80.0GB.
See also -x and -xx. Disk total used percentage includes swap partition
size(s).
-f All cpu flags, triggers -C. Not shown with -F to avoid spamming. ARM
cpus show 'features'.
-F Full output for inxi. Includes all Upper Case line letters, plus -s and
-n. Does not show extra verbose options like -d -f -l -m -o -p -r -t -u
-x
-G Graphic card information (card, display server type/version,
resolution, glx renderer, version).
-i Wan IP address, and shows local interfaces (requires ifconfig network
tool). Same as -Nni. Not shown with -F for user security reasons, you
shouldn't paste your local/wan IP.
-I Information: processes, uptime, memory, irc client (or shell type),
inxi version.
-l Partition labels. Default: short partition -P. For full -p output, use:
-pl (or -plu).
-m Memory (RAM) data. Physical system memory array(s), capacity, how many
devices (slots) supported, and individual memory devices (sticks of
memory etc). For devices, shows device locator, size, speed, type
(like: DDR3). If neither -I nor -tm are selected, also shows ram
used/total. Also see -x, -xx, -xxx
-M Machine data. Device type (desktop, server, laptop, VM etc.),
Motherboard, Bios, and if present, System Builder (Like Lenovo). Shows
UEFI/BIOS/UEFI [Legacy}. Older systems/kernels without the required
/sys data can use dmidecode instead, run as root. Dmidecode can be
forced with -! 33
-n Advanced Network card information. Same as -Nn. Shows interface, speed,
mac id, state, etc.
-N Network card information. With -x, shows PCI BusID, Port number.
-o Unmounted partition information (includes UUID and LABEL if available).
Shows file system type if you have file installed, if you are root OR
if you have added to /etc/sudoers (sudo v. 1.7 or newer)
Example: <username> ALL = NOPASSWD: /usr/bin/file
-p Full partition information (-P plus all other detected partitions).
-P Basic partition information (shows what -v 4 would show, but without
extra data). Shows, if detected: / /boot /home /opt /tmp /usr /var
/var/log /var/tmp . Use -p to see all mounted partitions.
-r Distro repository data. Supported repo types: APT; PACMAN; PISI;
PORTAGE; PORTS (BSDs); SLACKPKG; URPMQ; YUM; ZYPP.
-R RAID data. Shows RAID devices, states, levels, and components, and
extra data with -x/-xx. md-raid: If device is resyncing, shows resync
progress line as well.
-s Sensors output (if sensors installed/configured): mobo/cpu/gpu temp;
detected fan speeds. Gpu temp only for Fglrx/Nvidia drivers. Nvidia
shows screen number for > 1 screens.
-S System information: host name, kernel, desktop environment (if in X),
distro
-t Processes. Requires extra options: c (cpu) m (memory) cm (cpu+memory).
If followed by numbers 1-20, shows that number of processes for each
type (default: 5; if in irc, max: 5): -t cm10
Make sure to have no space between letters and numbers (-t cm10 -
right, -t cm 10 - wrong).
-u Partition UUIDs. Default: short partition -P. For full -p output, use:
-pu (or -plu).
-v Script verbosity levels. Verbosity level number is required. Should not
be used with -b or -F
Supported levels: 0-7 Example: inxi -v 4
0 Short output, same as: inxi
1 Basic verbose, -S + basic CPU + -G + basic Disk + -I.
2 Networking card (-N), Machine (-M) data, if present, Battery
(-B), basic hard disk data (names only), and, if present, basic
raid (devices only, and if inactive, notes that). similar to:
inxi -b
3 Advanced CPU (-C), battery, network (-n) data, and switches on -x
advanced data option.
4 Partition size/filled data (-P) for (if present): /, /home,
/var/, /boot. Shows full disk data (-D).
5 Audio card (-A); sensors (-s), memory/ram (-m), partition
label (-l) and UUID (-u), short form of optical drives, standard
raid data (-R).
6 Full partition (-p), unmounted partition (-o), optical drive
(-d), full raid; triggers -xx.
7 Network IP data (-i); triggers -xxx.
-w Local weather data/time. To check an alternate location, see:
-W <location>. For extra weather data options see -x, -xx, and -xxx.
-W <location> Supported options for <location>: postal code; city,
state/country; latitude, longitude. Only use if you want the weather
somewhere other than the machine running inxi. Use only ascii
characters, replace spaces in city/state/country names with '+'.
Example: inxi -W new+york,ny
-x Adds the following extra data (only works with verbose or line output,
not short form):
-B Vendor/model, status (if available)
-C CPU Flags, Bogomips on Cpu;
-d Extra optical drive data; adds rev version to optical drive.
-D Hdd temp with disk data if you have hddtemp installed, if you are
root OR if you have added to /etc/sudoers (sudo v. 1.7 or newer)
Example: <username> ALL = NOPASSWD: /usr/sbin/hddtemp
-G Direct rendering status for Graphics (in X).
-G (for single gpu, nvidia driver) screen number gpu is running on.
-i IPv6 as well for LAN interface (IF) devices.
-I System GCC, default. With -xx, also show other installed GCC
versions. If running in console, not in IRC client, shows shell
version number, if detected. Init/RC Type and runlevel (if
available).
-m Part number; Max memory module size (if available).
-N -A Version/port(s)/driver version (if available) for Network/Audio;
-N -A -G Network, audio, graphics, shows PCI Bus ID/Usb ID number of card.
-R md-raid: Shows component raid id. Adds second RAID Info line:
raid level; report on drives (like 5/5); blocks; chunk size;
bitmap (if present). Resync line, shows blocks synced/total
blocks. zfs-raid: Shows raid array full size; available size;
portion allocated to RAID
-S Desktop toolkit if avaliable (GNOME/XFCE/KDE only); Kernel gcc
version
-t Memory use output to cpu (-xt c), and cpu use to memory (-xt m).
-w -W Wind speed and time zone (-w only).
-xx Show extra, extra data (only works with verbose or line output, not
short form):
-A Chip vendor:product ID for each audio device.
-B serial number, voltage (if available).
-C Minimum CPU speed, if available.
-D Disk serial number.
-G Chip vendor:product ID for each video card.
-I Other detected installed gcc versions (if present). System
default runlevel. Adds parent program (or tty) for shell info if
not in IRC (like Konsole or Gterm). Adds Init/RC (if found)
version number.
-m Manufacturer, Serial Number, single/double bank (if found).
-M Chassis information, bios rom size (dmidecode only), if data for
either is available.
-N Chip vendor:product ID for each nic.
-R md-raid: Superblock (if present); algorythm, U data. Adds system
info line (kernel support,read ahead, raid events). If present,
adds unused device line. Resync line, shows progress bar.
-S Display manager (dm) in desktop output, if in X (like kdm, gdm3,
lightdm).
-w -W Humidity, barometric pressure.
-@ 11-14 Automatically uploads debugger data tar.gz file to
ftp.techpatterns.com. EG: inxi -xx@14
-xxx Show extra, extra, extra data (only works with verbose or line output,
not short form):
-B chemistry, cycles, location (if available).
-m Width of memory bus, data and total (if present and greater than
data); Detail, if present, for Type; module voltage, if
available.
-S Panel/shell information in desktop output, if in X (like
gnome-shell, cinnamon, mate-panel).
-w -W Location (uses -z/irc filter), weather observation time, wind
chill, heat index, dew point (shows extra lines for data where
relevant).
-y Required extra option: integer, 80 or greater. Set the output line
width max. Overrides IRC/Terminal settings or actual widths. If used
with -h, put -y option first. Example: inxi -y 130
-z Security filters for IP/Mac addresses, location, user home directory
name. Default on for irc clients.
-Z Absolute override for output filters. Useful for debugging networking
issues in irc for example.

Additional Options:
-h --help This help menu.
-H This help menu, plus developer options. Do not use dev options
in normal operation!
--recommends Checks inxi application dependencies + recommends, and
directories, then shows what package(s) you need to install to
add support for that feature.
-U Auto-update script. Will also install/update man page. Note: if
you installed as root, you must be root to update, otherwise
user is fine. Man page installs require root user mode.
-V --version inxi version information. Prints information then exits.

Debugging Options:
-% Overrides defective or corrupted data.
-@ Triggers debugger output. Requires debugging level 1-14 (8-10 - logging
of data). Less than 8 just triggers inxi debugger output on screen.
1-7 On screen debugger output
8 Basic logging
9 Full file/sys info logging
10 Color logging.
The following create a tar.gz file of system data, plus collecting the
inxi output to file. To automatically upload debugger data tar.gz file
to ftp.techpatterns.com: inxi -xx@ <11-14>
For alternate ftp upload locations:
Example: inxi -! ftp.yourserver.com/incoming -xx@ 14
11 With data file of xiin read of /sys.
12 With xorg conf and log data, xrandr, xprop, xdpyinfo, glxinfo etc.
13 With data from dev, disks, partitions, etc., plus xiin data file.
14 Everything, full data collection.

Advanced Options:
-! 31 Turns off hostname in output. Useful if showing output from servers etc.
-! 32 Turns on hostname in output. Overrides global B_SHOW_HOST='false'
-! 33 Forces use of dmidecode data instead of /sys where relevant (-M).

Download inxi at github

A useful webpage about inxi

Entertainment

Expand "entertainment" subsections for crossword etc
Crossword

Puppy Crossword (June 2018)
(Formatted by greengeek using the "Puzzlefast" website)

"Filesystem"

Linux is a "filesystem" based operating system.
The filesystem is made up of a collection of directories that have mysterious 3 and 4 letter acronyms (mostly!).
But what do those acronyms actually mean?

This crossword uses those directory names - but you can't make a good crossword easily out of 3 letter acronyms
so I have had to expand the acronyms into the real word/phrase that I think the acronym stands for.
Maybe my expansion is wrong, maybe it's right. What do those acronyms mean to you and which ones did I get wrong?

There is a mixture of cryptic and straightforward clues here...

Put your thinking caps on for this one.

(ps: if you have any suggestions for a clue theme/topic for future crosswords please let me know!)

(See clues below image)












Scroll further down for answers:








Useful Links

Puppy Linux Forums USA

Ibiblio repository USA

nluug repository Netherlands

Internode repository Australia

University of Crete repository Greece

aarnet repository Australia

Internet archive repository USA

Puppy Linux Tips by smokey01

Puppy Linux wikka Puppy sites

Bookmarkos provided by kerl

Search the Puppy Linux Forums

Barry Kauler's News Blog

labbe5 Report

Contributors this month

Not all of the people below have physically given me the information to publish. If I find information I will give the credit where it is due. So if you see your name on the list below please don't be alarmed or upset. You are not losing your mind.

smokey01
greengeek
mistfire
wiak

Proof reading - russoodle

Newsletter Information

Display tip:
To improve the Notecase display format please press F7 then:
- Tick the "Restore last position/size" checkbox.
- Select the "Display" tab and tick "Wrap text".

Newsletter index written by 6502coder can be found here:
http://www.murga-linux.com/puppy/viewtopic.php?p=945962#945962

Contributions

If you have information you would like to see in the newsletter please email it to smokey01 at smokey01@internode.on.net. I prefer it to be created in Notecase otherwise it makes my job a bit more difficult. I don't intend doing any significant editing but I will attempt to read all of the articles and ask a couple of others to do some proof reading. If you would like to assist in proof reading please let me know on the email address above.

Notecase is very easy to learn and use. Try and keep your articles to less than 1000 words. Photos and images should be no bigger than 1024 x 768. I can always make them smaller.

The deadline for articles is the 20th of each month. Let's not worry about time zones. I know it may be the 20th in Australia and only the 19th in the USA but I can live with this. If it's more than 24 hours late with respect to Australian CST then your article may be pushed right, into the next edition. I expect proof reading to take less than a week which will provide about four days to publish at the beginning of each month.

I will upload the Newsletter to my site at http://smokey01.com/newsletters. There will be two versions. One will be an xz compressed Notecase file and the other will be a html file so it can be read in a browser.

I have changed the original naming convention to 0001-PuppyLinuxNewsletter-Jan2017.ncd.xz and 0001-PuppyLinuxNewsletter-Jan2017.html respectively. The formatting of the html is not brilliant but readable. The newsletter is intended to be downloaded and read in Notecase.

Disclaimer

The editor has the right to veto any articles that he/she considers inappropriate. A reasonable effort will be made to avoid spelling and grammatical errors however, I'm sure some may slip through. This newsletter is published by volunteers, and is free, so please be kind. Constructive criticism and positive suggestions are welcomed.

smokey01