Moving on, I hope.

Leave a comment

Chit chat


The personal computer was actually invented by a Texas chicken farmer which was known as the glass teletype and the company became known as Datapoint.

Bad storm and the power went out. Had to use the UPS (on battery only) for the router and the palmtop to see when the electricity might be restored.

Shame the AT&T door to door harassment teams do not understand what the term “No soliciting” means..

The new Microcenter store makes Frys look like a Radio Shack store.

Playing Soduku more and more.

Screenshot from 2015-04-18 16:45:25


Quickie hints:

Set the path:

$ export PATH=/usr/local/bin:/usr/bin:/bin:/usr/local/games:/usr/games:/home/$USER/bc:/home/$USER/bin

Add icons and etc to desktop:

Run this command in your terminal (Applications > Accessories > Terminal):

# show files on desktop
gsettings set org.gnome.desktop.background show-desktop-icons true

# show shares on desktop
gsettings set org.gnome.nautilus.desktop volumes-visible true

# restart nautilus or logout and log back in.
nautilus -q


Please keep your systems up to date!

For linux (depending on the distro:)

$ sudo apt-get update; sud apt-get upgrade
$ sudo yum update; sudo yum, upgrade
$ sudo pacman -Syu



Rp1 cases

There are a lot of diy cases on the net. Probably the most notable one is the cardboard case.  You can easily find them on the net by looking for RPi printable cases. Besure and tell the print program to not resize the image.

This next two were not real impressive and not so easily put together. Kind of flimsy?

This next one seemed a bit complicated.

Then there are the .dxf files with Librecad so you can use them a laser cutter or cnc router.



Cases can be expensive for micro-controllers, but if you can forgo the exactness you can use very inexpensive containers, This is especially true for controllers that might have several layer of capes, and or add-on boards

You can get inexpensive containers 3 or more for a dollar at a discount store.

Once you have your containers, you will want to modify them.

Then lastly you will want to bolt down the board. #4 machine screws should work fine for this. and viola you have your own case.


Screenshot from 2015-04-20 01:41:55

Setting up a network scanner:

Here are the steps to installing and accessing a network scanner from Ubuntu desktop client. It is assumed that the network scanner server is already up and running.

1) Let us first check whether there is a scanner available on our Ubuntu client host. Without any prior setup, you will see the message saying that “No scanners were identified.”

$ scanimage -L

2) Now we need to enable saned daemon which comes pre-installed on Ubuntu desktop. To enable it, we need to edit the /etc/default/saned file, and set the RUN variable to yes:

$ sudo vim /etc/default/saned
# Set to yes to start saned

3) Let’s edit the /etc/sane.d/net.conf file, and add the IP address of the server where the scanner is installed:

4) Restart saned:

$ sudo service saned restart

5) Let’s see if the scanner is available now:

Now we can open “Simple Scan” (or other scanning utility) and start scanning documents. We can rotate, crop, and save the resulting image:

Note: most generic print servers do not support this feature.


How to download and install prebuilt OpenJDK packages
Debian, Ubuntu, etc.

On the command line, type:

$ sudo apt-get install openjdk-7-jre

For development
$ sudo apt-get install openjdk-7-jdk

To make sure you are using the right version

$ sudo update-alternatives –config java

For the browser:

$ sudo apt-get install  icedtea-7-plugin

The openjdk-7-jre package contains just the Java Runtime Environment. If you want to develop Java programs then install the openjdk-7-jdk package.
Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

On the command line, type:
$ su -c “yum install java-1.7.0-openjdk”

The java-1.7.0-openjdk package contains just the Java Runtime Environment. If you want to develop Java programs then install the java-1.7.0-openjdk-devel package.
Debian, Ubuntu, etc.

On the command line, type:
$ sudo apt-get install openjdk-6-jre

The openjdk-6-jre package contains just the Java Runtime Environment. If you want to develop Java programs then install the openjdk-6-jdk package.
Fedora, Oracle Linux, Red Hat Enterprise Linux, etc.

On the command line, type:
$ su -c “yum install java-1.6.0-openjdk”

The java-1.6.0-openjdk package contains just the Java Runtime Environment. If you want to develop Java programs then install the java-1.6.0-openjdk-devel package.
BSD Port

For a list of pointers to packages of the BSD Port for DragonFly BSD, FreeBSD, Mac OS X, NetBSD and OpenBSD, please see the BSD porting Project’s wiki page.


Set up your own computer based radio. radiolocator.com is a good place to start for looking to find available stations.

