Good Leadership Qualities

Good Leadership Qualities

Project Management Process Summary

Project Management Process Summary

2016, Out and about in the Scilly Isles… near to end of 9 mile walk…

Project Management Processes Summary

Project Management Processes Summary

Oracle SQL Forms triggers, event-handlers historical timeline by era

Oracle Forms triggers are event-handlers written in PL/SQL (originally a proprietary step-based language) that execute in response to specific events within an application, such as mouse clicks, data entry, or database transactions. They allow developers to augment or replace default processing behavior. 

My final year Higher National Diploma project in Oracle SQL forms.

HND Oracle SQL forms design example 1, 1990

Historical Timeline of Oracle Forms & Triggers

The evolution of Oracle Forms is defined by its transition from character-mode terminals to graphical user interfaces (GUI) and eventually to web-based and cloud architectures. 

HND Oracle SQL forms design example 2, 1990

Era 1: The Character Mode & Macro Era (1979 – 1980s)

In this era, applications were designed for text-only terminals like the VT220. Logic was primitive and lacked the structural flow of modern programming. 

  • 1979 – Interactive Application Facility (IAF): The earliest form of the tool, consisting of a compiler (IAG) and a runtime interpreter (IAP).
  • 1984 – FastForms / SQL*Forms 2.0: Renamed during the Oracle v4/v5 database era.
    • Trigger Detail: Triggers did not use PL/SQL. They used a proprietary language based on trigger steps. To achieve logic like an IF statement, developers had to jump between steps based on the success or failure of a SQL statement.
  • 1987 – SQL*Forms 2.3: A significant improvement that introduced procedural capabilities via EXEMACRO CASE for more complex logic. 

Era 2: The PL/SQL & GUI Revolution (Late 1980s – 1990s)

This period marked the shift toward modern programming standards and the Windows operating system.

  • 1988 – SQL*Forms 3.0: The first version to support PL/SQL within triggers. This replaced the old step-based triggers with block-structured code.
  • 1993 – Oracle Forms 4.0: The first true GUI-based version, supporting checkboxes, radio groups, and mouse-based interactions.
  • 1994 – Oracle Forms 4.5: A “quantum leap” in the product’s history.
    • Trigger Detail: Introduced GUI-based triggers (e.g., WHEN-MOUSE-CLICK) and a modern IDE with an Object Navigator and Code Editor. 


Era 3: The Web & Internet Era (Late 1990s – 2010s)

As the internet grew, Oracle pivoted to a three-tier architecture where forms ran in web browsers via Java. 

  • 1999 – Oracle Forms 6i: The ‘i’ stood for Internet. It introduced the Forms Server, allowing forms to run in a browser using a Java applet.
  • 2002 – Oracle Forms 9i: Officially dropped support for client-server and character-mode deployment. Triggers began to support Java integration via imported Java classes.
  • 2004 – Oracle Forms 10g: Integrated more deeply with J2EE and web services.
  • 2009 – Oracle Forms 11g: Introduced external events and JavaScript support, allowing triggers to interact with web-based elements. 

Era 4: Modern Cloud & Standalone Era (2015 – Present)

The current focus is on maintaining legacy reliability while adapting to modern infrastructure without a browser dependency. 

  • 2015 – Oracle Forms 12c: Introduced Java Web Start (JWS) and standalone modes, allowing applications to run without a parent browser.
  • 2023 – Oracle Forms 12.2.1.19: Released with features like automatic language detection and browser-less launching (FSAL).
  • 2024 – Oracle Forms 14.1.2: The latest stable release (skipping version 13), featuring modernized widgets and support for REST data sources.
  • 2025/2026 – Transition Period: Long-time product advocates have left Oracle, signaling a shift toward sustaining mode where users are encouraged to modernize toward Oracle APEX. 

Oracle Forms SQL triggers, event-handlers historical timeline by era

HPE NonStop architecture overview and technical commentary and approach by era and year

The HPE NonStop architecture is defined by its “shared-nothing” design, where every hardware and software component is redundant and operates independently to ensure 100% operational continuity. For over 40 years, it has evolved through four distinct hardware eras while maintaining upward software compatibility.

