<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Sadiq Jaffer</title><link>https://www.toao.com/</link><description/><atom:link href="https://www.toao.com/feeds/rss.xml" rel="self"/><lastBuildDate>Sun, 07 Jun 2026 20:36:57 +0100</lastBuildDate><item><title>Free Hardware Performance Counters in OxCaml Runtime Events</title><link>https://www.toao.com/blog/free-performance-counters-runtime-events</link><description>&lt;p&gt;A prototype extending OxCaml's Runtime Events to sample hardware performance counters at span boundaries, letting you correlate IPC, cache misses and branch mispredictions with specific GC and program phases with overhead indistinguishable from noise.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Sat, 04 Apr 2026 19:37:00 +0100</pubDate><guid>tag:www.toao.com,2026-04-04:/blog/free-performance-counters-runtime-events</guid><category>posts</category></item><item><title>Earth Observation on a Budget: Finding Solar Farms with a 42k-Parameter Model</title><link>https://www.toao.com/blog/earth-observation-budget-solar-farms-tiny-model</link><description>&lt;p&gt;Satellite imagery analysis doesn't always require massive data and compute. We show how to combine open data from OpenStreetMap and the UK Government's Renewable Energy Planning database with Tessera foundation model embeddings to map solar farms across the UK using a lightweight neural network.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Wed, 14 Jan 2026 17:38:00 +0000</pubDate><guid>tag:www.toao.com,2026-01-14:/blog/earth-observation-budget-solar-farms-tiny-model</guid><category>posts</category></item><item><title>Three Steps for OCaml to Crest the AI Humps</title><link>https://www.toao.com/blog/ai-existential-ocaml</link><description>&lt;p&gt;OCaml represents less than 0.01% of training data for many large language models, creating an existential threat for the language community. This talk outlines three concrete steps the OCaml community can take to improve AI coding agent support and ensure the language's future relevance.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Fri, 24 Oct 2025 17:38:00 +0100</pubDate><guid>tag:www.toao.com,2025-10-24:/blog/ai-existential-ocaml</guid><category>posts</category></item><item><title>Can a model trained on satellite data really find brambles on the ground?</title><link>https://www.toao.com/blog/can-we-really-see-brambles-from-space</link><description>&lt;p&gt;Can a model trained on satellite data really find brambles on the ground? We put a new model to the test with a field trip around Cambridge. The results were surprisingly good and taught us a lot about the model's strengths and weaknesses.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Wed, 24 Sep 2025 21:04:00 +0100</pubDate><guid>tag:www.toao.com,2025-09-24:/blog/can-we-really-see-brambles-from-space</guid><category>posts</category></item><item><title>Adding an OCaml GC debugging task to terminal-bench</title><link>https://www.toao.com/blog/gc-debug-terminal-bench</link><description>&lt;p&gt;I stumbled onto &lt;a href="https://www.tbench.ai/"&gt;terminal-bench&lt;/a&gt; a few weeks ago while researching datasets to evaluate agents. It contains around 120 tasks that need to be completed using a terminal..&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Wed, 20 Aug 2025 10:01:00 +0100</pubDate><guid>tag:www.toao.com,2025-08-20:/blog/gc-debug-terminal-bench</guid><category>posts</category></item><item><title>Last three months in OCaml (July 2025)</title><link>https://www.toao.com/blog/ocaml-0725</link><description>&lt;p&gt;A look at recent OCaml projects, from benchmarking AI code models and building new agentic tools to improvements in the garbage collector.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Tue, 15 Jul 2025 10:01:00 +0100</pubDate><guid>tag:www.toao.com,2025-07-15:/blog/ocaml-0725</guid><category>posts</category></item><item><title>Letting Claude Code check with Gemini</title><link>https://www.toao.com/blog/check-with-gemini</link><description>&lt;p&gt;A simple MCP server that enables Claude Code (or any MCP host) to check things with gemini-cli&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Fri, 27 Jun 2025 10:01:00 +0100</pubDate><guid>tag:www.toao.com,2025-06-27:/blog/check-with-gemini</guid><category>posts</category></item><item><title>Qwen3 Leads the Pack: Evaluating how Local LLMs tackle First Year CS OCaml exercises</title><link>https://www.toao.com/blog/ocaml-local-code-models</link><description>&lt;p&gt;How well can locally-runnable language models handle OCaml code generation? We evaluate 19 open-weight LLMs on first-year Computer Science exercises, exploring the balance between model size, architecture, and reasoning capabilities for less mainstream programming languages.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Tue, 06 May 2025 17:52:00 +0100</pubDate><guid>tag:www.toao.com,2025-05-06:/blog/ocaml-local-code-models</guid><category>posts</category></item><item><title>A dataset of OCaml's Opam</title><link>https://www.toao.com/blog/opam-archive-dataset</link><description>&lt;p&gt;Introducing opam-archive-dataset: a Parquet dataset containing code from OCaml packages, designed to improve performance of language models for OCaml development through better training data&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Thu, 01 May 2025 10:01:00 +0100</pubDate><guid>tag:www.toao.com,2025-05-01:/blog/opam-archive-dataset</guid><category>posts</category></item><item><title>JSON output from Deepseek R1 and distills with llama.cpp</title><link>https://www.toao.com/blog/json-output-from-deepseek-r1-and-distills-with-llamacpp</link><description>&lt;p&gt;Here's a workaround to get JSON output from Deepseek R1 and distills when using the llama.cpp OpenAI-compatible server endpoint&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Thu, 30 Jan 2025 17:52:00 +0000</pubDate><guid>tag:www.toao.com,2025-01-30:/blog/json-output-from-deepseek-r1-and-distills-with-llamacpp</guid><category>posts</category></item><item><title>Teaching Bloom Filters new tricks</title><link>https://www.toao.com/blog/teaching-bloom-filters-new-tricks</link><description>&lt;p&gt;In this post we're going to discuss how to teach Bloom Filters new tricks. We'll start with examining Partitioned Bloom Filters and then look at ways we can generalise Bloom Filters to new and interesting uses. By the end of the post you will be able to use this generalised framework to come up with novel probabilistic data structures.&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Fri, 25 Dec 2020 00:52:00 +0000</pubDate><guid>tag:www.toao.com,2020-12-25:/blog/teaching-bloom-filters-new-tricks</guid><category>posts</category></item><item><title>Getting OCaml running on the ESP32</title><link>https://www.toao.com/blog/getting-ocaml-running-on-the-esp32</link><description>&lt;p&gt;&lt;img alt="End result" src="/static/wemos_board.gif" title="End result"&gt;&lt;/p&gt;
&lt;p&gt;I was looking for some small Christmas stocking-fillers to give to techie friends and decided to try to find some interesting electronics boards from China.&lt;/p&gt;
&lt;p&gt;In the end, I went with the WEMOS Lolin32 Lite which features Espressif's ESP32. If you're not familiar with the ESP32, it's an awesome little …&lt;/p&gt;</description><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">Sadiq Jaffer</dc:creator><pubDate>Sun, 15 Jan 2017 00:00:00 +0000</pubDate><guid>tag:www.toao.com,2017-01-15:/blog/getting-ocaml-running-on-the-esp32</guid><category>posts</category></item></channel></rss>