Many radio stations will let you listen to their live stream, Sometimes you can find and use the link on their web page. Sometimes you have to venture through web page html to find it the file and download it from their server. So if that file gets updated, you will need to get the file again.

A play list might look like:

$ cat klolfmaac.pls



$ cat koda-fm.m3u

So log in to the remote server and install your files (the shell file and the play lists). The modify the shell file for the location of the play lists. Make the shell file executable.

$ chmod +x radio,sh
What I do is install screen so I can let go of the script if I need to and then come back later to it.

$ screen
<ctrl>A d) to disconnect

Get screen sessions

$ screen -ls

Then reconnect with:

$ screen -r <session number or name>

Then just run it

$ ./radio.sh

Press q to quit
$ exit to leave screen session.

# Script to emulate a radop.
while :
echo "************************"
echo "* Radio tuner          *"
echo "************************"
echo "* [1] Alvin            *"
echo "* [2] 91.7 classical   *"
echo "* [3] 88.7 global      *"
echo "* [4] Kuhf news        *"
echo "* [5] KPFT             *"
echo "* [6] Koda             *"
echo "* [7] KTBZ             *"
echo "* [8] KSBJ             *"
echo "* [9] KGLT             *"
echo "*                      *"
echo "* [0] Exit/Stop        *"
echo "************************"
echo "Enter your menu choice [1-9 or 0]: "
read -n 1 yourch
case $yourch in
1) mplayer -playlist http://www.kaccradio.com/images/KACCRadio.asx  ;;
2) mplayer -playlist  http://www.publicbroadcasting.net/kuhf/ppr/kuha_128.m3u  ;;
3) mplayer -playlist  http://www.publicbroadcasting.net/kuhf/ppr/kuhfglobal_128.m3u  ;;
4) mplayer -playlist http://www.publicbroadcasting.net/kuhf/ppr/kuhfnews_128.m3u  ;;
5) mplayer -playlist http://kpft.org/KPFT-hifi.wma ;;
6) mplayer -playlist koda-fm.m3u  ;;
7) mplayer -playlist ktbz-fm.m3u  ;;
8) mplayer -playlist ksbjfmaac.pls  ;;
9) mplayer -playlist kglkfmaac.pls ;;
0) exit 0;;
*) echo "Oopps!!! Please select choice 1,2,3,4,5,6,7,8, or 9"
echo "Press Enter to continue. . ." ; read ;;


Slow ascii file reader

$ ./asccirdr.[filename]


# A program to slowly cat file or standard input.

if [ "$1" ] ; then

cat "$file" | while read c ; do
echo "$c"

# change delay for speed of viewing.

sleep .005



Ereader is optional by using your portable music player.



Simple python calender

$ python cal.py

Screenshot from 2015-04-26 23:30:20

$ cat cal.py
import calendar


Create a table with python for use in a web page.

Screenshot from 2015-04-26 23:37:43

$ python table.py
<tr><td style=”font-weight: bold;”>1</td><td>5572</td><td>4860</td><td>3289</td></tr>
<tr><td style=”font-weight: bold;”>2</td><td>7419</td><td>5313</td><td>4522</td></tr>
<tr><td style=”font-weight: bold;”>3</td><td>8962</td><td>7636</td><td>7714</td></tr>
<tr><td style=”font-weight: bold;”>4</td><td>8330</td><td>3408</td><td>3646</td></tr>
<tr><td style=”font-weight: bold;”>5</td><td>6894</td><td>2333</td><td>5806</td></tr>

save to file with:

python table.py > tabletest.html

import random
def rand9999():
return random.randint(1000, 9999)
def tag(attr='', **kwargs):
for tag, txt in kwargs.items():
return '<{tag}{attr}>{txt}</{tag}>'.format(**locals())
if __name__ == '__main__':
header = tag(tr=''.join(tag(th=txt) for txt in ',X,Y,Z'.split(','))) + '\n'
rows = '\n'.join(tag(tr=''.join(tag(' style="font-weight: bold;"', td=i)
+ ''.join(tag(td=rand9999())
for j in range(3))))
for i in range(1, 6))
table = tag(table='\n' + header + rows + '\n')


Bachelor tortilla (a little rolling pin action).


Good day.

Jupiter goes forward.

Leave a comment

Chit chat


Have not taken time yet to fix the email server..

Was able to get my old RP1 up and running again. Somehow it had a bad image. Put Openelec on the mm card for testing.

The Easter bunny brought me an RPi-2.

Finally getting used to connecting wireless with my nexus 7 tablet with much regret.

Hopefully Libreoffice will come out with their web based version soon. Saving a place on the server for it. Like the policy of install once but us many.

