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
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
Programming as Play
Friday, 17 July 2026
A Scorecard for the AI Age
More on Data Validation in Pydantic
Classical Reinforcement Learning and the Reward Signal
Back to LLM Basics - What is RLHF
RLHF is a core part of how large language models learn.
It stands for reinforcement learning with human feedback. Idea is you train models to align with human preferences.
A core input is data from human annotators as an input into the learning process.
The algorithm now widely used in RLHF was pioneered by OpenAI (InstructGPT). The idea is you align the model with human intent. Alignment with human intent is what makes the model (more) useful.
Tuesday, 14 July 2026
Document Intelligence Infrastructure
GPT-5.6 Sol - Preview
Sunday, 12 July 2026
Codex is now the ChatGPT App
Saturday, 11 July 2026
Reverse Debugging
History of .NET Core
The Debugger Class in .NET
The Debugger class in System.Diagnostics is implemented in Debugger.cs. Its purpose is to allow communication with the debugger.
This is the class that lets you do a "hard debug" but typing Debugger.Break(), which signals a breakpoint to an attached debugger.
Debugger.Launch() is similarly aggresive. It launches and attaches to a debugger to the process.
Friday, 10 July 2026
Python Debugging: "SSL Certificate Verification Failed"
AI - New Ideas Every Day
GitHub's Agentic Workflows in the Crosshairs of GitLost
Anthropic's Interpretability Research
This is journalled here. The goal is to understand how LLMs actually work internally.
Claude's "Access Consciousness"& Rise of the "J-Space"
Thursday, 9 July 2026
What is Pylance?
Pylance is the component that enables Visual Studio Code to provide IntelliSense for Python.
It is underpinned by Microsoft's Pyright type checker (open source static type checker for Python). Read more about Pyright from the official website.
Wednesday, 8 July 2026
Navigating OpenClaw Architecture
Tuesday, 7 July 2026
Data Rates Rule...OK!
External Dependencies Are the Root of All Evil
Open source software is great except when it isn't.
Update all the dependencies for a new cool software and older software (using older versions of those co-dependencies) suddenly breaks.
In Windows, we used to call it "DLL Hell" but it has its manifestations in Linux too.
Then it's a cycle of repair and debugging.
Debugging Python - Module Versions
Thursday, 25 June 2026
Introduction to VLSI Systems (Mead & Conway, 1978)
An early textbook on building semiconductor systems. A key learning was the scaling law: "as transistors grow entirely new classes of computation become feasible".
ApplicationData versus LocalApplicationData
Both refer to app-specific storage locations in Windows.
- ApplicationData - roaming profile data
- LocalApplicationData - local, machine-specific data
The Powerful System.Environment
Codex for Windows
Tuesday, 23 June 2026
LiteLLM - Gateway to 100+ LLMs
Sunday, 21 June 2026
Cut and Paste Metadata in Word
This metadata can conflict with the document's own metadata - creating inconsistent results for example in spell checking, within the same document.
Windows Voice Control
Some options:
- Cortana (deprecated, memory heavy)
- Voice Access (struggles to isolate the "command voice" when there is background noise)
Docking in Windows is a Superpower
Docking was introduced in Windows 7 as Aero Snap. In Windows 11, Snap Layouts and Snap Groups have been added.
Some basic tips - dock one File Explorer on top of another.
- Windows Key and up - for explorer 1
- Windows Key and down - for explorer 2
Tuesday, 16 June 2026
Keeping Ubuntu Up to Date
- The /etc directory is your friend in all this
- cat /etc/os-release - needs to be done before and after to check the release has been complete
- You should upgrade regularly - not least because you need to get the latest security updates
- sudo apt update
- sudo apt full-upgrade
- sudo do-release upgrade
Process Based Automation
Monday, 15 June 2026
Latest Haskell Compilers
What is IFNDR in C++ And Why is it Important
Thursday, 11 June 2026
RDAP is the new whois
Tuesday, 9 June 2026
Profiles in C++
Monday, 8 June 2026
What is a WEBP file?
Thursday, 4 June 2026
C/C++ on VS Code
gcc on Windows
The C ABI
The C ABI refers to the C Application Binary Interface.
This will differ depending on platform.
Platform specific ABI specifications include:
Very important for C/C++ and assembly programmers.
C++ Value Categories
Flags for cl.exe
Wednesday, 3 June 2026
The Return of C++
The Microsoft C/C++ Optimizing Compiler is making a comeback.
Building an EXE with a decent UI is as easy as this two step process:
1. Opening "Developer Command Prompt" in Windows (hit windows key and type "Developer..")
2. cl /EHsc mySuperUI user32.lib gdi32.lib
Bye bye heavy frameworks which rely on Windows API functions anyway.
High Touch Vs Low Touch Human in the Loop
AI Obsolesence
Tuesday, 2 June 2026
JetBrains Releases Mellum2
JetBrains (the home of IntelliJ and PyCharm) has released its Mellum2 Mixture-of-Experts coding model, of 12B parameters.
The model is available under the Apache 2.0 license.
The model has been published on Hugging Face and can be run locally.
A mixture-of-experts model works via a "gating network" which delegates work to smaller neural networks, the "experts", optimising overall performance. This model also leads to "sparse activation" - which means of all the possible parameters utilised by the model, only a subset are used per input.
Training an MoE model requires training the gating network and training the various "experts".
Monday, 1 June 2026
OpenCode and GLM Models
Thursday, 28 May 2026
MESI and MOESI
MESI and MOESI are cache coherency protocols to ensure consistent data across CPU caches. The terms are abbreviations for the various states of the cache.
Tuesday, 26 May 2026
Windows 11 Taskbar Icons Resize Dynamically
If you open too many applications, watch those icons shrink in your taskbar.
What is DNSSEC?
Working with Word Templates
Word templates offer a good starting point for documents you may be required to mass-produce e.g. a document explaining IT strategy or architecture for multiple organizations. However they may not work well out-of-the-box.
Things to look out for:
1. Word templates may do funny stuff with margins. This is to create interesting and effective custom alignments - particularly for cover sheets. However, you may want to use more standard margins for the broader document if you need a more traditional, essay-style flow for your document. For this go to Layout and explore the various Margins, ranging from Narrow, Moderate, Wide up to Custom Margins.
2.Colour schemes. May be garish. Decide if you want to tone down the schemes for ease of printing. Or perhaps go the other way and tone up for maximum impact.
In short, expect to do a great deal of customisation, even if you have a standard template ready-to-run.
Who's that MAC?
Basics of NAT
What is iptables?
Convert a Word Doc into A Presentation (Ad Hoc)
A Word doc can be brought to life as a presentation quite easily.
Go to View in the Ribbon.
Under Page Movement select Side to Side (this changes the display so you can see the flow of the document - it is not strictly needed - but helpful to start visualising flow).
Now under Views, you will most likely see "Print Layout" selected. Select instead "Read Layout".
This will start a presentation-mode document presentation.
(There is also a third layout; called Web Layout, which effectively turns your document into a web page - albeit a very messy one in all probability).
Friday, 22 May 2026
The Weird World of OCSP Revocation Checks (Certificate Status)
whois under the hood (just basic TCP)
The whois protocol is a very basic TCP-based query-response protocol that gives information on domain names. Unfortunately, it is not installed by default in cmd.exe but is available in WSL.
It works by opening a TCP connection (SYN, SYN+ACK), query sent, response sent and a close (FIN, FIN)- very basic indeed. It has no mechanism for indicating character set used, and there has been no effort to support internationalisation in that respect. Historically the predominant encoding used has been US-ASCII.
It has no security provisions. Mechanisms for access control, integrity and confidentiality are excluded.
rdap is a modern alternative to whois. RDAP stands for Registration Data Access Protocol.
Thursday, 21 May 2026
jsDelvr - Free CDN for Open Source Projects
jsDelvr is a free CDN for open source projects ("fast, reliable, automated"). It is optimised for JS and ESM delivery (not "Enterprise Service Delivery" in this case but ECMAScript modules).
Monday, 18 May 2026
The HTTP 400 Error
Friday, 8 May 2026
Debugging Web Access Issues with Microsoft Edge
Why Pre Shared Keys are not Wifi Passwords
Tuesday, 5 May 2026
Protecting RAM
Microsoft's GitHub
IPv4 vs IPv6
Purpose of IP Addresses and the Problem IPv6 Solves
An IP address (Internet Protocol address) is a numeric label to identify a network interface of a computer or network node participating in a computer network using the relevant IP version.
IPv6 was created to tackle the problem of IPv4 exhaustion.
IPv6 uses 128 bit addresses, yielding an address space of 2^128 possible addresses. This contrasts massively with IPv4 which is only 32 bits!!
Why is there no Planned IPv7?
The address space of IPv6 is so large that address exhaustion is not a foreseen possibility, and hence no IPv7 is planned at present.
What transition technologies are in play to help move to IPv6?
There are some transition technologies e.g. NAT64, aimed at easing the transition from IPv4 to IPv6.
Apart from Bigger Address Space, what else does IPv6 Bring to the Table?
Apart from bigger size, IPv6 also adds some interesting new features. Learn these.
Thursday, 30 April 2026
Understanding localhost
More on the Common Information Model
We have previously mentioned the CIM, or Common Information Model, in the context of systems management standards. It is effectively an object-oriented schema for classifying objects pertaining to systems management.
An example schema can be found here (note: there are multiple versions of the schema).
Notes from Microsoft Learn on this topic can be found in Microsoft's WMI SDK notes here.
From an organization perspective, the most important aspect is consistent adoption of a sufficiently descriptive data model, rather than the details of the data modelling itself.
Wednesday, 29 April 2026
The Mesh Network
The LM Link Feature in LM Studio
LM Link is a way to connect devices on which LM Studio is installed; allowing you to load models on remote devices as if they were local. Chats remain local and the only thing loaded on LM Studio's backend servers are your device list. In a way, it's model-connectivity-as-a-service using your own hardware.
LM Link is implemented on top of Tailscale VPN.
Monday, 27 April 2026
WinJoe, Was ist Delta Format? Sitzt es oben auf Parquet?
Delta format (often called Delta Lake) is an open-source data storage layer originally developed by Databricks.
It sits on top of Apache Parquet and enhances it with database‑like guarantees and metadata management.
Delta is designed specifically for large-scale data engineering where reliability, consistency, and performance are essential - according to the creators, Databricks,
Big Data's New Vacation Home - The Lakehouse; Microsoft's Approach
Friday, 24 April 2026
Troubleshooting WSL2 Memory Hogging
WSL2 hogs memory and doesn't release it even when all consoles are closed. Do wsl --shutdown to free up memory.
Why does TypeScript feel a bit C-Sharpy?
TypeScript was created by Anders Hejlsberg, a Danish software engineer, in 2012. He formerly created C# around the year 2000. He is also known for Turbo Pascal and Delphi, both extraordinary products in their time. Deservedly he is a Microsoft Technical Fellow (a list of whom appear here).
Types in TypeScript
- boolean
- number (which represents integers and floating points)
- string
- BigInt (ES2020+) to represent whole numbers larger than 2^53 -1, and
- symbol to create unique identifiers
Node Version Manager - Strongly Recommended
The Node version manager, nvm, is strongly recommended to manage your version of Node.js and npm.
It also allows switching between various versions of Node (Nodejs and npm) for testing purposes.
As per official docs, nvm is designed to be installed per-user and invoked per-shell. It works on "any POSIX compliant shell" - including on Unix, macOS and WSL.
Once you install nvm (by wget'ing the installation shell script and piping it to bash) you can restart WSL and start using nvm.
Some nvm commands to know:
nvm install node # install latest version
nvm install --lts # install latest LTS version
nvm use node # switches to latest version
nvm use <version> #switch to a specific version
To see all Node versions, do nvm ls. Node uses semantic versioning, following the pattern MAJOR.MINOR.PATCH.
nvm ls shows the version active in shell in blue, and installed versions in green. Yellow are versions referenced by aliases but not installed.