🤖 AI

Artificial Intelligence, machine learning, LLMs, neural networks, and AI models

93 posts in this category

All AI Posts

Spec-Driven AI Tools (Part 1)
Spec-Driven AI Tools (Part 1)
Neil Haddley • September 29, 2026

Running OpenSpec's full propose-apply-sync-archive cycle twice, for a Programmer Mode and a Statistics Mode on a plain-JS calculator, to see whether its delta specs really do become a living, accurate source of truth

AI
openspecspec-driven-developmentclaude-code
DeepSeek Harness (Part 2)
DeepSeek Harness (Part 2)
Neil Haddley • September 27, 2026

Checking whether DeepSeek Harness's everything-is-a-plugin claim extends to the model itself: pointing it at a local Ollama-served model through a custom OpenAI-compatible provider, with no DeepSeek API key at all

AI
deepseekollamaai-agent
Agent Orchestration (Part 3)
Agent Orchestration (Part 3)
Neil Haddley • September 24, 2026

Finding a real agent through a2a-registry.org, then orchestrating it from a LangGraph graph with a local Ollama model: discover the Agent Card, delegate over A2A, verify the reply against the official source, and pause for human approval

AI
a2alanggraphollama
Agent Orchestration (Part 2)
Agent Orchestration (Part 2)
Neil Haddley • September 24, 2026

What the A2A (Agent2Agent) protocol is, how it differs from MCP, and running the official Python helloworld sample end to end — a real agent server, agent card discovery, raw JSON-RPC calls, and both streaming and non-streaming client requests

AI
a2aagent2agentmulti-agent
Agent Orchestration (Part 1)
Agent Orchestration (Part 1)
Neil Haddley • September 24, 2026

Comparing three LangChain multi-agent patterns, subagents, skills and handoffs, on eleven conversations that need a clarifying question or a follow-up, plus a reproducible tool-call crash traced to one specific structural cause

AI
agent-orchestrationsubagentslangchain
Model Context Protocol (Part 4)
Model Context Protocol (Part 4)
Neil Haddley • September 19, 2026

Connecting Claude Code to Business Central's built-in MCP server

Business CentralAI
mcpentra-idoauth
Model Context Protocol (Part 3)
Model Context Protocol (Part 3)
Neil Haddley • September 18, 2026

Building a Retrieval-Augmented Generation stack and finally exposing the search function to Claude Code over MCP

AI
ragollamapgvector
Distillation (Part 2)
Distillation (Part 2)
Neil Haddley • September 15, 2026

Turning a pretrained base model into a chat model with LoRA on a 64GB Mac Studio, then testing whether a second teacher, DeepSeek, produces a better one than GPT-3.5 did

AI
llamaloramlx
Distillation (Part 1)
Distillation (Part 1)
Neil Haddley • September 13, 2026

How DeepSeek stands accused of breaking OpenAI's terms of service.

AI
gptmlxknowledge-distillation
MiniGPT (Part 6)
MiniGPT (Part 6)
Neil Haddley • September 10, 2026

Sliding-window attention in MLX — why a naive window mask saves nothing, how chunked attention makes it O(T), and where full attention runs out of room on a 64 GB Mac

AI
sliding-window-attentionlong-contextmlx
MiniGPT (Part 5)
MiniGPT (Part 5)
Neil Haddley • September 10, 2026

Knowledge-distillation pre-training at toy scale — training a small MiniGPT against a larger model's token probabilities, why the teacher cannot be Qwen3 or Llama, and the finding that a 33M model that knows the domain beats a 1.5B model that does not

AI
knowledge-distillationllamalogit-distillation
MiniGPT (Part 4)
MiniGPT (Part 4)
Neil Haddley • September 9, 2026

Swapping MiniGPT's 2017 Transformer block for the modern one — RMSNorm, rotary position embeddings, SwiGLU, and grouped-query attention — in MLX, then ablating each change to see which one actually matters

AI
llamaropegrouped-query-attention
MiniGPT (Part 3)
MiniGPT (Part 3)
Neil Haddley • September 9, 2026

Porting the MiniGPT model and training loop from PyTorch to Apple's MLX — unified memory, lazy evaluation, mx.compile, and fused attention — then running both on the same M1 Max and comparing tokens per second and peak memory

AI
mlxapple-siliconunified-memory
MiniGPT (Part 2)
MiniGPT (Part 2)
Neil Haddley • September 9, 2026

Replacing MiniGPT's 65-character tokeniser with a real byte-level BPE — borrowing GPT-2's, training an 8k one, and comparing all three on TinyStories in bits per byte on an Apple M1 Max

