Contents

1. Intro
2. Website Development
  2.1 New Web Hosting Service
  2.2 New Website Scripting plugins
  2.3 New "A+D" Website
  2.4 New "DMH's Model Aircraft" Website
  2.5 New "DMH's Computer Programs" Website
3. Windows Application Program Development
  3.1 FPC and Lazarus IDE
  3.2 Lazarus IDE First Programs
  3.3 Re-birth old Turbo Pascal and Delphi 9 programs
  3.4 New Lazarus IDE programs
  3.5 Windows 11

David Haycraft's Computer Programs Contents

1. Intro

DMH graduated B.Sc. from Monash University in 1965, then worked as a computer programmer from 1966-2017. See .

As an ongoing hobby after retiring, DMH continued to use his home Windows 10 desktop PC for software development. He had two broad goals:

Website Development

  • register a new Internet Domain Name and subscribe to a new web-hosting service
  • download and learn how to use Colorbox Javascript plug-in for website photo presentation plus OpenStreetMap and Leaflet OSM Javascript API for website mapping
  • develop a new family photo website called "A+D", including much new content plus some old content once hosted by iiNet
  • develop a new website called "David Haycraft's Model Aircraft" using old content once hosted by iiNet
  • develop a new website called "David Haycraft's Computer Programs" (this website)

Windows Application Program Development

  • download and install Free Pascal Compiler and its companion product Lazarus Integrated Development Environment
  • as learning exercises, use Lazarus IDE to develop a simple Scientific Calculator program and then a Ray Tracing graphics program to mimic and improve on an old 1968 FORTRAN graphics program of his
  • use Lazarus IDE to redevelop three old desktop programs (CompFile, SFC, BIRDD) that were originally developed in the 1980s and 1990s using Borland Turbo Pascal and later Delphi 9 - neither of which compilers are supported in Windows 10
  • develop some new Lazarus IDE application programs
  • upgrade desktop PC from Microsoft Windows 10 to Windows 11

2. Website Development

2.1 New Web Hosting Service

Subscribed to the web-hosting service HostPapa

Used their support to register a new non-commercial Internet Domain Name (davidhaycraft.id.au)

2.2 New Website Scripting plugins

Downloaded and installed Colorbox Javascript plug-in for website photo presentation

Reviewed the source code on the Colorbox Demo Page

Downloaded and installed OpenStreetMap and the Leaflet OSM Javascript API for website mapping

Reviewed the Leaflet Tutorials

2.3 New "A+D" Website

See https://davidhaycraft.id.au/APLUSD

This website contains new content, primarily family photograph groups linked by a "family tree" and displayed by Colorbox.

It also incorporates some old A+D Vacation content that was originally hosted for free by iiNet under the domain name "http://members.webone.com.au/~haycraft/public_html".

In three of the old Vacation websites (2007_Greece, 2016_Canada, 2017_Iceland), the Google Maps API had been used to provide interactive maps. However, by 2025, Google had introduced licencing restrictions on the use of the Google Maps API even for non-commercial websites, including annual licence fees and the requirement to obtain a separate and distinct "licence key" for each website that intended to use it.
Furthermore 'Google Maps Platform' recently advised that: "We detected that you are using unrestricted API keys with Google Maps Platform services. These keys may be publicly exposed and vulnerable to abuse. Please review and take action to secure your API keys. Maps Platform customers are responsible for charges incurred with unrestricted API keys, including usage by unauthorized third parties."

Rather than confront these ever-increasing problems with use of the Google Maps API, all three "A+D" Vacation websites that displayed interactive maps were re-implemented using OpenStreetMap and its Leaflet JavaScript API.

2.4 New "David Haycraft's Model Aircraft" Website

See https://davidhaycraft.id.au/DMHMAC

2.5 New "David Haycraft's Computer Programs" Website

You're looking at it, thanks to HostPapa!

3. Windows Application Program Development

3.1 FPC and Lazarus IDE

After months trying -unsuccessfully, due to unresolved licensing issues- to install Embarcadero Delphi 11 Community Edition, he eventually settled on Free Pascal Compiler (FPC) and Lazarus Integrated Development Environment (IDE), both of which downloaded and installed on his home Windows 10 PC without any problems.

At this time he also purchased a copy of the two-volume "Lazarus Handbook", published by Blaise Pascal Magazine.

3.2 Lazarus IDE First Programs

 3.2.1 Scientific Calculator

As a beginner's exercise, DMH used the Lazarus IDE to create a simple "Scientific Calculator" program for Windows. This exercise gave him the opportunity to use the basic "Common Control" user interface elements provided by Lazarus: TMainMenu; TButton; TLabel; TEdit etc.

Click for

 3.2.2 R3D2

Back in 1968, DMH had written a FORTRAN program for the CDC 6400 at Uni Of Adelaide to test their newly acquired Calcomp 565 pen plotter. This program produced a perspective view of a 3D "wire-frame" surface constructed from Cosine curves on the x and z axes. Click for

DMH's second use of Lazarus IDE was to develop a Windows PC computer graphics program that would produce a 2D image resembling that old 1968 one, but with a more "realistic" appearance.

To get started, he purchased a copy of Computer Graphics from Scratch by Gabriel Gambetta (c) 2021. The first half of CGFS described how to render a 2D image of a set of 3D subjects using a Ray Tracing method. Pseudocode was provided in the book for each step in the rendering process. Also, thoughtfully-provided by the author, were on-line demos of each of the pseudocode steps implemented in HTML/JavaScript. See for example CGFS - Reflections Demo.

