Communication, Vision, Wisdom!

Software products are very diverse and thus a variety of different Software Architectures are used. Ultimately the success of a software project and the acceptance of its architecture as ‘good’ is dependent mainly on:

  1. In-service experience of the product and its architecture.
  2. The Software Architect.

In Software Engineering we steal the term ‘Architecture’ from the building industry, and I think it is important to remember that the building industry is significantly older, older than even the concept of software. People have been building for millennia, where as software has only been around for a few decades.

As you can see…


Dynamic, scan-on-demand, GLR parsing, when a regular expression is just not enough

One purpose of AGL is to provide support for rapid development of small scale DSLs, covering the use cases when a regular expression is not enough, but a parser generator is more than you want.

If you want a parser for a full blown programming language capable of handling 1000s and millions of lines of code, then this is not for you. Try ANTLR. Xtext, Yacc, etc.

However, if you want a parser that meets the following requirements, AGL is what you want.

  1. The parser should be built at runtime (dynamically).
    i.e. …


When using RegEx is just not enough

Text input is a major part of many web applications. In many cases, the text needs to be validated. That is to say that the input is not valid for any text, but rather for text that conforms to specific rules.

In simple situations a Regular Expression can be used to validate the text, and by using text editors such as Ace or Monaco, feedback can be given to the user about the validity of the text, via error markers and colouring the text.

Both Ace and Monaco (amongst other text editors for the web) provide mechanisms for adding “new…


A poem about our creators relationship with man over the Old Testament period

Eternity abounds with God — Father, Son and Holy Ghost
“Relationship between us three is great”, He states,
“This is so good, why don’t we share and spread our love
Let us create a universe, worlds, and men to be our mates.”

The word is spoken, breath is breathed and all around is formed
In to it all God puts Himself and His creative spark of life
Light and dark, Heaven and earth, water land and sky
To rule it all, and with free choice, Man with his fantastic wife.

Adam and Eve, the first to be, live in peace…


Overcoming the integration issues

Kotlin is one of many new languages that target the JVM. However, one thing I have found that makes Kotlin especially useful is that it targets multiple platforms, not just the JVM.

In the context of web applications this Multiplatform feature of Kotlin enables us to write code once, in Kotlin, and then use that code on both a JVM backend and a JavaScript frontend. This is particularly useful for passing complex data structures between a frontend browser and a backend server.

This article describes the problems I encountered whilst integrating Kotlin generated modules with a TypeScript browser application, including…


The right business decisions are based on up to date and accurate data

Business leaders need to make decisions. In many situations it can be difficult to be sure whether or not the information, on which a decision is based, is accurate or fresh. However, with today’s data integration technology it is perfectly possible to have access to the latest accurate and up-to-date data.

The Problem

Projects create data. Lots and lots of information. Mostly this information is created in order to create a historical record and/or communicate something between team members and other stakeholders.

Unlike former times, in the World Wide Web serviced world of today most of this information is stored somewhere “in…

Dr. David H Akehurst

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store