Keep getting messages about updating the Pogoplug. Since going to arch linux, we have not used that service in forever.

Raspberry Pi case?



Now let us take a look a remote music controller called mpd. With mplayer we could do everything from the command line, mpw we should be able to use the gui on the remote machine. We will not need to use ssh here either.

You will want to set up your host machines with speakers as before. Then we need to add a new piece of software called mpd. It is available for a wide variety of systems including android.

$ sudo apt-get install mpd.

Server does not have to have gui installed. Copy your music files to the server if they are not already there. Then you will want so edit the config file for you file settings and etc.

$ sudo vim /etc/mpd.conf

Once you have that done, you will need to go to the client machine and install the following:

$ sudo apt-get install mpc gmpc

Then go to the gui menu for the  sound and video.   Choose the gnome-music-okayer-client. Everything is gui form there. You will need to set the servername and the port number (usually 6600). In many cases it will autodetect it for you.

Start playing music from the server.


Remember the old concentration game from many years ago. You can make your own version. you will need thirty clear plastic envelopes. They can be make from cheap clear plastic lunch bags and clear plastic tape. Poster board can be used for making the large frames. You will also need to make some blue cards with the embossed numbers for each of the bags. Of course you will need a frame to hold the puzzle background.

Lastly you will need a puzzle to use as the background. You can use your favorite drawing program the will let you import pictures. Gimp is what we like to use  There are thousands on-line that you can use or even use your own. Such as:

The sky is the limit with your imagination. More information at: http://en.wikipedia.org/wiki/Concentration_%28game_show%29


Just an experiment to determine the amount of days between two dates. In this case it is the days left in the current presidency.

D=`date +%Y-%m-%d`
D1=`date +%s -d "$D"`
D2=`date +%s -d "2017-01-20"`
echo - | awk -v SECS=$diff_sec '{printf "Number of days : %d",SECS/(60*60*24)}'
echo " till Obama leaves office."


$ ./datediff.sh
Number of days : 656 days till Obama leaves office.

or semigui:

D=`date +%Y-%m-%d`
D1=`date +%s -d "$D"`
D2=`date +%s -d "2017-01-20"`
a=`echo - | awk -v SECS=$diff_sec '{printf "Number of days : %d",SECS/(60*60*24)}'`
a=$a" till Obama leaves office."
zenity --info --text="$a"

Screenshot from 2015-04-11 03:54:56


Really feel for Mr. Banzi and the fact that everyone is making their own version of the Arduino. You can get the bare  chips and make your own. You can get the boards as low as ten dollars even at a retail outlet. Had a spare ethernet board I bought from Radio shack on sale. So when I saw a compatible board for only ten dollars, I had to get it.

The main reason, I wanted this version of the board is that I have some Arduino chips that that can be plugged and played on the board versus the surface mounted versions which will not plug and play.

For those systems that need acm

$ sudo apt-get install hal
$ sudo usermod -a -G tty $USER
$ sudo usermod -a -G dialout $USER

Speaking the Arduino, they have a newer IDE. When I downloaded a recent version, I had problems. The one I downloaded today seems to work. Tested the new Arduino board and the extra ethernet board we had. Seemed to work. The page for the new software is: http://arduino.cc/en/Main/Software

One thing I like about the new ide is that if gives you a basic form to start with, which saves time. In fact you cut and paste the minimal code in the old ide software/

void setup() {
// put your setup code here, to run once:


void loop() {
// put your main code here, to run repeatedly:

Time to go back and work on the Sous vide project.

The Nexus 7 has a neat little ide also


Primer on ipv6


One of the main benefits of Internet Protocol version 6 (IPv6) over previously used Internet Protocol version 4 (IPv4) is the large address-space that contains (addressing) information to route packets for the next generation Internet.

IPv6 supports 128-bit address space and can potentially support 2128 or 3.4W1038 unique IP addresses (as opposed to 32-bit address space of IPv4). With this large address-space scheme, IPv6 has the capability to provide unique addresses to each and every device or node attached to the Internet.



Why we need IPv6 Addressing

An escalating demand for IP addresses acted as the driving force behind the development of the large address space offered by the IPv6. According to industry estimates, in the wireless domain, more than a billion mobile phones, Personal Digital Assistants (PDA), and other wireless devices will require Internet access, and each will need its own unique IP address.

The extended address length offered by IPv6 eliminates the need to use techniques such as network address translation to avoid running out of the available address space. IPv6 contains addressing and control information to route packets for the next generation Internet.

IPv6 addresse formats are divided into three classes:

1) Unicast addresses A Unicast address acts as an identifier for a single interface. An IPv6 packet sent to a Unicast address is delivered to the interface identified by that address.

2) Multicast addresses A Multicast address acts as an identifier for a group/set of interfaces that may belong to the different nodes. An IPv6 packet delivered to a Multicast address is delivered to the multiple interfaces.

