I Bless Thy Command Shell My Child: + {az account list --output table}
Sunday, 25 October 2026
Cascading Style Sheets in HTML
ssh -T
Recap on ssh, what it is and why it exists
Mastering ssh is essential to connecting into remote servers.
ssh is used to connect to a remote server using the syntax:
ssh [username]@[hostname or IP address]
Explanation of -T flag, and why it makes sense for testing GitHub logins
When you do:
ssh -T
it means do not allocate a terminal (TTY), so you are asking to connect, but without the interactive shell.
Connecting to some external services like GitHub operate in such a way that they do not provide shell access. You can still check/test SSH authentication:
ssh -T git@github.com
GitHub should respond with text like:
Hi your_username! You've successfully authenticated, but GitHub does not provide shell access.
This proves your SSH key was accepted , GitHub recognised your account, future Git operations over SSH should work.
Some Technical Notes on TCP Ports for ssh
Technical note 1: Port 22 is the default TCP port used by SSH for encrypted remote login, command execution and file transfer, as registered by IANA and used by all major SSH implementations.
Technical note 2: IANA - Internet Assigned Numbers Authority
Design Patterns in the Cloud
Sidecar Pattern
Thursday, 22 October 2026
MSIX Architecture
The Azure Tenant Concept
Wednesday, 21 October 2026
Useful Azure Shell Commands
az account list --output table
will give you a list of subscriptions (the table command line flag tells the shell to convert scraggly-looking JSON to a smarter-looking tabular format). Subscriptions will display their name, cloud name (e.g. AzureCloud), Subscription ID, Tenant ID, State (Enabled?) and the IsDefault flag.
Copilot Integrated into Azure (Portal)
Tuesday, 20 October 2026
Cloudflare on RAG - Hello AutoRAG
ss (socket statistics) versus netstat
netstat is used in Windows with roots in Unix. In the Linux world, ss is more used than netstat.
ss displays "socket statistics" and is used to "dump socket statistics" as per its description.
Unlike netstat, ss talks to the Linux kernel directly.
Used without arguments, ss displays non-listening connections - so an nginx server simply listening for connections would not appear in the output, but an established connection (TCP for example) would appear.
To display listening connections also, do ss -l.
ss -lu
The Markdown Guide
openssl rand
Monday, 19 October 2026
From "process containers" to control groups
Read the Kubernetes (K8s) Source Code
Saturday, 17 October 2026
What Linux version runs in your WSL shell?
lsb_release -a
LSB modules are components defined by the Linux Standard Base. They specify standard libraries, commands and runtime behaviours - ensuring compatibility across Linux distros. The LSB project is led by the Linux Foundation.
Tuesday, 13 October 2026
Does Devin Do The Trick
Sunday, 11 October 2026
Control-Shift-Escape
Friday, 9 October 2026
Protocol Downgrades
What is HSTS?
Sunday, 4 October 2026
Internet Gateways (IGWs) In Depth
All WinJoes know what an internet gateway is. Many affectionally refer to these as IGWs. But few know what these gateways do in amazing depth.
We aim to bridge that gap and confer, dare we say it, in-depth knowledge. We educate the new generation of "gateway gurus", or "IGW gurus".
So one question for you - NAT. How do IGWs interact with NATs - if at all? Does this differ in AWS versus other clouds? Exercise for the reader.
Subnets are Routing Boundaries not Security Boundaries
- Public subnet - subnet has a direct route to an internet gateway. Resources in the public subnet can access the public internet.
- Private subnet - subnet has NO direct route to an internet gateway. Resources in the subnet require a NAT device to access the public internet
- VPN-only subnet - the subnet has a route to a Site-to-Site VPN connection through virtual private gateway. The subnet has no route to an internet gateway
- Isolated subnet - not connected to the internet - in fact, no routes to destination outside its VPC
- EVS subnet - a type of subnet created by Amazon EVS (very specific to VMware)
Choosing Network Size in AWS - Forward Slash Notation
Python secrets module
Friday, 2 October 2026
The "HP Book's" Take on Parallel Processing
Computer Architecture: A Quantitative Approach
Making Programs Fast on Modern CPUs
Tuesday, 29 September 2026
Apache Airflow
Incautious Experiments of the AI Labs
Sunday, 27 September 2026
P99 Latency and its Significance
P99 latency (or 99th percentile response time) - refers to the 99th percentile of request response times - in other words, the "slowest 1% of requests".
Friday, 25 September 2026
Programming "In the Large"
The Browser As Sandbox
Thursday, 24 September 2026
One Billion Bytes - It's Not "Big Data"
Code 43
Code 43 means Windows disabled a device because its firmware reported a fault.
You may see it presented thus.
"Windows has stopped this device because it has reported problems (Code 43)".
In fact, the device in question may be perfectly fine.
Tuesday, 22 September 2026
Ralph Loops
Friday, 18 September 2026
What Scale is Your Big Data
terabytes (TB) - 1000 gigabytes (10^12 bytes) - used in consumer storage
petabytes (PB) - 10^15 bytes or 1000 TB
exabytes (EB) - 10^18 bytes or 1000 PB
Zettabytes and yottabytes are even bigger measures of memory.
Friday, 11 September 2026
Marker Icon in Microsoft Word
Think of Programming as a Martial Art
Thursday, 10 September 2026
Databricks Apache Spark-Oriented Origins
Literacy is a Superpower in Software Engineering
Literacy is literally a superpower in software engineering. It is the reason so many good software engineers are avid readers and definitely not just of technical tomes, but enjoy all sorts of fiction (though science fiction is a particularly popular genre for obvious reasons).
Structured Streaming in Spark
Tuesday, 8 September 2026
Scala vs Java - The Duel (Both JVM languages)
Mechanics of RDDs - Python Examples
RDD - Regen vs Replication
RDDs are not replicated the way databases typically are replicated. Instead, the transformations converting data between states are memorised.
To make this regeneration efficient, only partitions on lost nodes are recomputed, and assigned to working nodes.
Note: some lineage chains can be very long. In these cases, Spark can checkpoint an RDD to stable storage (HDFS/S3). This prevents "ruanway recomputation".
The Different Definitions of Ground Truth
Monday, 7 September 2026
Why Spark Works - Secrets of its Parallel Processing Powers
Learning Spark from the Latest Docs
Saturday, 5 September 2026
Lean - Can we Trust the Trust Engine?
Friday, 4 September 2026
XSS from an OWASP Perspective
Fermat's Last Theorem Proved in Lean 4: Sept 4, 2026
Read the HTML overview from GitHub - rendered via https://htmlpreview.github.io.
A rival attempt to achieve the same outcome has ended in admitted defeat.
Almost 30K theorems were traversed on the path to the proof. The theorem statement is as follows:
theorem fermat_last_theorem (n : â„•) (hn : 3 ≤ n) (a b c : â„•) (ha : 0 < a) (hb : 0 < b) (hc : 0 < c) : a ^ n + b ^ n ≠ c ^ n
GitHub only shows raw HTML source (it does not render these in case of XSS and malicious scripts). HTML is always displayed as raw text.
Thursday, 3 September 2026
InfoSec Standards - The ISO Story
Monday, 17 August 2026
Codex Terra Light 5.6 on the ChatGPT Application
Sunday, 16 August 2026
The .vs hidden directory
Visual Studio creates a .vs directory at the root of your solution. It is used to store solution specific settings and temporary data to help manage the state of your development environment. Fine to .gitignore.
However one interesting directory you may find inside is a slnx file.
A slnx file is the XML version of the traditional sln file. However what is in .vs are supporting files for the slnx file format rather than the file itself.
Service Status Pages
Visual Studio 2026 August Release Notes
MSVS runs on monthly feature updates.
Saturday, 15 August 2026
EC2 instances have different specializations - choose type and size
AWS Compute uses Multi-Tenancy
EC2 instances are virtual machines (VMs). VMs share an underlying physical machine with other instances (this is called multi-tenancy). This is enabled by software called a hypervisor. VMs are isolated but share resources.
When you provision an EC2 instance, you can choose the operating system as Windows or Linux. You can provision thousands of EC2 instances on demand. They are resizable so you can start small and then give your instance(s) more memory and CPU. This is the "elastic" nature of EC2 and is known as vertically scaling an instance. You can also control networking in EC2. Essentially you can choose what requests get to your server.
Virtualization is not a new concept; but AWS makes it more convenient to acquire servers via its Compute-as-a-Service model.
Compute Conceptualized in Terms of Power
iPhone Low Data Mode Explained
Some Windows users also have iPhones and need to understand iPhone settings and usage. In this spirit we deep dive Low Data Mode on the iPhone. This can be a good option when travelling.
Low Data Mode is a Data Roaming setting.
Settings -> Mobile Service -> Mobile Data Options -> Data Mode -> Low Data Mode
Other options in this category are Allow More Data on 5G and Standard. Standard allows automatic updates and background tasks on mobile data, but limits video and FaceTime quality.
Monday, 10 August 2026
VPS Errors on Random Websites
Suggestive of problems with virtual private servers (a virtual machine hosted in a DC, with a dedicated operating system- typically Linux or Windows, root/admin acces and the ability to run websites, databases, APIs or background services).
Sunday, 9 August 2026
RAG with Pinecone and Chroma
Pinecone (pinecone.io) is "the knowledge engine for agents" - aka. a vector database for RAG pipelines.
Chroma is open source search infra for AI - also built on vector database technology.
Prompt Optimization - Worth the Investment
Generative Models - GANs/VAEs and Diffusion Models - O My
GANs are obviously generative adversarial networks.
- Developed by Ian Goodfellow and colleagues in June 2014
- In this construct, two neural networks compete with each other in the form of a zero-sum game, where one agent's again is the other agent's loss
- The concept is that competition forces both to get better
- The game is to provide high realism output
- They are used where you need hi-fidelity synthetic data, realistic imagery
- They are not the dominant model for consumer generative AI
- The theory behind GANs is an interesting application of probability spaces
Diffusion models.
- Class of latent variable generative models
- Based on diffusion processes in applied probability
- The goal of the model is the learn the diffusion process that underpin an image (strange concept in itself, and one that puts this technique in the realm of latent variable generative models)
- Two components - the forward diffusion process and the reverse sampling process
- Simple example of a diffusion process is ink dropped in water, droplets diffuse through the water
- One example application is denoising images (where image is blurred with Gaussian noise)
- Stable Diffusion and DALL-E are diffusion based image generators
VAEs are variational auto-encoders
- A variational auto-encoder (VAE) is an artificial neural network introduced by Kingma and Welling in 2013
- It is part of the families of probabilistic graphical models and variational Bayesian methods
** classes of model **
Latent variable generative models.
- Statistical model that relates a set of observable variables (also called manifest variables, indicators) to a set of latent variables
- Latent variables are those that can be observed /inferred only via a mathematical model
- They may correspond to aspects of physical reality
- Earliest reference: Francis Bacon, Novum Organum
- It may reduce the dimensionality of the data
- Form of artificial neural network.
- Used to learn efficient codings of unlabeled data (unsupervised learning)
- An autoencoder learns two things:
- Encoding function - transforms the input data
- Decoding function - that recreates the input data from the encoding/encoded representation
- Autoencoder learns an efficient representation (encoding) for a set of data, typically for dimensionality reduction, to generate lower dimensional embeddings for subsequent use by machine learning algorithms
- Example: regularized auto-encoder (aka sparse, denoising and contractive autoencoders)
- Example: variational auto-encoder (used for generative applications)
Saturday, 8 August 2026
xcopy still works
The Codex Incompleteness Theorem
OAuth2 - Read the RFC
Entire
Statistical Similarity
Thursday, 6 August 2026
Time Synchronization in Distributed Systems - A Different Take
Distributed systems employ a lot of synchronization - data synchronization (get all nodes consistent on data) as well as time synchronization (so every node has the same view of time).
Time synchronization can be achieved via protocols like NTP and PTP (the latter is precision time protocol - for applications like high frequency trading), but also logical systems like Lamport timestamps which order events without relying on physical time.
Lamport timestamps are a logical clock mechanism to capture chronological and causal relationships in a distributed system. Leslie Lamport introduce this as far back as 1978.
A variation of logical clock known as a vector clock is used in a variety of distributed database systems.
Tuesday, 4 August 2026
Revisiting Refactoring -> Purpose - "Confidence in Code"
Sunday, 2 August 2026
A Note on LSTM
LSTM, or long short term memory, seemingly paradoxically named, was co-invented by German computer scientist Sepp Hochreiter, who incubated it in his 1991 diploma thesis leading to its main publication in 1997.
LSTM addresses the problem of numerical instability in training recurrent neural networks (RNNs) that prevent them from learning long sequences (the so-called vanishing gradient problem).
In 2007, he and others applied LSTM, optimizing the architecture, to very fast protein homology detection without requiring sequence alignment.
Protein homology detection is the process of identifying whether two proteins share a common evolutionary origin - one of the core problems in computational biology.
Homology implies shared structure and shared function.
Saturday, 1 August 2026
Agentic Coding, IDE Debugging
You've built your software agentically. Now you want to (need to) debug it in an IDE.
You may need to add some extra settings.
OpenAI's Astra Solves More Maths Problems
Defensive Perl
- Switch warnings on - use the minus-w command line flag - #! perl -w
- Learn and use perlpod - it looks a bit like this at the start of your file =head1 NAME myscript =cut
- Always use strict; at the start of your program (this pragma restricts expressions that are hard to debug)
- Qualify your variables with type prefixes (similar to "Hungarian" notation) e.g. my $sHeader for strings, my @aCodes for arrays, my %hCodesToDescriptors, and appropriate equivalents for common custom types
How Imports Work in Python
The syntax for import is as follows (keywords in quotes):
"import" module [ "as" identifier ]
There is also a variation to use when testing proposed changes to Python:
"from " "__future__" "import" feature [ "as" identifier ]
The first thing import does is find an load the module. It then initialises the module.
Frozen Frames when Debugging Python
- code is compiled C-extension code (e.g. importlib, asyncio, threading internals)
- the debugger cannot step in or modify them
- they are part of Python's frozen importlib bootstrap
Friday, 31 July 2026
Understanding HTTP State Management
Understanding HTTP Redirects
PyCharm
PyCharm is an IDE for Python development from JetBrains. Copilot recommends this for large projects.
However to connect to WSL projects you need to have the JetBrains gateway installed.
Know your requirements well to understand if you really need such an overwhelming IDE.
Epigrams on Programming by Perlis: Seek Symmetry Everywhere
Use of Mathematical Induction in Proofs of Program Correctness
Thursday, 30 July 2026
Mathematics in VS Code with Lean
kdb+ - An Intro
kdb+ is a high-performance time series database and analytics engine powered by a vector language q. It has been in existence for over 30 years.
It uses columnar storage for efficient querying. For example, if you have temperature readings, taken at 5 minute intervals, you can pull out the whole vector of temperatures in a single query (you are pulling the full time series vector as opposed to a reading from a time series).
If you have corresponding humidity readings, you can do a similar query.
This avoids reading entire rows even if only one field is needed. Typical relational databases query cross-sectionally.
Wednesday, 29 July 2026
The Lean FRO Year 3 Roadmap
The Draw Tab in Word
Theorem Proving in Lean - What Makes Dependent Type Theory Dependent?
Tuesday, 28 July 2026
Zulip
Lean Ecosystem Decoded
elan - package manager for Lean. elan can be used inside VS code and will manage all versions of Lean on your system
Lake - the standard project structure and build system used in Lean
mathlib4 - the math library for LEAN
Friday, 24 July 2026
Theorem Proving in Lean - Basics of Dependent Type Theory
Theorem Proving in Lean - Three Definitions to Get Started
This is an abridged account of Theorem Proving in Lean capturing only the SSPs, or super salient points.
Here are some three starting definitions essential for understanding this topic:
Formal verification - using logical and computational methods to establish claims that are expressed in precise mathematical terms. Example claims - mathematical theorem /hypothesis, claims that pieces of hardware or software, network protocols, security protocols - do what they say they actually do. The process is "describe your system in mathematical terms" ,then use "theorem proving" to establish truth.
Automated theorem proving - focused on "finding". The "ATP" toolkit includes: resolution theorem provers, tableau theorem provers, fast satisfiability solvers to provide means of establishing validity of formulas in propositional and first-order logic. Computer algebra systems may be used in concert to carry out mathematical computations.
Automated reasoning - differs; not as "cast iron" as theorem proving. Automated reasoning is a superset of automated theorem proving, which includes imprecise techniques such as heuristic search and fuzzy logic.
Thursday, 23 July 2026
The Lean Programming Language
The Lean Programming language is being used to create a new proof of Fermat's Last Theorem. Some lecture notes from London's Imperial College set the scene.
Theoretical Foundation (DTT)
Dependent type theory (DTT) is the theoretical foundation of Lean (the link provided takes you into the Lean manual and gives a brief intro to the theory) which bears "categorical semantics".
Getting Started with Lean
- The best way to get started in Lean is to read Functional Programming in Lean.
- The next step is to read Theorem Proving in Lean.
Who created Lean
Lean was created by Brazilian computer scientist Leonardo de Moura, in 2013, when he worked in Microsoft Research (where he worked for 16 years).
Leonardo is now Senior Principal Applied Scientist at AWS, where he works in the Automated Reasoning Group. This group does a lot of work in Provable Security and Software Assurance.
Lean is available under the Apache 2.0 license.
ngrams, ngrams everywhere
An n-gram is a continuous sequence of n items - words, letters or symbols - from text or speech, used to analyze patterns and predict sequences in language.
Suppose we choose the items of our n-gram as "words". We then have the following taxonomy:
- unigram - consisting of a single word e.g. design
- bigram - consisting of two words e.g. design experiments
- trigram - e.g. design of experiments
Wednesday, 22 July 2026
mTLS - building machine to machine trust
What is mTLS?
mTLS is also known as mutual TLS, after the ubiquitous security protocol. It is used in environments where machine-to-machine trust really matters.
Where in general is mTLS used? Where specifically is mTLS used? Did someone say "Kubernetes service mesh"? I think so!
It's not generally used for public websites, but inside serious enterprise systems, it's a standard way to guarantee only authenticated services speak to each other.
Examples in modern infrastructure include: Kubernetes service meshes (Istio, Linkerd), API gateways, internal microservices, banking and trading and zero-trust networks.
Root Certificates
Certificate Validation with Certifi in Python
Monday, 20 July 2026
Parity between Azure and AWS
A Nod to AWS EKS
AWS EKS (Elastic Kubernetes Service) is a fully managed Kubernetes service provided by AWS.
EKS simplifies deployment and management of containerized applications using Kubernetes. Users need not manage the Kubernetes control plane or nodes manually.
Jargon warning:
The Kubernetes control plane is the central management utility of a Kubernetes cluster.
It maintains cluster state, making decisions about the cluster and responding to cluster events. It is made up of several key components that work together.
AWS basically runs the control plane for you.
There are a number of use cases suggested by AWS.
Copliot Studio and Cost Analysis
Saturday, 18 July 2026
Revisiting Port 443
Visual Studio Community July 2026 Release
See the status of GitHub Copilot from the Visual Studio IDE. Built-in .NET and Azure skills are introduced.
Agent Skills Introduced by Anthropic
The PEM Format
Busting Certificate Issues in Ubuntu
Suppose you are running a data pipeline on Linux/Ubuntu that consumes data from the web. You get a RuntimeError: "SSL certificate verification failed". What do you investigate?
Verifying the ca-certificates package and updating /etc/ssl/certs
sudo apt-get install -y ca-certificates
installs the ca-certificates package (the -y means "say yes to all prompts").
This software processes certificates in PEM format.
With this installed, new certificates can be added to /usr/local/share/ca-certificates.
The trust store can then be updated with:
sudo update-ca-certificates
You can then check if the certificate has been added.
ls /etc/ssl/certs | grep local-ca