1. The Tandem Era (1974–1997): Proprietary Foundations 

  • Architecture Approach: Founded by James Treybig, Tandem introduced the first commercial fault-tolerant system using a proprietary 16-bit stack-based architecture.
  • Key Technical Milestones:
    • 1976 (NonStop I/T16): Introduced the Dynabus, a custom inter-processor backplane, and the Guardian OS, which used message-passing instead of shared memory to isolate faults.
    • 1981–1983 (NonStop II & TXP): Introduced 32-bit addressing and the Transaction Monitoring Facility (TMF), which allowed applications to be fault-tolerant without specialized coding.
    • 1986–1989 (VLX & Cyclone): Scaled to the mainframe market with ECL gate-array chips and the first fault-tolerant relational database, NonStop SQL. 

2. The MIPS Era (1991–2004): Migration to RISC

  • Architecture Approach: To keep pace with industry performance, Tandem transitioned from proprietary processors to off-the-shelf MIPS RISC processors while emulating the original instruction set for compatibility.
  • Key Technical Milestones:
    • 1991 (Cyclone/R): The first MIPS-based system.
    • 1997 (Himalaya S-Series): Replaced Dynabus with ServerNet, a high-speed system interconnect that later evolved into the industry-standard InfiniBand.
    • Ownership Shift: Compaq acquired Tandem in 1997, and HP merged with Compaq in 2002. 

3. The Itanium Era (2005–2013): HP Integrity NonStop 

  • Architecture Approach: Branded as Integrity NonStop (NonStop i), this era moved the platform to Intel Itanium processors.
  • Key Technical Milestones:
    • 2005 (NS-series/J-series): Focused on “NonStop Advanced Architecture” (NSAA), leveraging standard HP server components to lower costs while maintaining Availability Level 4 (AL4).
    • Technical Commentary: While powerful, the reliance on Itanium’s EPIC architecture eventually limited growth as the industry consolidated around x86-64. 

4. The Modern HPE Era (2014–Present): x86-64 & Virtualization 

  • Architecture Approach: Shifted to standard Intel x86-64 processors (NonStop X), fully decoupling the software stack from proprietary hardware.
  • Key Technical Milestones:
    • 2014 (NonStop X/TNS/X): Introduced the L-series operating system. The architecture transitioned to a standard InfiniBand fabric for inter-processor communication.
    • 2017–2020 (vNS): Launched Virtualized NonStop (vNS), allowing the environment to run on standard hypervisors like VMware, bringing fault tolerance to private and hybrid clouds.
    • 2025 (NS9 X5): Modern systems now support up to 8 TB of RAM and are integrated into the HPE GreenLake consumption-based cloud model. 
  • Summary of Architectural Evolution

PASCAL Programming Language Overview, Timeline and Technical Insight

Pascal is a historically significant imperative and procedural programming language designed by Niklaus Wirth between 1968 and 1969. It was created to encourage structured programming and efficient data structuring, serving as a clean, disciplined alternative to more complex languages of the time like ALGOL 60 and FORTRAN. 

Key Features and Overview

  • Strong Typing: Every variable must have a defined type (e.g., Integer, Real, Boolean, Char), and the compiler strictly enforces these to prevent errors during execution.
  • Rich Data Structures: Pascal introduced built-in support for complex types including records, sets, enumerations, subranges, and pointers.
  • Structured Control: It uses clear, English-like keywords such as begin, end, if-then-else, and while to organize program logic into manageable blocks.
  • Educational Focus: Originally intended as a teaching tool, it became the global standard for introductory computer science courses for nearly two decades. 

Historical Timeline of Pascal

The Foundation Era (1960s)

  • 1964–1966: Niklaus Wirth joins the IFIP Working Group to design a successor to ALGOL 60. His “pragmatic” proposal is rejected in favour of the more complex ALGOL 68.
  • 1966: Wirth implements his proposal at Stanford as ALGOL W, which introduces many concepts later found in Pascal.
  • 1968: Wirth begins designing a new language at ETH Zurich, naming it Pascal after the 17th-century mathematician Blaise Pascal. 

