Contents
- Editorial
- March 2018
This month has been rather busy for me as I have had many
personal things going on so writing this newsletter has been on
the back burner. I do make quite an effort to publish on the
first of each month and I will continue to do so.
In the tutorials section I have included Part 5 of the Gtkdialog
tutorial. This month is about creating a Menu Bar.
I was pleased to receive contributions this month from Terry
Schuster, bigpup, 6502coder and s243a.
I haven't noticed too many new distro's or puplets hitting the
forums lately. The two included this month seem interesting
enough but I haven't had a chance to review them. Maybe some of
you good folks out there can provide a review or two on your
favourite distro.
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.
- Tahrpup 6.0.6
-
Tahrpup 6.0.6 with the 4.1.30 Kernel & updated
apps - mikeslr
Read
about it on the Puppy Linux Forums.
Download
the ISO or here.
- A fat Tahrpuplite 6.1.1
-
A fat Tahrpuplite 6.1.1 puplet... (32 bit, PAE,
K4.2.8) by csipesz.
Read
about it on the Puppy Linux Forums
Download
the ISO here or here.
- Software
-
This months covers:
Glipper - smokey01
The script command - 6502coder
- Glipper
-
Written by smokey01
Clipboard managers are great utilities that seem to be very
under utilised. Every Puppy I have used has one but speaking
to other Puppy users I have discovered they are seldom used.
Glipper is a Clipboard Manager which is found in most
Puppys. What this simply means is, anything that you copy,
in the copy & paste sense can be managed. When you
highlight some text in Linux it is copied to the clipboard.
In Windows you highlight the text then click on a copy icon
or press the CTRL+C key at the same time. To past the copied
text in Linux press the scroll wheel on your mouse and the
text will be pasted to your cursor location. You can also
press CTRL+V which is the same as windows, or click on the
paste icon.
What is so good about Glipper is, it saves all of your
copied text so you can paste it when you need it. If you use
the CTRL+C and CTRL+V method without Glipper, each time you
copy text it overwrites the previously copied text. Glipper
gives you a list of all copied text.
To access this text, click on the Glipper icon in the panel
and the list will pop up. Click the piece of text you wish
to paste, place the cursor where you want the text to go and
press the scroll wheel.
- The Script Command
-
The Script Command
by 6502coder
When you do a lot of work with the command line, you often
find yourself wishing you had a transcript of your terminal
session. Of course any decent terminal emulator allows you
to copy what you see and paste that into a text document,
but different terminal emulators do this differently, and it
can be awkward when you have a large amount of text to copy.
You could redirect the output of programs to capture their
output, but that doesn't capture what your typed commands.
The script command -- which has nothing to do with
"shell scripts" -- is yet another command line tool that
dates all the way back to the early days of UNIX. It is very
simple to use: you simply enter the command script
and from that point on, everything you type and everything
that is printed by the programs you run is recorded in a
text file named "typescript". The recording stops when you
type a CTRL-D.
Here's an example session: (stuff I typed is highlighted)
$ date
Thu Feb 15 16:26:07 +08 2018
$ uname -a
Linux puppypc11406 3.14.79 #1 SMP PREEMPT Tue Dec 13
19:32:40 GMT 2016 i686 i686 i686 GNU/Linux
$ ldd --version
ldd (Ubuntu EGLIBC 2.19-0ubuntu6.13) 2.19
Copyright (C) 2014 Free Software Foundation, Inc.
This is free software; see the source for copying
conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
Written by Roland McGrath and Ulrich Drepper.
$ exit (this line appeared when I typed CTRL-D)
Here's what the typescript file contains:
$ cat -n typescript
1 $ date
2 Thu Feb 15 16:26:07 +08 2018
3 $ uname -a
4 Linux puppypc11406 3.14.79 #1 SMP PREEMPT Tue Dec 13
19:32:40 GMT 2016 i686 i686 i686 GNU/Linux
5 $ ldd --version
6 ldd (Ubuntu EGLIBC 2.19-0ubuntu6.13) 2.19
7 Copyright (C) 2014 Free Software Foundation, Inc.
8 This is free software; see the source for copying
conditions. There is NO
9 warranty; not even for MERCHANTABILITY or FITNESS FOR A
PARTICULAR PURPOSE.
10 Written by Roland McGrath and Ulrich Drepper.
11 $ exit
The script command takes an optional argument that
specifies the name of the transcript file, in case you don't
like the default "typescript".
$ script info.txt
saves the session transcript into "info.txt".
Although script is a standard UNIX/Linux command, it
is not included in most Puppies, not even in the devx SFS.
Fortunately, it is easy to compile a simple version for
yourself.
Go to http://man7.org/tlpi/code/index.html
to download a tarball containing the source code for the
book "The Linux Programming Interface." You want the tarball
called the "Distribution version." It's about 240KB in size.
Then do the following:
$ tar xfz tlpi-171205-dist.tar.gz
$ cd tlpi-dist/lib
$ make
$ cd ../pty
$ make script
This will create the script executable. I had no
problem building it on my TahrPup 6.0.6 system. My
executable is only 14KB, stripped (25KB unstripped).
Once you have a working executable, you can delete the
tarball and the tlpi-dist directory -- AFTER you
have saved the script executable somewhere in your
PATH, of course. The script executable is all you
need -- there are no other dependencies, beyond a few shared
libraries that are already in all Puppies. The reason I
chose this particular version of script is that it
is not fussy about which version of glibc you have.
In fact, I copied the executable I built on TahrPup 6.0.6
onto a much older machine running Puppy 4.1.2 Retro, and it
worked just fine.
Except for the optional transcript filename I described
above, this simple version of the script command
does not support the various options you will find in man
pages for script. Even so, the man page is
recommended reading.
- Tutorials
-
TightVNCServer - Terry Schuster
Brother Printers - smokey01
Gtkdialog Part 5 - smokey01
- TightVNCServer
-
Written by Terry Schuster
Setting up Tightvncserver on Puppy Linux
I first became aware of the possibility of having remote
access to another computer on my local network by playing
around with Tightvncserver (TVS) on Ubuntu. While there are
other VNC packages available for Puppy, Tightvncserver is
claimed to be a better product, and is in my experience
quite good to use. A significant issue using TVS is properly
displaying the new desktop which TVS streams to the viewing
device. Once that was solved in Ubuntu, I was able to apply
a similar patch by some trial and error to Raspberian on a
Raspberry Pi 2.
However I was not initially able to make Tightvncserver
operate with Puppy Linux, which is the OS I use most. In
fact, one forum post implied that TVS could not be run on
Puppy Linux at all. In any case, I put the project aside for
a while and took it up again later, looking for more clues
on the Puppy and Ubuntu forums. My persistence paid off.
It appears there is a unique issue running TVS on Puppy
Linux, which is ensuring the initial password setup script
runs correctly. Once this is solved the program will run as
intended, although the new desktop will not be correctly
displayed (or not displayed at all) on the viewing device.
This latter issue occurs with other Linux distros using TVS,
and is corrected by changing the default TVS script to one
appropriate for the windows manager of the server OS.
So what follows is my recipe for running TVS on Puppy Linux.
While the example given is for TahrPuppy 6.0.5, I have used
it on more recent puppy distros, including XenialPuppy_7.5.
1) Update Puppy Package Manager
2) Load tigntvncserver from the Puppy Package Manager.
Tightvncserver_1.3.9 is the only option for TahrPuppy 6.0.5,
as there are issues loading xauth with the latest version -
1.3.10. This is not the case with the more recent
XenialPuppy_7.5, which has 1.3.10 in the Package Manager or
can be downloaded as a .deb file*.
3) a) According to the postings, vncpasswd is meant to be
run before tightvncserver in order to initiate the password
setting, but it fails to do so.
b) When you do attempt to run tightvncserver :1 in the
terminal an error message will appear -
tightvncserver: couldn't find "vncpasswd" on your PATH.
Thanks to references #1 & #2 below one can fix this
issue by means of the following edit:
navigate to the file /usr/bin/tightvncserver
open this file as text (Geany should open this )
edit lines (approx) 208 and 722, changing vncpasswd
to tightvncpasswd
save changes to the file
Corrections (in italics) appear in the following lines:
system("tightvncpasswd $vncUserDir/passwd");
and
foreach $cmd ("uname","xauth","Xtightvnc","tightvncpasswd")
{
4) Run tightvncserver :1 again in the terminal.
(The “1” implies Port 59001 will be used by the
tightvncserver.)
The terminal output should be as follows:
root# tightvncserver :1
You will require a password to access your desktops.
Password: (type yours in)
Verify: (type yours in again )
Would you like to enter a view-only password (y/n)? y ( best
to enter y )
Password: (type yours in)
Verify: (type yours in again )
xauth: file /root/.Xauthority does not exist
New 'X' desktop is puppypc2062:1 ( or your puppy version)
Creating default startup script /root/.vnc/xstartup
Starting applications specified in /root/.vnc/xstartup
Log file is /root/.vnc/puppypc2062:1.log
root#
Record the passwords set.
The view-only password will be required later to access the
server using tightvncviewer.
5) If you run the VNC viewer now in the viewing computer,
you will most likely be met with a grey screen. This is
because the default installed script in the server is setup
for GNOME rather than the standard Tahrpuppy windows manager
- JWM ( Joes Window Manager).
This needs to be fixed by editing the appropriate file to
reflect the Puppy Window Manager in use ( Thanks to
references #3 & #4 below)
So - stop tightvncserver in the Terminal by - tightvncserver
-kill :1
Navigate to /root/.vnc/xstartup.
Edit the text with Geany as follows:
#!/bin/sh
xrdb $HOME/.Xresources
xsetroot -solid grey
#x-terminal-emulator -geometry 80x24+10+10 -ls -title
"$VNCDESKTOP Desktop" &
#x-window-manager &
# Fix to make GNOME work
#export XKL_XMODMAP_DISABLE=1
#/etc/X11/Xsession
#xrdb /root/.Xresources
xsetroot -cursor_name top_left_arrow
/bin/sh /root/.xinitrc &
#rox -op /root/Choices/ROX-Filer/PuppyPin (un-comment if
password required )
terminal & ( apparently optional )
jwm & ( sets jwm as the Windows Manager. )
Save the script.
Please note: "terminal &" is apparently optional
"jwm &" sets jwm as the Window Manager. If you are using
another Windows Manager apart from jwm, , then there will
need to be different modification, eg if using a standard
LxPup OS, replace "jwm &" with “lx &” (without the
quotes).
6) Run ifconfig in the terminal to get the IP
address of your puppy tightvnc server.
The address may change for every boot up if the IP address
is dynamically assigned.
A sample terminal result is:
root# ifconfig
eth0 Link encap:Ethernet HWaddr 08:2E:5F:02:0D:45
inet addr:192.168.2.4 Bcast:192.168.2.255 Mask:255.255.255.0
As displayed, the sample IP address is 192.168.2.4.
Record the current IP address as it will be needed to login
on the viewer device.
7) If using a Linux OS to view the server window, download
tightvncviewer from the Package manager in the client
computer. The viewer may need to be run in the terminal as
“tightvncviewer” (without the quotes) if a menu entry is not
visible.
Note, in LXPup, one needs to run xtightvncviewer in
the terminal.
If using another OS, download an equivalent viewer, such as
vncviewer. From my experience, it works well on Windows, iOS
and Android devices.
8) When the viewing device is run, the IP address of the
server device is initially requested, (eg 192.168.2.4) which
is then appended with “:1” (indicating port 59001 will
output the data). So the requested IP address would be
192.168.2.4:1.
The password is then requested, but note that characters are
not displayed as typed, which can be confusing.
All being well the remote desktop will be functioning as
intended.
It is hoped this article will encourage other Puppy Linux
users to try Tightvncserver as it is a very effective means
to remotely access your Puppy device on your local network.
References
#1 ahopin at
http://www.murga-linux.com/puppy/viewtopic.php?t=79231&sid=ed05cca853a5c57feba410d78e80f094
#2 tony mancill at
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=575865
#3 unknown at
https://www.vultr.com/docs/install-gnome-desktop-with-tightvnc-on-debian-7
#4 bobjackson at
http://murga-linux.com/puppy/viewtopic.php?t=56306
* Version 1.3.10 downloadable as a .deb from:
http://launchpadlibrarian.net/181079060/tightvncserver_1.3.10-0ubuntu1_i386.deb
- Brother Printers
-
Written by smokey01
I don't own a Brother printer and never had so it was a bit
of a challenge when a friend of mine wanted to swap from
Windows XP to Fatdog64-721. As usual everything worked fine
until I tried to get the printer working.
Anyway, after a lot of research, head scratching and finally
asking for HELP, I achieved my goal.
On the Brother web site there is a script that will download
and install the appropriate drivers for your brother printer
and scanner. Unfortunately the script did not work properly
in Fatdog64-721 as it requires dpkg, a debian package
installer. The dpkg in Fatdog is a cut down version in
busybox. The good news is a full version is available in the
package manager so I installed that.
Download a copy of the Download Install Tool here:
http://support.brother.com/g/b/downloadend.aspx?c=us&lang=en&prod=mfcj415w_all&os=128&dlid=dlf006893_000&flang=4&type3=625
Directions on running the script will be displayed after
agreeing to the EULA.
Before running the script you need to load the 32bit library
SFS then Install perl and ghostscript from the package
manager.
Run the script and follow the prompts.
- Gtkdialog Part 5
-
This month we will have a quick look at a menu.
The code:
#!/bin/sh
[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog
IMAGEFILE="`find /usr/share/pixmaps -maxdepth 1 -type f
| head -1`"
MAIN_DIALOG='
<window title="Menu" resizable="false"
width-request="360" height-request="240"
border-width="0">
<vbox spacing="0">
<menubar>
<menu use-underline="true">
<menuitem stock-id="gtk-quit" accel-key="0x51"
accel-mods="4">
<action>exit:Quit</action>
</menuitem>
<label>"_File"</label>
</menu>
<menu label="_Other" use-underline="true">
<menuitem stock-id="gtk-home" label="Stock
Icon"></menuitem>
<menuitemseparator></menuitemseparator>
<menu image-name="'"$IMAGEFILE"'" label="Image from
File">
<menu icon-name="gimp" label="Theme Icon">
<menuitem label="Label Only"></menuitem>
</menu>
<height>16</height>
<width>16</width>
</menu>
</menu>
</menubar>
</vbox>
</window>
'
export MAIN_DIALOG
case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac
Notice the tag for a menu is <menubar> and within the
menubar tags are <menuitem> tags. These are the items
that are displayed under File and Other in this example. Try
added some new items and changing the existing ones to see
how it works.
- 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.
- nmap
-
Provided by smokey01
Nmap ("Network Mapper") is a
free and open source (license) utility for network discovery
and security auditing.
Download the sourcecode here.
It's generally quite easy to compile by typing the following
in a terminal. (The Devx must be loaded)
./configure --prefix=/usr
make
make install
- Scripts & Code
-
A few nice and useful scripts using Rsync - written by s243a
- Rsync
-
Moving
Directories in Linux w/ Rsync - Written by
s243a
If you try to move files using rox by dragging from one
folder to another and it fails for some reason; for example:
1. I/O error (Maybe you have a flaky USB connection or
drive)
2. Too Much Ram being used
3. Insufficient space in the destination drive.
4. Insufficient permissions
5. Power outage
6. etc.
You could end up with a mess where some of your files were
transferred and others weren't. Worse yet ROX is horrible at
merging directories and I'm not sure if it identifies when a
file is only partially transferred.
The solution that I'm trying as we speak uses rsync to do
this task instead of Rox but we'll do a few tricks to make
it more GUI-Like.
I've created three scripts:
The first script is used to save the path to the source
directory that we want to move files from. This file --
located in the /tmp directory -- will be read later to get
the path.
/usr/sbin/s243a_Fm
Code:
#!/bin/sh
OLD_IFS=IFS
IFS=""
WD="/tmp/s243a"
#https://stackoverflow.com/questions/793858/how-to-mkdir-only-if-a-dir-does-not-already-exist
[ -d $WD ] || mkdir -p $WD
echo $(readlink -f "$1") > "$WD/fm.txt"
IFS="$OLD_IFS"
To call this script you can either navigate to the directory
in ROX and either pressthe tild key "~" to get a console or
alternatively make the script clickable by rightclicking on
the director, selecting "open with", then selecting
"customize"
This will open the following directory in Rox
/root/.config/rox.sourceforge.net/OpenWith
Now symbolically link this script to the directory by
dragging the script into this directory and selecting "link
relative"
Next we create a similar script for the destination
directory:
/usr/sbin/s243a_To
Code:
#!/bin/sh
OLD_IFS=IFS
IFS=""
WD="/tmp/s243a"
#https://stackoverflow.com/questions/793858/how-to-mkdir-only-if-a-dir-does-not-already-exist
[ -d $WD ] || mkdir -p $WD
echo $(readlink -f "$1") > "$WD/to.txt"
IFS="$OLD_IFS"
and also make it clickable.
Finally, having saved the source path and destinations path
to a file we can use rsync to move the files between these
two locations. The script that we will use to do this will
look like:
Code:
#!/bin/sh
OLD_IFS=IFS
IFS=""
WD="/tmp/s243a"
TO="`cat $WD/to.txt`"
FM="`cat $WD/fm.txt`"
#
#
https://unix.stackexchange.com/questions/78375/move-files-and-delete-directories-with-rsync
#
rsync -avE --size-only --remove-source-files "$FM" "$TO"
&& \
find "$FM" -depth -type d -empty -exec rmdir "{}" \;
IFS="$OLD_IFS"
We can also make this script clickable.
However, it is better to run it in the console so that you
can watch the progress:
From any path in the console simply type
Quote:
s243a_Rsync
and then the transfer will begin. Some notes on the options.
The -a is the archive option. It will preserve information
about the file, such as timestamps, ownership and
permissions. It will also do recursion.
I added the E option because I'm not sure if the -a option
preserves execution permissions.
I added --size-only because I was thinking of the case where
someone like me tried using rox to move a directory and it
failed. My theory was that if the size was different then
the transfer wasn't completed and in this case we always
wanted to take the original file if the size differed.
The --remove-source-files option removes files after they
are synced but will not delete directories. The following
line after rsync (i.e. the find command)
Code:
find "$FM" -depth -type d -empty -exec rmdir "{}" \;
is only executed if rsync succeeds. This command will delete
only empty directories from the source folder.
I suppose that one might want to do this anyway regardless
of whether or not rsync succeeds but only after they are
sure that all the files are moved. Perhaps we could create a
fourth script to delete empty directories and also make it
clickable.
I would like to add more options to this script and also add
a gui.
I'd probably try GTK dialog for the GUI. It would work as
follows:
When you type
Code:
s243a_Rsync
A dialog opens up with the source and destination paths
shown as previously set by the other two scripts. By each
path there would be a button that you could press to select
a different path. There would also be checkboxes so that you
could change some of the rsync options. For instance maybe I
want to always skip a file if it exists in the destination
folder. I might do this if I transferred some of the files
to another folder and was trying to merge them back in but I
didn't know if all of these files in this other folder were
complete.
Another thing that we might want to try is a delete as we go
option.
We could do this as follows:
With the verbose option selected in rsync it outputs to the
console the name of each file that it moves (or syncs).
We could pipe this output into a script which watches these
names and waits for a directory name change. Once a
directory change is detected it would then empty the
directory.
- 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.
LAN IP - smokey01
BusyBox - smokey01
Desktop Icon for Web Page - bigpup
- LAN IP
-
Written by smokey01
You may not realise it but you probably have a computer
network at home. These days the most common way of
connecting to the internet is via a modem/router that also
has wifi. If you have more than one device connected to that
router then you have a LAN (Local Area Network). For each
device connected to a network it must have a unique address
which is known as an IP address. Without this the devices
would have trouble identifying themselves. Imagine having a
street with a 100+ houses with no street numbers or all
having the same number, the poor postman would have some
difficulty delivering mail.
It's always nice to know what devices are connected to your
LAN. Probably the easiest way to do this is to access your
modem/router and view connected devices however, this can be
quite scary for many and does take a bit of skill and
knowledge. Two other ways of achieving the same results is
to use either the arp or nmap applications.
Arp is often bundled with most Linux distributions
and sometimes nmap may be. It's fairly normal for nmap to be
available via the repository.
arp (Address Resolution Protocol)
Try the command: arp -a in a terminal.
It may give you a list of IP addresses although some of the
names may be a bit obscure. I have had mixed results with
arp. Sometimes I get a comprehensive list and other time
just the router address.
This
may explain it better than I
nmap (Network Mapper)
I think a better way to display LAN address is with nmap.
If it's not installed and you can't find it in your
repository you can always download the source
from here and compile it for your distribution.
Once installed, you first need to find out what your Bcat
(broadcast address) is. In a terminal type ifconfig and
information will be displayed. Look for the address after
Bcast: It may be something like 192.168.0.255 or 10.1.1.255.
In both cases substitute the 255 for an *.
Now type the following in a terminal: nmap -sP 10.1.1.*
and you should get a list of devices connected to your
network.
There are many reasons why this information is useful, one
such application is connecting a printer using the ipp
method. Printers can be connected to the network many ways
such as using their own wifi, ethernet, usb and ipp. Before
connecting a printer by ipp you must know its LAN address so
it can be defined in CUPS like: ipp://10.1.1.205.
- BusyBox
-
Written by smokey01
Have you ever heard of BusyBox?
Ever wondered what it was?
In a nutshell BusyBox
combines tiny versions of many common UNIX utilities into a
single small executable. It provides replacements for most
of the utilities you usually find in GNU fileutils,
shellutils, etc. The utilities in BusyBox generally have
fewer options than their full-featured GNU cousins; however,
the options that are included provide the expected
functionality and behave very much like their GNU
counterparts. BusyBox provides a fairly complete environment
for any small or embedded system.
BusyBox has been written with size-optimization and limited
resources in mind. It is also extremely modular so you can
easily include or exclude commands (or features) at compile
time. This makes it easy to customize your embedded systems.
To create a working system, just add some device nodes in
/dev, a few configuration files in /etc, and a Linux kernel.
My motivation for writing about BusyBox is it's limitations.
BusyBox generally uses cut down versions of applications and
sometimes your system may need the full version. A couple I
have discovered in the past are cpio and dpkg.
In my case compiling and installing the full versions fixed
the problem.
If you type busybox in a terminal you will get something
similar to below which will list all of the applications
included in the single busybox binary.
- Desktop Icon for Web Page
-
Written by bigpup
Make a desktop icon to start the browser and have it open on
a specific web page.
Create script file with this code:
(Example for seamonkey browser ->Puppy forum)
Code:
# /bin/sh
seamonkey http://www.murga-linux.com/puppy/
How to make the script file and get it on the desktop as an
icon.
Open Rox file manager
Right click on an open area and select new>script
Give it a name to identify it
Right click on this new script file and select open as text
Now in a text editor
Add the browser name and the web address as shown in example
save change.
Drag and drop file to desktop.
Right click on desktop icon for file.
To change name -> edit item
To change icon -> set icon
( normal icon set is located at /usr/local/lib/X11/pixmaps )
When selecting an icon to use, 48X48 is the size used for
desktop icons.
So, pick an icon that has 48 in its name.
Note:
Usually the name of the browser is the exec file to start
the browser.
firefox
palemoon
seamonkey
etc....
- Entertainment
-
PupChange is a simple game written in HTML and Javascript, so it
runs in your web browser - 6502coder.
- PupChange
-
PupChange
by 6502coder
PupChange is a simple game written in HTML and
Javascript, so it runs in your web browser. At the start of
the game you are presented with a grid of tiles similar to
this one:
The object is to slide the tiles around until the top and
bottom rows are the same, like this:
I have posted a zip archive containing the complete game on
the Murga forum here:
http://murga-linux.com/puppy/viewtopic.php?p=982118#982118
Because the game is written entirely in client-side
Javascript, it neither needs nor uses an Internet
connection. Go ahead and disconnect your computer from the
Internet first if you are worried about enabling Javascript
in your browser.
- Crossword
-
Puppy Crossword (March 2018)
(Formatted by greengeek using the "Puzzlefast" website)
"Four Letter Words"
(I left out the rude ones!)
First person to correctly complete this crossword wins:
- personal satisfaction
- one years subscription to murga forum
- pat on the back
(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
Terry Schuster
bigpup
6502coder
s243a
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