3) Anycast addresses Anycast addresses act as identifiers for a set of interfaces that may belong to the different nodes. An IPv6 packet destined for an Anycast address is delivered to one of the interfaces identified by the address.


IPv6 Address Notation

IPv6 addresses are denoted by eight groups of hexadecimal quartets separated by colons in between them.

Following is an example of a valid IPv6 address: 2001:cdba:0000:0000:0000:0000:3257:9652

Any four-digit group of zeroes within an IPv6 address may be reduced to a single zero or altogether omitted. Therefore, the following IPv6 addresses are similar and equally valid:




The URL for the above address will be of the form:


Network Notation in IPv6

The IPv6 networks are denoted by Classless Inter Domain Routing (CIDR) notation. A network or subnet using the IPv6 protocol is denoted as a contiguous group of IPv6 addresses whose size must be a power of two. The initial bits of an IPv6 address (these are identical for all hosts in a network) form the network s prefix. The size of bits in a network prefix are separated with a / . For example, 2001:cdba:9abc:5678::/64 denotes the network address 2001:cdba:9abc:5678. This network comprises of addresses rearranging from 2001:cdba:9abc:5678:: up to 2001:cdba:9abc:5678:ffff:ffff:ffff:ffff. In a similar fashion, a single host may be denoted as a network with a 128-bit prefix. In this way, IPv6 allows a network to comprise of a single host and above.

Special Addresses in IPv6

::/96 The zero prefix denotes addresses that are compatible with the previously used IPv4 protocol.

::/128 An IPv6 address with all zeroes in it is referred to as an unspecified address and is used for addressing purposes within a software.

::1/128 This is called the loop back address and is used to refer to the local host. An application sending a packet to this address will get the packet back after it is looped back by the IPv6 stack. The local host address in the IPv4 was .

2001:db8::/32 This is a documentation prefix allowed in the IPv6. All the examples of IPv6 addresses should ideally use this prefix to indicate that it is an example.

fec0::/10 This is a site-local prefix offered by IPv6. This address prefix signifies that the address is valid only within the local organization. Subsequently, the usage of this prefix has been discouraged by the RFC.

fc00::/7 This is called the Unique Local Address (ULA). These addresses are routed only within a set of cooperating sites. These were introduced in the IPv6 to replace the site-local addresses. These addresses also provide a 40-bit pseudorandom number that reduces the risk of address conflicts.

ff00::/8 This prefix is offered by IPv6 to denote the multicast addresses. Any address carrying this prefix is automatically understood to be a multicast address.

fe80::/10 This is a link-local prefix offered by IPv6. This address prefix signifies that the address is valid only in the local physical link.


ipv4 web calculator. You can find it on the web if you look.

Screenshot from 2015-04-10 00:49:58

Screenshot from 2015-04-10 00:47:56

Screenshot from 2015-04-10 00:51:03

Screenshot from 2015-04-10 00:52:18

Some ipv6 calculators also on the web

Screenshot from 2015-04-10 00:46:42

Screenshot from 2015-04-10 00:45:14

Screenshot from 2015-04-10 00:43:53


Another ipv6 Calcer

Screenshot from 2015-04-12 22:16:34

Screenshot from 2015-04-12 22:17:15


If you’re a Linux system administrator, chances are you’ve got more than one machine that you’re responsible for on a daily basis. You may even have a bank of machines that you maintain that are similar — a farm of Web servers, for example. If you have a need to type the same command into several machines at once, you can login to each one with SSH and do it serially, or you can save yourself a lot of time and effort and use a tool like ClusterSSH.

ClusterSSH is a Tk/Perl wrapper around standard Linux tools like XTerm and SSH. As such, it’ll run on just about any POSIX-compliant OS where the libraries exist — I’ve run it on Linux, Solaris, and Mac OS X. It requires the Perl libraries Tk (perl-tk on Debian or Ubuntu) and X11::Protocol (libx11-protocol-perl on Debian or Ubuntu), in addition to xterm and OpenSSH.


Installing ClusterSSH on a Debian or Ubuntu system is trivial — a simple sudo apt-get install clusterssh will install it and its dependencies. It is also packaged for use with Fedora, and it is installable via the ports system on FreeBSD. There’s also a MacPorts version for use with Mac OS X, if you use an Apple machine. Of course, it can also be compiled from source.