He then took these development steps:
  • revise long-forgotten Linear Algebra basics: vectors, vector addition/subtraction/dot product/cross product, vector normal, rotation matrices etc
  • download the HTML/JavaScript source of "CGFS - Reflections Demo" as raytracer-05.txt
  • reverse-engineer raytracer-05.txt from HTML/JavaScript to Lazarus IDE as project R3D2 and verify that it produced the same graphic output as the original on-line demo
  • replace the subject geometry of raytracer-05 (3 spheres) with a 3D Cosine wave surface modelled by a triangular mesh (60^2 x 4 = 14,400 triangular facets)
  • download a copy of Muller-Trumbore's paper Fast Minimum Storage Ray/Triangle Intersection
  • using the Muller-Trumbore algorithm, develop Pascal function IntersectRayTriangle to replace the original IntersectRaySphere
  • add an R3D2 options form for the user to preset: triangle count; camera location, pan, tilt and zoom relative to subject centroid; light positions and amplitudes
Click for

3.3 Re-birth old Turbo Pascal and Delphi 9 programs

 3.3.1 CompFile

CompFile was the first Delphi 9 program converted to Lazarus.

CompFile is a Windows application to compare two copies of a set of files and verify that the copies have identical lengths and contents. CompFile is recommended for verifying the integrity of backup copies of files written to removable media such as Portable Hard Drives, CD-ROMs, DVD-Rs or USB Memory Sticks. For QA purposes, CompFile can prints a hard-copy report of the comparison process, file by file.

Click for

 3.3.2 Structured Flow Chart Designer (SFC)

SFC was the second Delphi 9 program converted to Lazarus.

SFC is a Windows application program to create structured flow charts or Nassi-Schneiderman Diagrams.

Click for .

 3.3.3 Binary Relationship Data Dictionary (BIRDD)

Binary Relationship Data Dictionary (BIRDD) was the third old program to be converted to Lazarus. BIRDD supports the NIAM method for designing database models at the conceptual level. See NIAM.

The most recent existing version of this program - BIRDD 2.3 - was written in 2009 using Borland Turbo Pascal and will not run under Windows 10.

Click for .

At the beginning of 2025, work was commenced to re-develop BIRDD from scratch and, in particular, to add support for 3-entity (tri) and 4-entity (quad) relationships to support BIRDD's original 2-entity (binary) relationships or fact-types. The planned re-development will bring it more into line with the current method for designing database models at the conceptual level, know as "Object Role Modelling". See Object Role Modelling (ORM).

This will be a long-running project!

3.4 New Lazarus IDE programs

 3.4.1 Lily Serna Emulator (LSE)

SBS TV Show "Letters and Numbers"

The SBS TV Show "Letters and Numbers" presents Number Puzzles to contestants. If you have an SBS On Demand account then you can watch any episode of the show through your web browser at https://www.sbs.com.au/ondemand/tv-series/letters-and-numbers.

Each Number Puzzle consists of a set of six randomly chosen input numbers plus a random target number. The challenge for the contestants is, within 30 seconds, to develop an arithmetic expression - involving all or some of the input numbers - that will deliver the target number.



Lily Serna Emulator (LSE) Computer Program

LSE is a Windows/Lazarus IDE application program developed in 2024 by DMH to find solutions to any "Letters and Numbers" Number Puzzle.

For an overview see .

 3.4.2 Mandelbrot Set Explorer (MSE)

Mandelbrot Set

The Mandelbrot Set is defined in the complex plane by the complex numbers C for which the value of the function f(Z) = Z^2 + C does not diverge to infinity when reiteratively evaluated starting from Z=0, that is, for which the sequence f(0), f(f(0)), f(f(f(0))) ... remains bounded in absolute value.

You can easily make "fractal" images from this definition by mapping a two-dimensional grid of on-screen pixel points (X, Y) to complex plane points (C.re, C.im) then coloring each pixel point to denote the outcome of the Mandelbrot function evaluation for each complex plane point C. For a detailed explanation see Wikipedia article.

Mandelbrot Set Explorer (MSE) Computer Program

MSE is Windows/Lazarus IDE application program developed by DMH in October 2025 to draw images of selected regions of the Mandelbrot Set.

For an overview see .

3.5 Windows 11

At the time of his retirement, DMH's home-office ASUS PC was running under the Windows 10 operating system. Microsoft had since advised that it would cease all bug-fix and security update support for Windows 10 at the end of 2025.

The Windows 10 "PC Health Check" app reported that this PC did meet the minimum system requirements for installing Windows 11, except for the need to enable Trusted Platform Module (TPM) version 2.0. Enabling TPM 2.0 would involve changing settings in the UEFI BIOS. UEFI (Unified Extensible Firmware Interface) and BIOS (Basic Input/Output System) are firmware interfaces for computers that help in booting the operating system and managing hardware.

Attempting a PC firmware change is not a task for the novice! Read about the risks involved at, for example, How to enable the Trusted Platform Module (TPM) on your computer.

Fortunately, in May 2025 DMH received the following SMS message from Crawford's Mobile Computer Service:

"Hi David, are you still using Windows 10 or even 8.1?
At Crawfords Computers, we can upgrade most older PCs to Windows 11 - even many that Microsoft says aren't compatible.
No new hardware needed, and your files and apps stay just as they are.
If you bring your computer to the shop, it will cost just $180 and if we can't upgrade it, you don't pay."


So he promptly took up this offer and Crawford's upgraded the subject computer to Windows 11 in just a couple of days. And yes, all data files and apps (including Outlook email message folder contents) were indeed preserved. Outstanding service!

Website version 1.5 18JAN2026