Contents

Editorial



November 2017

At the beginning of each month I often wonder what I will write about. It's actually quite amazing how things just pop into my head, especially after reading the forum or various other information sources. Having said that it would be nice to receive a few more articles from other people. In the beginning there was a lot of interest and offers but it all seems to have wilted except for the dedicated few.

This month there have been a few more new distros that have appeared. The ones I have mentioned all look very interesting. It's really nice to see that there are quite a few developers who continue to develop distros under the umbrella of Puppy Linux.

Forum member wiak has released a script that makes distro building easy. I believe it does use the existing woof-ce scripts but his script makes the process just that little bit easier.
Auto-build a Puppy iso; single script with optional gui. At the time of writing the script had reached ver 0.1.3.

Another fellow forum member that is doing some good work is sc0ttman. Better command line tools, and pkg manager suggestions.

This month I have included the first instalment of gtkdialog coding. This really is for the absolute beginner.

If you are a reader of this newsletter but not the Puppy Linux ForumsI recommend you pay it a visit as it's a great resource.

Cheers

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.

Easy OS - 0.5

Develped by Barry Kauler

Barry has released Pre-alpha 0.5 of Easy OS. It's shaping up to be a very nice Operating System.

Read about it here. Since initially writing this Barry has released 0.6, read about it here.

JL64

Developed by Dry Falls

Just Lighthouse is a fork of LightHousePup developed by tazoc.

Version 2 was released on the 25 September 2017.

It's very nice, worth a look.

Brexit Pup

Developed by ETP

I can't help thinking the name Brexit Pup is a little bit tongue-in-cheek. Having said that it does look very nice.



Brexit Pup is based on XenialPup64-7.0.8.4 k 4.9.15 (Huge_kernel) woof-CE "testing branch" built September 2017
using forum member wiak's makepup script version 0.0.9.

ArtfulPup

Developed by peebee

Another new distro has entered the arena on the 6th October 2017, it's called ArtfulPup.



Software

dir2sfs - with progress bar.

Wire - Skype alternative.

dir2sfs

Written by smokey01

I have been watching this thread with great interest as it appears to have solved a log time question of mine.

How to make progress bars work properly?

It's all very nice having a progress bar show some activity but it would be better if it actually worked in sync with the activity. In other words if it takes 10 seconds to copy a file and the progress bar is updated every second then the progress bar should show 10 increments and reach 100% at the same time the file is finished copying. I, like many others have never achieved this.

Did rg66 get it working? He has marked it as (Solved) so let's hope so.

Wire

Forum thread Written by Mike Walsh

I've mentioned Wire in the past but I've just noticed that Mike has dedicated a thread to this so I thought I would include it.

How to use WIRE in Puppy.....

Tutorials

The first part of gtkdialog coding.

Part 2 of a beginners tale.

gtkdialog2

Written by smokey01

Last month I said I might, emphasis on might, write a basic tutorial on gtkdialog. Below is my first attempt. I intend to keep this very basic so first time users can make sense of it. I remember trying and giving up many times before I wrote anything useful. Hopefully this will remove some of the mysteries.

First I want to provide some tools in the form of resources, there are many, scattered wide and far. If you are a regular reader of the Puppy Linux Forums you will know I am a Fatdog64 user. I also do a lot of my testing in the two official Puppy Linux distributions, slacko and tahrpup. As there are many Puppy distributions it's not possible for me to test every script or application in all of them so I only test in the three I've mentioned.

One of the best resources is on the Puppy Linux Forums. It's called GtkDialog Tips which was originally started by zigbert back in Febuary 2009. This is where I have and still do spend a lot of my time when coding in gtkdialog.

Most Puppy Linux distributions contain gtkdialog examples and widget references in the devx. After loading the devx you can find the examples at /usr/share/doc/gtkdialog. 01micko has forked the information to https://github.com/01micko/gtkdialog which can be downloaded and installed to your system if you wish. 01micko has also included the reference information on his site at: http://01micko.com/reference/.

Now that we have some good references we shall begin.