ClusterSSH can be configured either via its global configuration file — /etc/clusters, or via a file in the user’s home directory called .csshrc. I tend to favor the user-level configuration as that lets multiple people on the same system to setup their ClusterSSH client as they choose. Configuration is straightforward in either case, as the file format is the same. ClusterSSH defines a “cluster” as a group of machines that you’d like to control via one interface. With that in mind, you enumerate your clusters at the top of the file in a “clusters” block, and then you describe each cluster in a separate section below.

For example, let’s say I’ve got two clusters, each consisting of two machines. “Cluster1” has the machines “Server1” and “Server2” in it, and “Cluster2” has the machines “Server3” and “Server4” in it. The ~.csshrc (or /etc/clusters) control file would look like this:

clusters = cluster1 cluster2

cluster1 = server1 server2
cluster2 = server3 server4

You can also make meta-clusters — clusters that refer to clusters. If you wanted to make a cluster called “all” that encompassed all the machines, you could define it two ways. First, you could simply create a cluster that held all the machines, like the following:

clusters = cluster1 cluster2 all

cluster1 = server1 server2
cluster2 = server3 server4
all = server1 server2 server3 server4

However, my preferred method is to use a meta-cluster that encompasses the other clusters:

clusters = cluster1 cluster2 all

cluster1 =Server1 server2
cluster2 = server3 server4
all = cluster1 cluster2

Figure 1: Lauching ClusterSSH

By calling out the “all” cluster as containing cluster1 and cluster2, if either of those clusters ever change, the change is automatically captured so you don’t have to update the “all” definition. This will save you time and headache if your .csshrc file ever grows in size.

Using ClusterSSH

Using ClusterSSH is similar to launching SSH by itself. Simply running cssh -l <username> <clustername> will launch ClusterSSH and log you in as the desired user on that cluster. In the figure below, you can see I’ve logged into “cluster1” as myself. The small window labeled “CSSH [2]” is the Cluster SSH console window. Anything I type into that small window gets echoed to all the machines in the cluster — in this case, machines “server1” and “server2”. In a pinch, you can also login to machines that aren’t in your .csshrc file, simply by running cssh -l <username> <machinename1> <machinename2> <machinename3>.

If I want to send something to one of the terminals, I can simply switch focus by clicking in the desired XTerm, and just type in that window like I usually would. ClusterSSH has a few menu items that really help when dealing with a mix of machines. As per the figure below, in the “Hosts” menu of the ClusterSSH console there’s are several options that come in handy.

“Retile Windows” does just that if you’ve manually resized or moved something. “Add host(s) or Cluster(s)” is great if you want to add another set of machines or another cluster to the running ClusterSSH session. Finally, you’ll see each host listed at the bottom of the “Hosts” menu. By checking or unchecking the boxes next to each hostname, you can select which hosts the ClusterSSH console will echo commands to. This is handy if you want to exclude a host or two for a one-off or particular reason. The final menu option that’s nice to have is under the “Send” menu, called “Hostname”. This simply echoes each machine’s hostname to the command line, which can be handy if you’re constructing something host-specific across your cluster.

Caveats with ClusterSSH

Like many UNIX tools, ClusterSSH has the potential to go horribly awry if you aren’t very careful with its use. I’ve seen ClusterSSH mistakes take out an entire tier of Web servers simply by propagating a typo in an Apache configuration. Having access to multiple machines at once, possibly as a privileged user, means mistakes come at a great cost. Take care, and double-check what you’re doing before you punch that Enter key.


ClusterSSH isn’t a replacement for having a configuration management system or any of the other best practices when managing a number of machines. However, if you need to do something in a pinch outside of your usual toolset or process, or if you’re doing prototype work, ClusterSSH is indispensable. It can save a lot of time when doing tasks that need to be done on more than one machine, but like any power tool, it can cause a lot of damage if used haphazardly.


Homnemade SOS


Good day.



Leave a comment

Chit chat


Extremely upset.I have to redo Squirrelmail on the server.

if a picture is worth a thousand words, then is a movie worth a million words? Here are some of my original videos. Hope to make more and better ones soon,



Thinking about getting a stereo  for the office area, but really did not want to spend any money if I could use an old pc.Love to play free open source royalty free music.  If you think about it, the footprint of a stereo is like a pc but without the monitor. Maybe I could just use an old Linux box to get the job one.

Then I thought would it be nice if I could lt the pc stereo stand alone and then access it from a remote machine.  Something linux can do very easily using the ssh environment. Installed a switch and ran the cables from the desk top to the music server. You could also do this via wifi, but that can be a security issue.