The Emergence Era (1970–1979)

  • 1970: The first Pascal compiler becomes operational on the CDC 6000 mainframe, and the official language definition is published.
  • 1971: Formal announcement of Pascal appears in Communications of the ACM.
  • 1972: The first successful port to another system (ICL 1900) is completed by Welsh and Quinn.
  • 1973: The Pascal-P kit (P-code) is released, providing a portable intermediate code that allows Pascal to be easily ported to different hardware.
  • 1975: The UCSD Pascal system is developed at the University of California, San Diego, eventually bringing the language to microcomputers like the Apple II.
  • 1979: Apple releases Apple Pascal, licensing the UCSD p-System for its platforms. 

The Dominance Era (1980–1989)

  • 1983: ISO 7185:1983 is published, establishing the first international standard for Pascal.
  • 1983: Borland International releases Turbo Pascal 1.0. Priced at $49.95, its extreme speed and integrated environment revolutionize PC programming.
  • 1984: The Educational Testing Service (ETS) adopts Pascal as the official language for the AP Computer Science exam in the U.S..
  • 1985: Apple introduces Object Pascal on the Macintosh to support object-oriented programming.
  • 1989: Borland adds object-oriented features to Turbo Pascal 5.5, adopting the Apple Object Pascal extensions. 

The Transition and Legacy Era (1990–Present)

  • 1990: The Extended Pascal standard (ISO/IEC 10206) is released, adding modularity and separate compilation.
  • 1995: Borland releases Delphi, a Rapid Application Development (RAD) tool based on Object Pascal, designed for the Windows graphical interface.
  • 1997: The open-source Free Pascal compiler (originally FPK Pascal) emerges to provide a cross-platform alternative to commercial tools.
  • 1999: Pascal is replaced by C++ as the official language for the AP Computer Science exam, marking the end of its educational dominance.
  • Present: Pascal remains active through projects like Lazarus (an open-source IDE for Free Pascal) and continued updates to Embarcadero Delphi for Windows, macOS, Android, and iOS development. 

Pascal is a historically significant, high-level, and statically typed programming language designed in the late 1960s by Niklaus Wirth. Its primary technical goal was to encourage structured programming—a disciplined approach that uses clear, logical sequences and data structuring to make code more readable and reliable. 

Technical Insights

The technical architecture of Pascal is built on a few core pillars that distinguish it from its contemporaries like C or FORTRAN: 

  • Strong Typing: Unlike many early languages, Pascal is strongly typed, meaning data types cannot be mixed or converted without explicit instruction. This reduces runtime errors by catching type mismatches during compilation.
  • Block-Structured Design: Programs are organized into clear blocks (using BEGIN and END), including nested procedures and functions. This hierarchical structure allows for precise control over variable scope.
  • Unique Data Structures: Pascal introduced native support for sets (representing mathematical sets as bit vectors) and variant records, which allow different fields to overlap in memory to save space.
  • One-Pass Compilation: The strict ordering of declarations (constants, then types, then variables, then procedures) was originally designed to allow the compiler to process the entire program in a single pass. 

General Programming Approach

Pascal enforces a “think before you code” philosophy through its rigid syntax and organizational requirements: 

  1. Top-Down Design: The language encourages breaking complex problems into smaller, manageable sub-tasks (procedures and functions).
  2. Explicit Declarations: Every variable must be declared in a specific VAR section before the executable code begins. This prevents the “spaghetti code” common in earlier languages.
  3. Algorithmic Focus: Because the syntax is so close to pseudo-code, the approach focuses heavily on the logic of the algorithm rather than language-specific “tricks”.
  4. Parameter Passing Control: Developers have explicit control over how data moves; using the VAR keyword allows passing by reference (modifying the original variable), while omitting it passes by value (working on a copy). 

Modern Relevance

While its peak in education was the 1980s and 90s, Pascal evolved into Object Pascal, which powers modern tools: 

  • Delphi: A popular IDE by Embarcadero Technologies used for rapid application development (RAD) on Windows, macOS, and mobile.
  • Free Pascal (FPC) & Lazarus: Open-source alternatives that bring modern features like generics and anonymous methods to the language. 

BASIC programming insight and detailed historical timeline by era and year

BASIC (Beginner’s All-purpose Symbolic Instruction Code) was designed to make computers accessible to non-technical users, revolutionising personal computing and software development. 

BASIC Historical Timeline

