2014 in review

The WordPress.com stats helper monkeys prepared a 2014 annual report for this blog.

Here’s an excerpt:

A San Francisco cable car holds 60 people. This blog was viewed about 1,800 times in 2014. If it were a cable car, it would take about 30 trips to carry that many people.

Click here to see the complete report.


Beginner PHP after-hours course (starting 29 April 2014)


You should be at the level of Introduction to Programming or Excel VBA before starting this course.
HTML knowledge will be handy, but not required as we focus on the back-end in this course.
Intended Audience

This course is for web designers probably with HTML or XHTML who want to take their web pages to the next level.

After this course you should be able to

  • Use PHP to transform static HTML pages into dynamic web sites
  • Use email from your web server
  • Creating feedback forms
  • Create and populate your own MySQL database tables, and work with data stored in files
  • Perform sophisticated MySQL queries with joins, and refining your results
  • Uploading images
  • Protect your data from SQL injection attacks
  • Secure your pages with HTTP Authentication
  • Build a basic functional PHP website with management and user functionality that could be useful to a small business with basic requirements
Further Training

The next course in the series is Advanced PHP .

Course Material 

We give you an original copy of the book: Head First PHP & MySQL (by O’Reilly Press) as we use this mainly,
but we also give additional examples where it falls short.

Course Contents


Day 1
  • Add life to your static pages
  • PHP brings web pages to life
  • Forms are made of HTML
  • HTML acts on the CLIENT
  • PHP acts on the SERVER
  • Use PHP to access the form data
  • The server turns PHP into HTML
  • A few PHP rules to code by
  • Variables are for storing script data
  • $-POST transports form data to your script
  • Creating the email message body with PHP
  • Newlines need doublequoted strings
  • Variables store the email pieces and parts
  • Sending an email message with PHP
  • Connecting to MySQL
  • MySQL excels at storing data
  • Create a MySQL database and table
  • The INSERT statement in action
  • Use SELECT to get table data
  • Connect to your database from PHP
  • Insert data with a PHP script
  • Use PHP functions to talk to the database
  • Get connected with mysqli_connect()
  • Build the INSERT query in PHP
  • Query the MySQL database with PHP
  • Close your connection with mysqli-close()
  • $-POST provides the form data
  • Create and populate a database
  • It all starts with a table
  • Make contact with the MySQL server
  • Create a database for emails
  • Create a table inside the database
  • We need to define our data
  • MySQL data types
  • Create your table with a query
  • USE the database before you use it
  • DESCRIBE reveals the structure of tables
  • Create the Add Email script
  • The Send Email script
  • mysqli_fetch_array() fetches query results
  • Looping through data with while
  • Removing data with DELETE
  • Use WHERE to DELETE specific data
  • Minimize the risk of accidental deletions
Day 2
  • Realistic and practical application
  • Demand good form data
  • The logic behind Send Email validation
  • Your code can make decisions with IF
  • Testing for truth
  • IF checks for more than just equality
  • The logic behind Send Email validation
  • PHP functions for verifying variables
  • Test multiple conditions with AND and OR
  • Form users need feedback
  • Ease in and out of PHP as needed
  • Use a flag to avoid duplicate duplicate code
  • Code the HTML form only once
  • A form that references itself
  • Point the form action at the script
  • Check to see if the form has been submitted
  • Table rows should be uniquely identifiable
  • Primary keys enforce uniqueness
  • From checkboxes to customer IDs
  • Loop through an array with foreach
Day 3
  • Working with data stored in files
  • The application needs to store images
  • Planning for image file uploads
  • The high score database must be ALTERed
  • How do we get an image from the user?
  • Insert the image filename into the database
  • Find out the name of the uploaded file
  • Where did the uploaded file go?
  • Create a home for uploaded image files
  • Shared data has to be shared
  • Shared script data is required
  • Think of require_once as “insert”
  • Order Timing is everything with high scores
  • Format the top score with HTML and CSS
  • Only small images allowed
  • File validation makes the app more robust
  • Plan for an Admin page
  • Generate score removal links on the Admin page
  • Scripts can communicate with each other
  • Of GETs and POSTs
  • GET, POST, and high score removal
  • Isolate the high score for deletion
  • Control how much you delete with LIMIT
Day 4 
  • Securing your application
  • Protecting the Admin page
  • HTTP authentication requires headers
  • Header Exposed
  • Take control of headers with PHP
  • Authenticating with headers
  • Create an Authorize script
  • Subtraction by addition
  • Security requires humans
  • Plan for moderation
  • Make room for approvals with ALTER
  • Unapproved scores aren’t worthy
  • The million-point hack
  • Tricking MySQL with comments
  • The Add Score form was SQL injected
  • Protect your data from SQL injections
  • A safer INSERT (with parameters)
  • Form validation can never be too smart
Day 5
  • Using Variables in PHP
  • Understanding Data Types
  • Operators and Expressions
  • if, else Statement
  • Testing One Expression Many Times with the switch Statement
  • Compact Coding with the Ternary Operator
  • Doing Repetitive Tasks with Looping
  • Creating and Accessing Strings
  • Searching Strings
  • Replacing Text within Strings
  • Dealing with Upper- and Lowercase
  • Formatting Strings
  • The Anatomy of an Array
  • Creating Arrays
  • Accessing Array Elements
  • Looping Through Arrays with foreach
  • Working with Multidimensional Arrays
  • Manipulating Arrays