Once you have everything set up, you will want to move your music files and then organize your music in some way before starting the shell command.


$ ssh oeorgan1

$ sudo apt-get install mplayer

Execute the shell command to play all the sonegs in the subdirectories from the main subdirectory. Note: if you know how to use the screen command, you can enhance your control a lot easier.

eddie@oeorgan1:/var/media/music$ mplayer -really-quiet -playlist <(find $PWD -type f)

Then you can use various keyboard commands to control the music. The ones I use most are:

<shift> >     next song

<shift> <     previous song

p                   pause

r                    continue

<control> c  stop

Here are two keyboard formats that might be of interest.

Like Alton Brown of “Good eats” fame, he detests single use appliances, Since computers are good at doing more than one thing, you take your pc stereo system and add web, mail, file and a host of other programs to make the systems more versatile. Let us see whether your gardent variety stereo can do that.

If you wanted something more interactive, you could install something like xvnc or xrdp and rim something like rhythymbox or whatever.


Picture of Another almost free computers thin client set up Part II.

In this section we will add some internet safety software and allow access to the net from the ltsp clients.

Step 1: Setting up a proxy

To filter the internet we need a tool to allow us to do that. Tinyproxy allows us to do that.

Launch the Synaptic Package Manager from the “System” -> “Administration” menu.

We need to make sure that community open source packages are available. To do that under the menu “Settings” select “Repositories”. Make sure “Community maintained Open Source software (universe)” is selected.

Now on the tool menu click Search and type “tinyproxy”. Right-click on “tinyproxy” and select “Mark for Installation”. Now click Apply on the tool menu.


sudo apt-get install tinyproxy

Tinyproxy should now be installed.

Step 2: Content filtering.

Before we enable the internet connection to the thin clients we want to be able to filter or block sites that may not fit our needs. This is especially true for a day care center or even home use. Seems like it would take forever to build a list of sites that might be objectionable. Fortunately http://urlblacklist.com/ has a free list that can be downloaded ( go to http://urlblacklist.com/?sec=download ) and be used with the software we are going to install..

Dansgaurdian: DansGuardian is an award winning Open Source web content filter which currently runs on Linux, FreeBSD, OpenBSD, NetBSD, Mac OS X, HP-UX, and Solaris. It filters the actual content of pages based on many methods including phrase matching, PICS filtering and URL filtering. It does not purely filter based on a banned list of sites like lesser totally commercial filters. DansGuardian is designed to be completely flexible and allows you to tailor the filtering to your exact needs. It can be as draconian or as unobstructive as you want. The default settings are geared towards what a primary school might want but DansGuardian puts you in control of what you want to block.

Launch the Synaptic Package Manager from the “System” -> “Administration” menu. Now we can install DansGuardian, again click “Search” from the tool menu and type “dansguardian”. Right-click on “dansguardian” and select “Mark for Installation”. Now click “Apply” on the tool menu. The installation will error because DansGuardian is not yet configured.

(or sudo apt-get install dansguardian)

To configure DansGuardian, open a Terminal and type:gksudo gedit /etc/dansguardian/dansguardian.conf (or sudo nano /etc/dansguardian/dansguardian.conf)

Now comment out the line that says “UNCONFIGURED” by placing a ‘#’ at the beginning of that line.

Find the line that says “proxyport” and change the proxyport value to Tinyproxy’s default port#, which is 8888.

Note: the port is originally set to 3128 which is the default proxy port for squid proxy. An alternative to Tinyproxy. Instructions for setting this up are also in the Wiki, here https://help.ubuntu.com/community/SquidGuard, and it may be more suitable for network proxying

Save the file and exit.

Right-click on dansguardian in the Synaptic Package Manager again and select “Mark for Reinstallation”. Click “Apply”.

Congratulations! Your machine should now be running a fully functional Internet Content Filter on port 8080. To test your filter, open your web browser and tell it to use localhost port 8080 as its HTTP proxy.

To check configuration:

sudo /etc/init.d/dansguardian restart

You should get:

Restarting DansGuardian: * Restarting DansGuardian: [ OK ]

Step 3: Connecting to the internet.

You need to make sure some parameters are set up.

$ sudo nano /etc/network/options and it should have the following options.




then enable the connection

$ sudo sh -c ‘echo 1 > /proc/sys/net/ipv4/ip_forward’

Now go to an ltsp client and see if you can get on the internet.

Step 4: Using a proxy.

Browse the Web with Firefox via a Proxy Server

SUMMARY: If security restrictions require accessing the Internet through a proxy server, here’s how to configure Mozilla Firefox to do so.