AI
tokenizationbyte-pair-encodingtinystories
MiniGPT (Part 1)
MiniGPT (Part 1)
Neil Haddley • September 9, 2026

Running Jibin Joseph's MiniGPT notebook locally on an Apple M1 Max — rebuilding a GPT-style character-level language model from first principles and reproducing the Tiny Shakespeare results

AI
gpttransformerspytorch
Claude Code (Part 15)
Claude Code (Part 15)
Neil Haddley • September 4, 2026

Using Claude Code to detect, program, and debug a Arduino TinkerKit LCD Module

AIIOT
claude-codearduinotinkerkit
Agentic AI for Professionals (Part 4)
Agentic AI for Professionals (Part 4)
Neil Haddley • August 26, 2026

Building a Brief Builder feature into nsw-legal-research-assistant, inspired by Thomson Reuters CoCounsel Legal's newly announced Brief Builder — intake, candid argument proposals, a plain-English NSW Caselaw search a non-specialist would actually type, citation-graph leads pulled straight out of a judgment's own text, and a fourth argument grounded on two authorities it never had to fetch itself

AI
brief-buildercitation-followingcitation-graph
DeepSeek Harness (Part 1)
DeepSeek Harness (Part 1)
Neil Haddley • August 23, 2026

Giving DeepSeek Harness a product requirements document and a product design document for a faithful browser recreation of the 1978 Taito Space Invaders, and watching it build the game and then verify its own work

AI
deepseekai-agentagentic-coding
Agentic AI for Professionals (Part 3)
Agentic AI for Professionals (Part 3)
Neil Haddley • August 19, 2026

Giving nsw-legal-research-assistant a real interface and an MCP server exposing the same skill to Claude Code, then running it through the same demo Thomson Reuters used to introduce CoCounsel, live, with real output — grounded Q&A, pinpoint citations, Review, and skill-chaining drafting

AI
ragmcpdocker
Agentic AI for Professionals (Part 2)
Agentic AI for Professionals (Part 2)
Neil Haddley • August 18, 2026

Building the RAG core of a legal research assistant entirely on a 32GB M4 MacBook Air — page-safe chunking, a provider-agnostic LLM layer, and citations that can't be hallucinated

AI
ragpgvectorollama
Agentic AI for Professionals (Part 1)
Agentic AI for Professionals (Part 1)
Neil Haddley • August 18, 2026

Using a structured LLM-wiki research process to study Thomson Reuters CoCounsel's architecture, then turning that research into an implementation plan for a simplified legal research assistant

AI
llm-wikiragclaude-code
Space Invaders
Space Invaders
Neil Haddley • June 19, 2026

Building a Space Invaders clone three ways: OpenCode with Big Pickle, OpenCode with DeepSeek V4 Pro, and Claude Code with Sonnet 4.6

AIJavaScript
claude-codevibe-codinggame-development
Plants vs. Zombies Clone
Plants vs. Zombies Clone
Neil Haddley • June 16, 2026

Vibe coding a vanilla JS Plants vs. Zombies clone with Claude Code, complete with Playwright visual regression tests

AIJavaScript
claude-codevibe-codinganthropic
Local Agent
Local Agent
Neil Haddley • June 14, 2026

A conversational AI assistant for this blog using WebLLM (in-browser) and a self-hosted Ollama server (Hosted, public, HTTPS) as interchangeable backends

AI
webllmwebgpuqwen
Claude Code (Part 14)
Claude Code (Part 14)
Neil Haddley • June 4, 2026

Using the page-line-summary skill in Claude Code to generate a deposition summary from a transcript PDF

AI
claude-codeai-agentanthropic
Claude Cowork (Part 1)
Claude Cowork (Part 1)
Neil Haddley • June 4, 2026

Using the page-line-summary skill in Claude Cowork to generate a deposition summary from a transcript PDF

AI
claude-codeai-agentanthropic
Claude Code (Part 13)
Claude Code (Part 13)
Neil Haddley • June 3, 2026

Building a Claude Code skill that generates Dataverse solution XML for Power Platform

AIPower Platform
claude-codeai-agentanthropic
Claude Code (Part 12)
Claude Code (Part 12)
Neil Haddley • May 8, 2026

Using the DeepSeek API with Claude Code as a cheap, fast alternative to local models

AI
claude-codeai-agentanthropic
LLM Wiki
LLM Wiki
Neil Haddley • April 20, 2026

Building a Claude Code-powered personal knowledge base inspired by Andrej Karpathy's LLM Wiki — ingesting PDFs, emails, and notes into structured wiki pages