Practical project for competency certificate :
Create a website with 2 tables:
Product table (id, date, description, price, picture)
Members table (id, name, surname, email-address, description)
and pages for:
to join the site
to view the product list (will be expanded in the Advanced Course to add a shopping cart)
Pages and tables should be designed to be secure
from SQL injections by hackers
display the product list and add / remove and change products
moderate new customer applications, delete customers
the management pages must be protected with http authentication
send an email newsletter to members
Ensure that you use self-referencing forms that remember fields
Duration and pricing
  • Full-time over 5 days (R7995 excl VAT)
  • Part-time over 4 weeks (2 nights per week, 3 hour sessions) (R9995 excl Vat) or 8 Saturdays, 3 hour sessions) (R9995 excl Vat)
  • Distance-learning over up to 6 months (R6995 excl Vat)


  • Upon completion of this course you will receive an attendance certificate to certify your attendance and / or completion of the prescribed minimum examples.
  • You have the option to get the competency / academic certificate if you hand in a project (pre-approved) covering most of the topics in the book, within 3 months
  • The project is useful for unemployed students who want to enter the job market. This project and certificate can be used to show employers your abilities.


  • On the calender on this page below. This course is repeated approximately once every 6 weeks, unless a customised specific booking is requested via email.
  • If your browser doesn’t display the calendar below, please click on this link or try using Google Chrome, alternatively please enquire via our ‘Contact Us’ page.


  • You can download the course registration form on our home page or by clicking here


Java Servlets Beginner Project One

Well done Java Servlets students! You have completed Modules 1 – 8 of teh course. Here is a project for you to put together everything that you have learned so far:

Maintain a list of products on your website – as the manager of a website, you should be able to:

  • View Products
  • Add Products
  • Edit Products
  • Delete Products

Make sure you validate form entries when adding a new product.

GetCertified helps young South Africans enter the job market

Young South Africans struggle to find employment. In a drive to improve their lot, SARS now offers a special tax incentive to encourage employers to hire younger staff. If an employee is between the ages of 18 and 29 and earns R6000 or less, their employer can reduce the PAYE on their income as per the calculations set out by SARS.

“While this is a start,” says Arnold Graaff, CEO of GetCertified IT Training in Johannesburg, “more needs to be done to help the younger generation find employment after leaving school.”

Graaff cites the case of Xolani, a recent graduate of GetCertified’s Java Job Prep Bootcamp. “Here was a young gentleman who met our basic criteria – a matric certificate with a comfortable pass in mathematics. Further, he took our aptitude test and the results were very positive. But he had no way to cover his training costs. We decided to give him the opportunity to realise his potential and granted him a study loan.” GetCertified offers qualifying candidates loans to complete their studies, repayable once they have found employment.

Students sit the internationally recognised Oracle Certified Associate Java exam and Oracle Certified Professional Java exam. Once they graduate, GetCertified’s sister company and top IT recruitment firm Compuways places them with a suitable employer.

Xolani did well in all the modules he studied and went on to pass his Oracle exams. He also completed the course’s practical web application development project with distinction. The candidate soon received two interviews, resulting in a job offer as a junior programmer with Astidian Systems, a developer of cloud-based business software.

Andries Pretorius, CEO of Astidian, met Xolani during the course. “We recognised his potential and were keen to see how he developed.” In fact, on hiring him, the company decided to repay Xolani’s study debt in return for an agreed period of service. Also, they immediately sent him on another GetCertified course to learn database programming. Astidian has used Compuways / GetCertified for almost 8 years for all its recruitment, training and certification requirements.

Pretorius says that while the demand is great, there is a distinct lack of skilled Java programmers in South Africa and the number of frameworks and technologies used by development companies varies widely. This makes it difficult for employers to find developers with the qualifications and expertise they require for their specific needs. So, companies are on the lookout for candidates who can apply logical thinking to deconstruct problems and build up solutions. It’s natural for employers to train junior programmers over the long term to nurture their skills. Says Pretorius: “GetCertified’s excellent courses follow the latest syllabi, turning out well-rounded junior programmers who have been exposed to the newest technologies and methods of programming. The result is that we can get new hires productive very quickly.”

Xolani says young people should take more interest in short courses. Many university leavers with computer science degrees find themselves overqualified and under-experienced. “Decide what you want to do, go for the short course and get the skills you need to start earning. The rest will come with experience.”

Through the efforts of companies like GetCertified and Astidian Systems, young South Africans have the opportunity to find employment and establish themselves in the workforce. Both companies encourage employers to support the youth of South Africa.

GetCertified also offers Boot Camps for database administration, Business Intelligence, PHP and Microsoft .NET development.
For more information, visit GetCertified’s web site at http://www.getcertified.co.za/bootcamps/java or http://www.getcertified.co.za/bootcamps for all available Boot Camps. Prospective students are invited to attend open days by appointment from Monday to Saturday.