If you click on the reference link above it will display a list of widgets in your browser. The first one in the list is the button widget as they are sorted alphabetically. The reference explains a number of things. It starts with the Definition of the widget, then Tag Attribute, Directives, Signals, Functions, and Conditions. At this point your eyes are probably starting to glaze over and your head is starting to spin. Hang in there as all this information makes sense, eventually. I'm going to try and explain it in little chunks so it's easier to understand.

Too much reading and not enough playing is not fun so let's makes something. We will look at the window widget.

Copy all the text below Start and before End and paste it into your editor, it will likely be geany. Make sure you have line numbers turned on in your editor as it will make it easier for me to explain what each line does.

------------------------------- Start -------------------------------

#!/bin/sh

[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog

MAIN_DIALOG='
<window>
<vbox>
<frame Description>
<text>
<label>This is an example window.</label>
</text>
</frame>
<hbox>
<button ok></button>
<button cancel></button>
</hbox>
</vbox>
</window>
'
export MAIN_DIALOG

case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac

-------------------------------------End --------------------------------



Although This is a good example of the window widget there are other widgets required as well. Widgets are contained within tags. There are opening and closing tags. The opening tag is written like <window> and the closing tag like </window>. Did you notice the forward slash after the < and before window? So looking at the example above we see many widgets enclosed between tag identifiers, <>.

Let's examine the code line by line.

Line 1. The shebang identifying this code as a shell script.

Line 2. Blank although it could be deleted but it does make the code easier to read.

Line 3. Some error checking to see if gtkdialog exists.

Line 4. Blank for ease of reading.

Line 5. This defines the MAIN_DIALOG. It could have a different name like WINDOW_EXAMPLE if you wish. The =' after MAIN_DIALOG is important. It could be a double quote instead of a single quote like: MAIN_DIALOG=" but then each time you wanted to use a double quote when passing variables it would have to be escaped. Don't worry about escaping for the moment, I'm sure it will come up again. Everything from the first single quote after the equals until the ending single quote at line 19 is part of the MAIN_DIALOG.

Line 6. This is the <window> opening tag. Notice the closing tag at line 18.

Line 7. This is the opening tag for vbox widget <vbox> short for vertical box. Further down you will see a <hbox>, short for horizontal box. vbox and hbox basically defines columns and rows. More on this at lines 13 - 16.

Line 8. This is a <frame> widget. Notice the opening tag is actually <frame Description> The word description will be included along the top row of the frame. Remember at the beginning of this tutorial I mentioned Directives, Signals, Functions, and Conditions, well they can all be placed within the opening tags of widgets. Yes I know it's starting to become a little complicated but hang in there, the wait is worth it. When you run the script, if you haven't already, I would have, you will see what I mean.

Line 9. The <text> widget allows you to include text. As with all widgets there are certains rules that have to be met. In this case we want to included a <label> widget inside a <text> widget. Generally labels need to be inside <text> widgets. I say generally because there are cases when a label widget can be used without using a <text> widget. It depends what widget you are using. It's this inconsistency that makes gtkdialog hard to learn that's why I am writing this tutorial.

Line 10. Sometimes you can have the opening and closing tags of a widget on the same line. The <label> widget is a good example of this because a <label> widget displays a label and generally nothing else. The text between <label> and </label> is the actual label.
Sometimes it's difficult not to over think it. Stay calm, breathe.

Line 11. The </text> closing tag. Every opening tag must have a closing tag. Without it you will get an error and the script won't run.

Line 12. The closing </frame> widget.

Line 13. This is an opening tag of a <hbox> widget. Any other widgets you place inside here will be displayed horizontally. You will notice this with the two <button> widgets coming up next. If they were inside a <vbox> widget the buttons would be placed vertically instead. Is the penny starting to drop?

Line 14 & 15. These <button> widgets are special. Notice how there is an ok and cancel inside the tag identifiers! When you run the script you will notice the buttons have OK and Cancel written on them and an icon on each. Clicking on these buttons quits the script with an escape code that can be used for further processing. More on buttons in another lesson.

Line 16. The closing tag for the </hbox>

Line 17. The closing tag for the </vbox>. You can have many <hbox> and <vbox> widgets throughout the script. It depends on how you wish to display your dialog.

Line 18. The closing tag for the </window> widget.

Line 19. The single quote ' defines the end of the MAIN_DIALOG.

Line 20. This exports the dialog so it's available to all parts of the script. This makes it global rather than local. Trust me on this for the moment.

Lines 22 - 25. This does a bit more error checking and attempts to give you some idea on what the error is and what line it occurred on. Unfortunately you can't rely on the editor line numbers. From what I understand the line numbers it reports start and end with the opening and closing single quote after MAIN_DIALOG=' and closing </window> tag. In this case Line 1 is the editor's line 5 and 15 is the editor's line 19.

A Beginners Tale Part 2

A Beginners Tale (Part 2) by Terry Schuster

This aim of this article is to encourage new puppy users to engage with the Puppy Linux suite and to provide some suggestions as to how to setup their system so that it can be made as functional as possible. In my situation I am using Tahrpup 6.0.5 running from a USB memory stick configured as a HDD so as to use as much of the memory stick as possible. This provides the option of changing the OS very easily if I find a better setup (or ruin the current one!) and gives excellent portability.

My first Puppy Linux was geared to providing a fast platform to record and edit audio and digital photographs, as my normal windows could be mercilessly slow with some editing software. Some very useful software that I ran under Windows was not easily replaced under Linux, so I added Wine from the Quickpet menu which went without incident. I found the simplest way to run the Windows software was to save the Windows applications in ~/my-documents, each within its own folder. I then navigated to each of the .exe files, dragged the file onto the desktop, which automatically made a shortcut which I could click on to run the program using Wine.

As the default Wine font is relatively small, increasing the font size improves readability and hence efficiency. One effective method to do this is outlined in Murga-Linux discussion forum 17095 - although the required .wine folder is hidden, which can be a hurdle for beginners. Better still, running winecfg in the terminal brings up a useful GUI in which the font DPI can be changed under the Graphics tab.

Most of the Windows based programs I used worked well, especially freeware applications such as Faststone-Portable, Irfanview-portable , Wave Studio 4, CDex, MP3Cut, and Picturenaut. Tag editor Tigo Tago worked adequately, but with some display issues. On the Linux side I have been very impressed with mhWavedit Sound Recorder and Darktable. Many Linux photo editing packages are excellent and run very fast on Puppy Linux. However, issues were discovered with concurrently running applications and storing the files in memory, so as much as possible I saved files to the resident HDD, as mentioned in Part 1 and only saved to RAM at the end of a session. Other issues arose with the sound input/output as I was recording audio through a sound card, but they were eventually solved using the preferences menus in the application and the Multiple Sound Card Wizard.

Occasionally solutions need to be hand adjusted. At some point I installed Dropbox to transfer files between computers without the need to run around with flash drives. I then decided I needed a screen lock/password protection at bootup to provide security for these and other files, which made the Puppy Linux more like a typical home computer. I followed the Murga Linux discussion forum 75347, which called for xlock found in /usr/bin to be copied to ~/Startup. Right clicking on the screen lock icon on the desktop and looking into its location yielded an Xlock file which I also copied to ~/Startup. It seemed both files were required for the screen lock function to work, which it has for some weeks, flawlessly. Adding a screen lock is highly recommended when you have a portable drive.

Being able to use Puppy Linux as a general home workhorse does, in my case, require the installation of Libre Office, which was launched from the Menu --> Document --> Get Libre Office download and install Libre Office. While the OOTB Abiword and Gnumeric work well, I use Libre Office on all my home machines which provides a consistent work/file transfer, and in addition gives me an option to save documents with a password within the Save As window.

Almost all of the issues that I faced in setting up the Puppy OS for my individual use were solved by referencing the Puppy or Ubuntu Discussion Forums, where multiple solutions could be sourced and tested. They are an invaluable resource and make the Puppy journey feasible if you are a novice. Online Puppy Manuals can be helpful, such as the Puppy Linux Manual in English or Puppy214Manual.

While many solutions to each problem can be found in the forums, they vary in complexity and approach. If you don't want to attempt a complex solution, keep searching until a more simpler approach is found and try that. If a complex solution comes up consistently, that may be the only way to proceed. As you gain even basic knowlege of Linux your workable options increase, and so does your confidence. I have found the simplest solutions easiest to implement and may carry the least risk for a novice such as myself. Persistence is a necessary attribute in solving problems, which will eventuate under new situations. It's best to remember that Rome and Puppy Linux were not built in a day!

To be Continued...

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.

This month I have provided a download accelerator called Axel. I'm a great fan of Prozilla too but unfortunately it can't handle secure sites and it looks like this is where the future is heading.

Axel

Written by smokey01

Download accelerators normally speed up downloading by having multiple connections. Normally when downloading with a browser only one connection is used. If you are connected to a site that has a lot of traffic or is typically slow then multiple connections with a download accelerator may help.

Axel is quite easy to compile and has little to no dependencies.

Download the source code here: https://github.com/axel-download-accelerator/axel/archive/master.zip

Extract the file.

Change into the folder where the source files are located. You should see a script called autogen.sh if you are in the correct place.

Open a terminal in this directory.

In the terminal type: ./autogen.sh

You should see some activity in the terminal.

When it has finished follow the instructions which are:

Now run ./configure, make, and make install.

Do them one at a time, first type: ./configure --prefix=/usr

Then

make

Then finally type:

make install.

Typing axel in a terminal will provide some help.

Axel is a terminal application and is quite easy to drive. If however, you prefer a GUI, I have provided one here.

Note: You will need to have the DEVX loaded to compile applications.

Scripts & Code

Fatdog-Disk-Usage by jamesbond.

Simple Search and Download gtkdialog (SAD) script.

Axel-GUI

Bash & gtkdialog

Written by smokey01

Last month I explained how to create a file using bash in a terminal. This month I am going to expand on that and show you how to make it useful.

In the example below, each time the script is run it creates an SVG icon and places it in /usr/share/pixmaps/sad.svg. It then creates a desktop file in /usr/share/applications/sad.desktop, then finally runs the Search and Download application.

The main part of the script allows you to search for files and information on a specific site. At the moment I have only included two sites, smokey01.com and ibiblio.org. More can be added if you wish.

In the Search Terms: box type: vssr smokey01. In site choose: smokey01.com then click on the Search button. Your default browser should open displaying some results. Choose the one that displays packages then look in the list for vssr-1.0-noarch-1.txz. You can now copy the results into the download box or drag and drop it into the download box. Next click on the D/Load button and the file will be downloaded with wget instead of your browser. You could modify the scrip to use a download accelerator like prozgui instead of wget. Files will land in /root.

------------------------------ Script Start ------------------------------------------

#!/bin/bash

echo '<svg height="100" width="100">
<path style="fill:#C90909;stroke:#222222;stroke-width:2" d="m 63,53 c 0,0 38,26 34,43 C 81,103 53,61 53,61"/>
<circle cx="36" cy="36" r="32" fill="none" stroke="#222222" style="stroke-width:2" />
<circle cx="36" cy="36" r="29" fill="none" stroke="#999999" style="stroke-width:6" />
<circle cx="36" cy="36" r="27" fill="#76e9fb" stroke="#222222" style="stroke-width:1;fill-opacity:0.7" />
</svg>
'>/usr/share/pixmaps/sad.svg

cat > /usr/share/applications/sad.desktop <<EOF1
[Desktop Entry]
echo Encoding=UTF-8
Name=Search and Download
Icon=/usr/share/pixmaps/sad.svg
Comment=Search for and Download files.
Exec=sad
Terminal=false
Type=Application
Categories=X-FilesystemFind
GenericName=Search and Download
NoDisplay=false
EOF1

[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog

MAIN_DIALOG='
<window title="Search And Download" width-request="400">
<vbox space-expand="true" space-fill="true">
<hbox>
<text width-request="100">
<label>Search Terms:</label>
</text>
<entry secondary-icon-stock="gtk-clear">
<variable>ENTRY</variable>
<default>puppy linux</default>
<action signal="button-press-event">clear:ENTRY</action>
</entry>
</hbox>

<hbox>
<text width-request="100">
<label>Site:</label>
</text>
<combobox width-request="210">
<variable>COMBOBOX</variable>
<item>murga-linux.com</item>
<item>smokey01.com</item>
</combobox>

<button>
<label>Search</label>
<input file stock="gtk-find"></input>
<action>defaultbrowser "$ENTRY site:$COMBOBOX" &</action>
</button>

</hbox>

<hbox>
<text width-request="100">
<label>Download:</label>
</text>
<entry tooltip-text="Drag the URL here and click D/Load Button">
<variable>ENTRY2</variable>
</entry>
<button>
<label>D/Load</label>
<input file stock="gtk-go-down"></input>
<action>wget -c $ENTRY2 &</action>
</button>
</hbox>

<hbox>
<button cancel></button>
</hbox>

</vbox>
</window>
'
export MAIN_DIALOG

case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac

----------------------------------- Script End ------------------------------------------

Fatdog64-Disk-Usage

Script written by jamesbond

The graphic below displays your disk usage in a nice GUI in Fatdog64.



To run the script right click on any of your drive icons then select Disk Usage. It will automatically mount all unmounted drives, analyse the drive then unmount them again. Mounted drives will not be mounted or unmounted.

Unfortunately this script only works in Fatdog64. It has a few dependencies that are not available in other pups such as gtk-server.

axel-gui

Written by smokey01

Copy the code below the Cut Line into your text editor and save it as axel-gui.sh then place it in /usr/local/bin. Make the script executable. This can be done with Rox by right-clicking on the script, select Permissions and left-click the Yes button.

Simply click on the script to run the GUI. Each time the GUI is run a desktop file will be created under Network. Don't worry it will overwrite the previous one. This is a simple method to include all of the working parts in a single script.



Drag a URL into the space provided. The Save Location button will let you choose a folder where to save your downloads. You can have between 1 and 100 connections. I trust you to be sensible with this. Four connection is usually more than adequate. The Help button will provide some basic help. The Save button will save your current preferences. The Download button executes the download process and Quit should be obvious.

---------------------------------------------- Cut Line -------------------------------------------------


#!/bin/sh

if [ ! -f /root/.config/axel-gui/axel-gui.conf ]; then
mkdir -p /root/.config/axel-gui
echo 'ENTRY=""
FILE="/root/Downloads"
CONNECTIONS="4"' > /root/.config/axel-gui/axel-gui.conf
fi

. /root/.config/axel-gui/axel-gui.conf

SAVEPREF () {
cat > /root/.config/axel-gui/axel-gui.conf <<EOF
ENTRY="$ENTRY"
FILE="$FILE"
CONNECTIONS="$CONNECTIONS"
EOF
}
export -f SAVEPREF

echo '[Desktop Entry]
Encoding=UTF-8
Name=Axel GUI
Icon=/usr/share/pixmaps/midi-icons/network48.png
Comment=Axel GUI
Exec=axel-gui.sh
Terminal=false
Type=Application
Categories=Network;
GenericName=axel-gui' > /usr/share/applications/axel-gui.desktop

HELP () {
DIALOG='
<window title="Axel GUI - by smokey01" resizable="true" icon-name="gtk-help" window-position="3">
<vbox space-expand="true" space-fill="true">
<frame Help>
<text justify="0"><label>"This is a simple front end for Axel.

Axel is a very good Download Accelerator.
Axel is able to download files with multiple simultaneous
connections.

Although the internet is much faster today than it was 10+
years ago, some sites can be quite slow while others are fast.

Your internet connection is only as fast as the slowest
bottleneck. If you can only download at 200KBps with one
connection you might find it will double with two or three
connections. If your maximum possible download speed is say,
1.5MBps you will not be able to exceed it no matter how many
connections you have.

Axel works perfectly fine from a terminal so you do not
need this GUI. It just makes life a bit easier.

I did not include all of the available Axel features in
the GUI, just the ones I considered useful.

Axel can use http, https, ftp and sftp protocols.
"
</label> </text>
</frame>
<hbox>
<button ok></button>
</hbox>
</vbox>
<variable>DIALOG</variable>
</window>
'
export DIALOG
eval $(gtkdialog -p DIALOG -c)
}
export -f HELP

[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog

MAIN_DIALOG='
<window icon-name="gtk-network" window-position="1" title="Gtkdialog Axel GUI - by smokey01 - 17 Oct 2017" decorated="true" resizable="false">
<vbox width-request="650">

<hbox>
<text width-request="130">
<label>Paste the URL here:</label>
</text>
<entry secondary-icon-stock="gtk-clear" secondary-icon-tooltip-text=" Click to clear Entry Box " tooltip-text=" Drag the URL here. ">
<variable>ENTRY</variable>
<default>"'$ENTRY'"</default>
<action signal="secondary-icon-press">clear:ENTRY</action>
</entry>
</hbox>

<hbox homogeneous="false">
<button tooltip-text=" Click to choose a save location ">
<label>"Save Location: "</label>
<input file stock="gtk-open"></input>
<action function="fileselect">FILE</action>
</button>
<entry fs-action="folder" fs-folder="$FILE"
fs-title="Select download folder" visible="true">
<variable>FILE</variable>
<default>"'$FILE'"</default>
</entry>
<text><label>"Connections:"</label></text>
<spinbutton range-min="1" tooltip-text=" Number of simultaneous connections ">
<variable>CONNECTIONS</variable>
<default>"'$CONNECTIONS'"</default>
</spinbutton>
</hbox>

<hbox homogeneous="true">
<button width-request="105" tooltip-text=" Some limited Help ">
<label>"Help"</label>
<input file stock="gtk-help"></input>
<action>HELP &</action>
</button>
<button width-request="105" tooltip-text=" Save your Preferences ">
<label>"Save"</label>
<input file stock="gtk-floppy"></input>
<action>SAVEPREF</action>
</button>
<button width-request="105" tooltip-text=" Download the File ">
<label>"Download"</label>
<input file stock="gtk-go-down"></input>
<action>urxvt -hold -e axel -o "$FILE" -a -v -n $CONNECTIONS "$ENTRY" &</action>
</button>
<button width-request="105" tooltip-text=" Quit the application ">
<label>"Quit"</label>
<input file stock="gtk-quit"></input>
</button>

</hbox>
</vbox>
</window>
'
export MAIN_DIALOG

case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac

--------------------------------------------- Cut Line ------------------------------------------------------------

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.

Refresh X server

Written by smokey01

Sometimes it is necessary to refresh your desktop but you don't really want to restart your X-server. Starting your X-server will close of all your active applications and this can often be undesirable.

There is a way to refresh your desktop without restarting the X-server, simply type xrefresh in a terminal. You will probably see a quick flicker but none of your applications should close. I can't guarantee if this command exists in all Puppy Linux Distributions but I know it does in Fatdog64.

More information can be found here: http://murga-linux.com/puppy/viewtopic.php?t=28549

Google search tip

Written by smokey01

Searching for something on a specific site EG: bsme2 site:murga-linux.com

The above search string looks for "bsme2" on the "murga-linux.com" forums.

You can also search for multiple terms like:

+bsme2 +smokey01 site:murga-linux.com

You do need to enter the search string in a google search box.

You could also type defaultbrowser "+bsme2 +smokey01 site:murga-linux.com" in a terminal.
Command Line Utilities

A couple of command line utilities to display disk usage.
Disk Usage

Written by smokey01

Disk Usage
It's nice to know the remaining capacity of your storage devices. Linux has some nice command line utilities that will provide this information but they may not be obvious to the new user.
One of my favourites is DU which means Disk Usage. From a terminal type du and press enter and you will generally see a lot of information fly up the terminal, probably too much to digest. It will show every file from /root recursively. To make the output a bit less cluttered try adding the -s switch like this: "du -s" without the quotes. Now you get a Disk Usage summary. To make it even easier to read also add the -h, human readable switch like: "du -sh". Notice you can use a single hyphen. You don't actually need to type it like "du -s -h" although it will work just the same.
Just to prove a point type: "du -sh /root". This time you get a total disk usage without the period "." after the output as in the previous example. Go on type: "du -sh" again. Notice the dot/full stop/period this time.
By now you should see a pattern forming. Let's assume you want to know the contents of a directory. Type: "du -h /path/to/directory". For example I have a directory called surfraw-2.2.9 under /root. To view the contents of the directory showing file sizes I would type: "du -h /root/surfraw-2.2.9" and I get:

584K /root/surfraw-2.2.9/usr/lib/surfraw
588K /root/surfraw-2.2.9/usr/lib
52K /root/surfraw-2.2.9/usr/bin
12K /root/surfraw-2.2.9/usr/etc/xdg/surfraw
16K /root/surfraw-2.2.9/usr/etc/xdg
20K /root/surfraw-2.2.9/usr/etc
52K /root/surfraw-2.2.9/usr/share/man/man1
56K /root/surfraw-2.2.9/usr/share/man
60K /root/surfraw-2.2.9/usr/share
724K /root/surfraw-2.2.9/usr
728K /root/surfraw-2.2.9

I omitted the -s switch as I wanted to see all of the files and not just a summary.
Disk Free

Written by smokey01

Disk Free
Another really nice utility is df. Go on type df in a terminal. I get the following output:

Filesystem 1K-blocks Used Available Use% Mounted on
devtmpfs 16243488 4 16243484 1% /dev
tmpfs 16452864 4700 16448164 1% /aufs/pup_init
/dev/loop0 55936 55936 0 100% /aufs/kernel-modules
/dev/loop1 291456 291456 0 100% /aufs/pup_ro
/dev/sda1 2884152536 23341832 2714281068 1% /aufs/devsave
aufs 2884152536 23341832 2714281068 1% /
tmpfs 16452864 0 16452864 0% /dev/shm
tmpfs 16452864 792 16452072 1% /tmp
/dev/loop10 5120 5120 0 100% /aufs/pup_ro10
/dev/loop11 82688 82688 0 100% /aufs/pup_ro11
/dev/loop12 363904 363904 0 100% /aufs/pup_ro12
/dev/loop13 116736 116736 0 100% /aufs/pup_ro13
/dev/loop14 62592 62592 0 100% /aufs/pup_ro14
/dev/sdb2 1031992064 45197656 934365608 5% /mnt/sdb2
/dev/sdb3 819908352 69236972 709015728 9% /mnt/sdb3
/dev/sdc1 230619284 8724100 210157328 4% /mnt/sdc1
/dev/sdb1 1031992064 196039500 783523764 21% /mnt/sdb1

Yours will be similar but I'm sure your drive configuration will be different. As you can see from the list above I have five partitions. To see all of your partitions they must be mounted. The df command can't read what it can't see. This is the same for du.

The df utility only displays disk free space not file sizes like du can. If I want to know how much space has been used on sdb1 I can look at the last line of the output above or I can make it a bit easier to read with this command:
df -h /dev/sdb1

Filesystem Size Used Avail Use% Mounted on
/dev/sdb1 985G 187G 748G 21% /mnt/sdb1

Which is much easier to read and understand.
Entertainment

A couple of puzzles provided by greengeek.

Crossword

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

TLAs

What are TLAs? - Three Letter Acronyms.

I have tried to make a crossword with TLAs but being so short they don't link too well together.
So anyway - here is a sort of crossword but please also check out the "wordfind" version further down
in the entertainment section. (it includes a much bigger list of TLAs)









Scroll further down for answers:








Wordfind

Wordfind formatted by Greengeek using the "Puzzlefast" website.

Find the TLAs
(Three Letter Acronyms)




Clues:





See below 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 being recognised for your contribution.

smokey01
greengeek
Barry Kauler
Dry Falls
peebee
ETP
rg66
jamesbond
Terry Schuster
labbe5
Mike Walsh
sc0ttman

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. It must be created in Notecase otherwise it makes my job far too 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