AI
claude-codeai-agentanthropic
Claude Code (Part 11)
Claude Code (Part 11)
Neil Haddley • April 10, 2026

Running Claude Code against a local Ollama model (qwen3-coder:30b) instead of the Anthropic API — no API costs and no data leaving the machine

AI
claude-codeai-agentanthropic
Paperclip
Paperclip
Neil Haddley • March 28, 2026

Open-source orchestration for zero-human companies

AI
claude-codeai-agentanthropic
Claude Code (Part 10)
Claude Code (Part 10)
Neil Haddley • March 18, 2026

An AI agent for Dynamics 365 Sales Professional

AIMicrosoft Dynamics
claude-codeai-agentanthropic
Azure Foundry
Azure Foundry
Neil Haddley • March 10, 2026

Creating an AI agent in Azure AI Foundry backed by Azure AI Search with vector embeddings for retrieval-augmented generation (RAG)

AIAzure
azure-ai-foundryazure-ai-searchvector-search
Claude Code (Part 9)
Claude Code (Part 9)
Neil Haddley • February 22, 2026

Using an AI coding agent to create an AI coding agent

AI
claude-codeai-agentanthropic
Power Automate
Power Automate
Neil Haddley • February 17, 2026

Connect Power Automate to Azure AI Foundry

Power PlatformAI
power-automateazure-ai-foundryai-integration
Claude Code (Part 8)
Claude Code (Part 8)
Neil Haddley • February 1, 2026

Building a Scheme-like LISP interpreter with a Jupyter-style notebook UI in pure HTML/CSS/JS — guided entirely by Claude Code from first prompt to deployed app

AI
claude-codevibe-codinganthropic
Claude Code (Part 7)
Claude Code (Part 7)
Neil Haddley • January 26, 2026

Adding the Context7 MCP server to Claude Code to inject real-time, version-specific library docs and reduce stale training data errors

AI
claude-codemcpmodel-context-protocol
Claude Code (Part 6)
Claude Code (Part 6)
Neil Haddley • January 21, 2026

Creating custom slash commands in .claude/commands/ to package project-specific context and workflows into a single reusable shortcut

AI
claude-codeslash-commandsanthropic
Claude Code (Part 5)
Claude Code (Part 5)
Neil Haddley • January 21, 2026

Using Claude Code's Plan Mode (read-only exploration before edits) and Extended Thinking to handle complex tasks more carefully

AI
claude-codeextended-thinkingplanning
Claude Code (Part 4)
Claude Code (Part 4)
Neil Haddley • January 21, 2026

Pre-approving trusted shell commands and file operations in Claude Code's settings to stop repetitive permission prompts

AI
claude-codetoolspermissions
Claude Code (Part 3)
Claude Code (Part 3)
Neil Haddley • January 21, 2026

Managing Claude Code's context window with ESC ESC rewind, /compact summarisation, and /clear reset to keep long sessions accurate

AI
claude-codecontext-windowanthropic
Claude Code (Part 2)
Claude Code (Part 2)
Neil Haddley • January 21, 2026

Using CLAUDE.md to give Claude Code persistent memory about your project — setup, conventions, and rules that Claude reads automatically every session

AI
claude-codememoryanthropic
Claude Code (Part 1)
Claude Code (Part 1)
Neil Haddley • January 20, 2026

Getting started with Claude Code — Anthropic's agentic CLI that reads your project files, writes and edits code, and runs commands from a single prompt

AI
claude-codeanthropicagentic-coding
Voice Kit (Part 4)
Voice Kit (Part 4)
Neil Haddley • December 14, 2025

Automatically Boot your Raspberry Pi 3 into Google Voice Assistant

PythonAIIOT
raspberry-pigoogle-assistantautostart
MLX 1
MLX 1
Neil Haddley • November 6, 2025

Using Apple's MLX framework to run and fine-tune large language models efficiently on Apple Silicon Macs

AI
mlxapple-siliconfine-tuning
OpenAI
OpenAI
Neil Haddley • October 23, 2025

Fine Tuning

AI
openaifine-tuninggpt
Voice Kit (Part 3)
Voice Kit (Part 3)
Neil Haddley • October 18, 2025

Adding Commands

PythonAIIOT
raspberry-pigoogle-assistantvoice-commands
Voice Kit (Part 2)
Voice Kit (Part 2)
Neil Haddley • October 16, 2025

Google Assistant API

