Home Accessibility Courses Twitter The Mouth Facebook Resources Site Map About Us Contact
 
For 2021 - online Python 3 training - see ((here)).

Our plans were to retire in summer 2020 and see the world, but Coronavirus has lead us into a lot of lockdown programming in Python 3 and PHP 7.
We can now offer tailored online training - small groups, real tutors - works really well for groups of 4 to 14 delegates. Anywhere in the world; course language English.

Please ask about private 'maintenance' training for Python 2, Tcl, Perl, PHP, Lua, etc.

About this Index

This is an index of all of the articles written on The Horse's Mouth blog, starting in summer 2004. And we have added longer articles from The Solution Centre, and source code examples too where appropriate.

Shorter (blog) articles are listed with their reference numbers in [] (square brackets), longer articles listed in () (round brackets) and examples listed with their program name in {} (curly braces).

You'll find a series of in-page links at the division point between each major section, so that you can naviage within this page ... and we have targetted all the links to a new page so that you can step around and find exactly what you're looking for without a lot of refreshes.

If you find this resource useful, please let us know. If you have any questions, please feel free to ask. And if you want to learn a lot more, please look at our training courses which are linked from the top of the page, or look at our course schedule here
Article and Example Index - sorted by subject
top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

A: Linux, Apache httpd and Tomcat

Overview A050 - Web Deployment - General
(article) The Author of the Apache httpd and Tomcat Course

Overview A051 - Linux - General
(article) Linux and httpd file system layout - LAMP server

Overview A052 - Networking - General
(article) What are NIS, LDAP, DNS and BIND
(article) Firewall fundamentals - Linux

Module A100 - The Components of a Web-Based Solution
(article) Open Source - here to stay, or a flash in the pan?
(article) Web applications using LAMP technologies
(article) New to programming. Portable code. Perl or Java?
{index.php} Simple test script for WAMP
{examples.txt} Source code examples for our training modules

Module A101 - Linux -An Introduction For Users
(article) awk - pattern scanning and formatting
(article) Korn Shell - Basics
(article) Korn Shell - History, storing to file, commands
(article) Korn Shell Scripting - an introduction
(article) Tiny guide to vi basics

Module A161 - Users and Groups
(article) A Web interface for your Linux admin tasks

Module A162 - Backups and File System Management
(article) Linux and httpd file system layout - LAMP server
(article) Why Partition a disc drive?
(article) Linux and XP - loading a dual boot system
{twice_weekly} Twice weekly backup script
{hourly} Hourly database backup script

Module A163 - Network Configuration and Security
(article) Firewall fundamentals - Linux
{hosts} Archived /etc/hosts file

Module A164 - Services and Regular Jobs
(article) Windows clients to a Linux Server
{timeset} Sample crontab job - checking system clock
{crontab} Sample crontab file - repeated, timed jobs

Module A166 - Linux Utilities
(article) awk - pattern scanning and formatting
(article) Korn Shell - Basics
(article) Korn Shell - History, storing to file, commands
(article) Korn Shell Scripting - an introduction
{ladies.dat} input data for utilities
{as2} awk - match in whole line or on specific field
{as1} awk - BEGIN, END and patterns
{aspers.txt} grep example output
{gents.dat} Input data for utilities
{demo.pl} Sample Perl script to analyse data file
{as3} Using awk to select and format data, and calculate
{demo.awk} awk script to analyse a data file
{requests.txt} input data for utilities
{lsof_extract.awk} awk program to analyse and report on listing of open files

Module A167 - Shell Programming (bash)
{lookup.sh} Bourne Again Shell script for CGI Web server
{skcount} Skill counter - sample script in alternative Perl language
{fnk} function definition and use
{yesterday} yesterday in a bash script
{help} Towards bash scripting - series of commands
{dc_checked} Data copy with conditional check
{dcj} Data copy, with command line parameter
{wont} Stopping ^C in a shell using trap
{dc5} Data copy, calculating statistics
{askuser} select - choose from stdin
{skillcounter} Perl script - needs setting up to run as Linux command
{shelc} Shell numric and string comparisons. Also backup script
{dci} Data copy, use of shell variables
{pex} textual manipulation of shell variables
{eocl} Usage line and for loop - bash
{dc4} Data copy, loop to copy files one by one, checking
{dcif} Data copy, use of shell if statement
{datcopy} Simple copy script to run from command line
{another} Shell read from stdin up to next new line

Module A168 - Compiler and development tools
{mytcl.c} C program for gcc practise
{Make_3} Variable and their types, conditionals and make functions
{makefile} Simple makefile example
{more.c} Second source file for makefile / compiler demo
{demo.c} Hello World in C for compiler tool demo
{Make_1} Straightforward, commented Makefile
{Make_2} Makefile - with standard rules and Make variables
{makefile_hello} Compiler tools - simple Make file

Module A172 - Korn Shell - interactive and programming facilities
(article) Korn Shell - Basics
(article) Korn Shell - History, storing to file, commands
(article) Korn Shell Scripting - an introduction
{dat_backup} Simple shell script to back up file
{dat_backup3} Korn shell conditional testing
{dat_backup2} Uses bourne shell compatible tests
{sharon} for loop - Korn Shell
{stroppy} String Test Operators
{script_korn} Korn shell script
{funky} Define a function - Korn shell
{filestat} Comparing one or two files
{kornserver.cgi} Korn shell / web script using CGI
{pippa} Setting up and referencing a Ksh array
{gvar} ksh - global and local variables
{selk} Korn Shell - Select example
{tracey} Korn shell array and while loop
{townline} Selects a town ending
{numtee} Korn Shell - numeric (integer) testing
{hello_korn} Korn shell commands in a file

Module A180 - Name Services - overview
(article) What are NIS, LDAP, DNS and BIND

Module A181 - LDAP / OpenLDAP server
(article) What are NIS, LDAP, DNS and BIND
{training.ldif} A sample user data entry
{org_struct.ldif} define the organisation structure

Module A192 - Firewalls
(article) Firewall fundamentals - Linux
{chaingang} sample iptables for firewalling a web server

Module A193 - DNS
(article) What are NIS, LDAP, DNS and BIND
{resolv.conf} client file to point to DNS server
{named.conf} bind 9 sample file - /etc/named.conf
{resolve.php} PHP to look up country and domain details from an IP
{cco.php} setting up a menu to offer countries
{wellho.zone} sample zone file for spring.wellho.net domain

Module A207 - HTTP
{relocate} Move a directory permanently via .htaccess

Module A211 - Web Application Design and Deployment
(article) Using current exchange rates on a web page

Module A213 - Commercial and Legal Aspects
(article) Using current exchange rates on a web page

Module A301 - XML, DTD, XSLT, XHTML and More
(article) Handling XML in Java
(article) Using LWP to write Web Clients
{imglist.xsl} XSLT sample - produces a table of images -->
{reminder.html} Sample HTML document from this module
{capname.pl} Altering an XML document through LibXML
{xml5.pl} Alternative - using handlers
{xslt.php4} Process an XML file through XSLT in PHP

Module A401 - Structured Code and Object Orientation
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{firstwish} First program in Tcl
{firstclass.java} Sample program - written in Java */
{firstprog} This is a sample of the Python language
{firstweb} This is a sample of the PHP language
{firstalt} This is a sample of the Perl language

Module A501 - Java - Basic Language Overview
(article) New to programming. Portable code. Perl or Java?

Module A502 - Java - Basic Tools
{Bella.java} Running a method in Java
{Summer.java} Summer test program
{Passport.java} Passport class
{Annie.java} "Hello World" in Java
{Chloe.java} Running a method from another class
{Debbie.java} Class used in Chloe.java example
{javalog.001} Annotated log

Module A506 - Java - Installing and Deploying optional Technologies
{Thumb.java} Hello log4j world
{Finger.java} simple logging - log4j - using a properties file

Module A509 - Java - Ant build tool
(article) Overview of Ant - a Java based build tool

Module A602 - Apache httpd - Sourcing, Installation, Testing
(article) Linux and httpd file system layout - LAMP server
(article) A Web interface for your Linux admin tasks
(article) Windows - running Apache and MySQL from a CD
{config.nice} Sample configuration details
{yumyum.pl} Setting up and first test program for CGI scripts

Module A603 - Further httpd Configuration
(article) Linux and httpd file system layout - LAMP server
(article) A Web interface for your Linux admin tasks
(article) Load balancing and robustness - httpd, tomcat, PHP, Servlets, MySQL
(article) Making all your .html files run a Perl script
(article) The proxy jServ, jk, jk2, warp and jk story
(article) Windows - running Apache and MySQL from a CD
{DOThtaccess} mod_rewrite - all .html request divert to a script
{README} sample README file
{DOTmy.cnf} Override MySQL defaults with .my.cnf
{mpmsample.conf} Sample Annotated Prefork and Worker MPM configurations
{add_account.php} Add a MySQL and Linux account from a web page
{andy} A Programmed RewriteMap for mod_rewrite in PHP
{webuser} Script to run
{AUP} Acceptable User Policy
{demo.php} Demonstration of mod_rewrite
{fulluser} Script to create Linux and MySQL accounts

Module A604 - Apache httpd - virtual hosts
(article) Multiple domains on a single web server
{vh} Virtual hosts - a simple structure
{vhost_withnote} Virtual Hosting - sample template for many-domain system
{vhosts_proxy.conf} Virtual Hosting Example with forwarding to Tomcat
{vhost.snowdrop.conf} Virtual host sample - snowflake, snowdrop and raindrop

Module A606 - Apache httpd - log files and log tools
(article) Web Forensics
(article) Log file analysis - short Python example
{httpd-info.conf} Config file for Apache Status and Info
{o10x} Generate parallel network traffic to test a server
{als} Analysing Web Server Logs
{statlog} Server Status Logger / hpptd to run via crontab

Module A607 - Apache httpd mod_rewrite
(article) Making all your .html files run a Perl script
(article) The proxy jServ, jk, jk2, warp and jk story
(article) Load Balancing and Clustering

Module A608 - Apache httpd mod_proxy
(article) The proxy jServ, jk, jk2, warp and jk story
(article) Load Balancing and Clustering
{proxy.conf} Sample mod_proxy configurations
{httpd.conf} httpd.conf which includes extra proxy forwarder file
{httpd-forwarder.conf} Proxy Forwarder include file for Apache httpd 2.2

Module A652 - Tomcat -Sourcing, Installing and Initial Testing
(article) Running CGI scripts in Apache Tomcat
(article) Running SSI (Server Side Include) scripts in Apache Tomcat
{web.course.xml} web.xml, as cut down / modified during a training course
{tomcat-users.course.xml} tomcat-users.xml file, modified on a training course
{server.course.xml} Cut down server.xml file, from a course practical

Module A653 - Tomcat - Configuring Web Applications
(article) Running CGI scripts in Apache Tomcat
(article) Running SSI (Server Side Include) scripts in Apache Tomcat
{isbnform.html} Form for bl3.jsp example -->
{Smallest.java} Smallest servlet - hit counter
{prog1.cgi} Perl script to test Apache Tomcat CGI support
{Summer.java} First Example of using Java Servlet Sessions
{Book.java} Book bean - connect to MySQL to look up Author based on ISBN */
{demo.jsp} A Java Server Page Multiplication table -->
{first.jsp} A simple calculator in a JSP page -->
{booklook.jsp} JSP tags used to call up Java Beans -->
{Agetest.java} Class to use with age testing JSP pages such as supervisor.jsp
{first.web.xml} Very simplest web.xml -->
{Autumn.java} Servlet Sessions, and variable scope.
{together_jsp.java} Conversion of together.jsp into a servlet
{shortform.html} A short form to allow the user to input to a JSP -->
{page1.html} Test page - HTML - for new Tomcat install -->
{demoform.jsp} A JSP to calculate based on form data -->
{index.html} Home page for latmj web application -->
{idemo.shtml} SSI Script to test Apache Tomcat SSI support
{Tempconv.java} Temperature Conversion Servlet -->
{web.xml} mapping servlet URLs to classes -->
{Coffeeweb.java} Servlet source + web.xml + CLASSPATH all in one example
{bookrun.jsp} JSP to get author based on ISBN number in form -->
{together.jsp} A form and a program in the same .jsp -->
{bookform.html} Form to ask for ISBN number -->
{supervisor.jsp} JSP Page to compare your age to 21, using the agetest class -->
{TinyServ.java} A Simple servlet for testing initial operation of Tomcat

Module A654 - Configuring and Controlling Tomcat
{6_web.xml} Sample web.xml for Tomcat 6
{6_context.xml} Tomcat 6 - sample context.xml
{6_server.xml} Tomcat 6 - sample server.xml file
{tomcat} Tomcat 5 startup script for /etc/init.d and chkconfig use
{6_tomcat-users.xml} Sample tomcat_users.xml for Tomcat 6

Module A655 - Using Tomcat and Apache httpd Together
(article) Load balancing and robustness - httpd, tomcat, PHP, Servlets, MySQL
(article) The proxy jServ, jk, jk2, warp and jk story
{httpd.forward} Forwarding from http to Tomcat
{jkworkers.properties} Configuration file for mod_jk with load balancing
{snowdrop.httpd.jk.conf} mod_jk configuration example - balancing and status

Module A656 - More Tomcat Configuration
(article) Load balancing and robustness - httpd, tomcat, PHP, Servlets, MySQL
{server.xml} Sample server.xml file
{Store6.java} Store class, used to maintain state in JSP demo */
{products.txt} Product data for Shopping cart demo
{web.xml} Session timeout changed to 120 minutes -->
{index.jsp} A Shopping cart JSP that maintains state -->

Module A657 - Using httpd to front Tomcat
(article) The proxy jServ, jk, jk2, warp and jk story

Module A690 - Clustering and load balancing
(article) Load balancing and robustness - httpd, tomcat, PHP, Servlets, MySQL
(article) The proxy jServ, jk, jk2, warp and jk story
(article) Load Balancing and Clustering
{server.xml} Tomcat 6.0 server.xml with named jvmroute

Module A805 - Perl - modPerl, Mason, CGI.pm and LWP
{coojar} Automated web client to wait for results page

Module A900 - Tomcat - Extra Features
(article) Load Balancing and Clustering
{mod_rewrite-load_balance} Configuration file mod_rewrite load balancing
{sslc} server.xml setup example - SSL connector
{server.xml.virtual} Virtual Hosting on Tomcat.
{bal.httpd.conf} Load balancing a number of Tomcat instances via httpd
{balance.conf} httpd mod_rewrite map for load balancing Apache Tomcat
{cluck.pl} "heartbeat" script to switch servers
{clust} Clustering - basic setup for server.xml

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

C: C and C++ programming

Overview C050 - C - General
(article) Introduction to the C Programming Language
{cppex.c} uses of preprocessor directives (cpp)
{pinc2.c} Pascal's triangle all in calloc'd memory
{tryme.c} realloc - adds new memory in sizeable chunks
{starstar.c} multilevel pointers
{remember.c} Call by value v call by address
{globals.h} include file for cppex.c
{pinc.c} Pascal's Triangle - calloc'd rows

Overview C051 - C++ - General
(article) Introduction to the C plus plus Programming Language
{act_02.cpp} Second C++ demo - heap v stack, char handling, this, static
{shape_main.cpp} main shape program - a.k.a. hereitis
{shape.cpp} shape class methods
{g_hotel.cpp} method code for base functionallity
{shape.h} headers for shape class
{starredhotel.cpp} extensions to base functionallity - second example
{square.h} headers for square class
{starredhotel.h} header file - the other extended class
{sixtytwo.cpp} Inheritance, constructor calls, virtual methods
{selfhotel.cpp} extensions to base functionallity - first example
{rectangle.h} headers for rectangle class
{circle.cpp} circle class methods
{comparetors.cpp} With Comparators
{circle.h} headers for circle class
{selfhotel.h} header file - one of the extended classes
{makefile} Makefile for complete C++ example
{sixtythree.cpp} er and est
{computers.cpp} Inheriting constructors and multiple methods of same name
{heapdog.cpp} Homes and Animals
{square.cpp} square class methods
{g_hotel.h} header file - base class
{fiftytwo.cpp} First definition and use of class
{sixty.cpp} First Interitance
{further.cpp} Main demo program to show polymorphism in C++
{rectangle.cpp} rectangle class methods
{act_01.cpp} Simple C++ demo - class - interface and test program
{sixtyfour.cpp} adds a destructor

Module C101 - Introduction to C
(article) Introduction to the C Programming Language
{starter.c} Read from user - calculate - provide answer
{second.c} Loops and functions
{friend.h} Snippet of code to #include
{greeting.c} Hello World in C
{g3.c} Hello World with extra function call
{fourthmain.c} Separate function file and include file [main part]
{fourthfuncs.c} Separate function file and include file [functions part]
{fourth.h} Separate function file and include file [header part]
{g4.c} Loading code from another file
{ltab.c} Comparing while and do loops

Module C201 - C Language Fundamentals
{hello.c} First C program
{first.c} First program and some comments
{second.c} Commenting code in C
{makefile} makefile for C version of "hello world"
{tara.c} Sample function to illustrate inclusion
{cond01.c} C and C++ preprocessor examples
{t2.c} What happens when you overflow

Module C202 - A first practical program
{vars.c} Delaring but not initialising - what happens?
{tconv.c} Temperature conversions
{second.c} Read, Calculate, output results */
{fred.c} Calculation of VAT on an amount
{vars2.c} Declaring and initialising variables
{makefile} makefile for module C202
{p003.c} Remember to prompt the user
{nranges.c} Testing number ranges in C
{cvopt.c} Prompt - read - calculate - decide - report
{calcit.c} First calculation
{adder.c} Variables and arithmetic in C

Module C203 - Conditionals and Loops
{lp1.c} repeating code in a while loop
{ex_203.c} Exercise - throw a die until you get a 6
{sindol.c} Singapore Teapot answer
{seven.c} Conditional statements in C and C++
{tall4.c} Temperature conversions with ++ and +=
{fresh.c} looping via a goto
{sindy.c} Singapore teapot in C
{otherbits.c} Functions used in function prototype demo (ANSI C)
{eight.c} loop showing weight loss needed until user is healthy
{makefile} makefile for module C203
{third.c} Conditional - if and else - example
{greet.c} Learning to program in C ... first day's illustrations
{tall.c} Temperature conversions using if
{lp2.c} for loop - bad and good examples
{tall3.c} Temperature conversions in a while loop
{tall6.c} Temperature conversions in a while loop
{freshveggies.c} for loop - compare to goto loop and while loop
{eer.c} Program that makes use of ANSI C function prototypes
{demo.h} Function prototypes for err.c and otherbits.c demo
{freshmeat.c} while loop - compared to goto loop and for loop
{cb.c} Using { and } to scope a block
{tall2.c} Temperature conversions using switch

Module C204 - Functions, Macros and programs in multiple files
{abcpointers.c} Ways of passing back results from a function
{tcsub.c} Functions in their own file
{funfuncs.c} use of extern to reference variable held elsewhere
{taxi.c} functions for VAT rate exercise
{tcsub.h} Using functions - the header file
{p3.c} Returning values from a function
{healthybits.c} functions to be loaded from another program
{twice.cpp} Two functions of same name in C++
{funfiles.c} The home for an extern variable
{makefile} makefile for module C204
{lp3.c} Variable declaration and scopr in inner blocks
{third.c} Separating look and feel from business logic
{tcall.c} Function definition and call
{astamp.c} changing a parameter's value within a function
{fundy.c} call by value v call by pointer / reference
{healthcheck.c} function prototypes and extern
{tcmain.c} Using functions
{twice.c} Function names must be unique in C
{xrcz.c} Sample answer - main code for VAT exercise

Module C205 - Arrays
{series.c} read array, print in reverse, min and max
{abits.c} extern - a global variable
{morearr.c} Arrays - days and months
{amain.c} Use of constants and globals
{abits.h} header file for global variable demo
{par.c} pointers v arrays
{pa3.c} Allocating heap memory and passing to a function
{afp.c} Pointers and Arrays - Interaction
{makefile} makefile for module C205
{rainfall.txt} Sample rainfall data (1) - always 31 days of data
{paif.c} Passing an array to a function - (1)
{lp.c} declaring an array and defining its length
{eleven.c} Array - declaration, filling with data, reusing
{arrbad.c} Arrays - triangle numbers WITH ERROR
{pa2.c} Passing an array to a function - (2)
{arr1.c} Arrays - triangle numbers

Module C206 - Character Strings
{reg2.c} Match and Capture - Regular Expressions
{fff} Some sample data
{cli4.c} Picking out command line options into an array
{cli5.c} More advanced coding style to handle argv and argc
{rabbit.c} Structures and file i/o - C
{cli3.c} Command line params - more complex character string arrangement
{s1.c} String compare and copy
{p021.c} String handling examples
{p023.c} read an array of numbers from a text string
{chout.c} Strings v chars
{cx.c} String copying and manipulation
{makefile} makefile for module C206
{cstr.c} String manipulation in C
{cs1.c} Comparing strings in C
{p022.c} parsing and checking integers off a line
{lynebreak.c} Tokenising a C string
{sti1.c} Characters and strings in C
{s4.c} Read lines from file, tokenise them, save data into an array of structs.
{readwrite.c} File handling basics in C
{reg.c} Regular Expression matching in C
{cli.c} Command Line Handling
{ccis.c} Basic string and command line handling
{cli2.c} Command line - use of pointers example
{range.c} Summing numbers from the command line
{dynamic.c} memory allocation and release with calloc and free
{pothat.c} Strings via pointers and arrays of chars
{dynbad.c} How NOT to do it - overrunning an array
{csame.c} Comparisons of strings in C

Module C207 - Pointers and references
{ip2.c} Passing pointers to functions
{po.c} Pointers and addresses - the mechanism
{p1.c} First use of pointers
{referee.cpp} References and pointers (and direct variable use)
{fifth.c} Further use of pointers - returning multiple values
{pfirst.c} use of pointer - passing to function
{p2.c} Passing a reference to allow a variable to be change from a function
{arp.c} referencing array members through pointers
{excuse.c} Pointers - illustrative example 1
{dj.c} Comparing call by name and call by value
{makefile} makefile for module C207
{plot.c} Passing an array to a function
{ex_c207.c} passing pointers in to a function to allow multiple returns
{p4.c} Passing complex data via a single pointer
{ptr1.c} Temperature conversions - pointers
{fourth.c} function calls - call by value and call by name
{psecond.c} How a pointer can give a temporary name
{cli2.c} Handling command line args via pointers
{stock.c} Jelly beans
{pdo.c} Hello pointer world

Module C208 - Programming techniques and tools
{qn208.c} Command line options and parameters
{fyle.c} File reading - template for delegates
{ctoken.c} Tokenising a string into a structure
{tdd.c} Test harness - test driven development
{makefile} makefile for module C202
{bmi.c} Functions to be tested
{cle.c} Command line arguments and the environment
{bmi.h} header file for functions to be tested

Module C209 - Structures and Unions
{trains_04.c} Structure Pointers
{trains_01.c} Simple demonstation of a structure
{tud.c} A Union within a struct - practical use demonstration
{combo3.c} stuctures - array of structs
{ts2.c} Definition and use of pointer to structure
{trains_03.c} An Array of Structures
{ot2.c} Defining and using a structure
{ot3.c} Structure with char pointer
{sixteen.c} Setting up and using structures on the heap
{combo.c} stuctures - a first example
{trains.c} An array of structures
{mytrains.c} Use of pointer to a structure
{trains_06.c} Dynamic allocation for struct and struct pointers, and populating from file
{trains_05.c} Dynamic allocation of memory for structs
{ts.c} definition and use of structure
{ztwo.c} C (towards C++), Septmeber 2018
{ot4.c} Pointer to malloc'd memory from a structure
{st1.c} Definition and first use of a structure
{services.txt} Data for trains_06.c example
{trains_02.c} Copying Strings in and out of a structure
{dinners.c} Read file into array of structs
{lunches.c} Read file into array of structs
{combo2.c} stuctures - adding pointers
{reso.c} Struct, Structures and Structure Pointers
{union.c} Example of a Union in C

Module C210 - File Handling
{sf.c} Reading all the files named on the command line
{deardir.c} Parsing a directory
{cmelk.c} Text file read and write
{ffiles.c} fopen to access files at a higher level
{filesinc.c} low level file handling with open
{lunches.c} Read file into array of structs

Module C211 - Standard Libraries and other headers
{abc.h} include file example for cpp.c
{first.c} The Sandwich of your application within standard elements
{hash} Sample preprocessor directives
{house.c} Sharing variables between object files - main program
{shared.c} First example of shared code
{g2.c} Gift server demonstration
{cpp.c} C Preprocessor examples
{ex1.c} use of #define and #include
{bathroom.c} Sharing extern variables - a file of functions
{clever.h} Example of included file
{ten.c} Preprocessor directive demonstration
{waterhorse.h} extern, and use of preprocessor to control it

