#     #                                                                       
             #     #  ####  #    # ######     ####  ######    ##### #    # ######          
             #     # #    # ##  ## #         #    # #           #   #    # #               
             ####### #    # # ## # #####     #    # #####       #   ###### #####           
             #     # #    # #    # #         #    # #           #   #    # #               
             #     # #    # #    # #         #    # #           #   #    # #               
             #     #  ####  #    # ######     ####  #           #   #    # ######          
                                                                                           
 #     #                                       #                                           
 ##   ##  ####  #####  ###### #####  #    #    #       #    # #####  #####  # ##### ###### 
 # # # # #    # #    # #      #    # ##   #    #       #    # #    # #    # #   #   #      
 #  #  # #    # #    # #####  #    # # #  #    #       #    # #    # #    # #   #   #####  
 #     # #    # #    # #      #####  #  # #    #       #    # #    # #    # #   #   #      
 #     # #    # #    # #      #   #  #   ##    #       #    # #    # #    # #   #   #      
 #     #  ####  #####  ###### #    # #    #    #######  ####  #####  #####  #   #   ###### 

Click to be amazed




























Raspberry Pi Runes

To stop and start the Apache2 server serving this site.

$ sudo service apache2 [stop|start]

The Common Gateway Interface (CGI) allows your web server to generate dynamic html using scripts and/or software. To do this the CGI module in Apache2 needs to be enabled with the following cammand.

$ sudo a2enmod cgid

Similarly Apache2 modules can be disabled with the a2dismod command.

The root of the web server is located in /var/www/html

To keep your Raspberry Pi up to date.

$ sudo apt update<cr>

$ sudo apt full-upgrade<cr>

To list all package names.

$ apt-cache pkgnames [prefix]<cr>

To list installed packages.

$ apt list --installed<cr>

To get Python using Idle back you need to install the packages "idle-python2.7" and "idle-python3.7".

To get mDNS (multicast domain name service) running you need the package avahi-daemon. This allowes a Raspberry Pi to be identify on the local network by a host.local name and saves a lot of time looking up IP addresses.

$ sudo apt-get install apt-daemon<cr>

To install the visual difference tool Meld.

$ sudo apt-get install meld<cr>

Systemd is responsible for managing system startup on modern Linux systems. Its operation can be controlled via systemctl commands which operate on things called Units, which are basically bits of operating system functionality like, for example, a service daemon.

For some reason my ViewSonic monitor doesn't interoperate correctly with Raspberry Pi, and by default the image spills beyond the monitor edges. This is probably to do with the EDID information provided by the monitor, which I've studied and looks okay. The solution to my issue is to provide manual video timings using the cvt utility and xrandr.

The cvt utility is used to calculate VESA CVT mode lines for manual configuration of monitor timings.

$ cvt 1920 1080<cr>

A new video timing mode needs to be added to the exitings ones. This is done in the .xsessionsrc file in the home directory. Add the following:

#!/bin/sh
xrandr --newmode "1920x1080_60.00" 173.00 1920 2048 2248 2576 1080 1083 1088 1120 +hsync +vsync
xrandr --addmode HDMI-1 1920x1080_60.00

Projects

This section will be devoted to random projects of interest.

Old Programmable Calculators

Before home computers became available in the late 70s, there were programmable calculators. The first thing I ever programmed was a Texas Instruments SR-52 and since then I've always had, used and been interested in programmable calculators. Over the years I've amassed a collection which I try to maintain in working order.

SR-52 calculator