For security reasons, if you access the Internet through a proxy server, you need to configure Mozilla Firefox with the correct settings, else you may not be able to access web sites, FTP servers, and the like through your web browser.

1. Click “Tools” – “Options”.

2. When the “Options” dialog box appears, click the “Advanced” button.

3. Click the “Network” tab.

4. Click the “Settings” button next to “Configure how Firefox connects to the Internet”.

5. A “Connection Settings” dialog box will appear. Here you can decide whether to use:

Firefox Connection Settings dialog box

* No proxy (default)

* Auto-detect proxy settings for this network

* Manual proxy configuration

* Automatic proxy configuration URL (if you select this, enter the URL).

6. If you require a proxy, auto-detection fails, and you do not have an automatic configuration URL, you need to configure Mozilla Firefox manually with the proxy settings.

* Enter proxy information for the following protocols: HTTP, SSL, FTP, Gopher (!), and / or SOCKS. If all use the same proxy settings, click the “Use the same proxy for all protocols” button.

* Next to “No Proxy for”, enter addresses that don’t require a proxy server to access.

7. When done, click “OK” on the dialog boxes to close them.

This tip was written for Mozilla Firefox v3.0.4. Screenshots and instructions for other versions may vary.

Step 5: Other packages to consider.

External project not included in Ubuntu at this time.

Teachertool – Fl_TeacherTool is a program to help teachers teach by utilizing the benefits of a Linux Terminal Server. It was designed to fit into the K12LTSP distribution but may also work with other LTSP system

Installable from ubuntu

ltsp controlaula – Classroom management tool (must be installed in client root not host root)

thin-client-manager-backend – control ubuntu LTSP connections

thin-client-manager-gnome – control ubuntu LTSP connections



Picture of Part III LTSP Maintenance.

This is for LTSP,  mainly for keeping software installed via the standard repositories up to date.  You definitely really need to be at least an intermediate linux user to accomplish this project. Ask for help from an expert if you fell uncomfortable with it. With ltsp you really have two separate file systems to update. One for the regular file system and one for the file system clients. Actually you could have several file systems to update if you are supporting more than one kind of thin client hardware. By now you should be handy enough with the command line that I do not have to put a picture of every result. Quick hint: you can ssh into your server and then cut and paste all the commands from a file or this web page. That is what I am doing now.

Update the sources (where the upgrade/update files will come from).

$ sudo apt-get update

Do the upgrade

$ sudo apt-get upgrade

In some cases if you did a system upgrade instead of a clean install, you might not get all packages upgraded.

$ sudo apt-get dist-upgrade will usually do the job.

Last of all some clean up.

$ sudo apt-get autoclean

With the client directories, you want to make sure that the list of sources for the client file system is the same as the server or there will be some incompatibilities. (note: i386 is the architecture type.)

$ sudo cp /etc/apt/sources.list /opt/ltsp/i386/etc/apt/.

$ export LTSP_FILE_DAEMONS=false

Now you need to temporarily need to change file systems so that the updates go to the proper file system.

$ sudo chroot /opt/ltsp/i386

$ mount -t proc proc /proc

Here we go:

$ sudo apt-get update

$ sudo apt-get dist-upgrade

$ sudo apt-get clean

$ exit

$ sudo ltsp-update-kernels

$ sudo umount /opt/ltsp/i386/proc

$ sudo ltsp-update-sshkeys

$ sudo ltsp-update-image

One of the few times that rebooting the might be a good idea.

$ sudo chroot /

$ sudo reboot

So nice only to have to update just one computer instead of a whole lab full or more of computers. You would still work with user accounts and etc as you would with a standalone system.


Ethernet splitter.variant cable saver. Need to be well shielded.


Take the other end of the cable, cut it to 9 inches and punch down the four pairs using the following wiring scheme: You will need two of them.

Jack #1:

1 White/Orange to pin 1keystone jack

2 Orange to pin 2 keystone jack

3 White/Green to pin 3 keystone jack

6 Green to pin 6 keystone jack

Jack #2:

4 Blue to pin 2 keystone jack

5 White/Blue to pin 1 keystone jack

7 White/Brown to pin 3 keystone jack

8 Brown to pin 6 keystone jack

Once all the pairs are punched down, you can glue together side by side the two keystone jacks.


Screenshot from 2015-03-30 00:22:51


Working on the mythical school website


Screenshot from 2015-04-03 15:43:36 Screenshot from 2015-03-13 12:15:56 Screenshot from 2015-03-13 12:15:30 Screenshot from 2015-03-13 12:16:29