The Dartmouth Era (1964–1970s)

  • 1964: BASIC was created at Dartmouth College by John G. Kemeny and Thomas E. Kurtz. It first ran on 1 May 1964 on a GE-225 mainframe.
  • 1964: The Dartmouth Time-Sharing System (DTSS) was launched alongside BASIC, allowing multiple users to program simultaneously.
  • 1965: Added character string functionality and simplified mathematical support.
  • 1967: Approximately 2,000 Dartmouth students had learned to code in BASIC by this year.
  • Late 1960s: Hewlett-Packard launched the HP 2000 series, which ran a version of BASIC and brought the language to minicomputers. 

The Microcomputer Revolution (1975–1980s) 

  • 1975: Bill Gates and Paul Allen developed a BASIC interpreter for the MITS Altair 8800, leading to the founding of Microsoft.
  • 1976: Steve Wozniak wrote Integer BASIC for the Apple I, which later became a staple of the Apple II.
  • 1977: BASIC became the de facto standard for the “1977 Trinity” of home computers: the Apple II, Commodore PET, and TRS-80.
  • 1979: Atari BASIC was released for Atari 8-bit computers.
  • 1981: IBM PC launched with a BASIC interpreter in its firmware (ROM BASIC) and GW-BASIC for disk-based systems.
  • 1982: The BBC Micro launched with BBC BASIC, which introduced structured programming features like procedures and local variables to home users.
  • 1982: The Commodore 64 (and Sinclair ZX Spectrum) was released, eventually becoming the best-selling computer model, with BASIC as its primary user interface. 

Modern and Visual Era (1990s–Present)

  • 1991: Microsoft released Visual Basic, which introduced a graphical “drag-and-drop” interface for building Windows applications, revitalising the language for professional use.
  • 2001: Visual Basic .NET was released, fully integrating BASIC into the modern object-oriented .NET framework.
  • Modern Day: Various modern dialects exist, such as Xojo, FreeBASIC, and QB64, while legacy-style BASIC remains popular in the hobbyist “retro-computing” community. 

Key Insights into BASIC

  • Democratisation of Coding: Before BASIC, programming required knowledge of complex assembly or scientific languages like FORTRAN. BASIC used simple English commands like PRINT, GOTO, and IF...THEN to make coding accessible to everyone.
  • Immediate Feedback: Unlike “batch processing” where users waited hours for results, BASIC was designed for interactive use, providing immediate error messages and results.
  • Hardware Efficiency: Early BASIC versions were highly optimised to fit into the tiny memories (often as little as 4 KB) of 1970s microcomputers.
  • Cultural Impact: An entire generation of software engineers began by typing BASIC code into their home computers from hobbyist magazines.

BASIC (Beginners’ All-purpose Symbolic Instruction Code), first released in 1964, was designed to make computing accessible to non-scientists. While modern programming has evolved, the core technical insights and approaches remain the foundation for all software development. 

Technical Insights: The Building Blocks

Programs are constructed using universal building blocks that dictate how a machine processes data: 

  • Variables & Data Types: Containers that store values (e.g., integers, strings).
  • Control Flow (The Logic):
    • Sequence: The specific order in which instructions are executed.
    • Selection: Conditional “if-else” statements that determine the program’s path based on criteria.
    • Iteration (Loops): Repeating a section of code (e.g., FOR or WHILE loops) until a condition is met.
  • Functions & Subroutines: Blocks of reusable code designed to perform specific tasks, improving organization and readability.
  • Syntax: The “grammar” of a language (keywords, operators, punctuation) that must be followed for the machine to understand instructions. 

General Programming Approach

Mastering programming requires a systematic method for solving problems rather than just memorizing code. 

  1. Understand the Problem: Identify the necessary inputs, desired outputs, and any constraints before writing a single line of code.
  2. Design the Algorithm: Break the problem into smaller, manageable steps. Using flowcharts or pseudocode helps map out the logic without getting bogged down in syntax.
  3. Implementation: Translate your plan into the chosen language (e.g., Python, C++, or JavaScript).
  4. Test & Debug: Execute the code with sample data to ensure accuracy. Debugging is the process of identifying and fixing errors when the output doesn’t match expectations.
  5. Refine & Optimize: Improve the performance and maintainability of your code by reducing steps or using more efficient data structures.