PythonAIIOT
raspberry-pigoogle-assistant-apivoice
Voice Kit (Part 1)
Voice Kit (Part 1)
Neil Haddley • October 11, 2025

Raspberry Pi Voice Kit

PythonAIIOT
raspberry-pivoice-assistantgoogle-assistant
OpenAI
OpenAI
Neil Haddley • October 3, 2025

Creating custom ChatGPT assistants (GPTs) for specific purposes using OpenAI's GPT builder — no coding required, available with ChatGPT Plus

AI
chatgptcustom-gptopenai
Copilot Studio Agent Tools
Copilot Studio Agent Tools
Neil Haddley • September 24, 2025

Connected to Business Central

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiobusiness-centralagent-tools
Model Context Protocol (Part 2)
Model Context Protocol (Part 2)
Neil Haddley • September 21, 2025

Building a Model Context Protocol (MCP) server for Microsoft Business Central from scratch, deploying it to Azure Container Apps over Streamable HTTP, and connecting it to Copilot Studio and LM Studio

Business CentralAI
claude-codemcpmodel-context-protocol
Customer Copilot Studio
Customer Copilot Studio
Neil Haddley • September 20, 2025

Business Central Customer Copilot Using Copilot Studio

Business CentralAI
copilot-studiobusiness-centralcustomer-service
Model Context Protocol (Part 1)
Model Context Protocol (Part 1)
Neil Haddley • August 13, 2025

Building a Model Context Protocol (MCP) server from the TypeScript quick start, adding a multiplication tool, testing it with MCP Inspector, and calling it from Visual Studio Code's chat

AI
claude-codemcpmodel-context-protocol
SharePoint Syntex
SharePoint Syntex
Neil Haddley • July 30, 2025

Autofill columns

Microsoft 365AI
syntexsharepointcontent-ai
DeepSeek R1
DeepSeek R1
Neil Haddley • May 24, 2025

Running locally

AI
deepseekollamalocal-llm
Internet of Things (Part 3)
Internet of Things (Part 3)
Neil Haddley • March 1, 2025

Arduino Nano 33 BLE Sense

AIIOT
arduinomachine-learningedge-ai
Azure AI service
Azure AI service
Neil Haddley • February 4, 2025

Using Azure OpenAI Service to access OpenAI's GPT-4 and GPT-3.5 models through the Azure AI Foundry portal

AzureAI
azure-openaiazure-ai-foundryopenai
Langflow (Part 1)
Langflow (Part 1)
Neil Haddley • October 30, 2024

References

AI
langflowvisual-programmingllm
Prompt Flow (Part 6)
Prompt Flow (Part 6)
Neil Haddley • September 1, 2024

Building a multi-step AI chat workflow in VS Code using Prompt Flow, Semantic Kernel, and Planner

AI
prompt-flowazure-ai-studioevaluation
Prompt Flow (Part 5)
Prompt Flow (Part 5)
Neil Haddley • September 1, 2024

Creating and deploying an AI chat application with Azure Prompt Flow and LangChain in Azure AI Studio

AI
prompt-flowazure-ai-studioquick-start
LangChain Agents
LangChain Agents
Neil Haddley • August 25, 2024

Building LangChain agents that use LLMs as a reasoning engine to choose which tools to call, execute them, and loop until the task is complete

AIPython
langchainagentsllm
Prompt Flow (Part 4)
Prompt Flow (Part 4)
Neil Haddley • August 24, 2024

Using Semantic Kernel's planner to automatically orchestrate multiple AI plugins so an agent can combine them to achieve a user's goal

AI
prompt-flowplanningazure-ai
Prompt Flow (Part 3)
Prompt Flow (Part 3)
Neil Haddley • August 24, 2024

Using Microsoft Semantic Kernel to build a plugin-based AI agent that generates jokes, called from an Azure Prompt Flow node

AI
prompt-flowsemantic-kernelazure
Prompt Flow (Part 2)
Prompt Flow (Part 2)
Neil Haddley • June 12, 2024

Running an Azure Prompt Flow application inside a Docker container using the VS Code Prompt Flow extension

AI
prompt-flowdockerazure-ai-studio
Prompt Flow (Part 1)
Prompt Flow (Part 1)
Neil Haddley • June 11, 2024

Setting up Azure Prompt Flow in VS Code to create and run sample AI applications — compared with LangChain-based alternatives

AI
prompt-flowazure-ai-studiollmops
Business Central (Part 3)
Business Central (Part 3)
Neil Haddley • May 24, 2024

PromptDialog (Part 3)

Business CentralAI
prompt-dialogal-languagecopilot
Business Central (Part 2)
Business Central (Part 2)
Neil Haddley • May 24, 2024