Screenshot from 2015-04-03 15:45:07Screenshot from 2015-04-03 15:44:33

Screenshot from 2015-03-31 02:27:39 Screenshot from 2015-03-31 02:28:26Screenshot from 2015-03-31 01:20:04


Oldee but goodie:


This is way out of date, but it has it’s points

Done Item: Geek Bucket list. (from “Daily cup of tech”)
Geek Bucket list. (from “Daily cup of tech”)
1. Add a Third Monitor
2. Build a Linux Firewall
3. Build a Network File Server
4. Build a PC
5. Build a Robot
6. Build an HTML based Website using Notepad
7. Bypass a Computer Password on All Major Operating Systems
8. Bypass School or Work Website Blocks
9. Carry a Computer Cleaning Arsenal on Your USB Drive
10. Compile a Linux Kernel
11. Control Your House Lights with a Computer
12. Convert Cassette Tapes to Digital Audio Files
13. Crack a Wi-Fi Password
14. Create “Hello, World” in at Least Five Different Programming languages
15. Create a Disposable E-Mail Account
16. Create a Recovery Drive Image of Your Computer
17. Create a WordPress Plugin
18. Create a WordPress Theme from Scratch
19. Create an Add-On for Firefox
20. Create an SSH Tunnel
21. Create Music with Keyboard
22. Design and Build a Circuit Board
23. Do Cool Things to Altoids Tins
24. Download a Video from YouTube
25. Download Wikipedia
26. Execute a Shell Script
27. Find a Users IP Address on AIM
28. Find a Website IP Address Without Web/CommandPrompt Access
29. Flash System BIOS
30. Hack a Pop Machine
31. Hack a USB Drive Startup File
32. Hide a File Behind a JPEG
33. Homebrew Hack Game Systems
34. Increase Wi-Fi Range
35. Install a Content Management System for a Website
36. Irrecoverably Protect Data
37. Jailbreak an iPhone
38. Know the Meaning of Technical Acronyms
39. Know Who Mulder and Scully Are
40. Learn and Write Javascript
41. Learn At Least One Fictional Language
42. Learn Hexadecimal and Binary Number Systems
43. Learn How to Convert a DVD to x264 (or XviD or DivX)
44. Learn How to Hot Wire a Car
45. Learn How to Install Mac OS X on a PC
46. Learn How to Reset RAM
47. Learn Important Keyboard Shortcuts
48. Learn the Fastest way to Kill a Computer
49. Learn to Identify Keyloggers
50. Learn to Identify Major Constellations
51. Load Rockbox onto an MP3 Player
52. Lock Your Computer with a USB Drive
53. Make a Cat5 Patch and Crossover Cable
54. Make a Laptop Cooling Pad
55. Make Your Office Ergonomic
56. Mod a Flash Drive Case
57. Monitor Network Traffic
58. Mount and ISO in a Virtual DVD Drive
59. Move Completely To Open Source
60. Permanently Delete Data on a Hard Drive
61. Permanently Delete Your Facebook Account
62. Pick a Lock
63. Play a Geek Practical Joke
64. Play Retro Games without Retro Consoles
65. Put LEDs Inside a Light Bulb
66. Put Open Source Firmware on a Router
67. Read 1337 At Normal Speed
68. Recover Deleted Files
69. Recover Master Boot Record
70. Register Your Name as an Internet Domain
71. Remotely Control a Computer
72. Replace a Laptop Keyboard
73. Replacing a Laptop LCD
74. Retrieve Data off Hard Drive
75. Rip Streaming Videos
76. Run an Operating System from a USB Thumb Drive
77. Run Multiple Computers with one Keyboard and Mouse
78. Run Operating System inside a Virtual Computer
79. Run Your Own Ethernet Line
80. Screw with Wi-Fi Leeches
81. Setup a Computer in the Cloud
82. Setup a Streaming Media Server
83. Setup a VPN
84. Setup an Apache, MySQL, Mail, PHP server on Windows and Linux
85. Shrink a Website URL
86. Soldering Glasses Together
87. Strip Windows DRM
88. Surf the Web Anonymously
89. Survive in a Linux Argument
90. Tethering a Smartphone
91. Turn a Laptop into a Digital Picture Frame
92. Turn Webcams into Security Cameras
93. Unbrick a Smartphone
94. Understand What “There’s no Place Like″ Means
95. Unleash a Laser Pointer’s full potential
96. Unlock an iPhone
97. Upload a Video to YouTube
98. Use a Camera in Manual Mode
99. Use Bittorrent Effectively
100. Wire a Home Theatre System


Make your own lard


Good day.