Module C212 - Memory Management
(article) Want something more dynamic than an array?
{trinamic.c} Memory allocation and freeing - demo of principles
{access_checkpoint_01.c} Routines to load data into array of structures and access it (1)
{access_checkpoint_04.c} Complete example - loading log file and filtering
{slurpit.c} Dynamic memory allocation - reading a file of unknown length
{supper.c} Read file into array of structs
{loglook.c} Complete example - regex, realloc, string and file handling, etc
{access_checkpoint_03.c} Routines to load data (imporved API and Regex in C example (3)
{twelve.c} Dynamically sized collection
{afp2.c} Dymanic array - runtime sizing on using calloc
{framework.c} Framework for testing lower level code
{access_checkpoint_02.c} Routines to load data into array of structures and access it (2)
{strainer.c} reallocing for an array of structures

Module C221 - Secure C Programming
{oob.c} A poor program - using un initialised variables and an out of bounds array

Module C230 - Revision of C
{overflow.c} Fast but unchecked - C
{ooc.c} C program using OO type patterns

Module C231 - Introduction to C++
(article) Introduction to the C plus plus Programming Language
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{fiftyfour.cpp} private method, arrays of objects and object pointers
{app1.cpp} Main application
{fifty.cpp} define and use a class
{rsmain.cpp} Scoping of variables in C++
{cpp.cpp} C++ - example for C comparison
{shift.cpp} The << operator in C++
{cs.cpp} string objects
{tabbymain.cpp} Sample / test program - first OO class
{fiftythree.cpp} several methods of same name
{makefile} Compile / Load instructions for examples in this module
{ir.inc} Function prototypes for first demo
{hw.cpp} Hello C++ world
{ir.cpp} File of functions
{tabby.cpp} All together - C++ demo class and test program
{table.cpp} Code for class in first demo
{table.h} API definition - first class demo

Module C232 - Defining and using classes in C++
{demo2.h} Further base and subclass header definition
{allin1.cpp} Class definition and use all in one file
{hmain.cpp} First class in C++
{demo1.h} Base class and subclass header definition
{demomake} makefile for module c232
{tabletest.cpp} A test harness for the Table class
{afuncs.cpp} Class use with accessory functions
{hcd.cpp} Class description with accessor functions
{book.inc} Class interface - book
{book.cpp} Class implementation code - book
{a2.cpp} Array of objects of different types
{a3.cpp} Inherited methods - test program
{hellosurvey.cpp} Template for your first OO classes
{mylib.cpp} Main application calling constructors and destructors
{objects_bothways.cpp} stack v heap - object persistance
{makefile} Compile / Load instructions for examples in this module
{demo2.cpp} Further base and subclass definition
{melksham.cpp} Class use with accessor functions
{transport.cpp} Hello c++ world - define and use an object / Compare to Python
{demo1.cpp} Base class and subclass method definition
{hotel.inc} Class descriptor
{g_main.cpp} Fundamental use of classes example - C++
{dayfour.cpp} Creating objects on the stack or heap
{hotel.cpp} Class member code
{table.cpp} code - the internals of the Table class
{table.h} Definition of API of a class
{template.cpp} Design Pattern for class definition and test

Module C233 - OO in C++ - beyond the basics
{testh.cpp} First denmo of polymorphism
{allinone.cpp.ex} Inheritance and Polymorphism example (all in 1 file)
{NewHotel001.cpp} Second program to use our HotelRoomBooking - Array
{shapes_combined} All the files for the shape demo on one page!
{classinclass.cpp} Associated objects - one object used within another
{pert.cpp} Overloading, Inheritance, Virtual, Polymorphism and more
{loader} Complete first Polymorphism example
{accom4.cpp} An array of objects
{NewHotel002.cpp} Second program to use our HotelRoomBooking - Vector
{animal.cpp} the code for the base class (2)
{midi.cpp} Inheriting a Constructor
{animal.h} Header file for a base class (2)
{Make_3} Makefile for our C++ inheritance / polymorphism demo (2)
{regionhotel.cpp} Derived class member code
{shapes_02.cpp} Complete demonstration - data stored on the heap
{ptx.cpp} inheritance and polymorphism - bus and train
{human.cpp} second subclass of animal - human (2)
{booklet.cpp} Destructors - how and when they run
{trans.cpp} Associative classes example
{regionhotel.inc} include file to define region hotel
{pet.cpp} code for second subclass - pet (2)
{accomchooser.cpp} Class using classes and derived classes with inheritance
{accom3.cpp} An array of objects
{makefile} Compile / Load instructions for examples in this module
{accom2.cpp} Class storing strings within an object
{beasts.cpp} Definition of polymorphic class methods
{shapes_03.cpp} Overloading +
{hotel.inc} Class descriptor
{shapes_01.cpp} Complete inheritance and polymorphism demo
{petite.cpp} Abstract base class, two subclasses, polymorphic array
{melkshamhotel.inc} include file to define melkshamhotel
{second_inheritance.cpp} What is Inheritance / how is it implemented in C++ (2)
{human.h} extended subclass definintion
{tinin.cpp} base class, extended class, test code
{hotel.cpp} Class member code
{beasts.h} Definition of polymorphic class headers
{melkshamhotel.cpp} Derived class member code
{testh2.cpp} Demo of polymorphism across an array
{Accounts.cpp} C++ factory returning different object types
{small.cpp} Declare, define, use a class - all in one file
{pet.h} Definition of subclass headers (2)
{first_inheritance.cpp} What is Inheritance / how is it implemented in C++ (1)

Module C234 - Further C++ Object Oriented features
{act_02.cpp} Second C++ demo - heap v stack, char handling, this, static
{a4t.cpp} load filtered files to vector
{sixth.cpp} Interitance, Base Classes, Overloading of methods, etc - C++ course
{first.cpp} OO Buildup in C++ - starter
{alias.cpp} Direct, Pointer and Reference access to variables
{regionhotel.cpp} Derived class member code
{bighotels.cpp} Comparing objects
{sixtyfive.cpp} Direct, reference and pointer access to variables
{refs.cpp} Direct, pointer and reference comparison
{cube.cpp} Operator overloading
{regionhotel.inc} include file to define melkshamhotel
{pet.cpp} multiple constructors, default parameters
{makefile} Compile / Load instructions for examples in this module
{Xmas.cpp} Vector, Multiple Inheritance, virtual, Polymorphism, Factory
{r2.cpp} References and Pointers for each array member
{coffee.cpp} Overriding add, multiply and << for print
{overload_add.cpp} Operator (+) and to_string overloading, C++
{hotel.inc} Class descriptor
{compare.cpp} Comparatives - heavy, heavier, heaviest
{act_03.cpp} Object Extras. Vector, delete, factory, destructor, etc
{refdemo.cpp} References and Pointers
{melkshamhotel.inc} include file to define melkshamhotel
{hotel.cpp} Class member code
{tinyref.cpp} References - description and sample code
{PMdemo} Polymorphism - complete example
{melkshamhotel.cpp} Derived class member code
{station_test.cpp} file read to object framework
{erandest.cpp} costly, costly, costliest - object comparison
{act_01.cpp} Simple C++ demo - class - interface and test program

Module C235 - I/O in C++
{stdcodes.xyz} Sample data file ...
{nine.cpp} Outputting an object via a stream
{fullapp2.cpp} Wholesale factory - a single call to make many objects
{flow2.cpp} Factory method and file input to seed objects
{file01.cpp} File handling with C++ streams
{ioex.cpp} Stream demonstration
{fullapp.cpp} Shell for full application
{comb.cpp} Reading and writing files, file names from command line
{makefile} Compile / Load instructions for examples in this module
{mtbsprint.cpp} implicit formatting to print an object
{Person.h} header file for object output demo
{boring.data} Sample data for C++ course examples
{cppdata.cpp} Reading data from a file
{Person.cpp} for use in print object demo
{fpri.cpp} Formatting floating point numbers in C++

Module C236 - Exceptions
(article) errors v exceptions
{except.cpp} Exception handling - catches
{makefile} Compile / Load instructions for examples in this module
{prob.cpp} Exception handling - why we need it
{levels.cpp} Exceptions - try, catch yourself AND throw to parent too
{CppExcept.cpp} Creating exception objects, throwing and catching them
{microthrow.cpp} Defining, throwing, catching an excpetion

Module C237 - Namespaces
{Ns.cpp} Definition and use of namespaces
{ave.c} Calling a C function from a C++ main program

Module C238 - Templates
{swab.cpp} more features of templates
{trans.cpp} Use of a vector as a member within an object
{flow4.cpp} Reading a file within a factory, tokenising, vector
{makefile} Compile / Load instructions for examples in this module
{clever.cpp} Reference, pointers, templates
{vec01.cpp} Use of a vector in C++
{template.cpp} Function templates

Module C239 - Putting it all together
(article) What makes a good variable name?
{pd1.cpp} Inheritance in C++ - base demonstration
{service_11.cpp} classes and subclasses
{flow.cpp} Reading a file named on the command line within a factory
{Expense.h} Header file for second subclass
{Makefile} Makefile for multiple inheritance demo
{pd3.cpp} Add an object comparator
{Film.cpp} main subclass for multiple inheritance demo
{alltogether.cpp} 7 file example
{Filmtest.cpp} Main program for multiple inheitance demo
{complete.cpp} this, vector, factory, inherrited constructor, file input, tokeniser
{pd5.cpp} Switching from array to vector
{HireFilm.h} Main class specification - multiple inheritance demo
{trains.txt} Data file for flow / flow2 / flow4 examples
{Expense.cpp} A second subclass for multiple inheritance demo
{Ninety.cpp} vector, factory method, files, tokeniser
{HireFilm.cpp} Main class for multiple inheritance demo
{fourthobject.cpp} 7 file full example with a factory and a vector
{Make_mark_2} Alternative Makefile to show Makefile facilities
{Film.h} header file for main subclass - multiple inheritance demo
{pd2.cpp} add an array of objects
{pd4.cpp} add iostream / namespace, inline, new, printing function, override +

Module C501 - Objective C, XCode and iOS Resources
{helloipad_ViewController.m} Hello iPad World - main view controller
{hello.m} First program example - Objective C
{helloipad_ViewController.h} Hello iPad World - header
{helloipad_ViewController.xib} Hello iPad world - view layout
{timeline_ViewController.m} ViewController nethods
{timeline_ViewController.h} Headers for ViewController

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

G: General Training Topics

Subject G100 - Introduction to Melksham
(article) Creating Really Memorable Experiences

Subject G101 - Getting to and from Melksham
(article) It's easy to get to Melksham, and there's things to do!

Subject G103 - Where to stay in Melksham
(article) Good places to stay in Melksham

Subject G200 - Course and Company information
(article) Training - our guarantee and commitment
(article) For the newcomer to Well House Consultants

Subject G203 - Training course prices
(article) How come our list prices are lower?
(article) Price Comparison on our training courses
(article) Pay on the day - not months in advance!

Subject G205 - Food and Drink.
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing

Subject G206 - Our training centre
(article) Bottles from Melksham Spa
(article) Well House Consultants - Key Facts

Subject G207 - Staff
(article) The Author of the Apache httpd and Tomcat Course

Subject G209 - Keeping up to date
(article) Portrait of the Author of PHP

Subject G210 - History
(article) Time Line - growth of our Open Source training
(article) Taxi from Melksham Station, Sir?

Subject G211 - The story of our Georgian HQ and Edwardian Hotel
(article) Time Line - growth of our Open Source training
(article) Bottles from Melksham Spa
(article) Well House Consultants - Key Facts

Subject G300 - Public Courses
(article) Free software - the joy of Open Source

Subject G301 - Booking a Public Courses
(article) How come our list prices are lower?
(article) Pay on the day - not months in advance!

Subject G302 - Coming to a course.
(article) It's easy to get to Melksham, and there's things to do!

Subject G303 - During the course
(article) Moving up a class

Subject G310 - A better class of course
(article) Moving up a class
(article) Why so many different courses?
(article) Training - our guarantee and commitment
(article) For the newcomer to Well House Consultants
(article) Creating Really Memorable Experiences

Subject G401 - On Site courses
(article) Onsite training - expenses
(article) On the Oban Road
(article) Pay on the day - not months in advance!

Subject G502 - Business Practice
(article) Free software - the joy of Open Source
(article) Phone and fax to 070059 numbers in the UK
(article) Creating Really Memorable Experiences

Subject G504 - Writing Notes
(article) The Author of the Apache httpd and Tomcat Course

Subject G901 - Talks and lectures
(article) Open Source - here to stay, or a flash in the pan?
(article) Web applications using LAMP technologies

Subject G902 - Web site techniques, utility and visibility
(article) Spotting and stopping denial of service attacks
(article) Suggesting alternative search terms to web site users
(article) Making all your .html files run a Perl script
(article) Error messages in PHP
(article) Keeping the PHP and the HTML apart
{googleplusone.html} Google +1 - source example of what you need in your page

Subject G903 - Running and moderating forums and social media sites
(article) Moderating a forum

Subject G904 - Mac and OS X
(article) Running open source on Mac OSX

Subject G906 - Programming Standards
{fur4.py} Comments
{fur1.py} Read, calculate, report

Subject G907 - Recruitment and Career Development
(article) Creating Really Memorable Experiences

Subject G908 - Language Comparisons
(article) errors v exceptions
{incr.rb} Programming language Comparison - a ruby program
{incr.cpp} Programming language Comparison - a C++ program
{pee3.py} Invert (rekey) a file / Python
{incr.py} Programming language Comparison - a Python program
{incr.pl} Programming language Comparison - a Perl program
{incr.php} Programming language Comparison - a PHP program
{incr.tcl} Programming language Comparison - a Tcl program
{pee3.pl} Invert (rekey) a file / Perl
{incr.java} Programming language Comparison - a Java program
{incr.c} Programming language Comparison - a C program
{incr.lua} Programming language Comparison - a Lua program
{incr.sh} Programming language Comparison - a bash shell program
{pee3.rb} Invert (rekey) a file / Ruby

Subject G910 - Scams
(article) Identity theft - Phishing for your details

Subject G914 - Other Software
{ViewController.xib} Objective C nib file (ViewController.xib) - First iPad application
{ViewController.m} Objective C source code - First iPad application
{Viewcontroller.h} Objective C header - First iPad application

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

H: PHP programming and techniques

Overview H050 - PHP - General
(article) What is PHP?
{pcre.php} Regular Expression testbed
{fourth.php} Straightforward form and simple validation
{chris.php} Demonstration of form and pricing
{p_fifth.php} One page application - design and human interface MATTERS

Module H101 - Introduction to PHP
(article) Portrait of the Author of PHP
(article) What is PHP?
{motor.php} Elements of a PHP Page
{greetings} Entering and leaving PHP mode - documentation and comments
{g2} First variables and calculations in PHP (stand alone)
{t2.php} cost comparison script
{greet3.php} Calculation in a web page, with inputs from a form
{form3.html} Sample form for PHP application
{greet4.php} Calculations in a page, inputs from an included form
{g5} stand alone program in PHP, showing nested blocks
{g4} Stand alone program in PHP, with conditions and loops
{t3.php} Totalling script - daily, weekly, monthly, annual amounts
{rupert.php} First program - and how to comment it!
{greet2.php} Calculation within a web page
{greet.php} The structure of a PHP page
{greet5.php} Starting to add structure to your PHP application
{g3} Stand alone program in PHP - read from keyboard, calculate, write to screen
{abc.php} Some easy things to do with PHP

Module H102 - A First PHP Web Page
{a1.html} Date stamping a page automatically (for copyright and audit)
{g2.php} Multiple statements and functions calls
{g3.php} Multiple print statements, showing case insignificance of functions
{greeting.php} HTML page with embedded PHP

Module H103 - Variables, Operators and Expressions
{k3a.php} Getting a form variable - new and somewhat more secure style
{simsan.php} Simple sanitisation and sticky field example
{k3.php} Getting a variable from a form - OLD style
{result} Master and Header code merged
{header.txt} File to be included in master example ?>
{k1.php} A calculation in PHP
{master.php} PHP page that calls in an include file ?>
{k4.php} Example of comment types
{k2.php} A calculation with variables

Module H104 - Control Statements
{condits.php} example simple if statements
{houred.php} different image to reflect time of day
{macorder.php} 2 page simple ordering system
{units.php} Conversion of units of area
{tt2.php} for loop
{if2.php} if, block, else and elseif
{timothy.php} demonstration of if / else / while
{coin.php} switch, case, default and break
{ttab.php} Temperature table - a while loop
{ifvswit.php} if v switch / first "step through" application
{floop.php} while, for and foreach loops
{bristolgulls.php} Table of calculations
{tt3.php} lazy operators, increments, +=, ? : and endfor

Module H105 - Functions
{dressing.inc} example of "call by name" and defaulting parameters
{funsan.php} Simple sanitisation and sticky field example using functions
{funk2.php} Example with local, global and static variables
{scope2.php} Use of a function to separate out complicated / repeated code
{near.php} Ordnance Survey and Map reference point calculations
{hotdiary.php} PHP Diary generator
{personetc.inc} for scope4 demo
{funk3.php} Loading functions from an include file
{callback} Calling a list of functions named in an array
{dropahead.php} Selection from the week ahead
{medical.inc} for scope3 demo
{funky.php} Defining and calling a function
{stademo.php} use of a static variable in PHP
{scope3.php} function code now in separate file
{bmi1.php} control example - showing need for functions and includes
{scope1.php} Keyboard to Screen - simple PHP program
{bmi2.php} functions and includes to make for shorter, more maintainiable code
{scope4.php} Now using an Object Oriented approach
{footer.inc} Inlcude file - a standard block of HTML

Module H106 - Arrays
{skills.php} A Small search tool
{herbert.php} finding a value from a list of ranges
{assoc.php} Associative array - sorting and traversing
{walter.php} regular and associative arrays
{nb.html} Speed networking - generate a page for an attendee
{fullmenu.php} Ordering system from menu file
{simgrep.php} read a file into an array and display selected items
{rubys.php} read a file into an array and display selected items
{a3.php} Array_walk example. Also the difference between null and empty
{nbm.html} Speed networking - seating matrix generator
{ts.php} Lengthen or shorten an array
{a1.php} Setting up an array, looking at individual elements
{pflog.php} Most viewed pictures (Mk 1)
{a2.php} Array - dealing with missing elements and finding keys
{arrarr.php} Summing arrays in PHP
{menu.txt} Menu for fullmenu.php example
{5pl.php} Display a list in columns
{patrick.php} User defined sort
{pflog2.php} Where are scripts loaded from (2)
{arrx.php} Ways of passing through an array

Module H107 - String Handling in PHP
(article) An overview of PHP String functions
(article) Analysing incoming data lines
(article) Nasty Characters in Web Applications
(article) Pattern Matching - a primer on regular Expressions
(article) Web Page and HTML Spell Checker
{toke.php} String tokenising - strtok, implode, explode
{popage.php} Counting in a log file - associative arrays and regular expressions
{fvar.php} Filtering of variables
{splitting.php} Ways of splitting a string
{dlog.php} String handling example - extracting simple data from a complex line
{s1.php} Single and double quoted strings
{stickform.php} Stick Fields and Input Validation
{secdo.php} Convert seconds to minutes and seconds
{s2.php} Character string as an array
{arrivals.php} Regex and associative arrays - search engine arrivals
{sfex.php} Demo of sticky fields and security
{bits.php} Ways of writing strings
{sprint.php} Formatting with sprintf
{extrawords} Extra words for spell checker
{20101101_statlog.txt} Sample data from server operation log file
{regex.php} Regular expression - validating an email address
{pc1} ereg v preg
{shunt.php} Evaluting BODMAS expression using MySQL cell tables
{spell.php} Spell Checker
{clformat.php} Formatting data [file] for quick web display
{pmoffs.php} Capturing regular expression offsets
{s3.php} String cleansing with functions such as strspn
{strp.php} Curly braces in double quoted strings
{myform.php} Robust, sticky form demo with field validation
{code} Reaping from an HTML page with regular expressions
{mystdinc.inc} Include file for sticky fields demo
{ex2.php} various preg style functions in use
{stdist.php} Search - do two words look or sound the same?
{bustimes.php} Using PHP to format data (timetable in this example)
{echovalley.php} How to put in blocks of HTML

Module H108 - Objects in PHP
{animal3.php} Abstract class and interface example
{dogdisc.php} Serialization of an object for save and restore
{compo.php} Complete inheritance and object method demonstration
{rest006.php} magic __tostring and comparator methods
{bbcoo2.php} oo demo step 2 for BBC
{accos.php} Complete example with polymorphism and inheritance
{southbound.txt} Data for factory.php demo
{clx.php} object assign and object clone
{equtest.php4} Explicits PHP4 - objects, foreach, array_push ....
{pps} Data for Gant Chart Demo
{dog.inc} Simple class in PHP
{pdemo.php} PHP application using places.inc - create array of place objects from file
{rest001.php} First OO / class example
{systems.txt} Data file for systems example
{single3} Singleton AND dymanic data
{systems.php} Objects and inheritance - main worked example program
{pets.php} Test page for the dog.inc class
{studentsys.inc} Student system - a derived class
{third.php} Command line PHP classes - inheritance, overloading, polymorphism, comparator
{ob2.php} Loading in a class from another file and using it
{cwuseanimal.php} Test program for cwa class
{rest004.php} This is my table test file
{elligant.php} Gant chart in PHP
{dogs.inc} Simple class in PHP
{bewarethedog.php} Object copying - beware - differs in PHP4 and PHP5
{aa.php} Autoload example
{rest003.php} class example - data from file
{hound.inc} Simple class in PHP
{twigs.inc} class to be loaded in autoload example
{factory.php} Example of a factory method and comparators
{ns.php} Namespaces in PHP5 - a short syntax demo
{equip.inc} equip.inc - define pieces of equipment (base class)
{staffsys.inc} Staff system - a derived class
{equtest.php} PHP example - objects, foreach, array_push ....
{rest005.php} This is my table test file
{stan.php} Standard Class stdClass
{staticmember.php} Static class members - set up and use
{valentines.php} Inheritance, Overloading, Polymorphism in PHP objects
{places.inc} A PHP abstract class (places) with postcode, county and other subclasses
{po8} Associative Objects
{animal1.php} An Abstract class - cannot construct directly
{litter.php} cloning and copying objects
{allone.php} Complete OO example
{kennel.php} Application to use class hound
{demo.php} PHP Version tester
{ob1.php} OO PHP demo - inhertitance, statics, test harness, etc
{systems.php4} Objects and inheritance - main worked example program - PHP4 example
{animal2.php} Abstract class, extended to a subclass, instantised via the subclass
{visits.php} Factory method, static method, associated objects
{rest002.php} class example - array of objects
{oop5.php} Two classes, inheritance, factory, JSON, error handler, etc
{serversys.inc} Server system - a derived class
{cwa.inc} cwa class

Module H109 - Input / Output
{radio.php} look up current radio program in a text file
{spammiest.php} The 20 spammiest emails in our filter records are ...
{fread1.php} Read all lines from a data file, report matches
{mcq.txt} data for Christmas Quiz
{exchange.html} Exchange rate convertor
{mail_analysis.php} Read and analyse spam report file
{savepeople.php} Using PHP to download a data file
{recent.php} Link to the recently updated file in a directory
{cloak.php} Cloaking a web site in a PHP wrapper
{eurorates.php} Read currency exchanges rates
{secdo.php} Convert seconds to minutes and seconds
{quote.htp} HTML template for quote demo -->
{xmasq.php} Christmas Quiz in PHP
{grabtitle.php} Grab the title of a web page (local or remote)
{seedoku.php} highlighting a source file
{top_pdf.php} Showing top 10 downloads from our site
{fr2.php} Pulldown menu of files, then search for regex
{fread2.php} File system and status reports and directory listings
{timber.php} Reading and extracting from a remote URL
{webhelpers.inc} Web Helpers for quote demo
{saver.php} Write to file - simple diary page
{buslogic.inc} Business logic for quote demo
{quote.php} Quote demo - top level code

Module H110 - HTML Web Page Data Handling
(article) Example - PHP form, Image upload. Store in MySQL database. Retrieve.
{victor.php} Putting our conditional example on the web
{urlex.html} Does a URL exist?
{agnew.php} How to do it - sending header first
{selfinfo.php} Information available from PHP
{meldrew.inc} Helper function - set up an enquiry box
{sticker.php} Sticky form demo ...
{agone.php} How NOT to do it - sending header too late
{mcheck.php} generate and select from radio boxes
{feedlet.php} Bare Bones demo of password protection
{veryniceform.php} Form completion with sticky fields and generalised code
{melksham.php} Images at random - pictures of Melksham
{pdfstore.php} store a .pdf that's uploaded into a MySQL database
{myenv.php} The PHP environment - use of variables available to you
{one_pizza.php} Validating a Pizza order in one page.
{getpost.php} Using a PHP script to POST to another server
{alang.php} What langauge does the visitor prefer?
{pdfup.php} form to upload a .pdf to a PHP script
{pdfget.php} download a .pdf file from a MySQL database
{apull.php} Selection of database records via a pulldown menu

Module H112 - Further Web Page and Network Handling
(article) Using current exchange rates on a web page
(article) Using Frames with PHP
(article) Shopping cart application in PHP
(article) A Web interface for your Linux admin tasks
(article) Suggesting alternative search terms to web site users
{pcook.php} Setting and checking a persistent cookie
{fromwhere.php} Tracking how visitors reach a page
{exchange.php} Exchange rate convertor
{dopost.php} Using the POST method to read from a URL within a PHP script
{d404.html} Script run when our web site can't find a requested page
{gherkin.php} Download and store results from a web enquiry
{sesscart.php} Session demo - shopping cart
{sessdemo.php} Session demo - shopping cart - from PHP 4.2
{sucksee.php} does a URL exist?
{about_you.php} Information about the visitor avaialble to a web site provider
{imap.php} Image map controlled by PHP script
{automailer} PHP script to email from the command line
{sessions.php5} Session demo for more recent PHP4 and PHP5 systems
{upload_test.php} How to upload a file via a web page
{uploader.php} Upload a file from a browser
{favcol.php} cookie demo - lock in favourite colour
{cook.php} Setting and reading a cookie
{ppmh} Sending an email as HTML not plain text
{cookie_demo.php} Setting and deleting a cookie
{supermail.php} simple form for mailing
{pubsales.php} Cookie check for new visitor
{phpemenc} Emailing with enclosures from a web page
{roomstates.php} Room State Reporter

Module H113 - Using MySQL Databases in PHP Pages
(article) MySQL version 5, PHP version 5 and mysqli
(article) MySQL and PHP - enquiry tool for ad-hoc requirements
(article) Interfacing applications to a MySQL database engine
{mqclim.php} searching and paging through results
{sqlhelper.inc} PHP helper - make up a where clause element
{sqltab.php} Full navigation around an SQL database from PHP
{mqchunks.php} Pagination through a database - PHP and MySQL
{sqldelete.php} deleting a database table from PHP
{sekiy.php} Converts data into MySQL commands
{select1.php} Selecting information from a database table - unchecked
{sqladd.php} Add information to a database table
{yikes.php} Downloading complete database via a PHP script
{sqd.php} Algorithm selection of where clauses
{sort_sql.php} Using an array to sort records off a database
{showtowns.php} First steps on looking up data in an existing database on a web page
{bookstats.php} PHP to front a MySQL multiway join
{aos.php} Save a MySQL result set to the local machine
{select2.php} Selecting information from a database table - fully validated
{sqlreport.php} report on information held in a relational database
{pic_up.php} Uploading an image from a form to a MySQL database via PHP
{approach.php} Relational Databases - Comparison of approaches
{people.php} Simple database lookup - using MySQL from PHP
{picclim.php} Search a database of images
{ild.php} mysqli - database to csv example
{generic.php} Display a MySQL table, summarising rows
{ildi.php} mysqli - database to csv example
{agents.php} Joining MySQL database and searching results in PHP
{picscript.php} Retrieve an image from a database and display it
{pic_alog.php} view images stored in a MySQL database via PHP
{sqlcreate.php} Create a MySQL table from a PHP page
{sql_image_store.html} Web page to call up an image held in an SQL database
{mysql_joins.php} Showing Joined tables on a web page

Module H114 - Sourcing, installing and configuring PHP
(article) Sourcing, installing and configuring PHP
{yellowlion.php} Test for Apache httpd + PHP + MySQL interaction
{railways.php} Start of an application in a page
{ini.extras} Some commonly changed limits for PHP

Module H115 - Designing PHP-Based Solutions: Best Practice
(article) Portrait of the Author of PHP
(article) The practical solution of requirements using PHP
(article) Error messages in PHP
(article) Keeping the PHP and the HTML apart
(article) What makes a good variable name?
{gruse.php} Capthca Driver
{images.xml} XML data used by demonstration program
{mvc_fhc.php} MVC Framework and Helpers / Components all in one!
{sqldemo.inc} SQL functions for sc5 and sc6 demos
{imnames.xsl} Style sheet used to get a list of all images held in XML file
{hph.php} Using an array to set a generalised form
{4lm_business.inc} business logic for 4 layer demo
{hph2.php} Sticky form, Regex Validation, save to db when AOK
{4lm_webhelpers.inc} Web Helpers for 4 layer model demo
{sc5.php} Main demo script - uses sessions, functions, SQL, XML and XSLT
{grgen.php} Generate a graphic to show a text string
{niceform.php} Form, validation, sticky fields, email results
{4lm_top.php} Full PHP application / 4 layer model - start here
{slidetell.php} Look up records (paginated) in a MySQL table.
{mvc2.php} MVC Framework and Helpers - with exceptions and validation
{xsltdemo.inc} xslt functions for sc5 and sc5 demos
{details.xsl} Style sheet to format one particular piece of information from an XML file
{sc6.php} Main demo script; uses sessions, functions, SQL, XML and XSLT
{4lm_template.htp} HTML template for 4 layer model
{stdsess.inc} standard functions for sc5 and sc6 demos
{demo.htp} Template for sc5.php4 and sc6 "best practise" examples

Module H116 - Shopping Cart Application in PHP
(article) Shopping cart application in PHP
{thankyou.htp} Template web page for carter.php4
{carter.php4} Session demonstration - full shopping cart
{s2.php} Free form shopping cart in a page
{getshop.inc} Functions for carter.php4 and other shopping cart apps
{getaddy.htp} Template web page for carter.php4
{offer.htp} Template web page for carter.php4
{getccard.htp} Template web page for carter.php4

Module H117 - Security in PHP
(article) Spotting and stopping denial of service attacks
{inject.php} Injection attacks and preventing them

Module H118 - Generating CSS through PHP
{west.html} Selecting and applying CSS themes through PHP
{style.inc} Full demo - PHP to set style sheets
{revinf.php} MySQL content report with counts, in PHP using CSS
{index.php} full demo - top layer and main code file
{picklet.php} Image library application using dynamic PHP style sheets
{dss.php} Dynamic Style sheet
{page.htp} Full demo - template for display
{httpd.hta} full demo - .htaccess file
{stdsess.inc} Full demo - web helper functions

Module H201 - PHP and MySQL for Content Management
{tail.txt} Boiler plate HTML for the foot of every page -->
{stdfuncs.inc} Standard functions for all pages e.g. open database connection, shopping cart handling
{edit.php4} Offer the content editor a record to edit (or a blank record)
{create.sql} File of SQL commands to create an empty database and tables for this example
{error.txt} Error messages file - allows for translation into other languages
{index.php4} Start of application - offer a series of search boxes, and also an editor's login form
{offeredit.php4} Validate an editor's login if necessary, and offer a list of records that can be edited
{top.txt} Boiler plate HTML for the head of every page
{select.php4} List out all records that match the searcher's criteria, in the form of a selection menu
{confirm.php4} Confirm and update to the content, and save it into database.
{user.inc} User definable functions - optional file that may include functions to run on any of the database columns when the content is being reported
{display.php4} Display a single record from the database in full detail

Module H202 - Case Study
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{sendform.php} Emailing form entries to the web site owner
{review.php} Form - course review

Module H203 - Complete example - Registering for a get-together
(article) Complete PHP example - Registering for a get-together
{together.php} Complete source code - registering for a get-together
{qmeet.php} Complete Application - meeting room quotation

Module H204 - PHP and MySQL example application - adhoc database analysis
{helppage.php} Help system - template wrapper
{help20.txt} Sample help file - result page
{help11.txt} Sample help file - select rows
{adhoc.conf} Configuration file for ad hoc MySQL query system
{help12.txt} Sample help file - select columns
{help10.txt} Sample help file - query type
{sqlwrapper.inc} An SQL wrapper to aid portability
{sampledata.sql} Commands used to create sample SQL database and tables
{page_layout.htp} Template for adhoc MySQL Query system
{help199.txt} Sample help file - logout
{webhelpers.inc} standard functions 4 layer model applications
{help1.txt} Sample help file
{businesslogic.inc} BUSINESS LOGIC
{adhoc_sql_query_engine.php} Application to look after generalise casual queries on a complex table structure

Module H300 - PHP Revision
{oo1.php} First really simple object!
{oo3.php} Third OO PHP example - factory and cache design patterns
{seven.php} Regular Expression demo
{oo2.php} Second OO example - object, inheritance, public / protected / private
{one.php} first PHP revision example
{four.php} form, completion, checking
{nibs.php} Extracting data / complex text file format
{index.php} Directory navigator
{two.php} Second PHP revision example - arrays
{showdb.php} Retreiving and displaying information from a database
{three.php} third PHP revision example - functions
{speed.php} Converting distance travelled and time taken into a speed
{hf.php} Directory source display
{xxy.php} Web Site news - a simple edit box

Module H301 - Sticky fields and session
{firstmultipage.php} Session in use for multipage application / named pages
{fru2.php} Sticky fields, and preventing injection attacks
{stracker.php} Cookie demo - session alternative
{westend.php} PHP Session - first principles
{zxzx.php} Viewing session from another web page
{wsss.php} Sessions - a demo of the mechanism
{secondmultipage.php} Session in use for multipage application / named pages. Split template
{dozen.php} Sending out holding pages before final result page
{multitemplate.htp} Template for secondmultipage and thirdmultipage demos
{tracker.php} Cookie demo - demonstration of session principles
{thirdmultipage.php} Session in use for multipage application / named pages / webhelpers

Module H302 - MVC, 4 layer model and templating
(article) Keeping the PHP and the HTML apart
{z_view.htp} View (Template) for MVC demo
{stages.php} Muliple page, session based application
{george.htp} View - for view / program separation
{t2.xxx} Look and feel (business logic elsewhere)
{stages.finish2.inc} Read and record an incident record
{shoptop.php} Top level
{george.php} Simple separation of view from program
{multiply.php} Separting look and feel from business logic - business logic
{mvc_control.php} Control - All elements in one piece of code
{stages.webhelpers.inc} Web helpers for stage.php demo
{stages.prepare3.inc} prepare phase 3 - no form, just an onward link
{mvc_principles.php} Model, View, Controller, Components, Framework and Helpers - single file
{business.inc} Business Logic
{mvc_split.php} Controller for Model, View, Controller demo
{stages.htp} Multiple Stage Application
{mpd.php} Session based multiple page application Mk 2
{stages.prepare1.inc} prepare for phase 1
{mpc.php} Session based multiple page application Mk 1
{z_helpers.php} Helpers for MVC demo
{template.txt} template file
{mpa.php} First shell for multipage application
{z_framework.php} Framework and bootstrap for MVC demo
{stages.finish1.inc} validate email, name and department
{web.inc} Web Helpers
{simsess.php} Session demo / single included file
{product.txt} Product listing
{needed.inc} Sample included file
{mpe.php} Session based multiple page application Mk 3
{stages.prepare2.inc} prepare for phase 2
{mpb.php} Stepping through and validating over multiple pages
{z_model.php} Model for MVC demo
{stages.finish0.inc} initialise for new visitor

Module H303 - Long and short term cookies and security
{suggest.php} Cookie and clean form demo
{codo.php} Memorising via a cookie
{ss2.php} Session - logging time and remembering inputs

Module H304 - DDA, Style and image handling
{imagetodb.php} Save already uploaded image into database
{gbs.php} What can PHP tell me about my browser?
{imagefromdb.php} Display image held in database
{park.php} Change image every minute. Retain style based on cookie (DDA)
{imagine.php} Upload an image
{browtype.php} Check browser type - feed out plain text or image / flash references
{browsers.php} Counting browser types visiting our site

Module H305 - Web server configuration
{frontend} Front end task - Predictive Load Balancing
{backend} Back end task - Predictive Load Balancing

Module H306 - Who is your visitor?
{sqlshowrecent.php} Display recently visited pages
{second.php} Web Log Analysis - example
{parly.php} Welcome a User - but only between 3pm and 5pm on Wednesday!

Module H307 - Web2 and caching
(article) Using current exchange rates on a web page
{cademo.php} Caching between pages via memcached
{train_graphic.php} Display info from application server on an image
{a_logshow.php} Log file analysis (2) - code optimised for readability
{xavier.php} demonstration of caching
{proxydown.php} Redirecting failed proxy request to valid page
{twitblog.php} Twitter feed from your PHP program
{prod.php} Web Site performance test page
{service.php} Service layer demonstration
{ajax456.html} Asyncronous call from Javascript on client to PHP on server
{caching} Caching in an object
{rs.php} Web service to give user current server stats
{a_papershow.php} Log file analysis (3) - results cached for run time efficiency
{a_timbershow.php} Log file analysis (1) - base case - functioning but poorly structured
{ajaxcode.php} Web Service provider - first Ajax demo ajax123.html
{exr.php} Grab exchange rates to/from Euro
{ajax123.html} JavaScript to load data from server
{phping.php} Heartbeat script to watch vital server
{sendimage.php} Serve a download from a database
{currency.inc} Currency abbreviations and names
{scraper.php} Scraping a remote URL content
{hb.php} Heartbeat script to check server
{client.php} Service layer - sample client
{ajaxstatus.html} Ajax demonstration - a dynamically updating status page.
{pset.php} Setting the User Agent in your PHP code
{ostell.php} Demonstration of cached resource
{train_pixelreport.php} An easy way to add an image point to a file

Module H308 - Searches, and search engines
{liked.php} Algorithm for sorting most recent likes
{ntx} File of surnames for matching demo
{globalindex.html} ") {
{page_it.php} Paging through a result set
{pplev.php} Looking for a similar surname

Module H309 - Maps, Graphics and Geographics
{thumbnew.php} Image rotate and thumbnail
{popup.php} A popup window to show details of an item on a page
{railinfo.php} Convert Latitude and Longitude to nearest stations
{isp.php} Plotting your web site visitors on a world map
{fpdf_demo.php} Sample using fpdf (free PDF convertor from www.fpdf.org)
{train_graphic.php} Display info from application server on an image
{tfdt.txt} Sample text file - location of places on image
{isp_eu.php} Plot web site visitors on a map of Europe
{th_2.php} Thumbnail library, Mk 2 - thumbnail generator
{index.php} All the images in a folder as thumbnails
{latlong2os.php} latitude / longitude to ordnance Survey grid positions
{tgf.html} Graphic and report based on data from application server
{showmap.php} Selecting from an image map
{tfd.txt} Bare data that we've cached from our application server
{totem.php} BR Totem graphic generator
{yearson.php} Plot years v data
{serverlog.php} Graphing server log files
{pictureindex.php} Thumbnail library, Mk 2 - main program
{railuse.php} Table and graph of same data
{railstats.txt} Railway Station codes, locations, usage 2004 - 2014
{shift_graphic.php} Shift Graphic Demo
{train_pixelreport.php} An easy way to add an image point to a file
{railtrends.php} OO based GD graphics example
{qr_demo.php} Dynamic qr code
{showmanor.php} Slide Show - single file example

Module H310 - Putting it all together
{todo4.htp} Template for the wiki demonstration
{jndex.php} Simple wiki demonstration
{indexcard.php} Index Card System - Version 0.9
{dot_htaccess} .htaccess file for wiki demonstration
{paged.php} paged display of station data

Module H311 - Testing your PHP
{oo3.php} A Sample class for testing demos
{p4l} Spike solution and algorithm testing
{five.php} phpunit - main program example

Module H312 - Tips and Techniques
{msf.php} generates HTML to link to files in
{robert} Sample data for crossreference demo
{ppq.php} Crossreferencing data markers to web pages
{dxy.php} Using .html URLs to search a data file
{callback.php} How a Callback works in PHP
{myod.php} generates HTML to link to subdirectories

Module H321 - CodeIgniter
{header.php} header for first CodeIgniter example
{placetime.php} view - transport form Mk 2
{mycontroller.php} CodeIgnitor - first example controller
{transwilts_views_mainpages.php} main page content
{footer.php} Footer for first CodeIgniter example
{transport.php} 2nd CodeIgniter example - sessions and form - controller
{transwilts_views_transwilts_tail.php} footer
{index.html} Holding / home page outside CodeIgnitor
{transwilts_views_transwilts_top.php} header
{dot_htaccess} Typical CodeIgniter .htaccess file
{placetime.hld} view - transport form Mk 1
{main.php} Main view - hello CodeIgnitor World
{transwilts_htaccess} map most URLs onto CodeIgniter
{transwilts_models_places_model.php} model - business logic
{success.php} success view - 2nd CodeIgniter example
{transwilts_config_config.php} config file - added encryption key at about line 228
{transwilts_controllers_passenger.php} main controller functions
{transwilts_views_mailpage.php} Form demonstration

Module H401 - Some extra PHP modules
{mailme.php} Reading emails from a POP3 mailbox
{windex.html} Combining blog and forum feeds using MagpieRSS
{525i.php} Using PHP mysqli functions - a working example

Module H998 - ADOdb
{adodb.php} Adodb example - selecting from a database
{mysql.php} MySQL example - selecting from a database

Module H999 - Additional PHP Material
(article) Graphic User Interfaces (GUIs)
(article) Example - PHP form, Image upload. Store in MySQL database. Retrieve.
{tear.php} Tear from one image to another
{2dar.php} 2 dimensional array in PHP
{fader.php} Fade from one image to another
{gmap.php} Google Maps / PHP - show your office
{image2.php} Generating a button with variable graphics and text in PHP
{gobbler} Forking in PHP - parallel processing
{imglist.xsl} Sample XSLT template as used in xslt.php4 example and others
{aso.php} First sorting example
{hands.php} Draw hands on a clock
{xslt.php} Process an XML file through an XSLT template and insert result in a PHP page
{nats.php} Natural Sort Order demo
{feeder.php} Script to handle image library in MySQL database as if it was a directory of images
{php_parallel} Parallel processing example in PHP
{images.xml} Sample XML file as used in xslt.php4 example and others
{xml3.php} Using PHP to handle XML, stand alone!
{ml1.php} Simple Author extraction from Medline
{xml1.php} Xml handling in PHP
{exp.php} Exceptions in PHP
{imgdump.php} Generate the html to call up 10 images from a database
{uso.php} User defined sorting
{image1.php} Generating a graphic in PHP
{rome.php} Random image for use in a web page
{th.php} dynamic thumbnail generator
{site_title} Stand alone script - grab title of remote web page
{hml.inc} Horses Mouth - latest topic feed
{loclook.php} Google Maps / Geocoding demo
{mustcount.php} Script to accompany access counter discussion
{thumb.php} thumbnailing an image in one file and saving in another
{mergeover.php} Stippleover from one image to another
{oursites.php} Parallel processes in PHP
{tinso.php} Sorting an associative array
{whowentwhere.php} Practical example of 2 dimensional array in use
{grids.php} Shows you where a place is on an Ordnance Survey Map
{vars.php} Variable types in PHP
{picclim.php} Search a database of images
{xdo.php} Reading an RSS feed in your PHP page
{exc.php} An exercise in sorting
{xml2.php} Second example - using PHP to handle XML
{ac_check.php} Sorting an associative array
{lottery.php} Array manipulation functions range, shuffle etc
{os2latlong.php} Convert Ordnance survey grid positions to latitude / longitude
{imgflip.php} Flipping an image in PHP
{showcount.php} Show counter record file
{mkgraphic.php} Stand along programming in PHP / also graphics example
{uso2.php} More complex user defined sort
{thumbview.php} Thumbnail index and image view application
{dademo.php} Date and Time and sorting em in PHP
{imgfeed.php} Show an image held in a MySQL database

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

J: Java programmming including Web

Overview J050 - Java - General
(article) Overview of Java
{WellHouseInput.java} Reading from the keyboard or a file
{Bernie.java} static method (function) calls
{Fred.java} Reading user input from keyboard
{Xena.java} Example with and without exception handling
{Wendy.java} Test program within a class
{Niamh.java} loading a method from a class in a package
{Lenny.java} Static Methods, comparing objects
{Steve.java} A second extended class
{Viv.java} An ArrayList - an extendable array
{Combo2.java} Combined demonstration - phase 2
{Adam.java} Hello World, and command line input
{Zoe.java} StringTokeniszer, ArrayList and Exception demonstration
{Margaret.java} String handling example
{Peter.java} underlying (base) class
{Edward.java} Shared code - load and run method from another class
{Quentin.java} Calling in an extended class
{Rolf.java} Extended class
{Time.java} Base class for examples up to Lenny
{Julie.java} Array of arrays (i.e. 2 dimensional array)
{Yvonne.java} Directory listing, file i/o and formatting demo
{Trevor.java} Polymorphism - an array of different objects
{Chloe.java} First use of variables and conditionals
{Combine.java} Step 1 combo for full demo
{Glenda.java} loop, with break and continue
{Daniel.java} Integer Calculation
{Aileen.java} Sorting an ArrayList
{Orlando.java} Class within a package
{Ulrika.java} An array of objects
{Irene.java} Arrays - setup, fill, pass, process, length
{Keith.java} Using a class
{Hilary.java} Passing values in and out of a local method

Module J601 - Java Introduction
(article) Overview of Java
(article) Book review - Beginning Java 2
{demolet.java} Sample Servlet - init doGet and doPost methods
{Hello.java} Program to test basic operation of Java tools.
{FirstFull.java.oo1} Full program - prompt, read, calculate, print

Module J610 - Archived examples from previous versions of courses
{ivy.java} ivy.java
{chaffinch.java} chaffinch.java
{redstart.java} redstart.java
{Whitfell.html} Whitfell.html
{crossbill.html} crossbill.html
{lapwing.java} lapwing.java
{fittleton.java} fittleton.java
{chestnut.java} applet to show colours
{t1.java} t1.java
{raven.html} raven.html
{PastelFilter.java} PastelFilter.java
{Whernside.html} Whernside.html
{Task.java} Task.java
{bradford.java} file manipulation
{Commem.java} extending a base class AND implementing an interface
{dunlin.java} Java Properties - what version / OS / etc
{coot.html} coot.html
{mp.html} mp.html
{dice_1.java} Random throws of a die
{woodborough.java} woodborough.java
{amesbury.java} read from keyboard via a supplied class
{durrington.java} while, if, break
{pack_5.java} pack_5.java
{redshank.java} redshank.java
{goftp.java} ftp from a java program
{Snowdon.java} Snowdon.java
{Fish.java} Simple base class (see Catchfish)
{Obj_v_prim.java} Obj_v_prim.java
{ford.java} ford.java
{moorhen.html} moorhen.html
{parcel.java} parcel.java
{chirton.java} Non rectangular 2D arrays
{bradley.java} file handling
{Canisp.html} Canisp.html
{Whitfell.java} Whitfell.java
{magpie.html} magpie.html
{patrick.java} patrick.java
{rserver.java} rserver.java
{chalfield.java} using an enumeration
{aspen.html} aspen.html
{lavington.java} lavington.java
{enford.java} basics of using an array
{avocet.java} Internationalisation / resource strings
{hawfinch.html} hawfinch.html
{brambling.java} general graphing applet
{linnet.html} linnet.html
{gargany.java} extended gadwall
{green2.html} green2.html
{raven.java} raven.java
{Phone_002.java} Phone_002.java
{marden.java} marden.java
{milston.java} milston.java
{suspect_card_8.java} suspect_card_8.java
{longer.java} longer.java
{hawthorn.java} hawthorn.java
{t3.java} t3.java
{worton.java} worton.java
{Swsmall.java} Swsmall.java
{pack_1.java} pack_1.java
{jay.java} jay.java
{goldfinch.java} goldfinch.java
{rowde.java} rowde.java
{Eiger.html} Eiger.html
{fcdata.java} socket programming (client)
{AllNames.html} AllNames.html
{chestnut.html} chestnut.html
{new_street.java} new_street.java
{alton.java} while loop demonstration
{cyprus.java} border layout in awt
{pagestats.java} pagestats.java
{tree.html} tree.html
{svlmp.java} svlmp.java
{pack_4.java} pack_4.java
{playing_card_8.java} playing_card_8.java
{svl_o2.html} svl_o2.html
{willow.java} willow.java
{DialApplet.java} Dialler applet using Swing
{fir.html} fir.html
{birch.html} birch.html
{quote.java} quote.java
{coot.java} dynamic graphics drawing
{potterne.java} potterne.java
{teal.html} teal.html
{beech.java} More applet components
{curlew.html} curlew.html
{charlton.java} Array of array (quasi 2D array)
{bromham.java} hello world
{fclient.java} socket programming (client)
{chough.java} font handling
{svl_l2.html} svl_l2.html
{box.html} box.html
{wraxall.java} wraxall.java
{waxwing.java} Generalised Graphing Applet
{redshank.html} redshank.html
{ash.html} ash.html
{blunsdon.java} Unicode and character string handling
{lime.java} lime.java
{Tryfan.java} Tryfan.java
{card_6.java} card_6.java
{crossbill.java} Command line and stand alone added to an applet
{porton.java} porton.java
{brambling.html} brambling.html
{Scafell.java} Scafell.java
{larkhill.orig.java} larkhill.orig.java
{twite.html} twite.html
{skylark.html} skylark.html
{svl_left.html} svl_left.html
{packages.html} packages.html
{TreeDemo.java} TreeDemo.java
{MoelHebog.java} MoelHebog.java
{cholderton.java} if and else
{calne.java} calne.java
{hen.java} hen.java
{acorn.html} acorn.html
{pack_3.java} pack_3.java
{Coin.java} abstract base class
{t2.java} t2.java
{lapwing2.html} lapwing2.html
{aspen.java} applet components
{Caldemo.java} Caldemo.java
{atworth.java} exception handling
{imgframe.java} imgframe.java
{willow.html} willow.html
{burton.java} arrays of objects
{pochard.java} pochard.java
{larkhill.java} larkhill.java
{swift.java} swift.java
{ImageHold.java} ImageHold.java
{gadwall.java} Server (present swap on port 7979) with graphic monitor
{oak.html} oak.html
{MoelHebog.html} MoelHebog.html
{smew.java} smew.java
{nuthatch.java} nuthatch.java
{crow2.html} crow2.html
{fifield.java} labels - also break v continue v exit
{Maovally.html} Maovally.html
{redpoll.html} redpoll.html
{grabpage.java} grabpage.java
{took.html} took.html
{whitley.java} whitley.java
{tilshead.java} tilshead.java
{idmiston.java} idmiston.java
{rsp.java} rsp.java
{heron.java} heron.java
{spruce.java} spruce.java
{hen.html} hen.html
{Phone.java} Phone.java
{jay.html} jay.html
{lapwing.html} lapwing.html
{Phone_001.java} Phone_001.java
{bremhill.java} Heavily commented simple program
{talker.java} talker.java
{maple.java} maple.java
{linnet.java} linnet.java
{buzzard.html} buzzard.html
{swallow.java} swallow.java
{scaup.html} scaup.html
{fyfield.java} fyfield.java
{kingsdown.java} kingsdown.java
{siskin.java} siskin.java
{haxton.java} haxton.java
{Tryfan.html} Tryfan.html
{Nevis.java} Nevis.java
{beech.html} beech.html
{smew.html} smew.html
{nettleton.java} nettleton.java
{pack_2.java} pack_2.java
{suspect_card_6.java} suspect_card_6.java
{Chocolate.java} Extending a class
{waxwing.html} waxwing.html
{svl_temp.html} svl_temp.html
{jackdaw.java} jackdaw.java
{maple.html} maple.html
{mildenhall.java} mildenhall.java
{Daily.java} extending the class Coin
{jackdaw2.html} jackdaw2.html
{figheldean.java} a first for loop
{pack_6.java} pack_6.java
{lechlade.java} lechlade.java
{Dunkery.java} for loop and Float objects
{elm.java} elements that can be drawn on a canvas
{Canisp.java} a telephone keypad using awt
{jackdaw.html} jackdaw.html
{BigginHill.java} Command line input / validation
{chough.html} chough.html
{greenshank.java} greenshank.java
{Eiger.java} awt GridBag
{heron.html} heron.html
{BeinnDearg.java} Character frequency analysis in a data file
{holly.java} holly.java
{all.java} all.java
{seend.java} seend.java
{Maovally.java} Maovally.java
{wilsford.java} wilsford.java
{yew.html} yew.html
{Whernside.java} Whernside.java
{svl_outer.html} svl_outer.html
{elm.html} elm.html
{inglesham.java} inglesham.java
{lockeridge.java} lockeridge.java
{redpoll.java} redpoll.java
{gp2.java} Grabbing a page of html
{ramsbury.java} ramsbury.java
{winEvent.java} winEvent.java
{blackbird.java} threading example via the runnable interface
{birch.java} Grid layout with buttons
{chippenham.java} chippenham.java
{nuthatch.html} nuthatch.html
{teal.java} teal.java
{grittleton.java} grittleton.java
{hawthorn.html} hawthorn.html
{card_8.java} card_8.java
{corsham.java} corsham.java
{Catchfish.java} extending a class and calling the base class constructor
{green3.html} green3.html
{oak.java} oak.java
{Hms2.java} Hms2.java
{siskin.html} siskin.html
{gp3.java} gp3.java
{playing_card_6.java} playing_card_6.java
{alderton.java} Test program to call intter classes example
{scaup.java} scaup.java
{brambling2.html} brambling2.html
{graphic_finger.java} a graphic client program to call up the finger daemon
{greenfinch.java} greenfinch.java
{fir.java} border layout example
{westwood.java} westwood.java
{Scafell.html} Scafell.html
{bulford.java} while loop
{honeystreet.java} honeystreet.java
{suspect_card_9.java} suspect_card_9.java
{Trip.java} Trip.java
{greenshank.html} greenshank.html
{n2.java} n2.java
{broughton.java} exception handling
{curlew.java} test program to log events generated by an applet
{shrewton.java} shrewton.java
{Pocket.java} Pocket.java
{lemon.java} lemon.java
{spot.html} spot.html
{palm.java} palm.java
{hawfinch.java} hawfinch.java
{BenHutig.java} AWT grid layout
{goldfinch.html} goldfinch.html
{moorhen.java} moorhen.java
{twite.java} twite.java
{greenfinch.html} greenfinch.html
{bremhill.html} bremhill.html
{Swapp.java} Swapp.java
{card_9.java} card_9.java
{rook.html} rook.html
{mailout.java} mailout.java
{mallard.java} mallard.java
{bullfinch.html} bullfinch.html
{new_street.html} new_street.html
{rook.java} rook.java
{palm.html} palm.html
{playing_card_9.java} playing_card_9.java
{marlborough.java} marlborough.java

Module J702 - Hello Java World
(article) Overview of Java
(article) Hello Java World
{Two.java} Second Java program - calls methods
{Hello.java} "Hello World!" in Java

Module J703 - Variables
{WellHouseInput.java} Easy user interaction class
{Plus.java} Pre and Post increment in Java
{Add2.java} Adding and declaring variables in a single statement
{Addup.java} Simple use of variables - adding
{Av3.java} Average - *this* one works
{Cost.java} Reading a cost from the user
{Somevars.java} Declaration and initialisation of variables
{Av3b.java} An alternative working example
{Bnd.java} Setting up variables, reading values, calculating and output
{Av2.java} Average - fails at compile
{Average.java} Averages - how NOT to (try to) do it

Module J704 - Loops and Conditional Statements
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{Sindoll.java} Excerise - Singapore to US Dollar table
{Day2a.java} Sample program for exercise
{Capacity.java} Course Exercise - capacity of tables in a restaurant
{Loop1.java} 'While' loop example
{Secondif.java} Nested 'ifs', and 'else'
{Firstif.java} Example of a first if statement
{Updown.java} Example of a boolean variable
{Bills.java} Nested loops, conditionals, breaks, labels etc
{Forloop.java} the 'for' loop in Java
{Loop2.java} Breaking from a loop
{Newtab.java} First read - calculate - loop program

Module J705 - Arrays
{Arr1.java} First Array in Java
{Cornet.java} Sample exercise answer (2)
{Hurdy.java} Pascal's traingle using a two dimensional array
{Flute.java} Sample exercise answer (1)
{Bowerhill.java} Dynamic Array sizing (multidimensional)
{Arx.java} Array demonstration
{rowby.java} Dynamic use of arrays
{A365.java} Array - length, initialise throughout, arrays or strings
{compton.java} Array initialisation
{rushall.java} Two dimensional array
{Ax1.java} Passing arrays by their references
{A350.java} Array - setting up, filling, looking for highest and lowest values
{Weekend.java} Array of Objects
{Charlton.java} Setting up and using array of arrays
{PascalAsObject.java} Pascal Triangle as Object
{Wilsford.java} Two Dimensional non-rectangular Array */
{upavon.java} Array Manipulation
{Gurdy.java} Pascal's triangle using dynamic arrays

Module J706 - Objects and Classes
{Ourpets.java} Our Pets - example application
{Film2.java} A class of objects with static methods, public variables, overloaded constructors and private internal methods */
{Film.java} Defining a simple class of objects in Java */
{Ourmenag.java} Sample application for use during practical
{Eve2.java} Example class that uses the Film2 class */
{Eve.java} Example class that uses the Film class */
{Animal.java} Sample class for use during practical
{Eve3.java} Static methods and comparing objects - test harness
{Film3.java} Static methods and comparing objects - class
{Ourzoo.java} Ourzoo - sample application

Module J707 - Strings
(article) Analysing incoming data lines
{cricklade.java} String object manipulation
{Station.java} Extracting data from a string, passing to factory
{ashton.java} Comparing Strings
{malmesbury.java} Stringbuffer
{StringBreaker.java} Splitting and interpertting a string
{purton.java} startsWith endsWith and other string comparison methods
{highworth.java} More character variables
{oaksey.java} indexOf and substring
{Vest.java} Open file, read line by line, do string manipulation
{minety.java} Accessing characters within a string object
{crudwell.java} copyValueOf and toCharArray examples
{marston.java} Arrays of Character String Objects
{ransbury.java} char variables and char arrays

Module J708 - Packages
{Isobel.java} packaged class for Geraldine / Hilda / Hattie demo
{pack.java} Package class example
{Geraldine.java} Class and calling code - all in same file
{sopworth.java} Calling a class in a subpackage
{axford.java} Calling a class in current package
{sherston.java} Importing a class from a package
{Hilda.java} Calling a class - using import to save repeated package names
{Hattie.java} Calling a class in another package

Module J709 - Class Access
(article) "Java Cookbook" - review
{luckington.java} Inner class example

Module J710 - Extending Classes and More
{Student.java} second subclass for use in exercise
{Book.java} Inheriting from the Universal Superclass. Also test harness in same file as class.
{Lecturer.java} Lecturer - subclass for use in exercise
{insurable.java} Interface definition
{Round.java} Exercise template - calculate price of a round
{Tv.java} Another extended class - TV
{BaseFile.java} An abstract base class
{Interit2.java} Interitance bundle + array, abstract, super, overload
{Babysitter.java} Application that uses Hire, Cinema and TV films
{HireFilm.java} Class HireFilm (extends film from other module)
{Hire.java} Hire Film - extended class
{Hires.java} Application to use HireFilm
{Ipay.java} Application using an array of objects that implement an interface
{Lecture.java} Lecture - application for exercise
{Interit.java} Interitance demo bundle - 4 files in Java
{People.java} People - base class for use in exercise
{User.java} Hiding detailed logic in (static) methods
{House.java} Another class than implements an interface
{Cinema.java} extended class example
{Car.java} Class that implements an interface
{Lunch.java} Using methods inherited from the base class Object

Module J711 - Java in the Web Page
{Puffin.html} Demonstration of double buffering
{box.java} Applet to draw a rectangle in a border
{Mountain.java} Buttons, Fonts, drawing on a Canvas in an applet
{Mountain.html} HTML test framework for Mountain applet
{Puffin.java} Applet that demonstrates double buffering

Module J712 - Exceptions
(article) errors v exceptions
{Adder.java} Solution to Addbase exercise
{card_7.java} for neston demo - interface card
{Keira.java} try, catch, finally - full example
{suspect_card_7.java} class used within "neston" demonstration
{E1.java} Class to which to add exception handling during practicals
{KeyRead.java} Keyboard Read for use during early exercises
{Jane.java} Define your own exception class
{Bikini.java} Practical Exception Handling Example
{E1a.java} Sample answer - handling exceptions on reading use input
{wadswick.java} Sample program that will throw an exception, not catch it, and fail
{neston.java} First example of an exception
{Addbase.java} Exercise Base - make this user proof
{playing_card_7.java} class of playing_card, used in "neston"

Module J713 - More Input and Output
(article) Formatting to a fixed number of decimal places
{bratton.java} Formatted Printing
{d3y.java} Exercise based on day 2 template
{snip1} Code snippet - reading from a file
{wellreader.java} Sample Input class from earlier courses and modules
{d2x.java} Application using multiple classes
{Javafgrep.java} Example for modification exercise
{farleigh.java} Checking file status, reading and writing
{winsley.java} File Manipulation examples
{snip2} File existence checking
{snip3} Writing to a file

Module J714 - Fundamental classes
(article) Want something more dynamic than an array?
(article) Fundamental classes java.lang, java.util and others
{Arlist.java} ArrayList in Java
{Bynum.java} A Comparator class
{Strtok.java} StringTokenizer Example
{Handbag.java} A class in which descructor calls are delayed
{About.java} System Properties
{Mhs2.java} A further example of sorting in Java
{Station.java} Station class used in Network example
{Train.java} To accompany Trans3 demo
{Network.java} Vector to replace an array
{Mypocket.java} Forcing a destructor to run
{NetworkStation.java} class uses in AUtil demo
{Ptr.java} To accompany Trans3 demo
{Bus.java} To accompany Trans3 demo
{ByValue.java} Comparator for Trans3 demo
{outmarsh.java} Using a stack
{Hmap.java} Hashmap example
{Discfree.java} Running an operating system command from Java
{floater} Float object v float primitive
{AUtil.java} Creating a hash of objects
{Hset.java} Hashset example
{Access.java} Access Log analysis / String Tokenizer
{Mathop.java} Maths operations
{stuff} Data for Trans3 demo
{Tshirt.java} Utility classes ArrayList and Hashmap set up to help analyse data file
{Objvprim.java} Object to primitive comparison
{Hmapsort.java} Sorting in Java - using collections
{Acsort.java} Sorting in Java using the comparable interface
{Trans3.java} ArrayList, Hashmap and Collections sorting
{holt.java} Using a Vector object
{hinton.java} An Example of a Hashtable
{Thing.java} Example of destructor

Module J715 - Putting the Java Language Together
{PF3.java} Third example application
{Area.java} defintion of an area of the UK
{Station.java} Class of objects from file or URL, factory, Vector and HashMap, select, sort, output
{Place.java} Solution - base class (abstract)
{MF.java} Final example application
{PF2.java} Second example application
{District.java} definition of a district of the UK
{PF4.java} Final lookup on data example, ignoring area v district distinction
{Person.java} Calculating BMI of various stars
{PF1.java} Sample extended class
{Multifinder.java} Full application
{P3.java} Example object
{Placefinde.java} Solution - application class
{P4.java} Object P4 definition

Module J801 - Review of Java Basics
(article) Overview of Java
{Aviary.java} Sample program - using Duck and Gull classes
{Desert.java} Base Class for use in Dairy Queen demo
{Colddesert.java} Part of the Dairy Queen demo
{Duck.java} inheriting and implementing class
{Bird.java} Base (abstract) class
{DairyQueen.java} Main application to show inheritance and polymorphism
{Friend.java} Interface to define an extra API
{Insurable.java} Dairy Queen demo - just a shell interface to show the implements mechanism
{Av2.java} An array of objects of different types
{Icecream.java} A subclass of Desert
{Gull.java} Class in a package, extends another, implements an interface

Module J802 - Abstract Windowing Toolkit
(article) Graphic User Interfaces (GUIs)
{ash.java} Constructs and scaling - AWT and Applets
{awtfont.java} Fonts, text manipulation, graphics. Applet or stand alone application.
{acorn.java} Basic Graphic Applet
{magpie.java} A Histogram of financila results
{skylark.java} General Purpose Graphing Applet
{yew.java} Applet, nested panels and layouts

Module J803 - Applet Parameters
{crow.java} Graphing Applet that picks up parameters from the HTML
{crow.html} Web page calling applet with data parameters

Module J804 - Threads
{robin.java} Using threads via the runnable interface
{wren.java} Using threads by extending the Thread class
{redtail.java} Syncronisation problem
{redwing.java} Syncronisation solution

Module J807 - Images
{gannet.html} HTML frame for applet
{starling.java} Graphing Applet with command line interface too
{starling.html} HTML to load a parameter driven applet
{waxwing.java} Graphic Applet - labelled, markers, etc
{gannet.java} Applet to load an image
{waxwing.html} Load an applet with data parameters
{ConfirmDialog.java} Dialog Confirmation Class
{Imgfilter.java} Changing the colours of an image to make a subtle background

Module J808 - Network Programming
(article) "Java Cookbook" - review
{Station.java} Class of objects from file or URL, factory, Vector and HashMap, select, sort, output
{Leanne.java} Multithreaded tcp/ip server in Java

Module J809 - Serialization
{Bead.java} The Serialiable class itself
{kingfisher.java} Application to demonstrate serialiasble objects
{Drawing.java} A class managing a vector of selializable objects
{mousehandler.java} Serialiazable demo mouse handler class

Module J810 - Internationalization
{pintail.java} Numbers, currency and date - internationalization
{buzzard.java} An Applet to show and navigate a Unicode font
{Avocet.java} Resource bundles in use

Module J811 - JDBC - Relational Database Access
(article) Interfacing applications to a MySQL database engine
{J850insert.java} Servlet that adds a MySQL table row
{J850select.java} Servlet to run a MySQL select (jdbc)
{Oralink.java} Connecting to an Oracle database
{J850_jdbc.java} Class to perform a MySQL table insert
{jdbc1.java} Connecting to a MySQL database
{J850staff.java} Servlet to insert into and report on a table
{Maggie.java} MySQL Database Connection and Query
{J850sjdbc.java} Generic database insert and select code (MySQL demo)
{make_J850.java} Create table for J850 series of demos

Module J812 - Java Beans
{Cube.java} Java Bean example as used by Tag library (J907)

Module J815 - Handling XML in Java
(article) Handling XML in Java

Module J816 - Regular Expressions in Java
(article) Regular Expressions in Java
{Reg3.java} Look for all lines containing a term and report the first field from matching lines
{Reg6.java} Regular expressions - match and replace
{Reg1.java} Regular expressions - look for email address
{Reg2.java} Regular expressions - look for all matching lines in a file
{Reg4.java} Look for email address on command line and report on user and domain name parts

Module J901 - Servlets
(article) Sessions in Servlets
{symdyn.html} Dynamic operation of a Servlet
{svl_right.java} Servlet to read form and echo
{svl.html} Servlet demo - HTML form
{Maryland.java} Checking and setting cookies in a Servlet
{Memo.java} Linking requests together via a session in a servlet
{Lifeanswer.java} Basic Servlet - simple calculation and a visit counter
{Noah.java} A simple servlet, and how to modify it

Module J902 - Extending Graphics in Java
(article) Graphic User Interfaces (GUIs)
(article) Extending Graphics in Java
(article) Extending Graphics in Java part 2
(article) Extending Graphics in Java Part 3
{Dialapplet.java} Swing Applet - dialler example
{S1.java} JFrame, JLabel and Jbutton - Swing
{Dialer.java} Java dialer with echo in a Jlabel
{TreeDemo2.java} Jtree with contents and interaction
{swsmall.java} Event handler - Swing
{Swtiny.java} Swing - tiny example (JFrame and JLabel)
{S2.java} Grid layout - Jbuttons for telephone dialer
{TreeDemoSetup.java} Jtree

Module J906 - Servlets in More Detail
(article) Sessions in Servlets
{Barman.java} Simple Session Tracking
{Station.java} Station class (transport demo)
{Framework.java} Main servlet / stand alone program (transport demo)
{ByName.java} Comparator class for Stations (transport demo)
{PubWatch.java} Session Tracking for Cluster and Load Balance demos
{web.xml} Example URL to servlet class mappings
{Landlord.java} Simple Session Tracking servlet reporting all users
{MyStream.java} MySteam web or file reader (transport demo)
{HelloServlet.java} Hello Servlet World

Module J907 - JSP - JavaServer Pages
{tcform.html} Form to read a temperature in degrees F
{gje2.jsp} JSP example - Java separated from HTML
{Book.java} net.wellho.Book class - Java Bean to look up on MySQL database
{Store6.java} Store class, used to maintain state in JSP demo */
{lovely.jsp} JSP example linking a series of pages, good practise shown
{boxes.jsp} JSP / Tag Library / Java Bean - the JSP part
{products.txt} Product data for Shopping cart demo
{web.xml} Session timeout changed to 120 minutes -->
{index.jsp} A Shopping cart JSP that maintains state -->
{gje3.jsp} JSP - Form input and validation
{tcvt.jsp} JSP to read temperature in C and convert to F
{course.jsp} Simple JSP, displaying a calculation in a page
{bookjava.jsp} Replacing Java Source code with Tags - some equivalents
{counter.jsp} Sessions in a JSP
{graham.jsp} Hello JSP world
{rep_aut_2.jsp} Web -> Tomcat -> JSP -> Tag Library -> MySQL - booklookup
{report_author.jsp} Web -> Tomcat -> JSP -> MySQL - booklookup
{Tconv.java} Class for use from JSP using standard tag library

Module J909 - Putting it all together
(article) A multithreaded server in Java
(article) What makes a good variable name?
{Room.java} Business logic for JSP demo (price)
{hello.jsp} Simple JSP calling in business logic from a class
{price.jsp} Example of a JSP and what the raw Java would be
{loglook.jsp} JSP to read and analyse data from a file
{Beast.java} Java Bean for JSP demo (hello)

Module J910 - Introduction to Ant
(article) Overview of Ant - a Java based build tool
{build.xml} ant instructions for Babysitter application -->

Module J953 - Combined Java Web Example: Servlets, JDBC and Graphics
{Im2.java} Generating an image file (AWT) using data from a database (JDBC) */
{Im4.java} An image (AWT) with form selected data (HTTP) from a database (JDBC) via a web page (Servlet) */
{Im3.java} An image file (AWT) from a database (JDBC) via a web page (Servlet) */
{web.xml} Tomcat config file for the sample application -->
{Im1.java} Generating an image file through AWT */
{formpage.html} Web form that uses Im4.java -->
{multigraph.html} Web form that uses Im4.java (multiple images in one page) -->

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

M: Well House Manor; hotel and events

Subject M101 - Business Accommodation in Melksham
(article) Good places to stay in Melksham

Subject M103 - Getting to and from Well House Manor
(article) It's easy to get to Melksham, and there's things to do!

Subject M106 - We suggest these local businesses
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing

Subject M149 - Well House Manor - FAQ
(article) Good places to stay in Melksham

Subject M150 - For users of Well House Manor.
(article) Creating Really Memorable Experiences

Subject M200 - Wiltshire
{osmap.tk} Draw a Tk Canvas using Ordnance Survey data
{game01.php} Choosing start and end points for a game
{tracks.txt} OS data for Wiltshire Public Transport

Subject M201 - Around Melksham, Wiltshire
(article) It's easy to get to Melksham, and there's things to do!

Subject M300 - Behind the scenes
(article) From Day Hotel to Hotel - not such a big change
{toiletrolls.pl} How many toilet rolls per day does our hotel use?

Subject M400 - The Hospitality Business
(article) From Day Hotel to Hotel - not such a big change
(article) Creating Really Memorable Experiences

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

P: Perl programming and use

Overview P050 - Perl - General
(article) "Perl - I didn't know you could do that"

Module P201 - Introduction
(article) New to programming. Portable code. Perl or Java?
{pex3} Same thing - sorted!
{urler} Splitting out a URL
{pex4} Short Perl program ... XML output
{pex2} Extended end of day one demonstration
{calc} Command line / STDIN Perl calculator
{pear_ex} A short program to handle substantial data
{whc.pm} Sample standard set of subroutines to share between applications
{s_c3} Screen Counter demo - look for RasterFlex boards
{talker} Simple talker written in Perl

Module P202 - Perl Fundamentals
{hello} "Hello World"
{av2} average of 2 ages, shows precedence and string to number conversions
{rw2} Using chop to get rid of the newline
{average} Calculate and print average of 2 ages
{read_write} Read a value, calculate, output an answer
{chopin} Read from user, write to screen WITH FAULT
{bod} Precedence of operators
{mfrp} Plan ahead - write the comments first
{ages} compare two ages
{one_line} two names are echoed back on one line
{codemo} Coercion - i.e. silent data type conversion
{bmi2} First Practical Program - including comments and documentation
{poor} A program that does something unexpected
{couple} reads two names and echos them
{yikes} chop - altered incoming value and returned value
{greeting} prompt and read user input
{wrong} A program with a syntax error
{language} Perl language fundamentals - example
{hello_again} Performing one action after another - a sequence of statements

Module P203 - More about the Perl Environment
(article) Parrot - Perl's new Virtual Machine
{assume} Perl assumes empty variables
{rw2} read, calculate, print results (2)
{d2} Prompt, read, chop and echo with comments, warnings and POD documentation
{symbols.pm} Package used within simple perl example
{rw3} Calculate, using a module

Module P204 - Conditionals and Loops
{d2r2} Illustration of looping to process a series of values, accumulating totals
{summer} Answer to practical (reading and summing numbers)
{ask} if, elsif and else (right)
{readandtotal} Reading and totalling numbers - sample answer
{bmi4} bmi demonstration with loops
{nask} if, elsif and else (wrong use of =)
{lp1} Blocks within blocks
{d2r1} Illustration of looping to process a series of values
{din} Use of shorthand operators
{dinners} nested blocks - loops and conditionals
{bmi3} Demonstration with conditionals
{bitwise} Demonstration of bitwise and logical operators
{lp2} Blocks within blocks (shows \ protection)
{numbers} how to write numeric constants
{condition} if and if - else; blocks.
{looper} while loop

Module P205 - Initial String Handling
{pattern} Regular expression learning tool
{heredoc} Use of a here document for copyright block
{pig} Regular expression - first example with anchors, literals, groups, and counts
{sc} Case insensitive comparison
{proper} Case changes on string
{chx} Comparison of chop and chomp
{stringers} Strings in Perl
{lms} comparing . and ,
{perlstring} Ways of writing strings in Perl
{bticks} backtick operator - runs an operating system command
{finsent} Trimming a sentence
{im10} Intelligent match on scalars
{dqs} Single, double and back quotes
{pfilter} Filter roads.xyz to match a pattern
{eqt} Numeric, String and match comparisons
{singlename} regex to look for a single name
{fil_tar} Filtering a log file for 'lua'
{prop2} Using double quoted strings to change case
{pws} Use of eq rather that == for string comparison
{xz} Printing out variable contents with labelling text
{greeting} use of x operator
{romance} Quoted strings, qq strings and here documents
{prop3} single and double quotes, q and qq strings
{plook} Simple example of reading and filtering a data file
{cs} Exercise answer - completing a sentence
{pf2} Filter roads.xyz to match a pattern (using open or die)
{izit} ~~ =~ eq and == operators compared
{deepmidwinter} Course exercise - sample answer
{midwinter} Course exercise - sample answer
{autumn} Sample answer - course exercise
{fd} Delimiting a variable name
{firststring} low level string functions demonstrated
{winter} Course exercise - sample answer

Module P206 - More Loops and Conditionals
{eloop} Labelled block style of loop
{throwz} Sample answer - throwing a die
{tel4} Usin the ? : operator instead of if and else
{telegram} if and else example
{mls} Knock out Competition - how many teams?
{golf} Knockout competition - how many teams / players needed?
{swit} Use of label to mimic a switch
{g4} String formatting, conditionals and loops
{qc} while loop, rewritten as for loop
{power} inverted until loop example
{p023.c} read an array of numbers from a text string
{forloop} Good and bad examples of a for loop
{jumps} demonstration of next, last and redo
{safety_net} The // defined or operator
{bip} Different conditionals and comparisons
{dunt} A do ... until loop - reprompt until you get valid input.
{andor} and, or, &&, || - precendence
{dice} Sample answer - rolling a die
{pswit} given and when - a switchlike syntax
{iffy} Read - calculate - conditional - output
{tel2} unless, and if and unless written in reverse
{tae} Checking user input
{given_demo} given (Perl 5.10 onwards)
{tel3} Conditional operators "and" and "or"
{lazyops} Lazy and and && operators
{jump2} Using a label in Perl to jump out of nested loops
{qc2} use of triadic operator
{dowhile} a while loop that runs at least once
{jumps2} Using a label in Perl to jump out of nested loops

Module P207 - File Handling
(article) Writing to and reading from files
{newread} <> v readline
{biggy} Finding huge files
{legacy} Divide money between children and print neatly
{christmas} Formatted printing - splittin money between the grandchildren
{tin} Filter and reformat a data file
{perlwget} Running an OS command from within a Perl script
{sp} Formatted printing
{procmon} Process monitoring - demonstration of principle
{reporter} file status operators -x and -s
{costa} Output file handles, open, and defaults
{leedspark} alternative answer to practical at end of module
{paut} Piping a ping into your program
{wacsal} Re-active formatting
{forvat} Formatting strings and numbers
{sswd} Directory parsing, formatting data read
{park} Sample answer to "the park" exercise
{bridges} sample answer - town with Bridges in name
{pe2rl} Single parse of data, multiple reports generated
{addplus} Formatter - adding a leading plus
{ck} Splitting money many ways - formatted printing
{fsv} File open, read, write test example
{fan} One input and five output files in a single program
{fprint} Formatted printing - some specifier details
{piper} Use of file handles to pipe from and to processes
{ddd} Splitting and reformatting data

Module P208 - Lists
(article) Data Monging
(article) Context - List, scalar and double quotes
{lx} $ atomic, @ molecular
{404h} Exercise answer - looking for all "404" accesses from certain hosts
{fanlist} List functions such as chomp and push in use
{dmore} dicey list sample answer
{linelen} Using a list to count records of various lengths
{prog.pl} Iterating through a list
{prog2.pl} mapping a list, iterating a list with your own counter
{towns.xyz} Data file - list of States, Towns, Countries etc
{vgrep} Verbose grep - illustration of list slices
{im2} Using ~~ to match lists (arrays)
{prg} Lottery selection
{c1} Context, and splitting a list into named scalars
{booklook} chomp, grep, split, unshift and join example
{salad} setting up lists, looping through lists, list slices
{dins} Demonstration of some facilities of lists
{back} Setting up, using and looping through a list
{li1} First example of a list
{404hunter} Look for all "error 404" pages from certain hosts.
{yumyum} Elegant Context Demo
{dow} Anonymous list example
{cont2} List, scalar and double quote contexts
{odd} Shuffling a list
{ctx} Lists and contexts
{sal2} Context examples
{grepplus} grep altering the incoming list
{li2} looping through a list
{escape} naming list members
{gm} grep to comb, map to alter
{context} context demonstration
{lat.pl} copy a list - duplicates it
{sameness} File Comparison

Module P209 - Subroutines in Perl
{valread.pm} standard subroutines to include in several programs
{mysub} calling a subroutine in the same file
{ct2} Coverage test - application using coverage objects
{mailfilter.pm} package to encapsulate information - NOT really objects.
{mc2} using email objects
{standardstuff.pm} Standard and repeated code - in own file
{utils.pm} Standard functions - tipsy demo
{bandq.pm} package with "romeo" example
{substamp} Sample use of subroutines
{melkservice} First use of training class
{coverage.pm} Routines to combine integer ranges to provide overall coverage information
{covertest} Sample application - coverage test given ranges of integers
{mailister2} including package name in package methods
{ua.pm} Identify whether a web access record is from a spider
{train.pm} Class for training - first use
{email.pm} email class of objects - a very simple class
{control} Example of how you should NOT repeat code
{bridges.pm} subroutines called up from example applications
{subgnrange} Passing parameters in and out of subroutines
{subby} repeated code in a sub
{funcall} passing a hash to a sub
{splitty} using subs to avoid repitition
{tipsy} Calling in a module from you Perl program
{romeo2} Answer to Romeo and Juliet question
{mc} Email analysis via a package
{tip1} Parameters in and out of a sub
{future} Using a class in Perl
{courses.pl} Sample (test) program to try out a diary
{ms2} calling subroutines in a different file
{myvar} Use of my to reduce variable persistance and scope
{mf2.pm} package of subroutines for mailfilter2
{cov2.pm} Coverage as a class. Allows multiple parallel coverage sets!
{l2} lists / context demo
{tip2} passing data in and out of subs
{diaryev.pm} Sample class for courses.pl demo
{scope} Scope - our, my and local
{subgetnum} Sample use of subroutines - returned parameters
{romeo} Romeo and Julie - solution
{maillister} using a module to retain information
{globvar} demonstration that variables default to global

Module P210 - Topicalization and Special Variables
(article) The wonders of Perl
{shhh} script to run on every line of a file
{johnny.vegas} Output from select demo
{topic1} Variable used many times - candidate for topicalisation
{shh} Counting Unique visitors in a log file
{rqu} Use of awk-like options with Perl
{topper} File handle <>
{bcv} Use of @ARGV command line and $_
{top3} Further use of $_
{oddgrep} Using grep and map with $_
{commline} Handling the command line via @ARGV
{spout} Special variables to control output formatting of lists
{gop} Handling the command line via Getopt. Also Usage lines.
{delay} select to change default output
{paws} Progress bar / progress reports
{topic2} Topicalisation in use
{hodo} Filter looking for IP addresses of computer(s) with "tea" in name
{ama} Use of $" to produce a csv output
{allhosts} Special variable $/; reading whole file to scalar
{special1} Program using a variety of special variables
{infovars} English and short names for informational special variables
{cv} rewrite of "dos2unix" in Perl
{ticker} Clock, using autoflush to update screen every second
{sample} Filter - takes names and attempts to capitalise correctly
{cl2} Program that generates a warning
{spot} Using implicit loop with -n
{start} BEGIN - CHECK - INIT - main code - END
{was} Use of command line options in Perl
{perltodiamond} Using the -p option on the command line
{exact} map, grep and $_ save loops
{gop2} Handling command line options - getopt

Module P211 - Hashes
{account} Sample - extracting statistics from an access log file
{envrep} use of %ENV
{stdhash3} Hash keys must be unique - so make up a new keu
{cbdemo} How sort callbacks work
{aco_1} Access log - listing hosts via a hash
{stdcodes} Dialling codes for use with course exercises
{pathit} List out all programs on the current $PATH
{acc_0} Loading from a module in another file
{niports} hash - manipulation
{sthash2} Keys must be unique - solution 1 - Append all possible values
{langies} List of all the skills in a file, and who has them
{nip2} set up and loop though a hash in various ways
{stdhash} keys must be unique - example illustrates the problem
{so2} Sort using your own sort subroutine
{nip4} Sorting the keys of a hash
{bankout} initialising a hash
{stdhash4} Keys must be unique - design new keys, add accessor loops to find multiple keys
{ukports} fill and look up a hash
{im3} Using intelligent matches to check hash keys
{channel} Ferries to France - data file
{web_count} Sample answer - web access counter question 1
{ha1} Setting up, then displaying contents, of a hash
{so4} sort using a more complex routine
{h1} Setting up, adding to, changing a hash (associative array)
{hash1.pl} setting up and using a hash
{blx.pl} Use of hashes in Perl / CGI
{fwom} Hash - keys must be unique
{acl} Sample answer - web_c2, page 152
{nip3} the danger of jumping out of an each loop
{so5} sorting with a comparison block
{requests.xyz} Data file for hash demos and exercises
{env2} ENV module to import variables as globals
{sorter} Demonstration of default dort order
{webc2} Sample answer - 2nd question
{ford.pm} Module for use with account demo
{access_log.xyz} Log file used in many Well House exercises
{peeps.pl} Set up a hash of people

Module P212 - More on Character Strings
(article) Analysing incoming data lines
(article) Pattern Matching - a primer on regular Expressions
{reg} Stepping through regular expressions
{n3} Capturing groups into a list
{name2} Match and substitute - (example that fails)
{ogado} Anagrams of First Great Western served stations
{pusher} Single v global match and alternatives
{glomatch} Use of "g" modifier
{rogues} Using tr to find invalid characters in a string
{bincopi} Read and analyse binary .gif files
{pwline2} using tr to change multiple characters; also c and s switches
{name} Match and substitute (long winded way!)
{pcrd} Modifiers im matching
{newsub} Examples of the =~ s for substitute operator
{holiday} Packing and unpacking binary data
{n5} Special variables $' $& and $`
{tophat} Hashes, Regular Expressions, Topicalisation ... end-of-course example
{greedyvglobal.pl} Greedy matches v Global matches
{bindemo} Printing out and reading in binary numbers
{favex.pl} Postcode, Zipcode, credit card no. etc - regular expression matches
{name3} Match and substitute executed block
{slurpex} matching lines - whole file at a time
{cats2} Sample answer 2
{n4} Special variables $' $& and $`
{emma_hunter} Match and Capture - email address
{itsperl} Serialise and unserialise strings
{catshow} Sample answer 1
{ystwyth.pl} binary data handling - examine a .gif file
{cstr} Defining Strings
{totext} Converting < > and & to web standard sequences
{pcv1} Postcode extractor - mark 1
{html2} Sparse matching, looking for an HTML tag
{pwline} Character by character translation with tr
{pcv2} Postcode extractor Mk2 - save into named variables
{n2} Capturing groups into $1 and $2
{stuff} storing a compiled regular expression - qr
{html1} Matching HTML - a greedy match doesn't work
{3to3} translate a DNA 3-character codon to an amino acid
{names} Regular expression match - revision
{yem} Perl regular expression - information returned
{phone} Substitution using back reference
{html3} Global matching in a scalar context
{packet} pack and unpack
{sedm} Substitue operator
{filler} Using Regular Expressions to "mailmerge"
{letters} Look for word starting and ending with same letter
{getlinks} Find all href links from a page
{emre} KISS - keep it simple - regular expression
{pcv3} Postcode, Mk3 - extract multiple postcodes
{trandy} tr (or y) and its modifiers
{regextra} Splitting up a URL via a regex - sample exercise answer
{html4} Global matching in a list context
{murl} Regular expression with comments
{sting} different ways of defining a string

Module P213 - Creating your own Classes
(article) Is Perl truly an OO language?
(article) Object Orientation in Perl - First Steps
{medium} OO with inheritance demonstrated
{need1} calling subs via bare words
{peeps.pm} Definition of two classes and polymorphism
{scemail} quick check of email address format
{need2} Solving the bare word
{room.pm} A simple class which uses a blessed hash
{antest} Introduction to Objects
{message.htp} Sample template for use in other demos
{nsp} variables in packages (autovivification!)
{big} How Object Inheritance is done in Perl
{tiny} Towards OO in Perl
{at2} Hello Perl Object World
{ub2} A test program to use the "book" class
{message.pl} None-OO example of template filling
{bd1.pm} A simple class, using a scalar to store object information
{thing.pm} Generic class for use during exercises
{housing.pm} Definition of house, castle and igloo classes
{book.pm} A simple class with a constructor and 2 access methods
{bd3.pm} A simple class, storing each object in a hash
{small} True OO example
{ce.pm} Object interface to call events
{roar} Sample program to use room.pm
{higloo} houses and igloos - an OO example
{oco} Using the house, castle and igloo classes
{ramble.pm} A class that includes a factory method
{commute.pm} commute.pm - used in factory demo
{journey} Call to factory class. See ramble.pm and commute.pm
{ubany.pl} Test program for ub1 ub2 and ub3 classes
{spammer} Using global matching to extract all matches
{usebook} Sample application, constructs and uses book objects
{massage.pl} Template object and test program
{blessing} Blessing and resultant polymorphism
{wheretogo} Example that uses commute.pm and ramble.pm
{bd2.pm} A simple class, using a list to store information about each object
{3cl} Object Orientation - 2 classes and polymorphism
{ub3} Another test program to use the book class

Module P214 - System Dependencies
{msword} extracting from a Word document ready for upload!
{courseend.pl} OS independent admin example - bundling up all training examples after a course
{registry.pl} Example of using registry from Perl
{faad} A template system report summary
{info_more} looking at your perl configuration in detail
{msexcel} Creating an Excel spread sheet
{back} system dependent backquotes
{userinfo} use of getpwnam for user information
{cv} End of line character conversion - Windows to Linux / Unix
{hostinfo} Looking up host by IP address and name
{ws1.wsf} Using Windows Script to list out special directories
{blockshell} running a series of shell commands
{ws2.wsf} Windows script - report on a datafile
{mytemp} template for faad example

Module P215 - More about Files
(article) Writing to and reading from files
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{lowther.pl} Reading data from the end of the program file
{dotty} globbing on a file handle
{whatsmypath} Lists out all duplicate executables
{dend} Data on end of program file
{chdirddemo} Using directory functions cwd, chdir, opendir, readdir
{file} _ and $_ in file operators
{ft} testing file existence, size and other stats
{allin} Read and report contents of a directory
{segment} Spray one input file across 16 different outputs
{fal} split an incoming file lots of ways
{inter} See is STDIN is interactive, and prompt if it is
{af} using the stat function to report on a file
{hunt} Random access to a file of fixed length records
{dxyz} Finding all files with names matching a pattern
{f2} Formatting using "format" and "write"
{ab_file} Using some of the file status operators

Module P216 - Handling Dates and Time
{tim} Converting times between epoch seconds and regular time
{dante} Date and time demos
{dt4} use of time and localtime
{dt5} compare a stated date and time with now!
{dt2} dt2 - file last modified (seconds from 1.1.1970)
{dt1} file last modified (days ago)
{hf} Modified "chivvy" - perhaps less OS dependent
{dt3} current date and time (system dependent!)
{sigint} Use of Signals in Perl to trap ^C (Control C)
{chivvy} Using %SIG to timeout keyboard entry

Module P217 - More than Simple Lists and Hashes!
{refs} References - a first demo
{2tiny} A list of lists - autovivification
{menu} Passing a reference to a list
{rrr} Setting up a list of lists (like a 2D array) from a file
{ref2} References - the fundamentals
{ar4} Reading a data file into a structure
{hali} Example of a hash of lists
{multikey} A Hash of lists - a more complex example
{d2} Passing list, passing reference to list comparison
{ar3} Rekeying data
{show_acc} Setting up a list of lists
{lili} lists of lists - like a multidimensional array
{deal} A list of lists - dealing a pack of cards
{revise} Revision of reference notations in Perl
{m2} Passing a reference to a hash
{rain} Setting up a hash of lists
{rn2} Pushing a list v pushing a reference to a list
{d3} Collection of collections (i.e. 2D array)
{rq2d} Setting up a hash of lists
{ar2} Combining lists - list of lists v one long list
{clutter} Finding items common to a number of liats
{2ds} Setting up a list of lists (like a 2D array)
{lilo} Collections and references to collections
{ar3.cgi} Rekeying data / presenting it on a web page
{haha} A hash of hashes
{lili2} List of lists
{slush} Setting up a list of lists in Perl
{hohum} hash of list of hashes
{deal2} List of lists - flexible example

Module P218 - More Objects
(article) Is Perl truly an OO language?
(article) Object Orientation in Perl - First Steps
{tharness} Perl program, calls 2 classes, polymorphism and interitance
{phisherman.pm} A simple class in Perl
{angler} Program to demonstrate use of phisherman class
{dish.pm} package showing Exporter
{teacup.pm} For use with require demo
{ua} Looking at data via Data::Dumper
{animal.pm} A framework for a generic base class
{cafe3} cafe3 - offer a number of dishes
{bne} a standard base class?
{offspring.pm} class offspring - an animal that need attention
{commemorative.pm} A class which uses simple inheritance
{basket} Sample program - polymorphism in Perl OO
{coin.pm} Simple base class defining a coin
{pet.pm} a pet is an animal ... inheritance ...
{pover} overloading operators
{lookinc} Display the @INC list
{runner.pm} Multiple classes in a single file
{cafe} Test application - use of EXPORTER
{test_class_1} Test harness for class "animal"
{overload_add.pl} Operator (+) and to_string overloading, Perl
{oo6} SUPER example
{tabby.pm} calling the base class constructor in Perl
{fruit.pm}
{fldo} Set up obects via a utility factory (main prog)
{test_class_2} Test harness for the various subclasses of animal
{rider} Application that uses the horse.pm module
{tptest} Test program for the trainingprogram.pm class
{opolop} Operator Overloading in Perl
{runtest} Test code - for polymorphism / inheritance demo
{visit.pm} Set up obects via a utility factory (classes prog)
{collect} Application that uses commememorative coin class
{li2} the @INC list and the %INC hash
{needbr} require is runtime, use is compiletime
{ptest} test harness for the program.pm class
{horse.pm} BEGIN END DESTROY and import special methods
{transport.pm} Definition of a transport animal

Module P219 - Libraries and Resources
(article) "Perl - I didn't know you could do that"
{dadu}
{mod_demo} Use of standard modules
{ac1} perl -w / turning warnings on and off
{stx} croak - like die, but reports line in calling package
{wholenumbers} The integer pragma illustrated
{togridref} Latitude / Longitude to UK Ordnance Survey Grid Reference convertor.
{tolatlong} UK Ordnance Survey Grid Reference to Latitude / Longitude convertor
{colpert} printing coloured text in your terminal window

Module P221 - Perl on the Web
{hww.pl} Simple CGI example with urldecoding and webify
{nice.htp} Template file for log analysis application
{templ.htp} Template for sdo2.pl Perl / CGI demo
{loganal.pl} Full cgi example - log file analysis
{onweb.pl} Looking up data in a file on the web
{echo.htp} Form / template to go with echo.pl demo
{sdo2.pl} Multiple page Perl / CGI application
{job3.pl} Select, display, edit job opportunities application
{st_look.pl} Form, template, validation, POST and GET all in one example
{letterlinks.pl} Perl on the web - simple file lookup
{demo.pl} First cgi program - read and echos form content
{railstats-1.xyz} data for st_look.pl demo
{echo.pl} Web basics - echo form content
{tabfeed.pl} Display list of SQL tables and/or table content on a web page
{samform.html} Sample form for an CGI script

Module P222 - Programming Efficiency and Style
{try7} regular expression efficiency demo - index rather than regex
{try3} regular expression efficiency demo - remove use of $&
{trybench} regular expression efficiency demo - testing with benchmark module
{try1} regular expression efficiency demo - start with literal
{try5} regular expression efficiency demo - read into list
{control} regular expression efficiency demo - control
{try2} regular expression efficiency demo - start with anchor
{try4} regular expression efficiency demo - process line by line
{try6} regular expression efficiency demo - via foreach

Module P223 - Interprocess Communication
(article) Controlling multiple asynchronous processes in Perl
{pingalong} Parallel (forked) processes communicating via pipes
{dodo} running another process from Perl
{pinga2} Parallel (forked) processes communicating via signals and files
{nonfat} A process that responds to signals
{two_roles} Forking in Perl - two processes
{h_report} Two processing in parallel (via fork) communicating (via a pipe)
{fdem} Forking in Perl, then communicating between processes
{breadknife} Forking a process, then the two communicating
{f1.pl} Forking a process
{kidgoes} Children signalling to parents as they complete
{check} Expect - choreographing multiple pings and analysing result
{knife} fork and two separate processes
{pingpong} piping from another process
{pinga3} Parallel (forked) processes communicating via signals and pipes
{breeder} Parent forking multiple independent children
{butter} Send a signal to a registered process
{talker} Simple talker written in Perl

Module P224 - Intersystem Communications
{netgrep} Network grep server - connect via telnet on port 5678
{perl_robot_client} robot.txt collector in Perl from a list of sites
{myweblib.pm} module to go with s1 web grab example
{pfinger} Client in Perl - talks to remote finger daemon
{victoria} fork and talk
{albert} Forking, Piping and Signals
{pg1} LWP - simplest test
{pg2} LWP - sets own User Agent
{s1} Grab a web page

Module P251 - Perl Review
{c1.pm} simple class
{pocket} Using a simple class
{ref2} References, lists, hashes, multidimensional structures
{ref1} Lists and refrences
{snobol} Various variable types in Perl

Module P252 - Perl on the Network
(article) Making all your .html files run a Perl script

Module P255 - Converting yourself to Perl
{greet} Regular Expression to match a floating point number
{flipper} Reporting size and age of files
{peephole} Read data into a hash and sort keys
{oops} Reading from user, echo, calculation
{peeps.txt} Sample Data
{pcode} Filtering a log file for images
{loglooker} Further log file analysis
{al1} Passing a list in Perl
{cf} A quick tool - web log filtering
{allo} Lists rather than arrays
{prg} Lottery selection
{demo.html} Sample output from pod2html
{c1} Perl Context - another demonstration
{gdi} Throwing a die question - sample answer
{cstr} Writing Strings in Perl
{lll1} Log File Analysis
{fil_tar} Filtering a log file for 'lua'
{diane_horse} Inverted blocks and less common conditionals
{skillstep} Report on the first word on [each] line.
{superls} Report on recently modified files
{al2} Passing by reference in Perl
{filer} Directory Processing
{extras.pm} Module forl use in al3 demo
{demo} Documentation for you Perl program
{log2} Analyse requests to our server by IP address
{lidem} List manipulation examples
{onion} Look for IP addresses that have accesses common images
{logger} Filtering all matching lines from a log file
{al3} Passing to an included file
{xmas} giving out Christmas money
{self} Using Perl for Sys Admin

Module P256 - Perl 6 Look Ahead
(article) Overview of what we're expecting in Perl 6
(article) Parrot - Perl's new Virtual Machine
{oldperl.pl} Romeo and Juliet - Perl 5
{newperl.pl} Romeo and Juliet - Perl 6

Module P257 - Use with Microsoft software
(article) Using Perl to read Microsoft Word documents
{msword} extracting from a Word document ready for upload!
{registry.pl} An example of using the registry from Perl
{msexcel} Creating an Excel spread sheet
{ws1.wsf} Using Windows Script to list out special directories
{ws2.wsf} Windows script - report on a datafile

Module P258 - Solaris, OSX and Linux
{change_screen.pl} Changing Images and starting Screensaver
{sed_awk} Linux / Unix system calls

Module P301 - Variables in Perl
{tgd} typeglobs - a package deal (one of everything!)
{ref2} Modifying values passed in to a subroutine
{sfact3} Using package names to supress strict warnings
{vartypedemo} 6 variable types in Perl
{vbn} Soft References
{mkd2} Anonymous lists using [ and ]
{sfact} Beware of variable scope in recursive code
{ty} Setting up and exercising a typeglob
{splitter} select and typeglobs for file handles - alternative to array of file handles
{ref3} handling a list of lists element by element, by row, and as a whole
{mkpascal} Pascal's triangle; clever use of formatting
{scal_type} ref function - what is in a scalar
{sfact1} Use of strict to flag scoping dangers
{danger} What variables have I used?
{phash} data munging - unpack, splice, regular expressions etc
{st2} Dumping out all variables defined
{fact} recursion in Perl
{iiw} my, local and global variables
{pers} persistent my variable
{st} Accessing Perl's symbol tables
{ref1} References
{gawd} Typeglob - one each of file handle, scalar, hash and list
{dele} delete, undef, defined and exists
{scope} variable scope illustration
{myscope} Scoping of our and my variables
{my2} scoping with "my"
{henry} Variable types

Module P303 - Miscellany
{spt3} A subroutine prototype defined too late
{pmg} magic goto
{gogo} Goto based on string
{asp} Command line options to add implicit read loop and split
{hoco} the continue block
{spt4} A subroutine prototype defined in time
{go4} Goto an array of possibilities
{go1} The goto statement ... if you must ...
{owncheck} Use of caller and wantarray
{cmc.pm} Defining a subroutine prototype
{sptest2} Using a prototyped method incorrectly
{dob} uses of "do"
{pex} Exception Handing in Perl
{sudemo} Operation that will fail if run tainted
{evx} try and catch simulation via eval
{mudemo2} Testing to see if a variable is tainted
{sptest1} Using a prototyped method correctly
{protodemo} subroutine prototype
{goflavours} goto, and jumping with last
{go2} goto based on a value - a sort of switch
{mudemo} running an operating system command
{waw} warnings, caller, wantarray, ref, $#_

Module P304 - Tieing
{textfile.pm} tie class that treats a file as a scalar
{acmagic} Persistant hash - NOT lost when the program exits
{alias_list} Accessing Unix's aliases database directly
{lower.pm} Tie class to force all strings to lower case
{ac3} Using a tie class to force lower case
{ac2} Using a tie class to force lower case
{acnset1} Crreating a database file through tie
{ah} Tieing a variable to change its behaviour
{bowtie} Using a variable tied to a file
{aphash.pm} tie class definition - an appending hash
{flash.pm} Appending hash tie class definition
{acnlook} Tieing a database file to a hash
{game} Appliaction that uses a scalar as a stack
{pwl2} Looking up user accounts, case insensitive
{fyle.pm} links a variable to a file
{stack.pm} Tie class that hides a stack under a scalar
{thash.pm} Tie class to access a disc file as a hash, with caching
{persist} Persistant variable via a tie class
{allcodes} tied hash, unique key solution
{acnset2} Tying a text file to a hash
{codes} location lookup
{codes2} Place lookup without tie - variables are cas sensitive
{pwlook} Looking up users, case sensitive
{acm2} tieing a text file to a hash

Module P305 - User Input
{kbcheck} select to check input availability
{fc2} Reacting to each keystroke rather than awaiting a new line
{ask} Send a signal to program h1
{fi2} Reporting maximum field per line count
{kb2} Giving the user a limited time to make an entry
{h1} Long running program with interaction
{file_in} Unpacking characters
{askpw} Using ioctls and POSIX to provide a password entry system
{kbtest} If the user has started typing, wait for a whole line. Otherwise carry on
{pcr} Binary file copy
{keyin} print out ASCII decimal equivalents of entries

Module P306 - Plain Old Documentation
(article) POD (Plain Ole Documentation) - how to check it
{pod1} Example of POD
{d4} Sample code - alternatives to if and while
{pod1.html} Example of HTML generated from POD

Module P307 - Perl/Tk
(article) Graphic User Interfaces (GUIs)
{tk3} An interactive application with a Tk GUI
{tk1} A simple GUI with Perl/Tk
{ptkclock.pl} Simpler version of Perl/Tk clock
{tk3.pl} A toggle button implemented in Perl/Tk
{tk2} Drawing graphics on a canvas with Perl/Tk
{tk4.pl} An interactive form on a grid (tk)
{ptkcl2.pl} Clock using Perl/Tk
{bobbb} An interactive application with a Tk GUI
{bob} An interactive application with a Tk GUI
{tk5.pl} Tk demo - fill in form, moving graphic

Module P308 - Using SQL Databases from Perl
(article) Interfacing applications to a MySQL database engine
{orange.pl} DBI used in a CGI script as a GUI to a table
{D2.sql} Sample people database
{D3_Main.pm} Second DBIx Demonstration - headline file for loading Schema
{D3_Main_People.pm} Define table/object data mapping for People and how they relate to Computers
{D3_Main_Computers.pm} Define table to object data mapping for Computers and link to people
{hellosql} Accessing and SQL database with DBI and DBD modules
{D2_Main.pm} First DBIx Demonstration - headline file for loading Schema
{fifthdbi} Perl DBI - display contents of MySQL table
{D2.pl} Adding DBIx on top of DBI and DBD - First simple example
{D3.sql} SQL source data for D3 demo (SQLite / DBIx / Perl)
{trains.sql} Data to create and populate train table for other examples
{dbdhash.pm} Tie a Perl hash to a MySQL table through DBI
{aggy} Connecting Perl to a MySQL database
{tie_main} Exercise - main program to die hash to database
{edbi} Example using many database access methods from DBI
{traintimes} Connect to an SQL database of train times
{sqlping} Using DBI and DBD to establish a connection and list available tables
{firstdbi} Simple Perl DBI Query
{D3.pl} Adding DBIx on top of DBI and DBD - Select on joined tables
{aclog2table} Set up database for web access log records
{D2_Main_People.pm} Define the table to object data mapping
{D1.pl} SQLite - DBD and DBI - create, insert, select, drop

Module P310 - Moose
{B6.pl} use of Universal superclass
{B5.pl} Base class, subclasses, polymorphism
{M6.pl} Default values - Moose
{B2.pl} Turning packaged hash references into Objects
{M5.pl} Roles and Inheritance with Moose
{B1.pl} Package, constructor and accessor
{M7.pl} Adding functionallity with after
{M1.pl} Basic set up of a class with Moose
{B4.pl} Use of caller to examine the sub stack
{M4.pl} Moose - calling automatically generated methods
{M2.pl} Moose - setting defaults
{B3.pl} Checking method calls / confess and croak
{M3.pl} Data Type checking in Moose
{B7.pl} Factory Method

Module P402 - Writing Your Own Simple Client and Server
{pt4} Using local OS commands to run network processes
{pf1} Finger client
{pf3} Better finger client
{pt3a} time and date from a series of hosts
{sts} Simple Perl time SERVER
{dot2} Buffering - progress bar in dots
{dot} buffering - dotd come out all together
{mcopy} End of line conversion - moving data file between operating systems
{miniserver.pl} Small Web Server in Perl
{ptime} Simple client

Module P403 - The Common Gateway Interface
{seedcalc.pl} Shows structure of a CGI script
{perlcycle.pl} cycling through images using CGI
{formone.cgi} Running a script when a form has been submitted
{shoots.pl} CGI script - sets up form, also handles form response, in a single page
{whc_filter.pm} utilities for CGI use
{withval.cgi} CGI page with some data validation
{wedlist} Wedding list application
{roadfinder.pl} Looking up an "A road" on a web site
{rf1.pl} Looking up an "A Road" - test program
{slip} Simple Perl / CGI script to calculate BMI
{area.pl} Single page ruggedised CGI form
{logone.pl} Filtering an access log file from a browser
{first.html} First HTML page to call up CGI script -->
{mypage.htp} HTML template for shoots.pl demo -->
{firstform.html} A first web form -->
{theywant.renew} Wedding list data
{formurl.pl} URL decoding - training example
{mydate.cgi} CGI first example - menu based on day of week
{seeding.html} Sample form - two boxes to submit to a CGI script -->
{bmic.cgi} Simple CGI script with separated view and elementary validation only
{rsq} Analaysis of a file to the web.

Module P404 - Extending Flexibility Using CGI
(article) Nasty Characters in Web Applications
(article) Accessing a MySQL database via a browser, Perl and CGI
{docwrite.pl} Writing a document within a CGI script
{mulcgi.pl} Handling a form with multiple fields
{twopost.pl} Collection information via POST
{jumper.pl} Random jump - return a location header
{twoa.pl} More generalised form handling
{envlist.pl} Environment and input lister

Module P405 - Web Service - Our Own Client
{grablunch} Command line program to access webpage object
{pwebclient} Stand alone program to use web_fetch module to find links
{xmx} Parsing an XML feed which we get off a web server
{web_fetch.pm} Simple web client subroutine - connect via HTTP and get a page
{pwebserver} Perl server - low level socket programming - HTTP protocol tool
{cgiwebclient} CGI script to fetch page from another server
{webpage.pm} Module to connect to a web server and grab a page
{get_courses} Script to call an OO module that grabs a web page
{pg1} LWP - simplest test
{wtserv} Web server in Perl to expose file system
{pg2} LWP - sets own User Agent
{wclient} Simple web client - collect all links

Module P406 - More CGI Programs and Facilities
(article) Making all your .html files run a Perl script
{utils.pm} Utilities for CGI
{mailer.pl} Emailing and working out the browser type
{useredit.pl} Edit a file all on one page!
{upfile.html} Uploading a file (live demo)-->
{winmailer.pl} emailing from Perl on a Windows box
{up.cgi} CGI script to receive uploaded file
{upsend.cgi} CGI script to receive and display uploaded file
{up.html} Form for uploading a file -->
{nph-clock.pl} Multipart and updating CGI document
{down.pl} Download a file off the server

Module P407 - State and Cookies
(article) Handling Cookies through CGI.pm
{sweetest.pl} Perl, CGI, sessions - complete application template, full demo
{sweeter.pl} Perl, CGI, sessions - complete application template second steps
{whisky.pl} Cookies from first principles - demonstration
{sweet.pl} Perl, CGI, sessions - application template, first principles

Module P408 - Standard Web Modules
(article) Using LWP to write Web Clients
{askuser.tt} Second template (form) - Dancer
{bin_app.pl} Perl Dancer - Controllers and routes
{cgi1.pl} Simple demo of CGI.pm
{cookie.pl} Setting, reading and deleting cookies
{fred} Grabbing a web page for echo
{cgilite.pl} Using CGI_Lite.pm - simple example
{page_checker} Using LWP::Simple to find all links from a web page
{cc2} Use LWP UserAgent to check and see if a remote site has changed
{townstyle.css} Style sheet - Dancer
{cgis.pl} Using CGI.pm as a structured code
{wellhouseframe.tt} layout example - Dancer
{grab2} A first example - grabbing a web page via LWP
{freda} Grabbing a web page for cache
{config.yml} configuration - Dancer
{goodlinks} Validate links from a page (LWP)
{frederick} Grabbing a web page for cache if refresh needed
{ecbgrab.pl} Grabbing a network resource through LWP UserAgent
{township.tt} first inner template - Dancer

Module P409 - Searching
{robotic_search.pl} Setting of a background indexer from a CGI script
{ar5.cgi} Rekeying data - CGI example with form based control
{searchform.html} Search form
{my_search.pl} recursive search through HTML files
{indexer.pl} Simple search through a few web pages
{bigger_search.pl} Setting up search indexes
{yetwider.pl} Wider area search using a pregenerated central keyword resource

Module P410 - Automated Email Answering
{automail} Emailing from a Perl Script
{pop3.pl} Using POP3 protocol to read emails into a Perl program
{mailsender.pl} Mail form - sending email from Perl
{am2} Emailing from a Perl script to a variety or recipients

Module P412 - Using CGI.pm
(article) Handling Cookies through CGI.pm
{upload_form.pl} Using CGI.pm to upload an image - initial form
{upload_handler.pl} Using CGI.pm to upload an image - submission handler
{cgiobjects.pl} Hello Object Oriented CGI.pm
{cook3.pl} CGI.pm / sessions with hidden fields / page 2
{with.pl} Simple seb page with CGI.pm
{cgi_cookies.pl} Report on cookies from browser
{formdumper.pl} Finding what fields have been submitted - CGI.pm
{favbrek.pl} Sample exercise answer - favourite breakfast
{cgitables.pl} Setting up tables with CGI.pm
{cgi_shoppingcart.pl} Complete shopping cart demo - using CGI.pm
{extrapath.pl} CGI.pm - how to find server parameters such as remote address
{cgi_serverpush.pl} Server push - a series of responses pages
{cook2.pl} CGI.pm - sessions using hidden fields
{cgiform.pl} How to set up a form using CGI.pm
{cgireadback.pl} Reading back from a form via CGI.pm
{cgihello.pl} Hello CGI.pm world
{without.pl} Simple seb page withOUT CGI.pm (for comparison)
{bookkeeper.pl} function to clear old session files
{cookstart.pl} CGI.pm OO form / for hidden field session demo

Module P413 - Embperl
{adder.html} Embperl - a form and action example
{t2.epl} Embperl - first simple example -->

Module P420 - SQL databases from a browser via Perl and CGI
(article) Accessing a MySQL database via a browser, Perl and CGI
{testtabs} SQL test command
{addoperation} Add via form to operation table
{patients} patients data
{operations} Operations Data
{gempage} Display joined SQL tables via Perl and Web and Browser
{gem} Display joined SQL tables via Perl
{addpatient} Add via form to patient table
{mktabs} Create table structure (SQL for demo)

Module P600 - Perl 6
{position.pl6} Practical script - finding smaller stations
{mapper} Read file, map all lines, sort results and display top 25
{hello.pl6} Hello Perl 6 world
{classdemo.p6} A first class definition and use
{quieter.pl6} First data file analysis - using arrays, hashes, etc
{rstats2015.txt} Data for Perl 6 demo programs in P600 module

Module P602 - Advanced File and Directory Handling
(article) File Locking
{pls} Four ways of finding the contents of a directory
{ndd} Accessing NDBM files
{huge2} A progress line - hunting for huge files
{webfiles} Using typeglobs to handle an effective array of files
{loglook} reading a specific number of bytes
{recur} recursively scanning directories
{pfc} Copying a file block by block
{huge} finding lost disc space - hunting for huge files
{flockdemo} Co-operative file locing with flock
{bchop} Random access to a file - using a binary chop
{ftype} Establishing the type of a file system object
{nf} Use of $! to find out why an action failed
{nopen} $! in a string and a numeric context
{biggest} Look for biggest files in a tree
{wr_loop} Using file locking constants

Module P604 - Using Perl for Web Site Management
{admin.pl} Report on server status

Module P616 - FTP and Telnet Modules
{ftpdemo} Simple FTP retreival in Perl
{telnetdemo} Log in to a remote host and run a command
{sshlet} Using ssh to contact a remote host
{ftp2} Recursive FTP client in Perl

Module P623 - Alternatives to CGI
{sinp.pl} Simple server in Perl
{mp.pl} Simple modPerl Example

Module P667 - Handling Huge Data
(article) Data Monging
{rt2} Handling data in chunks - chunk overlap issue solved
{slurp} slurping and sampling
{huge3} Asking a long running application for intermediate reports
{reg_opt2} Regular expression match - use of "o" modifier
{out.txt} Example of search results written to file
{reg_opt3} Regular expression match - more specific and faster
{huge2} Providing user feedback while handling huge data
{optim} Optimising code to avoid repeating calculations
{hugehunter} Long log file analysis, with progress and intermediate reporting
{makedirs} Preprocessing a huge data file to set up indexes
{paws} Progress Bar Techniques
{readtime} Efficiency - reading a file in large blocks
{useindex} Grab first ten sites on a topic area - QUICKLY via index
{behind} looking behind in huge data files
{huge1} A program to test handling a small part of a huge data set
{opt3} Improving sort efficiency
{mtx} Merging two huge files
{makeindex} Generating a list of markers to a huge sorted data set
{big.start} Finding largest file, with intermediate status reports
{reg_opt4} Regular expression match - a start assertion speeds it up!
{site.pm} Class used in other examples in this module
{opt4} Improving sort efficient further - caching record analysis
{reg_opt} Regular expression match - inefficient example
{huge3.pid} Example of the huge.pid file
{reg_opt1} Regular expression match - don't save $' $` and $&
{opt2} Sorting and data filtering efficiency

Module P668 - Handling XML in Perl
(article) Using LWP to write Web Clients
{xml0.pl} Parsing XML - first test program
{camels.xsl} XSLT sample for xlst1.pl demo
{medireport.pl} Using XML::Parser to extract information - practical example
{p2} Sample RSS data feed (XML data)!
{apps-admin.xml} Sample data file used in XML example
{p1} SAX parser - extracting titles from XML stream
{exp.pl} Direct use of the Expat module
{xml3.pl} Illustration of handling a stream
{xml1.pl} Using debug mode to quickly check a document
{xml5.pl} Alternative - using handlers
{gnome.pl} Parsing XML through LibXML
{medline.pm} Class of XML element handlers
{xslt1.pl} Using XML and XSLT to turn data into a web page
{goblin.pl} Altering an XML document through LibXML
{camels.xml} XML sample for xslt1 demo
{index.xml} Sample RSS data feed (XML data)
{xml4.pl} Converting an XML document into a tree in Perl collection variables
{mediweb.pl} Parsing XML within a cgi script
{stdsubs.pm} Standard cgi handler to collect form data
{xml2.pl} Using Subs to report on an XML source

Module P669 - Data Munging
(article) Data Monging
{new1} List iteration
{anagram} Perl program to look for anagrams
{pc2} Using the power of lists to save code and time
{memsave} Compressing data to save memory
{filedata} List manipulation - sorting files by size and reporting largest 10
{filedata2} Sorting files by size - shortened example, harder to follow?
{pc1} (Somewhat) conventional programming methods to parse data
{cdk.fasta} Data for sample bioinformatics program in Perl
{oldfash} Handling an "arraY" - really a list - the oldfashioned way
{new2} Alternative list iteration
{pc3} Handling a file as a single string of text
{bacon} Conversion Codons -> Amino Acids -> Protein

Module P711 - An Introduction to Standards in Perl
(article) What makes a good variable name?
{avoidthis} Bad code - multiple actions in one statement
{chink} About dieing in Perl

Module P772 - Practical Example - Perl in use
{combine} Combine source code files into single dbn file
{place_people} Application that demonstrates integration of all the fundamental elements of Perl
{requests} Data file for place_people
{lpo} Manipulating a file of records to extract a report

Module P773 - Packaging Modules
{Changes} Revision history - sample
{Makefile.PL} Sample Makefile.PL scrtipt to check distribution
{README} Sample of install documentation
{MANIFEST} Sample list of contents
{1.t} Test routine for a sample module
{WhcStd.pm} Sample Object in CPAN / standard distribution form

Module P774 - Good CGI scripting.
{msgsys.pm} Message System in Perl
{questionset.pm} Business logic for quiz system demo
{myhelpers.pm} Helpers for Perl Framework, MVC demo
{mymodel.pm} Model for Perl Framework, MVC demo
{main.htp} Template for Quiz system demo -->
{myview.htp} View for Perl Framework, MVC demo
{thing.pm} Generic object used within business logic
{Perl.1} Some sample quiz questions
{quiz.pl} Top level code for quiz system demo
{myframework.pl} The FRAMEWORK for a common gateway interface application
{q15.pl} Quiz - Statistical table generator
{whc_web.pm} Web helpers for quiz demo (and others too)
{bmic.pl} Simple CGI script with separated view and elementary validation only
{mycontroller.pm} Controller for Perl Framework, MVC demo

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

Q: General programming subjects

Overview Q050 - General Technical Subjects
(article) Open Source - here to stay, or a flash in the pan?
(article) Web applications using LAMP technologies
(article) Free software - the joy of Open Source

Module Q100 - Learning to Progam
(article) Why so many different courses?
{vcy} Second validation example (function) / Ruby
{first.c} A first program - a series of instructions
{vcz} Third validation example (catching errors) / Ruby
{colin} Ruby example - planning and documenting your code
{second.c} Calling named blocks of code
{small_demo.php} A first useful program in PHP
{fifth.c} Named blocks of code (functions)
{seven.c} Repeating blocks of code with a loop
{sixth.c} Conditional code
{Chloe.java} First use of functions and command line - Java
{fur3.py} Conditionals
{ten.c} An array to store multiple values
{third.c} Calculate and print
{vcw} without validation / Ruby
{twelve.c} #define, breaking a loop, == testing
{furry.py} Whole program
{fourth.c} Calculations and precedence
{eleven.c} Reading data from file
{stuff.txt} Data for eleven.c and twelve.c
{fur2.py} Operator precedence
{vcx} Quick first validation example / Ruby

Module Q101 - Programming Principles
(article) copying an object - copy the reference
{cbv2.c} Call by value and name - extended example
{askuser.py} Sample module for sharing ...
{fvm} difference between function and method
{design.001} Designing an application - start here
{cd1.c} Comments and sequence of statements
{algo_cgi.pl} CGI equivalent of Station Name / anagram program
{utilz.py} Simple sample module
{sweat} First Conditional
{whatos} Implementation of a design
{perspire} First Loop
{afresh} Modular programming!
{cbv.c} Call by value and call be name
{compat_stage1} reusing code in a module / Python
{rubfunc1} Ruby example - define and call a named block of code
{day2_1} Functional (structured) coding
{algo} Use of a sub to avoid repeating code
{compat} Sharing code between modules / Python
{comp_control} Control case / Python

Module Q102 - Choosing your language
(article) Is Perl truly an OO language?
(article) New to programming. Portable code. Perl or Java?
{revl.rb} Counting down in Ruby
{revl.c} Counting down in C
{revl.lua} Counting down in Lua
{revl.py} Counting down in Python
{revl.java} Counting down in Java
{revl.php} Counting down in PHP
{revl.shell} Counting down in Shell (Ksh or Bash)
{revl.pl} Counting down in Perl
{revl.tcl} Counting down in Tcl
{revl.cpp} Counting down in C++

Module Q110 - Programming Algorithms
(article) File Locking
{lif.py} Counting the number of times something occurs
{universe.pl} Handling unique lines from a file - Perl (list)
{uni2.pl} Handling unique lines from a file - Perl (generator)
{d2.9} summing a collection
{amm} Program to read in numbers and return some analysis (Python)
{algorithms} Some common algorithms applied to a file of data
{fodder_stats} Minimum, maximum, total, average, count (Ruby)
{scat} Getting multiple results from a single data traversal
{lca} Least Common Ancestor
{d2.8} finding extreme values from a collection
{universe.py} Handling unique lines from a file - Python

Module Q624 - HTML - An Overview
{reminder.html} Sample HTML document from this module
{index.html} Demo - home page -->

Module Q625 - HTML for Web Application Authors
{tabledemo.html} A Sample Table
{former.html} Sample form showing each main element -->
{tabledemo.php4} Generating a table from a PHP script
{envlist.pl} List form and environment information

Module Q801 - What are Regular Expressions?
(article) Pattern Matching - a primer on regular Expressions
{mare} Some Advanced Regular Expression handling (Perl)

Module Q802 - Regular Expression Elements
(article) Pattern Matching - a primer on regular Expressions
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing

Module Q803 - Regular Expressions - Extra Elements
{ahead} Negative look ahead
{posso} Sparse, Greedy and Possessive matching
{pcode} Perl - match and extract from a postcode
{lazyvgreedy.py} Comparison of Greedy and Sparse [python] ...
{lookbehind.py} Negative lookbehind - fail if you have just passed over [python]
{bref} Back References
{lookahead.py} Negative lookahead - does not consume / must fail to match [Python]
{pocohunter} Post Code hunter / Perl
{isbn} Testing validity of ISBN number, including check digit

Module Q805 - Advanced Regular Expression Components
{ahead.pl} Checking if part of a string matches twice with look-ahead
{ex3.php} negative lookahead - example and alterative

Module Q806 - Regular Expression Cookbook
(article) Regular Expressions in Java
{ex1.php} Regular Expressions in PHP - from simple yes/no to ancilliary responses
{easier.py} making regular expressions easier to read [Python]

Module Q904 - Analysing a Programming Task
{topd} Top down design - first example in Perl
{summer} Planning a simple application - the result
{tconv.c} Well Structured program in C. Read / calc / report
{Trainlength.java} Analysing a problem - how long a train?

Module Q906 - Object Orientation: Individual Objects
(article) Incr-Tcl - Object Oriented extension to Tcl
(article) Object Orientation in Perl - First Steps
{cap_singleblock.py} single block coding
{ringer} Test program for the "bells" class
{cap_object.py} Object coding
{ua} Final example - calling basic Perl classes
{animal.pm} Creating and using Perl objects in a class
{after2.c} Functions - fundamental calls
{sc.java} Structured code in Java
{ua01} Calling functions in Perl from another file
{ua02} Calling functions from a module in Perl
{an01} creating a hash of data in Perl
{cap_functional.py} Functional coding
{sc.perl} Structured code in Perl
{ua03} Creating and using objects in Perl
{an02} creating a hash of data in a package in Perl
{gap} Log file gap reporter - single code block (Python)
{develop.cpp} Methods (C++) - functions that run on an object
{osx.php} An array of objects
{oogap} Log file gap reporter - using logtime object (Python)
{rails_oo} Using the Object Oriented idiom
{an03} Creating and accessing simple objects in Perl
{after3.c} Functions - passing in a structure
{classic.php} First Class demo
{rails_script} Using the scripting idiom
{bells.pm} Bell change class - notation and change interpreter
{oogap2} Log file gap reporter - using multiple objects (Python)

Module Q907 - Object Orientation: Design Techniques
(article) Mapping database rows to objects in a class
{HotelRoomBooking.cpp} Function definitions for class being developed
{bobclass} Moving detail into classes
{Hotel003.cpp} Designing and implementing a class - C++ - stage 3 - define methods
{poc.pm} Perl Module - for poctest demo
{TestPattern.h} Headers for test pattern
{poc3} Piece of Content - using Perl's OO features
{poc5} Piece of Content - a list of objects
{nr301} Associative class example - log file analysis - Ruby
{oo2.py} Muliple classes / inheritance / polymorphism
{oo1.py} First Class definitions and use
{oo4.py} high, higher, highest (static method)
{oo3.py} Comparator across multiple classes
{poc4} Piece of Content - add a catch-all AUTOLOAD
{Hotel002.cpp} Designing and implementing a class - C++ - stage 2 - add API definition
{Hotel004.cpp} Designing and implementing a class - C++ - stage 4 - initial test reporting
{da.txt} Data for rail stock demo
{Hotel007.cpp} Designing and implementing a class - C++ - stage 7 - separate files
{railstock.structured} Rail Stock Demonstration - structured
{poc2} Piece of Content - encapsulate logic in package
{HotelRoomBooking.h} Headers for main class being developed
{Hotel005.cpp} Designing and implementing a class - C++ - stage 5 - functional test reporting
{poc1} Piece of Content - encapsulation in a package
{poc7} Piece of Content - extended class and inheritance
{poctest} Piece of Content - main program to use poc.pm module
{poc6} Piece of content - setters and getters
{Hotel006.cpp} Designing and implementing a class - C++ - stage 6 - test pattern object
{Hotel005a.cpp} Designing and implementing a class - C++ - stage 5a - adding another accessor method
{Hotel001.cpp} Designing and implementing a class - stage 1, test program
{TestPattern.cpp} Function definitions for Test Pattern Class
{railstock.oo} Rail stock demonstration - Object Oriented

Module Q908 - Object Orientation: Design Patterns
{demo1.php} caching design pattern
{runners} Full OO example / various design patterns in Perl
{single} Singleton class in PHP
{pages.py} Factory for webpage objects
{Validate.pm} Validation of parameters object
{umli.php} Code to illustrate UML examples
{uml2.php} Factory, Comparator, Object Sort routine
{valerie} Test and demonstration for Validate.pm

Module Q909 - Object Orientation: Composite Objects
(article) Inheritance
{Petanimal.java} Pet subclass - Java
{puma.php} Inheritance, Overriding, Polymorphism, Object comparison of different types [Python]
{transport.py} March 2015 / multiple classes in Python
{Shapes002.cpp} Inheritance example - Constructors and first accessors
{Shapes001.cpp} Framework for Inheritance example
{Shapes003.cpp} Adding a factory / static method
{Shapes004.cpp} Adding test harness
{Anyanimal.java} Base class - Java
{Shapes005.cpp} Adding operator overloading
{flightdemo.cpp} Associated object - in C++
{Farmanimal.java} Farm Subclass - Java
{whm3} Residents and Delegates - extended from customers [Python]
{doggies.php} A set of classes in PHP, factory method, comparators and test harness
{Anitest.java} Test Harness - Java

Module Q910 - GUI principles
(article) Graphic User Interfaces (GUIs)
{tourist.py} Model (data class) - complete PyQt (Python 3, Qt4) GUI app
{accomlist.py} Controller - complete PyQt (Python 3, Qt4) GUI app
{tic_view.py} First View - complete PyQt (Python 3, Qt4) GUI app
{ticfull.py} Alternative View - complete PyQt (Python 3, Qt4) GUI app
{model.py} Model - complete PyQt (Python 3, Qt4) GUI app

Module Q913 - Computer Graphics Principles
{tryme.svg} Fixed and relative positioning
{svgframe.html} How to include an SVG file in a web page
{oursub.svg} Sample of an SVG file
{glb.c} OpenGl / C / Mac OS X

Module Q915 - Principles of Model - View - Controller
{o247.htp} Tempate for bus service choice
{col.data} Bus user choice - the things the user must weigh up
{choice.php} Framework - Bus Service Choice
{choice.data} Weights table - bus future choice
{4lm_business.inc} 4 layer model - business logic for selecting bus futures
{4lm_webhelpers.inc} Web Helpers - updated for bus future choice example
{row.data} result text - bus service choice demo

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

R: Ruby programming and use

Overview R050 - Ruby - General
(article) Ror - Ruby on Rails
(article) Converting to Ruby? Start here
{eight} log file analysis
{amazing} Initial Demo - finding matching lines in a file
{six} loop showing iterations
{col2} Simple Ruby Program - read, calculate, output
{rs06} All together - class, factory, comparable, exception, files, strings, arrays
{latest_log} Sample Application - Read and analyse a web access log file
{pmf} Subclass, Inheritance, Polymorphism, static methods, factories ...
{four} prompt, read, echo, calculate
{two} calculation, coercion, etc
{one} Hello world and elsewhere
{five} if elif else ... and while
{three} read - calculate - output
{seven} Simple file parsing
{googletrace} Where has Googlebot crawled?

Module R101 - Introduction
(article) Ruby Regular Expressions
(article) Conditionals, loops, and iterators in Ruby
{hello.rb} Some simple Ruby stuff
{d2.2} Use of intermediate variables
{e1} Simple input, calculate, print
{d2.3} Use of intermediate variables - alternative
{d2.1} Prompt, read from user, calculate, output in Ruby
{col1} First Variables in Ruby

Module R102 - Hello Ruby Objects
{d2.10} Define class, create and use instances of it
{beast.rb} Sample class in its own file
{yesyes} data record to object and object to data record mapping
{d2.12} Calling program to access class in another file
{stations.rb} thick class, thin application example
{d2.11} Use of 'self' in Ruby
{shapes.rb} Object Orientation in Ruby - Training Example
{nother} Operators as methods - polymorphism in *
{f1} Moving detail into objects - before
{obrub4.rb} Application to call in group of classes from a library file
{trainclass4.rb} Definition of a train - to be shared between all railway applications
{f2} Moving detail into objects - after
{obrub1.rb} Define and use a class
{hit.rb} A class showing each variable scope in use

Module R103 - Basic Ruby Language Elements
{rub1} FAILS to continue a line
{print.rb} Print alternatives
{calcbetter.rb} A simple calculation in Ruby
{floater} Floating point rounding errors
{muck} Common Ruby Pitfalls
{x01} Constants in Ruby
{d2.5} Calculations within double quotes
{bw.rb} Formatting strings and conversions
{calc.rb} Some early gotchas!
{bluepeter} Throw a die and track sum of throws
{d2.4} Easier output formatting in double quoted strings

Module R104 - Control Structures
(article) Converting to Ruby? Start here
(article) Conditionals, loops, and iterators in Ruby
{llen2} calculating default parameters
{d2.6} if elsif elsif else
{exx} Putting common code in a name block (function)
{ident} mutable object (array)
{llen3} Default a parameter to nil
{doubleret} multiple returns and unlimited parameters
{yetan} immutable object (integer)
{moretrains} Requiring a module from the current directory
{tog} toggling a variable - ruby
{mi} redefine a method in Ruby
{ex} Class exercise - ordering lunches
{loopy.rb} Loop structures in Ruby
{d2.7} while, until and for loops - comparison
{ddd.rb} Iterators in Ruby
{dm2.rb} Method, parameter, optional parameter
{ctors.rb} Comparators - what is true?
{llen} Methods and default parameter
{howcome} Multiple actions in a single statement
{sid} Loop and conditional - exercise
{dm.rb} Defining and using a method
{loop.rb} Loop in ruby - run until it breaks
{rmi} Multiple return values from a function
{dice} Throwing dice, summing, printing average
{u1} How many teams needed?
{yrb} yield (co-routines / generator)
{cx} between and include
{rubber} ? : conditional operator in Ruby
{lazyops.rb} Lazy operators
{collect} for and each loops over an array. Also sorting
{amp_pass} Passing code blocks to procedures
{mwpar} In Ruby you can redefine a function ...
{dbu} Variable and method of same name
{scram.rb} Break redo next and retry
{five} Some unusual conditionals and loops
{dm3.rb} Dynamic redefinition of a method
{csep} Separation of repeated and specialist code
{condi.rb} Example of Ruby conditionals
{vcx} Quick first validation example

Module R105 - Classes and Objects
(article) Basic class definition and use in Ruby
{thirdrail} File -> Objects -> Analysis
{tj2.rb} Displaying via an Inset class
{mm.rb} Accessing class variables, and adding methods
{ucl.rb} Use a class defined in another file
{obtest.rb} Static (class) method definition and use
{dp.rb} Just define a class for use elsewhere
{thapp.rb} Call in a class from another file
{myo.rb} Define and use a class
{triang.rb} Simple class and use
{train.rb} Sample class with accessors and comparator methods
{disc} How to define and use a class
{tharn.rb} A class with a test harness
{stan.rb} Standard methods!

Module R106 - Input and Output in Ruby
{webreader.rb} Read a page given its url
{d3_3} Reading from another process
{filemore} Analysing a file / counting events
{d3_1} iterating through a file, file output
{amaze1} Find and count matching lines in file
{finfo.rb} File status checks
{formprint} Formatted printing
{ndo} Running another process - netstat example
{sysact.rb} Run a process from Ruby, stream output back
{two} chop and chop!
{filestuff.rb} File handling demonstration
{afid.rb} All files in a directory
{courseprice} Checking if a file exists and writing to a file
{large} Checking a whole directory tree
{ddd} parse a directory
{d3_2} Testing files

Module R107 - Collections (Arrays and Hashes) in Ruby
{tim} A Hash of arrays in ruby
{h2.rb} First hash in Ruby
{d3_7} Setting up and using a hash
{d3_6} Array of arrays
{d3_8} Simple but practical hash example
{rrs} Sorting the keys of a hash
{randimages} Randomiser of images
{pophand.rb} Read, interpret a data file
{tessa} all possible combinations from an array
{logan} Read an Apache httpd access log file and count statuses
{swapper} Swapping two variables
{h1.rb} First hash in Ruby
{a3.rb} methods on arrays
{favr} Defining, adding to, iterating through an array
{arar.rb} Arrays of arrays
{a1.rb} First Array
{pw.rb} %w to set up an array, and compact
{d3_5} Array methods such as grep
{d3_9} Using a hash to count web server accesses
{a2.rb} Basic Array manipulation
{mar} Combining arrays - element by element "and" and "or"
{pwc.rb} Copying an object in Ruby
{bone} Combining arrays
{toppers.xx} Hash to count server accesses
{others} Symbols
{kvp} Sorting in Ruby
{lunch} array sorting and iterating
{amaze4} Array of counters - log file statistics
{ddd} Symbols v strings
{d3_4} Arrays, and iterating through them

Module R108 - More Classes and Objects
(article) Basic class definition and use in Ruby
(article) Modules, Mixins and Comparators in Ruby
{overload_add.rb} Operator (+) and to_string overloading, Ruby
{ststsort} Data manipulation - structured approach
{finex} Simplest Inheritance Example
{inh1.rb} Inheritance in Ruby
{O2.rb} Copy v clone
{stanley} Listing of standard methods
{stobsort} Data manipulation - object approach
{stations.rb} Sample class used in sharing example
{station.feature} gherkin / features of station class
{cmquick} static and dynamic member variables and methods
{transact.data} Class / Interitance / Test program data
{ob2.rb} A class with some class (static) and singleton members
{dub3} no returns on a Ruby method
{slogan} Server Log Analysis
{transact.rb} Class / Interitance / Test program example showing good practise
{second} second program that uses classes
{attr} attribute accessors
{in4.rb} Inheritance, factories, statics, DATA, lazy ops, to_s
{d4_2} Single class example for extension by inheritance
{transport.rb} Cluster of related (inheriting) transport classes and test program
{d4_3} Object and Class variables (dynamic and static)
{O1.rb} Amending a base class even after it has been extended
{journey.rb} Sample class used in sharing example
{dubber} default - variables are LOCAL
{disc2} Comparator methods (larger and smaller)
{reallyshort} Inheritance, Class methods, Attribute Accessors, operator overloading
{dub2} With $ - variables are global
{multifood.rb} Class demo - lots of extras
{d4_4} Static Method
{slash} Server Log Analysis (2)
{olop.rb} Operator overloading
{third} third example use of classes
{food.rb} Single class demo
{station_steps.rb} Cucumber implemented test code for station.feature behaviour
{d4_5} Inheritance in Ruby

Module R109 - Strings and Regular Expressions
(article) Pattern Matching - a primer on regular Expressions
(article) Ruby Regular Expressions
(article) String Functions in Ruby
{stdo.rb} Using some of ruby's string methods
{rex1.rb} Ruby regular expression demo
{sop.rb} + and * on strings in Ruby
{d4_1} Using a string as a collection
{se1} Regular Expression Primer Example
{d4_8} Regular Expression (including documenation)
{ii} Formatting example - splitting money between nieces and nephews
{e2} Embedded variables in strings
{kiddos} Formatting a table of data
{rex2.rb} Splitting at a regular expression
{globalmatch} Scan for global matches
{regex_sub.rb} Regular Expression Substitution
{kids} Formatting values in Ruby
{bc} Some String Handling
{heredocs.rb} Here Documents in Ruby
{pareea} Class for email addresses / regex for splitting and checking
{names} formatting - adjust for longest string
{pc} extracting sections from a match
{vest} Cleaning up a phone number and checking a postcode
{shalt} the compact method removes nil elements from an array
{d4_7} Running a piped command via backquotes
{summatelse} Regular Expression Alternative Example
{str_types.rb} Ways of writing a string
{mlre.rb} Commenting a regular expression
{d4_6} Formatted printing
{finder} search, search / replace, search / execute / replace

Module R110 - Special Variables and Pseudo-Variables
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{av} Command Line Parameters to a Ruby program
{gloop1} Topicalisation - before
{tiny} Autosplit mode, a loop round your code, BEGIN and END
{cc} begin block
{rerub} Cleaning an incoming string in Ruby
{pgv.rb} Predefined global variables and resources
{vvx} variable types
{topic.rb} Topicalisation - the use of $_
{c3.rb} Process every line via topicalisation
{gloop2} Topicalisation - after
{ruby_awk.rb} implicit loop around code - awk mode
{envx} reading and setting environment variables from and for shell commands
{answer} Data manipulation example (table inversion)

Module R111 - Exceptions.
(article) errors v exceptions
{bmi.rb} BMI (Body Mass Index) calculator
{except} raisieng and catching exceptions between methods
{catcher} Converting String to Integer and handling errors
{mycode} input a number from user, deal with errors / exceptions
{mc} Catching user errors - a short demonstration
{fsta.rb} File Reporter - assumes all is OK
{fstb.rb} File Reporter - handle problems with open
{chq} catching exceptions - file handling
{fstc.rb} File Reporter - handle multiple problems and re prompt
{mighty.rb} Passing exceptions back to calling code

Module R112 - Parallelism
{ytb.rb} Your own data iterator
{lynes.rb} How to write and use an iterator
{tap} Reading a file in parallel to processing
{papo} yield - calling back to a code block
{feeder} yield and iterator - practical example
{faucet} a series of methods in a production line

Module R113 - Further Input and Output
{tj3.rb} Descending into a complex (json) object
{jload} making use of data in a JSON object
{exprub} Ruby server check with Ruby - Expect
{cashell} Calling Shell commands from Ruby
{wread} Read a web resource into a program

Module R114 - Ruby on the Web
{testwise1.rb} TestWise - example pasted from a Firefox Capture
{south.rb} CGI Server application from first principles
{testwise2.rb} TestWise - multiple stories
{brightred} Ruby script / CGI - demo reporting current log file
{rubypost} Automated browser to collect from web service
{testwise.in} Testwise data file
{tj.rb} Reading a Json object from a web site and displaying it
{ruby_100} analysis of web server log file
{testwise4.rb} Testwise - testing in a loop, and expecting failure
{testwise.log} Testwise - output log
{hello_ruby_cgi_world} Hello Web World
{testwise3.rb} TestWise - conditionals - making decisions based on pages returned
{testwise5.rb} Testwise - a first page object
{testwise6.rb} testwise - reading from file, writing to console and logfile

Module R115 - Using Ruby with Other Languages
{rakefile} Rakefile for complete C++ example
{shelley} running a bash script in a ruby wrapper

Module R116 - Security Issues.
{current} private and protected

Module R117 - Ruby GUIs, XML, SQL Database Connectivity
(article) Graphic User Interfaces (GUIs)
(article) Interfacing applications to a MySQL database engine
{tago} SQLite example
{dbl} Using MySQL databases from Ruby
{x1.rb} REXML - XML in Ruby - absolute basics
{myrssfeed.xml} Sample XML data
{xmls.rb} XML in Ruby with xmlsimple gem
{tag2} SQLite example with table joins

Module R118 - Ruby Sources and Resources
{rubbers} Use of a debug flag to add and remove traces
{onsite.rb} Testing a webiste with watir-webdriver
{quote_test_log.txt} logfile example watir-webdriver demo

Module R119 - Ruby Miscellany
(article) Modules, Mixins and Comparators in Ruby
{mixdem.rb} Mixins in Ruby - a short demo
{pat.rb} Delivery objects - postman sort
{wot.rb} Work out tax - use Taxcalc.rb
{taxcalc.rb} Tax Calculation Module
{tcalc.rb} Tax Calculation Module for Mixin
{rubytime} Time objects

Module R202 - Ruby on Rails
(article) Ror - Ruby on Rails
{views_floor_addaisle.html.erb} The view for the "add aisle" page
{views_floor_addproduct.html.erb} The view for the add product page
{db_seeds.rb} Seeding data for use when application is installed
{models_ailse.rb} How to validate an Aisle object
{views_floor_stock.html.erb} View to list out what we sell, listed aisle by aisle
{controller_floor_controller.rb} Our main shop floor controller
{greeting.rhtml} Some Ruby at the top of a view
{models_product.rb} How to validate a Product object
{views_floor_index.html.erb} Home page for Ruby-on-rails sample application
{config_routes.rb} Routing for product and aisle resources - configuration
{controller_application_controller.rb} Controller General Helpers
{igot} Rails - application to display from Model, Controller and View
{views_layouts_floor.html.erb} Template that encloses all pages in the application
{ilib.rb} Hello Rails World controller

Module R203 - Installing and setting up Rails
(article) Ror - Ruby on Rails
{product.rb} Hello Rails World, Model
{seeds.rb} Seed data for product model
{productlister_controller.rb} Controller for Hello Rails World
{index.erb} View template - hello Rails world

Module R211 - RSpec
{tables.feature} Behaviour definition - for a restaurant table
{tables.rb} Definition of tables derived from behaviour and test specs
{several.rb} Testing with multiple data values
{rsx} Class testing with rspec
{rs001} First RSpec example (no cucumber)
{tables_steps.rb} Steps for implementing test behaviou for restaurant tables
{testmatrix.rb} Matrix of tests with rspec

Module R212 - Test::Unit
{pilot.txt} Test case data file
{quotation.feature} Gherkin - A table of examples for a scenario
{quotation_steps.rb} Step definitions - using test::unit

Module R221 - Introduction to Cucumber
{hello.feature} Feature description - in Gherkin for Cucumber
{station.feature} Scenario outline / table of example values
{second_steps.rb} Step implementation of second scenario
{third_steps.rb} Step implementation of third scenario - using RSpec
{capacity.feature} Feature - Scenario, Given, When and Then
{greet.rb} Code to implement a behaviour
{train.rb} Code to implement a behaviour / second example
{hello_steps.rb} How the behaviour is to be tested
{station_steps.rb} Steps for scenario outline example

Module R222 - Cucumber / web site testing with watir webdrivers and capybara
{plym.feature} Feature - first test of lunches
{titleregister.json} Json sample
{plymouth.txt} Sample output of running final example
{second_steps.rb} implementation tests for lunch application
{quotation.feature} Gherkin Behaviour for a web site
{hello_quotation.feature} Gherkin - Behaviour description
{hello_sel_steps.rb.hold} Tests - using Selenium
{lunches.php} Test Application for Ruby / Cucumber
{first.feature} Simplest feature file
{tamarsteps.rb} steps for plym,tamar and gunnislake
{hello_wat_steps.rb.hold} Tests - using Watir
{one_steps.rb} implementation of first features
{quotation_steps.rb} Step definitions for web site testing
{tamar.feature} First simple connectivity test
{framework.inc} include file for microPHP site for testing
{second.feature} Testing lunch requirements
{breakfast.php} First sample page to test
{gunnislake.feature} features - back end JSON service

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

S: Databases / the MySQL database

Overview S050 - MySQL - General
(article) Left Joins to link three or more tables
(article) Management overview of MySQL - background and Philosophies
(article) MySQL Extras
{sample_mysql_table} Create a table with duplicate records to remove as an exersize

Module S151 - Introduction to SQL and MySQL
(article) Management overview of MySQL - background and Philosophies
(article) Justification - MySQL v Oracle, Open Source v Commercial

Module S152 - SQL Primer as Used in MySQL
(article) MySQL joins - using left join and right join to find orphan rows
(article) Left Joins to link three or more tables
{joiner.sql} Create two tables, link them with left join
{pop_dvd.sql} Insert rows into sample dvd table
{make_dvd.sql} Create a database and table for a DVD collection
{tab2} Second table for advanced join demos
{loader.sql} Loading data from csv files
{seeds.mysql} MySQL example - table joins
{linked.sql} Two tables ... an illustration of the different joins
{tab1} First table for advanced join demos
{sql_demo.sql} Adding and amending data in a database table

Module S153 - Sourcing, Running and Configuring MySQL
(article) Management overview of MySQL - background and Philosophies
(article) Justification - MySQL v Oracle, Open Source v Commercial
(article) Load balancing and robustness - httpd, tomcat, PHP, Servlets, MySQL
(article) Windows - running Apache and MySQL from a CD

Module S154 - Designing an SQL Database System
(article) Mapping database rows to objects in a class
(article) Example - PHP form, Image upload. Store in MySQL database. Retrieve.
(article) When to denormalise your MySQL data
(article) Many to many table mapping (Pivot tables)
(article) Replicating servers in MySQL - Why and how
{pivot.sql} SQL to load book, author and pivot tables
{docjoin.sql} Select for design / complex join example
{just.php} Skeleton application - design / complex join example
{authors.tab} Author table
{docs.sql} Database and table setup for design / complex join example
{tabled.php} Display normalised MySQL tables on a web page
{books.tab} Book table
{docdata.sql} Data for design / complex join example
{pivots.tab} Pivot table
{sql} Table Design - Restaurants / Category / Line item

Module S156 - Interfacing Applications to MySQL Databases
(article) MySQL version 5, PHP version 5 and mysqli
(article) MySQL and PHP - enquiry tool for ad-hoc requirements
(article) MySQL and PHP - enquiry tool for ad-hoc requirements
(article) Interfacing applications to a MySQL database engine
(article) Accessing a MySQL database via a browser, Perl and CGI
{t1.php4} PHP table insert into two tables / join / enquire
{mqxyz.php} Simple demo of PHP table from SQL
{mkexcel.php} Returning data from a database via a URL as an excel spread sheet in PHP
{mkexcel2.php} Returning data, opening Excel including formulas, from PHP
{t1.sql} create tables for t1 demo

Module S157 - More MySQL commands
(article) Copying databases and tables in MySQL
(article) MySQL joins - using left join and right join to find orphan rows
(article) MySQL SELECT - JOIN versus UNION, WHERE versus HAVING, GROUP etc.
(article) Left Joins to link three or more tables
(article) When to denormalise your MySQL data
(article) MySQL Extras
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{homes.tab} Houses for sale - Trowbridge, Melksham, etc
{perlit} 6 tables ordering system model - perl program
{agents.tab} Estate agent details - Trowbridge, Melksham, etc
{seeder} Data for join v left join demonstration
{rz} 6 tables ordering system model - running output
{shopper} 6 tables ordering system model - Design and test in SQL
{agents} SQL statements for Agent and Property demo

Module S158 - GUI tools for MySQL
(article) MySQL and PHP - enquiry tool for ad-hoc requirements

Module S159 - MySQL 5 and PHP 5
(article) MySQL version 5, PHP version 5 and mysqli
{vlatesti.php5} How NOT to use mysqli - don't just add an i
{vlatest.php5} A simple example using PHP mysql functions
{5,2,5,i.php5} Using PHP mysqli functions - a working example

Module S161 - Data Access and Security in MySQL
(article) Copying databases and tables in MySQL

Module S162 - Replication in MySQL
(article) Copying databases and tables in MySQL
(article) Replicating servers in MySQL - Why and how

Module S163 - Stored Procedures in MySQL
{stp4} Stored procedure to return a result set
{stored5.php} PHP call to a MySQL stored procedure that returns a result set
{seed.sql} Data to seed tables for stored procedure demos
{stored6.php} PHP call to a MySQL store procedure that calculates / loops
{stored3.php} PHP call to a stored procedure to run a fixed query
{stp6} Stored procedure calculating from a query
{stored4.php} PHP call to a MySQL stored procedure passing a parameter
{stp3} Simple stored procedure definition
{stp5} Stored Procedure taking a parameter
{twcrp.sql} MySQLdump sample - twcrp test database for store procedure use

Module S200 - SQLite
{seeds.sqlite} SQLite example - table joins

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

T: Tcl, Tcl/Tk, wish and Expect

Overview T050 - Tcl, Tcl/Tk and Expect - General
(article) Why have Tcl/Tk been around for so long?
(article) Incr-Tcl - Object Oriented extension to Tcl
(article) The Typist and the Engineer
{myfuncs} File of function(s) for common operations
{day3} A good - but not perfect - second program
{day2} A good - but not perfect - early program
{distance_graph} itcl and tk together - full app

Module T201 - What is Tcl?
(article) Why have Tcl/Tk been around for so long?

Module T202 - Tcl Fundamentals
(article) Brackets and Braces in Tcl
{greet} Reading from the user in Tcl
{hddh} Hexadecimal to decimal, and decimal to hex, in Tcl
{gry} Variables in Tcl - first use
{anno2} Comments - inline and continuations
{pricer} Completed simple application in Tcl - pricing tickets
{gr2} Double quote substitution in Tcl
{anno} A trivial Tcl program with comments

Module T203 - Conditionals and Loops
{dthrow} The switch command
{globber} Switch - exact, glob and regex
{lazy} The ? : conditional operator
{food} Alternative conditions - while loop
{wtot} breaking out of a Tcl loop
{lunches} Lunches for each day of the week
{wd} The while command in Tcl
{validlunches} Lunches - validating user input within range
{diy} The for command
{diy2} The foreach command
{wipats} More flexible alternative to a switch
{group} The if command in Tcl
{group4} deferred execution blocks with { and }
{group5} if, elseif and else in Tcl
{flt} for while and foreach loops compared
{morelunches} Lunches - different places to go
{ftoc} F to C conversion - exercise
{ftoc2} Is water a solid, a liquid or a gas?
{older} Conditional Operator ? and :
{minimax} Answer to practical - minimum and maximum

Module T205 - String Handling in Tcl
(article) Analysing incoming data lines
{stringman} Manipulating a string
{hunter} Example of analysis of a log file
{stringinfo} Getting information from a text string
{iconfinder} search for all icon references in a web log
{ccat} lappend and concat - the difference
{rematch} String matching using a regular expression
{match} String matching - using globing
{datematch} Matching a date using a regular expression
{rf2a} Using scan's return value
{dm2} A further date match example
{poco} Postcode identifier and string splitter
{rf} Opening and reading a file
{apfo} format and append commands
{ac_report} Complete example - Access log file analysis
{rf2} Using scan to get a field from a string
{brax} Literally matching round brackets in regular expressions

Module T206 - Lists
{distance_between} Finding distances between places base on OS grid references
{pk4.tcl} Generate a series packet sizes for network testing
{acr2} Treating lines of data read from file as a list
{expand} Handling a list of command parameters
{stdlook} Look up Florida dialling codes
{liimp} List basics in a nutshell
{arx} how an lsort callback works
{os_letters.txt} Easting and Northing additions for OS grid references
{growth} station growth program
{days} A list of days
{fido} Open and read a file line by line
{dt4u} extract field pairs from lines
{slist} list manipulation with struct::list

Module T207 - Procedures and Variable Scope
{gsc} The global scope
{dresser} Changing a value within a proc and returning the altered value
{whatandwhen} Exercise - please write the proc to complete
{p2} Sharing a variable using upvar
{pr3} loading a file of procs shared with other applications
{p1} Sharing a variable using global
{wwbetter} Better sample answer - "getnumber"
{dr2} Optional parameter in Tcl
{yetan} uplevel to store a value in parent
{uv} Call by value and call by name
{p5} Sharing a variable using uplevel - obscure!
{addindemo} Sample code to complete - final exercise
{knots} Unloading an array of inputs as local variables in a proc
{tied} Using an array of inputs as if they were local variables in a proc
{uquery} Shared file of procs
{p3} Sharing a variable using upvar and call by name - RECOMMENED
{p4} returning a variable - RECOMMENED for passing 1 piece of data back
{wwanswer} First sample answer - "getnumber"
{cbn} Using upvar to call by name
{add2} Answer to final exercise
{scope1} Variable default to being local
{vardemo} Calling a proc with a variable number of arguments
{doublit} Another upvar example for learners
{up1} Using upvar to effect a variable in the calling code
{pr1} Defining a proc (command) and using it
{another} upvar to return a second value

Module T208 - Arrays and dicts
{dnicer} test program for station data
{arr_log} Access log counter using arrays
{arr_log_3} Passing arrays in and out of procs - using upvar
{mini} 2nd program using railutils
{dict1} setting up and get, dict
{ar3} looping though an array with array get
{topskill} setting up an array of lists, sorting, listing out elements
{dict4} dict for
{ar1} First use of arrays
{stfinal} final exercise - array of dialling codes
{dict2} Conrol - using a string as a list
{nested} nested dicts
{ifinder} search for icon references; list icon names
{ar2} Checking if an array key exists
{arr_log_2} Selecting elements from an array - glob matching to keys
{ifinder2} search for icon references and count them
{dicdem} dicts - using the various subcommands
{rail_dict} Sorting a dict
{dict3} iterating through the keys of a dict
{au} Demo of use of upvar
{railutils} File of procs to do with station info
{ar_rail} Setting up an array and sorting the elements by key
{dla} list, array, dict

Module T209 - File and Directory Handling
{recent} List all files modified in the last hour
{rail} Data extraction and reporting from multiple files
{disc_status} Piping input from an operating system command
{multifile} Output to stdout and several files at the same time
{diary} diary data for for_qa script
{filework} Report file statuses
{bigbelow.v2} biggest below - practical example that traps empty folders
{failer} Using catch to trap file open failures
{for_qa.tcl} Data reformatting example / course end tie together
{dnstab} Read a file, extract from it
{bigbelow} Find biggest file in or below a specified folder
{biggest} using glob to check all files in a directory
{files} fileutil package in use

Module T211 - What is Expect? Why use it?
(article) A Web interface for your Linux admin tasks
{evening} Automated backup
{e2} Ping via expect, echo back a value from the report
{plet.exp} Expect for Windows - ping a host and guess its distance from you
{yap} Expecting from a list (expect block)
{qp} Expect to automate a series of pings
{e1} Simplest ping check via expect
{wuff} Expecting from a list (regular expression)
{ftp1} First Expect example
{e3} expect - do not grab indeterminate
{xpx} quick ping around a series of hosts
{linksandimages} Grab a web page, report all links and images
{gup} Grabbing a log file and locally analysing
{weblinks} Grab a web page and report all links
{ftp2} Expect with some error checking and decisions

Module T212 - Expect Processes
{osx_tkpingle} Checking which machines are online - Mac OSX
{tkpingle} Checking network continuity using ping, Expect and a Tk GUI
{livetest.exp} Web based script - ping a series of remote hosts
{botget} parallel expect example - get robots.txt from several servers
{mex} multiple processes through expect
{server.tce} Expect script, web server, CGI
{exp_ping} expect - multiple parallel pings, Red Hat Linux version
{pingle} parallel pings - Caldera Linux version

Module T213 - Libraries, Packages and Namespaces
{tpack.tcl} package chicken - part of dinpack demo
{toes.tcl} Package to go with twice demo
{nsq} Adding a package to a namespace
{show.tcl} Defining a package
{ns_up} Variables saved between proc calls in the next code level up
{gpack.tcl} package goose - goes with dinpack
{nsp} setting up and using a namespace
{packs} Loading a package
{tabby.tcl} a namespace wrapped in a package
{dinpack} Using packages and namespaces together
{twice} Using a package - without namespaces
{ns_no} shows how variables are lost between proc calls
{ns_y2} Counting proc calls using a namespace - shorter example
{legals.tcl} Definition of a package
{2wice} Using a package that contains a namespace
{ns_exim} Namespace export and import
{doubler.tcl} define a package to contain a namespace
{ns_yes} Saving variables in a namespace
{rules.tcl} Definition of a package with namespace
{nex} packages with and without namespace
{updown} uplevel - performed in calling code variable space

Module T214 - Other Facilities in Tcl
(article) errors v exceptions
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{edo} Running an external process in Tcl
{fishing} exceptions in Tcl
{times} proc coverage example
{dunno} unknown command calls unknown proc
{vt} Tcl program that manipulates a variable
{vtt} Tcl program that uses the trace command to report the manipulation of a variable
{firstline} Using catch to trap runtime errors
{lick} Finding size of .gif image in Tcl - binary scan
{goalie} catching exceptions - Tcl style
{netting} catch - catching error, and error message too
{err1} Example of a Tcl program that fails
{err2} A Tcl program that uses catch to trap a run time error

Module T216 - Introduction to Tk
(article) Graphic User Interfaces (GUIs)
{gui_2} Classis Tk structure - procs, widgets, geometry ...
{tk_accesscount} Tcl/Tk - Access Log File counter!
{tk_hello} Tcl/Tk - Report Date Information
{tk_h2} Report Date Information on a widget
{udq} Widgets, Geometry Managers and Events

Module T217 - First Widgets, Geometry and Events
{deferintk} Deferred execution can cause a problem in Tk
{tk_b3} Tk - attributes of a button
{tk_event} Tcl/Tk - Event demo
{tk_b2} Tcl/Tk - button test 2
{tk_b4} Tcl/Tk - button states
{tk_wm} Tcl/Tk - First Frame
{tk_b1} Tcl/Tk - button test 1
{colmat} Sample answer 1 - coloured labels and layout question
{admin} Tk GUI to provide system state reporting box
{colmat2} Sample answer 3 in development
{colmat3} Sample answer 3 - Completed layout question

Module T218 - Geometry Managers
{tk_log} Grid geometry manager - first example
{tk_l2} Grid geometry manager, showing cell size via colour
{numpad} Laying out a numeric keypad on a grid
{tk_wh3} An example of the place geometry manager in use
{tk_wh2} Grid geometry manager - cells spanning multiple rows and columns
{tk_l3} Grid geometry manager, expanding cells via -sticky news
{tk_l4} Grid geometry manager - column weights to control resize behaviour
{tk_which} Grid geometry manager, using -rowspan and -columnspan

Module T219 - Drawing on Canvases
{can3} Demo of different graphic objects
{can2} Drawing shapes on a canvas and dragging them with the mouse
{imgoncanvas.tk} Placing a GIF on a canvas
{histo} Histogram drawn on a canvas - generalised code
{can4} Line styles on a Tk canvas
{tktext} text options in Tk - colour, font, size, centring
{can1} Drawing on a canvas

Module T220 - Frames and Other Topics
{tls} Scrolling a canvas (canvas, scrollbar, toplevel, frame, grid)
{tk_fvar_2} Tk frames - flexibility of layout
{willie} Check buttons - defaulting to be selected or not
{sltvtl} Slider, text variable and pop up
{linedisplay} Display with frames, canvas, window manager
{clifflift} Tcl/Tk - Scales linked like a cliff lift
{tk_scale} Tcl/Tk - First Scales
{tk_fvar_1} Tk frames using variables to allow extra flexibility
{tk_sc2} Tk scales with variable feedback
{tk_frames} Nested frames - first completed example
{tk_ru2} Tcl/Tk - Are you sure window using a message widget
{tk_rusure} Tk - popup box to ask "are you sure" written using Tk basics

Module T221 - Menus
{mb1} First menu button
{mb2} Various options for menu buttons
{mb3} Menu bar system based on array or lists
{idletasks} use of update idle tasks to update the display

Module T222 - Resources
{lookandfeel} Demonstration file of Tk resources
{resource3} Resources file for tk_res3
{bright} Resource file - answer to exercise
{tk_res3} Use of two files of Tk resources.
{skeleton} Template for resource exercise

Module T223 - Textish Widgets
{form2} Second form using Tk entry widget.
{teditor} Simple text editor in Tk
{listbox1} Tk listbox example
{tktx2} Marks and tags and editing in a Tk text widget
{tktext} a Tk text widget used as a vehicle for custom text editing
{tkt} A Tktable is a tabulator widget in Tcl/Tk
{form} Form using Tk entry widget
{tktxt} Tk - Text Widget - first easy example
{listbox2} Tk second listbox example (code snippet only).
{lbex} Sample answer - listbox to choose types of fruit.

Module T224 - Events in Tk
(article) Defining events including variable values in Tk
{caneve} Binding canvas events and keys
{tkbb} Button Binding example
{tke3} Button bindings to a single proc.
{tke5} Button binding for all keys, down and up
{tke2} Events to toggle text on a widget.
{tke6} Keysym Tester

Module T241 - Tcl on the Web
(article) Nasty Characters in Web Applications
{formrep.tcl} Using Tcl as a CGI scripting language - form collection
{getpagejson} Reading json via http
{tcl_process.html} Form for data entry for formrep.tcl demo
{demoform.html} Demo form to submit to a Tcl handler -->
{scale.tcl} Sample Tclet to run within a browser
{tclcourse.tcl} CGI , Server side programming basics
{tlet.html} Embedding Tcl in your browser (client side) -->
{isitnz.tcl} web application - is it from New Zealand?
{getpage} Reading http from Tcl

Module T242 - More on Expect
(article) The Typist and the Engineer
{engineer} send_human in expect
{immortal} Catching signals in expect
{rupple} Expect - run rup on a named host
{tcenhance} Telnet wrapper using interact; provides filtering too
{tctel} Telnet wrapper using interact
{multisigs} Trapping multiple signals in Expect
{chammy} Automated Logging In
{subnet_test} Check a subnet for pingable systems
{typist} Second example of expect's "send_human" command.
{sslo} Send slow example - expect
{pingabout} Expect to run ping on a named host; able to switch host during run

Module T243 - Using Tcl from C
{mytcl.c} Simplest call from C to Tcl - just a wrapper
{fred_extended} Tcl used to demo extension with same command
{fred} Demo Tcl for mytcl example
{makefile} Makefile for C applications in this module
{extend.c} Extending Tcl with C - an extra command written in C
{secret.c} Run a Tcl script from an encoded file
{fullapp.c} C program that invokes a Tcl Interpreter

Module T244 - Socket Programming
{kesclient} GUI (Tk) client which uses information provided by kesserv server
{tclserver} food server - pass on previous persons contribution
{kesserv} Tcl Server - read from a Linux device and serve information entered by TCP/IP

Module T245 - [incr-Tcl]
(article) index
(article) Loading incr-tcl into tclsh
(article) Incr-Tcl - Object Oriented extension to Tcl
{bigger.itcl} [Incr-Tcl] Demonstration 2
{pet.itcl} itcl - second sample class
{petal} Example that loads Itcl into tclsh
{ootcl02} Creating and using objects, cget and configure
{weekend.itcl} [incr-Tcl] - Inheritance and Polmorphism - main file
{itlist} Using [incr-Tcl] to hold a list of objects
{exv} Multiple classes and inheritance demonstration
{ootcl01} Creating and using objects
{animal2.itcl} class that loads Itcl into basic Tclsh
{find.itcl} List available classes in [Incr-Tcl]
{hello.itcl} [Incr-Tcl] Demonstration
{film.itcl} [incr-Tcl] - Base class and two classes that inherit from it
{animal.itcl} A simple class in [incr-tcl]
{inherits.itcl} Multiple inheritance and constructor calls

Module T246 - Tix Megawidgets
{tix005} Tix Control - feedback into widgets
{tixbunch} Showing a selection ot Tix Megawidgets
{tix004} Practical demo - Tix MegaWidget
{tix001} Tix Control widget demonstration
{tix007} - mulitple feedbacks on Tix MegaWidgets
{tixtree} Tix - Tree of big files below a specified directory
{tixfs} Tix File selection application
{tix003} Tix Demonstration of standard widget options

Module T247 - Advanced Regular Expressions
(article) Pattern Matching - a primer on regular Expressions
{T247.tcl} Tcl in use for CGI scripting
{aretest} advanced regular expression match demo
{blob} Progressive regsub examples
{sparkle} Sparse v Greedy regular expressions

Module T248 - A Review of Tcl and Tk Basics
(article) Brackets and Braces in Tcl
(article) What makes a good variable name?

Module T249 - The Tcltest Package
(article) Using Tcl to test a system with the tcltest module
{ttest} tcltest - first steps
{tt3.test} tcltest example that runs only if constraints are met
{tt1.test} Test under tcltest, version 2
{ttrun} tcltest - an example running all the tests in a directory
{tt2.test} tcltest example using setup and cleanup blocks

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

U: Lua programming and use

Overview U050 - Lua - General
{tap.lua} include file to load data and functioanllity
{towns.lua} Town simulation - town type definitions
{towns_about} Overview of Town Simulation example
{towns_output} Town Simulation - the program outputs ...
{town_simulation} Main program - town simulation exercise
{town_sim.txt} Specification for town simulation exercise, and data

Module U101 - Introduction to Lua.
(article) What makes a good variable name?
{hello} Some variable types in Lua
{simples} Read keyboard - calculate - output result
{lop} Testing to see if a fallback is needed
{straightforwards} Read - calculate - loop - output
{ello} Commenting - line and multiline
{moongreet} Hello Lua World
{demo} Some Lua Basics
{easys} Read - calculate - conditionals - output
{stdo} Calling standard functions / setting up variables

Module U102 - Numbers and the Math library.
{furry} Lua basics - calculations, output and comments
{vatty} Take the VAT back off a gross amount
{ccinit} Initialising Variables
{larith} Simple string format example
{prncr} io.write allows output with no new line
{vn} Variable naming in Lua
{ludo} Comments in Lua
{ichange} Lua - integer changes 5.2 to 5.3
{vars.lua} Lua Comments and Variables
{rnum} Reading from the keyboard, calculate and output
{allfloat} All Lua numbers are floats

Module U103 - Conditionals and loops
{lif} if, elseif, else
{kz} Example of a for loop
{clumpit} for loop termination
{doco} Changing loop counts
{ll2} while loop and repeat until loop
{exa} Loops and conditionals - exchange rate example
{tchart} for loop with start, end and step
{clike} for loop with pairs and ipairs
{andor} Lazy and / or operators
{swans.lua} Swan family - Lua
{runt} repeat until
{whilly} Writing cleaner code without break or continue
{lloops} while and for loops
{bpm} string.find v string.gfind
{floo} for loop in which end condition changes
{wcd} Comparison of while and until loops
{lsx} Lua for loop - termination
{meerkat} Lazy Operators

Module U104 - Strings and the String library.
{qbs} backslash specials in character strings and other basics
{gimme} Reading from the keyboard and string basics
{stem} Basic String functionality
{moopark} Answer to excercise - Theme park takings
{sf} string.format
{kiddos} Spread money gift around a group of children
{mlx} Single and multiline strings
{ul} Use of string.rep
{splitter} Using string.find and string.sub to split
{kids} String formatting
{ee} Excercise to print out exchange rate table
{two} Checking a NUMBER has been entered
{s2} Finding literal strings
{three} Wait until a NUMBER has been entered

Module U105 - Tables and the table library.
{imex} implode in Lua
{party} Read and store data until we get a blank line
{duh} What is in a table?
{tinies} Reading a file and creating a table
{synsug} . v ["...."] v insert
{moretab} Getting the minimum number from a table
{tat} whole table v single member, pairs v ipairs
{ph} pairs, ipairs and #tablename iteration
{cleversort} Sorting with a user defined routine
{ooco} Assignment of a table - by reference
{taba} Tables as associative arrays
{clone} Duplicate (clone) a table
{clo_demo} User defined sorting in Lua
{asort} Sorting an Associative table
{spjo} Split and Join a string into / from a table
{t1} mixing associative and normal in table
{settab} Set up a table, output in reverse
{sorting} Sorting tables
{tabo} Tables - some basics
{sf3} Read file, split line, tables of tables

Module U106 - Functions.
{loadthese.lua} functions to include within a test harness
{summer} variable arguments - a function to add up numbers
{yik} Need to use local to reduce cope of variables
{tabasnamed} function call via table
{dress2} declaring variables local to avoid global issues
{aaa} A table of functions, calling each in turn
{dress1} The problem of default global
{lazy} lazy operators / short circuit evaluation
{exrate} exchange rate example as a function
{funone} Function calling and definition in Lua
{mj} A function to take a lot of parameters or a table
{rmv} returning multiple values
{vargs} Variable number of arguments
{testharness} Loading functions from a file
{isd} An adaptive function in Lua
{owsort} how sorting via callbacks works
{selit} variable number of parameters and the select function
{cl2d} First Closure demonstration
{symet} Symetric Functions
{fav} Using tables and functions within them
{fcv} Dynamic code loading
{lomore} variables local to a block
{dress3} Code loads at run time not compile time
{size.lua} sample module - exercise answer
{fsr} Flexible Function Calls
{ex106} excersize - functions
{funtwo} global, local and call by value
{slct} Returning multiple results
{brvret} break v return

Module U107 - Object Orientation - the Lua way
{xlog.lua} Access log - exercise framework
{visit.lua} definition of visit objects
{anim_o1.lua} Tables to associate functions with data
{metatiny} Metatables - the mechanism
{Dice.lua} Definition of a dice object - Inheritance
{kitten} Setting up tables and printing them out - control
{cat} adding in extra behavious
{service_12} table for data and functionallity
{oblet} Hello Object World
{north} Comparing dot and colon
{couples} Moving towards Lua objects - Metatables
{rail5} a table for each station
{lottaob} Polymorphism in Lua - table of objects of different types
{index_123} __index and __newindex
{meta4} redefining operators
{train_objects} using tables as classic objects
{cuboid} Illustrates use of a class of objects
{obtable} Polymorphism in Lua - table of objects of different types
{metasmall} Metatable to change a table characteristics
{newCube.lua} Definition of a class in Lua
{overload_add.lua} Operator (+) and to_string overloading, Lua
{ii5} bus and train tables, and printing metatable
{Sphere.lua} Definition of a sphere object
{meta1} preparations for metatables - this is just a table
{acobj} The OO paradigm applied in Lua
{zoo.txt} Sample data file for animal demo
{trains} introducting metatables
{meta2} Simple use of a metatable to create a class
{tabby} Define special behaviours ...
{trains_control} pre-metatables
{animals.lua} Using a metatable to define print, <, etc
{meta3} creating and using a table of tables("objects")
{dibdab} We can keep funtions in a table too
{metamid} Adding user methods via a metatable
{Cube.lua} Definition of a cube object
{metapetite} Overriding an operator on a table
{alog} Program to use visit objects

Module U108 - Pattern matching
{lpm} Anchoring and delimiting patterns
{patplode} iterating through a string, choosing a pattern
{slander0} Pattern matching - SLOW code
{slander1} Pattern matching - FAST code
{stratch} String Pattern Matching
{pcis} Pattern match and extract - a postcode
{iiapc} Pattern matching in Lua (not Regular Expressions)
{split} split or explode in Lua
{dls} Pattern substitute, pattern match and extract

Module U109 - Modules
{strictcure} How strict.lua can trap globals
{Distance.lua} Namespace definition in Lua
{joinery} Separating out detailed logic into separate functions
{exc} Excercise on loading functions from a file
{skills.lua} Sample answer to exercise - an include file
{j2} ... then moving logic out to a module
{logex} Second program to use shared utilities
{useit} Program to use a module
{gdist} get distance between points - uses module
{httpcalls.lua} A module to handle web access log records
{withstrict} How strict.lua can trap globals
{MyLib2.lua} where do namespaces load from?
{sf5_main} first program to use shared utilities
{MyLib.lua} where do modules / namespaces load from?
{mymod.lua} First Lua Module
{myutils.lua} utility functions for multiple examples

Module U110 - Input / Output
{flapper} file read and write - line by line
{filescan} Finding the latest log file and analysing it (popen, ls)
{flipper} keyboard and screen read and write
{emmas} Looking for (and counting) email addresses in a log file
{boring} File open, read
{grounds.lua} Soccer grounds - Lua
{log_counter} Command line and data file use / full course example
{zz} Some file reading fundamentals
{skill_lister} Processing a file of records, splitting each record
{info.txt} Soccer ground data for Lua and Python example
{loganal} Log file analysis

Module U111 - Trapping and handling errors.
{gp2} Assert - test a condition and exit with your error if it fails
{tbp} Stack Traceback
{splut} trapping Lua errors - assert
{errc} Error handling on file open
{protectedcall} pcall to trap errors in a lua function call
{wonky} error checking through pcall
{gp0} 'Control' for error trapping - failing example
{splot} trapping Lua errors - nil and error
{gp1} trapping an error via pcall

Module U112 - Other Standard Library features.
{getos} What is my host operating system (in Lua)
{lt5l} convert 3 letter month abbreviation to number
{ons} What is in os module?
{mathfuncs} Maths functions and random number generators
{dlisting} Directory listing
{basics} List all tables and contents
{timtimer} Time / date and timers
{globals} Global variables via _G

Module U113 - Installing Lua
{inst} Install procedure for LuaSocket

Module U114 - Threading and Coroutines.
{ff2.lua} Multiple coroutines in parallel use
{controller} setting off a number of timers
{datafeeder} using a coroutine as a generator
{charmoves} coroutine for game player movements
{crcr} coroutine basics
{coro} simple coroutine example
{nocoro} NOT using coroutines - filling a table then using it instead
{inco} Passing parameters to coroutines
{cosy} Illustration of Coroutines

Module U116 - Network Lua.
{formone.lua} Web Page via CGI in Lua
{webclient} Using the socket library to read a web page
{hello.lua} Web Page via CGI in Lua
{autobrowser} Using http client library to retreive a web page

Module U117 - Other Lua Subjects
{fromlua.c} C code callable from Lua - Mk 1
{wrapper.lua} Lua script to load and run C functions - Mk 3
{candy.c} C code callable from Lua - Mk 3
{passing.lua} Lua code that calls a C function, passing params and returning value
{top.lua} Lua program that loads and runs C code
{luapassing.c} C code - callable from lua with parameters passed
{getos} What is my host operating system (in Lua)

Module U118 - Resources.
{lugra} Using the gd module and library
{envelope} Command Line parameters in Lua

Module U198 - New in Lua 5.2
{bitwise} The bit32 library
{wrt} Weak references - set up and practical use
{gotolua} Lua goto - introduced in 5.2

Module U199 - Programming Standards in Lua
{loadthese.lua} Functions to include within a test harness
{shortplatform} postoptimised Lua example
{station.lua} pre-optimise

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

W: Web site programming / techniques

Module W501 - Introduction to Web Site Structure
{robots.txt} Telling robots to bypass certain URLs

Module W502 - HTML Document Anatomy
{el006.php} XHTML Page with PHP, dynamic refresh (metatag), style (css) and image (jpg) that resizes to browser window via Javascript
{el004.php} XHTML Page with PHP, dynamic reload and style
{codes.php} ASCII codes for HTML special characters
{el003.php} XHTML Page - PHP clock, auto reloads every minute
{el001.php} XHTML Page
{el002.php} XHTML Page with PHP (current time and date)
{el005.php} XHTML Page with PHP, dynamic reload, style and image

Module W504 - Not Just Text
{picshow.php4} Random image using PHP
{frime.html} elementary formatting and images
{bgdemo.html} Tiled background (random image)
{3wi.html} Multiple images in a piece of HTML

Module W506 - Forms
{smith.html} target page for a link
{esq.php} A first script - just echo inputs
{furst.html} A first page with links to other pages and scripts (via form)

Module W507 - Frames
(article) Using Frames with PHP
{framed_dpd.php4} hierarcy navigation - PHP with frames
{dpd.php4} hierarcy navigation - PHP without frames

Module W510 - Executable Content
(article) Running CGI scripts in Apache Tomcat
(article) Running SSI (Server Side Include) scripts in Apache Tomcat

Module W602 - Client Side Technologies
{jskl.html} Javascript event handling on a form (textarea)
{fourth.html} reporting platform information via Javascript
{seven.php} Changing one Select menu based on another selection
{third.html} Checking plugin availability
{geoloc.html} Reporting back your latitude and longitude
{nine.php} Javascript, PHP and MySQL used together - training example
{first.html} Simple Javascript variables, and an alert box
{fifth.html} Providing different links depending on which browser
{smonth.php} Disabling a form input until another element has been completed
{terry2.html} Roll over an image to change another image
{six.php} Validating user entries at the browser
{dynamic.html} Dynamic Image (Using Javascript)
{isflash.html} Sensing whether Flash is available on a browser
{eight.php} Disabling a form input until another element has been completed
{second.html} Conditional in Javascript - wording based on browser

Module W603 - Server Side Technologies
{clockpage.php4} PHP clock refreshes every minute

Module W611 - Actionscript
{squish.php} PHP script that shows server side interaction
{ButtonBottom.as} Interaction from Actionscript to server and database
{Buttontop.as} Actionscript to server interaction
{button.html} HTML shell to load a flash movie
{isflash.html} Sensing whether Flash is available on a browser

Module W701 - Introduction to Cascading Style Sheets
(article) Introduction to Cascaded Style Sheets
(article) Elements of Cascading Style Sheets
(article) Cascading Style Sheets - laying out your page
(article) Cascading Style Sheets - putting it all together
{cshello.html} First example of the application of style
{casc1.html} Cascading style sheets - a simple cascade example
{styles01.css} Style sheet - external files, first example
{csel.html} Using an external style sheet file

Module W702 - Elements of cascading style sheets
(article) Introduction to Cascaded Style Sheets
(article) Elements of Cascading Style Sheets
(article) Cascading Style Sheets - laying out your page
(article) Cascading Style Sheets - putting it all together
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{dtext.html} text demonstration of styles
{ddisp.html} block and inline display attributes
{dhs.css} style sheet applied to a heirarcy
{dte.css} flexibility in text styles
{dfsr.html} relative font sizes using percentages
{dshello.html} different types of element selector
{dheir.html} document heirarcy

Module W703 - Page layout with cascading style sheets
(article) Introduction to Cascaded Style Sheets
(article) Elements of Cascading Style Sheets
(article) Cascading Style Sheets - laying out your page
(article) Cascading Style Sheets - putting it all together
{epl.css} Style screen for positioning demos
{e01.html} Laying out elements of a page
{tabin.html} Standard tags v classes v tables
{eoscr.html} Overflow and scroll - cascading style sheets

Module W704 - Cascading style sheets - putting it all together
(article) Introduction to Cascaded Style Sheets
(article) Elements of Cascading Style Sheets
(article) Cascading Style Sheets - laying out your page
(article) Cascading Style Sheets - putting it all together
{hex4.css} Style for example 4
{hex3.html} Page layout included within style
{holder.html} holding page
{styled.html} Styles within page
{hex4.html} page layout is within style sheet
{direct.html} Direct coding
{hex1.html} Direct Coding
{hex_direct.html} Direct code - older style tags
{hex3.css} Style sheet for example no. 3
{hex2.html} with tags embedded in page

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

Y: Python programming and use

Overview Y050 - Python - General
(article) Python Fast Start
{wool} Generator function to prevent need for intermediate list
{demo2} first real application - simple calculation
{ld} Lists, lists of lists, mutable and immutable
{rv1} Using a generator to avoid a large intermediate list - control
{extend.py} Decorator, lots of __ methods, formatting, and more
{d2} ways of looping through a list
{fdo} File read and write - program 'samples' every 10th line of a log file
{demox} How EVERYTHING is an object - even functions!
{dd} loading functions from shared file
{tupperware} Trying to modify a tuple
{wac} Web Access Counter - parsing big data file
{accts} First steps in Object definition and use
{sheep} lists of functions, lambdas, callbacks (posh/flexible ways to use functions)
{nuform} Some examples of the % (string formatting) operator
{neville} Simple log file analysis
{peeps} Converting a file on disc to a list of objects in memory
{animals.py} Sample class with test harness too
{p4l} Use of xrange rather than range to avoid huge intermediate lists
{re1} Regular Expression to extract data from log file (and dictionary analyse)
{mlog} Tracking start and end records
{darling.py} file to be included to bring in application globals
{dooper} A one-liner to print a file's contents
{pipo} Running an operating system command via a pipe
{filer} Reading a file line by line (good for huge files)
{monty} First 'real' application
{dfg.py} Hiding algorithms in functions - 'encapsulation'
{zzz} transport in Ireland
{demo} early python demonstration - using, re-using, copying variables
{grabbage} Reading a web page 'as if it was a local file'
{costings.py} A file of functions for 'from' or 'import'
{fd} Some early list demonstrations!
{together.py} Station growths
{ooe} generatings lists of 365 elements to convert day of year to month and day

Module Y101 - Introduction to Python
(article) Python Fast Start
{new_ok} Printing strings in Python 3
{d4_1} Factory demo
{ok} Printing strings in Python 2
{fred} Hello world - Python v Java
{melksham.txt} Reform 0 sample data
{stations.py} Samsung example
{qx} Singapore Dollar Answer
{scope} Python is "default local"
{hello.py} "Hello World" in Python
{reform} Simple data manipulation

Module Y102 - Python - Fundamentals
(article) Python Fast Start
{constr.py} Constant Strings
{y102a} Answer to end of module exercise
{trimmer} early example of formatting output
{oper.py} Maths operations in Python
{i2.py} input with built in coercion
{tqs.py} Strings several lines long
{inout.py} raw input
{comment.py} Commenting your program
{leadollar} Output - with and without spacing
{const.py} Constants in Python
{repo.py} Operator precedence in Python
{pasco} Pascals Triangle
{pygo} Deleting a variable v deleting its contents
{pout.py} More about print statements
{demo} Simple first steps - prompt, read, calculate, report
{cli} Running a python program without having to type in "python" every time
{yraw} input v raw_input
{o2} Stripping leading and trailing space
{henry} Conversion, Coercion, and 2 forms of print

Module Y103 - Conditionals and Loops
(article) the while and else structure
{if2.py} if with a block
{tab2.py} loop controls - break and else
{swans.py} Swan family - Python
{three.py} if statments - various ways of writing them
{shand.py} Shorthand operators
{isy} is or == in Python
{python_switch_case} Alternative to switch, case and default
{cally.py} Days and months exercise - answer using methods
{shin} with as and in
{bp} Exchange Rate Conversion answer
{eqt} Comparions
{if1.py} an if statement in python
{if4.py} if, elif and else
{goal.py} when is a number "false"?
{ken} single and multiple statement blocks / conditionals
{if3.py} Nested blocks
{b1.py} if - elif - else conditional
{table.py} a loop in python
{sintea2} Singapore Teapot - exercise answer (2)
{lenny} First Loop
{sintea} Singapore Teapot - exercise answer
{groupsave} Groupsave ticket calculator
{george} if / elif / elif - how it works
{combo.py} Combining conditions with and and or

Module Y104 - Lists and Tuples
(article) Python List, Python Tuple, Python Dictionary
{dmy} Two alternatives - day of year -> day of month and month of year
{lc} List Comprehensions
{revq3} Parking exercise - final sample answer
{tu1.py} First use of a tuple
{shuffle.py} Shuffle a list of numbers
{lp1} Whole list or just elements of list?
{staloop} looping throught a station file
{inlist.py} The in operator - is a value in a list
{weekwurk} using function from exercise
{utils.py} solving exersise using a function
{li3.py} Use of range to give list indexes
{lister} 4 different ways of parsing a list
{litu.py} Converting a list to a tuple
{da1} Using the power of lists to reduce loops (control)
{pf} using + and re-assigning
{lo} list manipulation
{m2} Alternative answer to exercise 1
{myrange} How a function takes different shapes
{sh2.py} Shuffle a list of numbers using supplied shuffle method
{cally.py} Days and months exercise - answer using methods
{slice.py} list slices
{li2.py} for loop to handle each element of a list
{cmp.py} Comparing lists
{3slice} List slices - 1 2 and 3 value forms
{daze} Using the power of lists to reduce loops (actual)
{tessapy} All possible pairs from list
{revq} Parking exercise - mk 1
{yuk} some excercises with lists
{months} Answer - excercise 1 - day and month numbers
{menu.py} A list of lists - works like a 2 D array but better ;-)
{backuds} Going through a list backwards
{li4.py} range to go through each element of a list
{revq2} Parking exercise - mark 2
{mutt} mutable v immutable
{repeat.py} + and * operators on a list
{f2} Copy list v Clone list
{li1.py} List - first example
{lcopy.py} Copying a list (or rather - copying a reference to a list)
{pe} using +=

Module Y105 - Functions, Modules and Packages
(article) Python Calling functions and methods. Using objects and modules.
{ststst} function calling - options demonstrated
{factor} recursive example - factorial
{cardy} Main program - methods and attributes from a module
{myne.py} Module with documentation string and test harness
{noa} Mandatory, optional, ordered and named parameters
{restaurant.py} code that DEFINES a restuarant table
{gentwo} generator - multiple yields and no loop!
{pgob} Using objects to pass in (and out) of generators
{extrastep.py} importing a name from a module into the current namespace
{gen} A generator - two code branches both live
{firstclass} List of fucntions and callback demo
{gubbins.py} A bunch of functions in a module
{silksheets.py} Functions that we'll share between applications
{sweetdream} Another example of a module reuse
{qv2} Example that uses mystuff.py
{sysdemo.py} use of a standard module (sys)
{jen.iter} Generator with multiple yields
{acsh2} Dynamic function definition
{gen_control} Not using a generator - each runs to completion
{snoresleep} A further Good structure of named blocks of code
{colin.py} A tiny module
{dbc} Functions are objects
{mapfunc.py} Use of the map function to transform a list
{vargs} vargs in Python
{fat.py} A second program that uses shared functions in mod2.py
{better} An extra x - range v xrange and readlines v xreadlines
{fm} use of functions from a module
{pf} Defining and calling a function - postal delivery order
{fun.py} definition and use of a function
{mod_demo.py} Program that uses the module in local.py
{taxcalcs.py} Collecting function parameters
{apers} static variables in Python?
{mystuff.py} functions, statics, test code, doc strings ...
{taxi} Exercise answer - net and tax from gross amount
{params.py} Optional parameters, and variable number of parameters
{flook.py} Program to use a module and the attributes of its functions
{f1} more options with modules and functions
{sheep.py} A Lambda function - one line function definition
{yum} Brining in elements from a namespace
{local.py} File of functions to be loaded by other examples
{genex} Generator v regular function
{locvar.py} Local and global variables
{slumbermore} Good structure of named blocks of code
{gen2} Using a generator function to provide an iteration
{ffx} Dynamic function definition
{dream} Good structure of named blocks of code
{dfg} Using a generator to process a big file
{recur.py} Recursion - when a function calls itself
{drought.py} Assorted function call examples
{yf} Using a generator
{mutton} Anonymous variables and subs and lambdas
{electric.py} a generator function - carries on where it left off at previous call
{requests.xyz} Sample data for dfg
{qv3} alternative example using mystuff.py
{chezme} code to use a restaurant (table)
{avg.py} Demonstration of variable scope in Python
{mod2.py} A module with doc strings and attributes defined
{poc.py} Scope of variables - some samples
{passenger} Calling program - sample answer with separate module for functions
{jenny} Sample data for jenny demo
{tax.py} functions to work out tax and net from gross
{m1} map to transform and filter to select from a list
{places.xyz} Sample data for jenny demo
{thing.py} demonstration of a Python Package - the module
{geom.py} Full module, documentation, test harness, static variables
{repeater} retaining a variable from one call to the next
{ststar} * and ** in function calls
{bundemo} demonstration of a Python Package

Module Y106 - Object Oriented Python
(article) all variables are objects
(article) Python Calling functions and methods. Using objects and modules.
(article) copying an object - copy the reference
{writer.py} A simple class - constructor, object method and class method, no inheritance
{cubbyhole} Simple class - with a class (static) variable
{typelook} looking at an object type
{creatures} Exercise answer - program to test class animal
{aper2} retaining data objects for iteration
{forum.py} Class of records - forum log file analysis
{drink.py} definition and testing of a class
{dirStream.py} Object using generator - directory file traverser
{c1} Defining and using a class - early steps
{animal.py} Sample class (exercise) - animal
{survey.py} Work in progress - survey analysis
{webhit.py} Web Server access - directory report
{wr_test.py} Test harness for writer class
{rr2} Object equality, identity and sameness
{pets} OO sample - definition and use of two dog objects
{longer} Saving a lambda in a variable and other tricks
{containers.py} Shapes used for items in junkroom
{tabby.py} table, round table and rectangular table
{wr2.py} Test application for "writer" class
{glue} Shows danger of using direct access to a member variable
{pyobs} test program for containers in junkroom
{mute} mutable v immutable objects

Module Y107 - Dictionaries
(article) Python List, Python Tuple, Python Dictionary
{coin.py} Class used by dictionary with object key example
{pax_month.py} Unique visitors / visited pages per month
{setup} Simple use of dict
{snork} Variable scope when sorting a dictionary by value
{pycounter} counting words using dictionary
{d3.py} Can I sort a dictionary?
{counter} counting server accesse
{pred.py} Illustration of a program that would benefit from dictionaries
{wp2} dict - members with same key
{soccer_py} Soccer - league table, old v new point system
{uniquise} data file with duplicated lines
{topsk} counting occurrences in a file
{ss1.py} Python 3 - sorting with sorted
{u0} data file with duplicated lines')
{u1} data file with duplicated lines
{marie.data} data file with duplicated lines
{pyset} listing words using set
{uniwords} finding words by their count in a data file
{d3_3.py} Can I sort a dictionary?
{d2.py} Looping through all the elements of a dictionary
{od} dict with digit strings as keys
{zip-it.py} Joining 2 lists into a dictionary
{d1.py} Defining and looking up in a dictionary
{ssold.py} Python 2.7 - sorting a list
{pocket.py} dictionary with object keys - example
{slowcoach} Analysing visit lengths to web site - no cache
{ss2.py} Python 3 - sorting a list
{visitors} Analysing visit lengths to web site - using cache
{timberpull} multiple values at same key
{file_2nd} Analysing blog accesses
{od3} dict with digit strings as keys (python 3)
{soccer.data} Soccer League table
{pres.py} Is a key used in a dictionary?
{nx} Dictionary of objects - exercise and sample answer
{u2} data file with duplicated lines
{dfp} Optional, list and dictionary params

Module Y108 - String Handling
(article) Analysing incoming data lines
{grab} Regular Expression - Maya strings
{qre} Split - regular expression v literal string
{ifi} generating text with character
{pyform} Python Formatting via the str.format method
{seqrev.py} translate, reverse and join - reversing dna sequence
{sequence.py} Handling a string as a list of characters
{twoforms} Two forms of formatting
{earlier} formatted printing variety - format method
{lit} Checking the type of characters entered
{pys} Strings - how to write them
{irish_grid} Ordnance Survey Ireland - Grid Reference Conversion
{fhand} Unicode text string
{splitcare} Comparison of regex and string splitting
{cori} Multiline string
{funsub} Substitute for a regular expression
{clinput} reading and handling command line options
{Pythoners} Parse a file checking each line against a criterion
{bejo.py} split and join
{cli.py} Command line handler function in Python
{seq2.py} Using the replace method on a string
{kid} Formatting strings / multiple use of % operator
{fence.py} Fencepost problem and solution
{chunky} Splitting at a literal v splitting at a regex
{reginald} Regular expression with comments in it
{regex} Search and find, replace, and replace with result
{backtick} Conversion to a string with the backtick operator
{tliser} Exercise answer - formatting prices and aligning columns
{fares.py} Distortion of bus prices due to concessionary fares
{young.py} revision - string basics
{cli_withopts.py} Command line handler function in Python
{poundland} formatting a pound sign and a #! line
{inflate} Search for regular expression and replace
{formatting} formatting - old and new ways
{nf} Formatting - time and money using the % operator and format method
{strf} The String formatter
{rexy} writing understandable regular expressions
{reggie.py} Regular Expression Overview
{listmethods} List all methods available on an object
{taxform.py} Formatting output - floats, ints, etc
{visitors} Web site - population penetration
{p3.py} raw and regular strings
{gift} Share 10000 pound between 1 to 10 children
{mypi} Strings, raw strings, triple quoted strings

Module Y109 - Exceptions
(article) errors v exceptions
{topstats} Exception, Lambda, dict
{pushit.py} Handling multiple exceptions types
{stopc} trapping ^C in Python
{trapper.py} Use of try and except
{ui} Read an integer - validated
{syntax.py} Example of a syntax error
{sometimes.py} Example of a piece of code that sometimes crashes
{ranger.py} passing exceptions back to calling code
{ouch} try, except, finally example
{attempt} full traceback log from exceptions
{runtime.py} Example of a runtime error
{oy} Raising Exceptions yourself
{railx} Busiest and quietest stations
{gwrong.py} Using excpetions to allow *some* user errors
{kx} Answer to exercise
{insist.py} try and except within a loop
{grabot.py} Read from a URL resource with error trapping
{dbnover} Events spread over a number of units
{prog} Status line. Also trapping ^C
{ewhy.py} Using excpetion for fail-safe error handling
{deltemp.py} Use of pass to provide an empty block
{duff} Try, except, else and finally
{bug.py} Program with a bug!
{maffs.py} static variable in Python
{wholehog.py} static variable - initialise via exception

Module Y110 - File Handling
{widem} using with to limit the scope of a file handle
{fgfg} Improved version - program to handle data recently appended to a log file
{flr} Fixed Length Record to CSV
{analysethatbusstop} import CSV data into dict
{fff} Jumping around an input file (random access)
{pstat.py} Checking whether a file exists, and things about it ...
{sp} running OS subprocesses in Python
{lost.py} Trapping a non-existant file error
{grounds.py} Soccer grounds - Python
{sys.py} Disc space free within an application
{coster.py} Read whole file, report on lines matching a pattern
{dirStream.py} Object using generator - directory file traverser
{costhuge.py} Reading a file line by line
{tablog.py} File overwrite and append in python
{filechex} File checks - is it a directory, when was it modified
{majorcooker.py} Handling huge data
{file_first} Short file parser
{n2} Find the title of a web site
{j2} using a generator to source data from a file
{dsa} polymorphism in action
{wac1} Read file into list and process each line
{inflate} Inflation Calculcator - what would it have cost?
{grabpage.py} Read from a URL as is reading from a file
{pinorder.py} List a directory sorted by age of object
{is.xyz} Inflation data - UK - annual factors
{jdemo} json and csv handling
{dmoz.py} Parsing a large file, looking for matching lines

Module Y111 - More on Collections and Sequences
(article) Python List, Python Tuple, Python Dictionary
(article) User defined sorting - what is a callback?
(article) copying an object - copy the reference
{copy_levels} alias, shallow copy and deep copy comparison
{dsd} Python equivalent of Schwartzian transform
{slices} list slices - revision
{cuber} using a callback to map a list
{p162} Sample answer - module exercise
{2dli.py} List - multiple dimensions
{indemo} Sorting a dictionary?
{rails_dict} Sorting and subsorting into your own order
{lirev.py} List - revision
{furlist.py} Further methods that run on lists - looking things up
{shallowcop.py} List - shallow copy
{fortan} A list of lists (a matrix?)
{namsort.py} Natural sorting of a list of strings
{unamsort.py} Sorting of a list of strings - user routine ignoring case
{coldem} Collections - initial setup and reference
{scenario} Encapsulating changes in a function
{deepcop.py} List - deep copy
{lat.py} copy reference and shallow copy
{coplist.py} List - copy through assignment
{sal} Sorting in a non-standard way
{uip2.py} Counting in a dictionary, and sorting
{sby_sname} Sorting by surname

Module Y112 - Objects - Intermediate
(article) Inheritance
(article) all variables are objects
{tabledata.csv} Data file for Python 3.4 inheritance model
{ub} Utility method to construct different objects
{teapot.py} Class heirarcy in a single file
{clever} nested decorators
{triang.py} definition of a property
{mult_inherit} Multiple Inheritance Complete Example
{p4.py} Factory, comparator, inheritance etc
{timetable.txt} data for pub.py
{whm_real} Factory method
{accoms.xyz} Sample data for accoms program
{bandb.py} definition of subclass bandb of accom
{end_of_universe.txt} Data for p4.py example
{people.py} Class, subclasses, test harness. Inheritance, Poymorphism and Overloading
{ob1.py} definition and use of property with lambda
{accom.py} Accommodation base clase
{accom_finder.py} Sample application using hotel and bandb
{mi} Multiple Inheritance
{fcl.py} program to show use of "person" class
{c1.py} Classes, subclasses, static method, test harness
{travel.txt} Data file for "tu2" example
{mcx} metaclass setup and use
{tu2} Sample program (2) using c1.py demonstration classes
{restex.py} Class example - restaurant
{looob2} class exercise - add 200 count please
{tuse} Sample program (1) using c1.py demonstration classes
{cl_o.py} Old Style classes and inheritance
{cho} New style class - with inheritance
{goat.py} Defining a class of goats and overriding addition
{ufd} Sample data for person.py demo
{personx.py} OO demo - multiple classes, inheritance, test program
{id} getitem and getslice
{yum} Define your own add and print methods
{taball} all together table example
{xmc4.py} Polymorphism and inheritance with Christmas and Easter Characters
{cho.py} new style classes, as module with inheritance and test harness
{tr1.py} class, subclass, utility, factory, etc
{ting2} static (class) methods via decorators
{cbx} Callbacks in Python
{overload_add.py} Operator (+) and to_string overloading, Python
{m_i_m} Mixins Complete Example
{boxex} Overloading (redefining) addition and how a variable is printed
{travel.py} static methods, overloaded operator, propertys, inheritance and polymorphism ...
{ttest.py} calling an attribute [property]
{hound.py} Definition of two objects to demonstrate polymorphism
{addload} Illustration of how the + (add) operator is really defined
{bq} backquote / backtic operator
{alog} objects within objects - access log hits and visits
{dayzend} using with to open and close an object
{hotel.py} definition of subclass hotel of accom
{pets.py} Simple base class, subclass and polymorphism
{person.py} Class with Body Mass Index method
{tables.py} Python 3.4 tables interitance and factory demo
{pub.py} wholesale factory method - read file to list of objects
{meerkat} Decorator v modifier; static methods
{cl_n.py} New Style classes and inheritance
{obob} Inheritance demo
{thems} Polymorphism demonstration - uses cat and dog objects from hound.py
{pysin} Singleton class

Module Y113 - Python and SQL databases
{orm_sqlite} sqlalchemy orm with sqlite demo - Python 2.x
{alch001} SQL Alchemy - connect and first query
{selector.py} Simple selector (MySQL database of 168,000 records)
{alch002} SQL Alchemy - connect, inserts and queries
{prepared_statements.py} MySQL / Python (3) - with prepared statements
{multi_resultsets.py} MySQL / Python (2) - connect, drop, create, insert, select with iterate, drop
{databases_python} sqlite3 - connect, create, insert, select
{kvcache.py} Cacheing class object / sqlite3
{napreader} reading from http://www.wellho.net/data/wiltshire_busstops.csv
{pyjson_kvcache} Using our JSON service from Python with key / value cache
{inserts.py} MySQL / Python (1) - connect, drop, create, insert, select, drop
{logger} Local MySQL test prior to running examples

Module Y115 - Additional Python Facilities
(article) Python threads - a first example
(article) Pattern Matching - a primer on regular Expressions
(article) Interfacing applications to a MySQL database engine
{myuser.py} class for use in pickle / unpickle demo
{tim} Some time handlers
{hostfilter.py} Extract host computer information - strip comments with regular expressions
{bench.py} Find largest 5 files in or below a directory
{logs.json} Json data for http://www.wellho.net/resources/ex.php?item=y115/hostcounter
{sql1.py} Hello MySQL World in Python
{psplit} Splitting at a string v splitting at a regular expression
{re3.py} Find email addresses in line of text
{subp} Subprocess module - replacement for os.popen
{refun} evaluating a net list in EQN format
{mar_out.py} Marshal converts an object to a string
{retest.py} Regular Expression test engine
{re1.py} Regular expression - first example
{currency.py} Formatting a currency using Regular Expression
{cunpick} recover a pickled object
{gad1.py} Create a Gadfly (SQL) database and insert data
{syscommand} Running an operating system command in Python
{pysql_another} Using a MySQL database - select across multiple tables
{class_v_static.py} Decorators - your own, plus @classmethod and @staticmethod
{mar_in.py} Loading in an object saved via the marshal module
{python_mysql_web.py} Python, MySQL, CGI (Web) board
{cli.py} Report on command line parameters
{hostcounter} Extract data from huge flow. Save and restore via Json
{penv.py} Python environment variables
{pocohunter} Looking for postcodes in a string
{get_os.py} Get Operating System information
{relib.py} Some common regular expressions
{again} Looking for part of a string that repeats later
{cpick} Store an object via cPickle
{flist.py} All the files in a directory - which is largest?
{curr27} From Python 2.7 - currency alternative
{py_mysql.py} MySQL to Python using MySQL Connector
{re2.py} Stripping spaces
{gad2.py} Running an SQL query - Gadfly
{sql1a.py} MySQL to Python using MySQLdb
{eo2.py} Scanning log file for instability
{emma} Regular expression then split
{sqlite.py} Sqlite3 / Python 3 example
{re4.py} Regular expression split over several lines
{timestuff.py} Some time handling

Module Y116 - Applying OO design techniques and best practise
(article) What makes a good variable name?
{t6} inherited and associated / composite objects
{counter} inheriting from a standard data type object
{constant.py} Constants in Python
{cin} Caching design pattern
{story} Traffic survey - Python without Objects
{ddd.py} Good practise tips and documentation string
{tree.py} Recursion and special collections in Python
{novel} Traffic survey - Python and Objects
{t7} completion of example t6 - add factory, comparator, etc
{cincontrol} Caching design pattern / Control
{sob} Data for novel and story examples

Module Y117 - Already written modules
{jdemo3} finding a specifically keyed within json structure
{jflow.json} Data for jdemo3
{pyjson_with_cache} Using our JSON service from Python with cache
{jones} Random - really and replay
{dates} Date and Time - short example
{xz} Day of week, month of year names and locales
{imgsize} interpretting binary data
{fgrab} FTP transfers
{pyjson} Using our JSON service from Python
{butter} Regular Expressions
{avx} Command Line Parameters

Module Y118 - numpy, scipy and matplotlib
{gr3d.json} Data for graph.py - formatted json
{mpl4.py} Two graphs on a canvas - top to bottom
{prepare.py} Extract data for graphing and save to Json
{npx} Loading binary data from file into numpy array
{nphw} Basic objects in numpy
{mpl5.py} Two plots on a canvas - left to right
{npgd} Loading data into numpy
{mpl1.py} Hello matplotlib world
{npx2} alternative scheme for loading binary data
{simplegraph} Straightforward line plot using huge data
{mpl2.py} Plotting a user data set
{mpl3.py} Plotting multiple user data sets
{aa} Tuple and list to numpy array conversions
{graph.py} Graph x,y,z via numpy from a Json file
{tog1.py} Loading and storing numpy objects
{xyz.py} 3d and contour plots through numpy and matplotlib

Module Y150 - Python Development Tools and Environments
{lookin} using dis to look inside code

Module Y151 - Python & XML
{minid2.py} report structure with minidom
{images.xml} XML data used by demonstration program
{python_rss} Grabbing an RSS feed in Python
{xmlparserdemo} command line params (argparse) and xml (ElementTree)
{minid1.py} parse and check with minidom
{simpull.xml} XML data for simsax and sidom demonstrations
{sax_xml2.py} Extracting information via SAX
{xsltprocess.py} Process an XML file through an XSLT Stylesheet in Python with libxml2 and libxslt
{minid4.py} further extraction including data with minidom
{minid3.py} Useful extraction with minidom
{image.xsl} xslt program for Python / xslt / xml demo
{sax_xml4.py} More sophisticated SAX output example
{sax_xml3.py} Attributes and text extracted via SAX
{minid5.py} Modifying a document structure with minidom
{sax_xml1.py} First SAX based xml handler
{simdom.py} Reading XML into memory structure - DOM
{simsax.py} Parsing XML stream for pertinent data - SAX

Module Y199 - Python - Fast Start
(article) Python Fast Start
{if1} If, elif and else
{for1} for loop
{while1} While loop
{fast1} Fundamentals of Python - variables and output
{fast2} Fast start example 2 - inputs and strings
{tr3.py} base and subclasses, decorator, data from file, factory
{requests.xyz} Sample data file used in source examples
{kwlist} What are the keywords in Python?

Module Y200 - Python - using functions, objects and modules.
(article) Python Calling functions and methods. Using objects and modules.
{fromlist} bring module into current namespace
{lenco} functions v methods
{importlist} bring module into its own namespace
{biff} Some built in functions
{aug13_train.py} Inheritance, factory, etc
{appy} Calling a method which alters the object it runs on

Module Y201 - Python for DataMunging and System Admin
(article) Log file analysis - short Python example
{sbs} Data Munging Example
{noisesource} Spike solution - Data extraction and reporting
{rqsummy} Splitting a line at any white space
{lfan} Demonstration program - many aspects of Python
{spamdata.txt} Data for spam signup demo

Module Y202 - Python on the Web
(article) Nasty Characters in Web Applications
{hsapp2.py} Web application, Mark 2 - 3 pages, sessions, hidden fields
{inf.py} Simple web demo - produce form, complete form, act on data entered to form
{visitor.py} Analysing a web access log file
{tellmewhen.py} Running a Python program through CGI
{martin.py} Translation coster - CGI script
{pytop} Analysis of current web log file
{pyhello} Embedding plain text app on the web
{pyserv} basic web server
{python_mysql_web.py} Python, MySQL, CGI (Web) board
{piddle.py} CGI, Python, Web server, HTML - reporting server time
{hsdemo.htp} Template for hsapp1 and hsapp2
{hsapp1.py} Web application mark 1 - 3 pages, sessions, hidden fields
{place.py} Python / CGI - read from a form, run an application, fill in a template to respond
{martin.html} Translation coster - HTML form
{template.htp} Template for simple web example
{pybrow} Browser client
{jhandle} Python 3.4 urllib urlopen and json

Module Y204 - The TkInter GUI
{tki_demo} Practical Tkinter GUI
{tki_hello} Hello TkInter World

Module Y205 - Further uses of Python
{gui1.py} Hello GUI world (Tkinter example)

Module Y206 - Python and the Qt GUI
(article) Graphic User Interfaces (GUIs)
{hq2.py} Python / Qt. Popup windows, Button Widgets, slots and signals
{pyqthello.py} Hello World - Python and Qt GUI
{qupdown.py} Altering a label as a result of button presses - Python Qt
{Voter_qt.py} Python 3 / PyQt 4 - simple voting GUI
{hq3.py} Python Qt - Widgets, Geometry layouts, slots and signals

Module Y207 - wxPython
(article) Graphic User Interfaces (GUIs)
(article) Solution Centre - all article listing
(article) Solution Centre - all article listing
{delegates} Simple complete application - wxPython
{wx02.py} Simple menu with modal "about"
{wxexample_02} Event handlers to provide feedback
{however} Principles of a GUI - app frame
{wxphello.py} Hello wxPython world
{mymodel.py} Model for wx Framework demo
{wx01.py} Application with 2 windows
{Voter_wx.py} Python 2.6 / wxpython - simple voting GUI
{sizer1.py} Geometry Manager - First Example
{demo1.py} Simple "hello world"
{wxreal} Putting it together - food selector
{wx04.py} Panel and event handler
{logreport.py} Log file analysis is a wxPython GUI wrapper
{wxexample_03} Single event handler for many buttons
{wxpfsbe.py} Status bar with events on wxPython frame
{wxexample_04} Final example - GUI interface to rail data
{wxx2} GUI with feedback (manual placement)
{boxsizer.py} Vertically arranged widgets with a BoxSizer
{wxexample_01} principles a GUI - with code
{wxx3} GUI with feedback (Boxsizer placement)
{wx03_02.py} wxPython text editor with open, save, etc

Module Y209 - Python GTK.
{multibut.py} Python GTK - events, layouts, quit button
{gtkfeedback.py} Python GTK - feeding back into the GUI
{hwpgt.py} Python GTK Hello World

Module Y212 - Code testing, patterns, profiles and optimisation.
{test_mathfuncs5.py} Pytest - multiple setup fixtures
{logtest} Unit test for mary class
{train.py} class for testing in doctest
{thems.py} Polymorphism demonstration - used to demonstrate the profiler
{tdd_3} Test Drive Developement - extending unit testing
{Stationtest.py} Test for stations class
{mathstuff.py} function for Pytest to test
{dtxpass} Doctest / Python 3 - passing example
{mzz} Mocking - setting up and calling a mocked method
{tdd_0} Test Driven Development - step 1
{mtbf.py} MTBF class - overwrides + and *, and associated unittest
{stawithat} Static Method in Python (Decorator - 2.4 and later)
{test_hello.py} Hello Pytest world
{dec01} decorator - to log function calls
{annie.py} Test driven exercise
{second.py} Test program for use in build demonstration - with doctest
{test_mathfuncs3.py} Pytest / class test with setup fixture
{tdd_1} Test Driven Development - multiple objects
{mary.py} Web server log access class
{utdemo} unittest for Transport group of classes
{profdemo.py} using and running the profiler and stats analyser
{test_mathfuncs4.py} Pytest - chaining test no setup repeats
{dtxfail} Doctest / Python 3 - failing example
{Traintest.py} Tests for myTrain classes
{transport.py} Sample class - Test Driven Development
{testtrain} Unit test - Python 3 / train class
{stameth} Static Method in Python (all versions)
{dt.py} doctest - a clean example
{Combotest} Combining Test Suites - unittest
{test_mathfuncs2.py} Pytest with setup fixture
{makefile} Makefile - for a python test and build distribution project
{stawrong} bound method running on a class FAILS
{utes.py} Simple unittest demonstration
{setup.cfg} Sample config file for Pytest
{first.py} Test program for use in build demonstration - first principles
{railway.py} Test class for profiler
{stations.py} station class - for testing demo
{utd2} Unit Test (2) for transport classes
{myTrain.py} train class to be tested
{tdd_2} Test Driven Developemnt - using unittst
{utes2.py} unittest nesting demonstration
{dta.py} doctest - a longer example
{third.py} Test program for use in build demonstration - with unittest
{dtf.py} doctest - an example that triggers a failure report
{travel.py} inheritance, factory, decorator, comparators, static methods, caching, etc
{hound.py} Object definitions for profiler desmonstration
{test_mathfuncs.py} pytest - simple example with setup
{staboth} Static Method in Python (classmethod - all versions)
{trytravel} unittest for travel.py classes
{railstats.xyz} data for profiler demo

Module Y300 - Python 3 - What is new, what's changed and why
{jba2} Class definition and use with a static method - Python 3
{jba1} Class definition and use - Python 3
{py2only.py} Python 2 - ONLY - Hello World
{git_2.py} Generator and xrange - Python 2
{london.3} Python 3 - converted from Python 2.6 example
{print_3.py} print in Python 3 - print now a function
{input_3.py} Inputs in Python 3 - input replaces raw_input
{print_2.py} print in python 2
{git_3.py} Generator in Python 3, range replaces xrange
{cheznous} simple inheritance example - Python 2.7 and Python 3
{john} input and raw_input - Python 2 and Python 3
{jba3} Construct and Populate methods separated
{jba_poor} Poor class definition and use
{london.2} Python 2.6 for conversion to Python 3
{rsy} Python 3 using classes of objects for data filtering
{pyboth.py} Python 2 and Python 3 - Hello World
{george} Integer v float arithmetic
{py3only.py} Python 3 - ONLY - Hello World
{input_2.py} inputs in Python 2

Module Y301 - Class Interaction - an example
(article) Log file analysis - short Python example
{timetable} timetabling tool - Graham Ellis, 17th February 2018.
{waterflows.py} Multiple classes interacting - tap simulation example (Mk 2) in Python
{taps.py} Tap simulation example (Mk 1) in Python

Module Y302 - Threads - What why and how
(article) Python threads - a first example
{fullrange} Threading to ping 254 IP addresses in parallel batches
{fastandfull} Threading - to Ping a complete class C subnet
{kicking} checking hosts in parallel threads
{alive} Checking hosts one by one

Module Y303 - Python Network Programming
{ftpthread} FTP from within a thread and monitoring it
{t3} pipe and fork - communicating with your children
{browser.py} Demonstration of simple http client (browser)
{udp_server.py} UDP Server
{t2} Parallel processing with forks
{probo} Reading from a remote host via http as a stream
{to_me} Talking direct to a socket
{server.py} Simple tcp/ip server using sockets
{ftpgrab} FTP from Python, checking exceptions
{table} Basic mechanism of forking
{read_robots} Reading from a web resource in Python
{udp_client.py} UDP client

Module Y305 - Optimising Python
{slowcoach} Analysing visit lengths to web site - no cache
{longjob} Long job, showing interactive monitoring
{dave} load a list then iterate through it
{jenny} iterate through a file using a generator
{visitors} Analysing visit lengths to web site - using cache

Module Y306 - The Django web framework
{15_0.views.py} Django 1.5 - Story 0
{base_site.html} Modified look and feel for admin app
{settings.py} Django settings for oursystems project - phase 1
{2_settings.py} Django settings for oursystems project - phase 2
{2_urls.py} Django - URL to view mappings - phase 2
{3_views.py} Django integrated view
{15_0.settings.py} Django 1.5 - Story 0
{15_0.urls.py} Django 1.5 - Story 0
{2_views.py} model to view transforms in Django - phase 2
{15_0.visitbase.htp} Django 1.5 - Story 0
{views.py.002} Transforming a model to a view in Django
{2_index.html} Template - django, stage 2
{admin.py} Register the System class with the admin app
{3_integrate.html} Template for Django lesson 3 (tag language)
{views.py.001} First view in Django - checking URL mapping
{15_0.firsttemplate.htp} Django 1.5 - Story 0
{models.py} Definition of Django managed tables
{urls.py} url to application mapping
{z_complete} Complete set of Django files
{3_urls.py} url mapping - URLs without extensions
{15_0.indextemplate.htp} Django 1.5 - Story 0

Module Y307 - The Flask micro webdevelopment framework for Python
{base.html} base html - supertemplate - for rrt
{station_model.py} model - first flask MVC demo
{rrx} Flask - form that picks up answer
{rrx.py} Flask form demo / tuned to also work under unittest
{allstations.html} jinja2 MVC inner template - station index page
{requestresponse.html} template for request / response demo
{flask_test} Running Flask with template in unittest
{astation.html} jinja2 MVC inner template - iindividual station page
{person.html} Template for "third" flask example
{flask_app_test} Running Flask unittest with form and POST method
{second} Flask with routing
{firstform.html} Form - Jinja2
{rrw} Flask first form
{rrc} Flask with request - response cycle
{rry} Flask - form that stores answers in sessions
{stations.py} Flask Station Navigator - Router and controller for MVC demo
{thirdform.html} template including session report
{features.html} features of jinja2 for rrt demo
{fltest} Running Flask in unittest
{first} Hello Flask World
{basestation.html} jinja2 MVC - common outer template
{rrt} Flask - Jinja 2 introduction
{third} Flask with routing and templates
{secondform.html} Form and response - Jinja2
{rstats2014.xyz} data for stations.py demo

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

Z: Miscellany

Subject Z501 - Public Transport - Rail
{station_usage_0607.csv} Station entrances and exits - 2006/7
{station_usage_0203.csv} Station entrances and exits - 2002 - 2003
{station_usage_0910.csv} station entrances and exits - 2009/2010
{station_usage_0405.csv} station entrances and exits - 2004/5
{station_usage_0809.csv} Station entrances and exits - 2008/9
{station_usage_0708.csv} Station entrances and exits 2007 - 2008
{stationtables.tsv} Rail stations - postcode, OS and lat/long data source
{station_usage_0506.csv} station entrances and exits - 2005/6
{railstats.txt} Railway Station codes, locations, usage 2004 - 2010 (+2011 added 29.3.2012) (+2012 added 4.4.2013)

Subject Z600 - History
(article) Time Line - growth of our Open Source training

Subject Z700 - People
(article) Portrait of the Author of PHP

Subject Z801 - Pettifog
(article) Phone and fax to 070059 numbers in the UK

top - top of pagenew - new articles not yet categorised
A - Linux, Apache httpd and Tomcat C - C and C++ programming 
G - General Training Topics H - PHP programming and techniques 
J - Java programmming including Web M - Well House Manor; hotel and events 
P - Perl programming and use Q - General programming subjects 
R - Ruby programming and use S - Databases / the MySQL database 
T - Tcl, Tcl/Tk, wish and Expect U - Lua programming and use 
W - Web site programming / techniques Y - Python programming and use 
Z - Miscellany end - end of page

Source - [recalculated]

1 unpublished comment pending on this page

edit your own (not yet published) comments

© WELL HOUSE CONSULTANTS LTD., 2021: 48 Spa Road • Melksham, Wiltshire • United Kingdom • SN12 7NY
PH: 01144 1225 708225 • EMAIL: info@wellho.net • WEB: http://www.wellho.net • SKYPE: wellho

PAGE: http://www.wellho.net/resources/globalindex.html • PAGE BUILT: Sun Oct 11 14:50:09 2020 • BUILD SYSTEM: JelliaJamb