Prompt Dialog (Part 2)

Business CentralAI
prompt-dialogal-languagecopilot
Business Central (Part 1)
Business Central (Part 1)
Neil Haddley • May 24, 2024

Prompt Dialog (Part 1)

Business CentralAI
prompt-dialogal-languagecopilot
Blog Copilot Studio
Blog Copilot Studio
Neil Haddley • March 24, 2024

Building a Business Central extension that lets BC users query this blog using a Copilot Studio chatbot backed by post content

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiomicrosoft-copilotbusiness-central
Custom Copilot Studio
Custom Copilot Studio
Neil Haddley • March 23, 2024

Customer Copilot

Microsoft DynamicsBusiness CentralPower Platform
copilot-studiocustom-copilotchatbot
Meta
Meta
Neil Haddley • August 8, 2023

Prompt Engineering

AI
prompt-engineeringllmchatgpt
Meta
Meta
Neil Haddley • August 5, 2023

Testing local large language models on a laptop using LM Studio — download, run, and chat with Llama and other open-source models without any API keys

AI
lm-studiolocal-llmllama
Colorization
Colorization
Neil Haddley • August 3, 2023

colorization.ipynb

PythonAI
colorizationjupyter-notebookimage-processing
LlamaCpp
LlamaCpp
Neil Haddley • August 3, 2023

Accessing the llama.cpp model from Python

AI
llama-cpplocal-llmllama
Stable Diffusion
Stable Diffusion
Neil Haddley • August 1, 2023

Generating images from text descriptions using Stable Diffusion via Jupyter Notebook and Hugging Face — a deep learning text-to-image model

AI
stable-diffusionimage-generationgenerative-ai
Object Detection
Object Detection
Neil Haddley • July 25, 2023

Installing OpenCV on a Raspberry Pi and using Python to build a computer vision object detection pipeline

AIIOT
opencvobject-detectioncomputer-vision
LangChain (RAG)
LangChain (RAG)
Neil Haddley • July 21, 2023

Using LangChain to create a medical report application

AIPython
langchainragretrieval-augmented-generation
Context Injection
Context Injection
Neil Haddley • July 19, 2023

How context injection works in LLM applications — injecting relevant documents, data, and instructions into the model's prompt at runtime for RAG

AI
context-injectionprompt-engineeringllm
Sentence Similarity
Sentence Similarity
Neil Haddley • July 19, 2023

Sentence Similarity

AI
sentence-similaritynlpembeddings
Sentiment Analysis
Sentiment Analysis
Neil Haddley • July 19, 2023

Sentiment Analysis

AI
sentiment-analysisnlptext-classification
Machine Learning (Part 9)
Machine Learning (Part 9)
Neil Haddley • June 17, 2022

Training a neural network on the MNIST handwritten digit dataset — 60,000 training and 10,000 test images for image classification with TensorFlow

AI
machine-learningmnistneural-network
Machine Learning (Part 8)
Machine Learning (Part 8)
Neil Haddley • June 12, 2022

Stealing Baseball Signs

AI
machine-learningcomputer-visionbaseball
Machine Learning (Part 7)
Machine Learning (Part 7)
Neil Haddley • June 11, 2022

Google Cloud Platform

AI
machine-learninggoogle-cloudautoml
Machine Learning (Part 6)
Machine Learning (Part 6)
Neil Haddley • June 11, 2022

Splitting into training and test dataframes

AI
machine-learningpandastrain-test-split
Machine Learning (Part 5)
Machine Learning (Part 5)
Neil Haddley • June 11, 2022

Predicting glucose levels from age using a machine learning regression model in Python, starting from an Excel dataset

AI
machine-learningexceldata-analysis
Machine Learning (Part 4)
Machine Learning (Part 4)
Neil Haddley • June 8, 2022

Using Google Colab (Jupyter Notebooks in the cloud) to run machine learning experiments with GPU access and no local setup required

AIPython
machine-learninggoogle-colabjupyter-notebook
Machine Learning (Part 3)
Machine Learning (Part 3)
Neil Haddley • June 5, 2022

Creating models

AI
machine-learningmodel-trainingtensorflow
Machine Learning (Part 2)
Machine Learning (Part 2)
Neil Haddley • June 5, 2022

What apps can be written quickly?

AI
machine-learningtensorflowjavascript
Machine Learning (Part 1)
Machine Learning (Part 1)
Neil Haddley • June 5, 2022

Hexapawn and Yolo

AI
machine-learninghexapawnyolo