Omar Shabab

Machine learning engineer. I build AI tools, CLI applications, and civic tech, and write about the parts that were harder than they should have been.

15
Research September 2026 AI-written

RLHF vs RLM: one changes the weights, the other changes what the model sees

Two acronyms that share two letters and almost nothing else. RLHF is a training loop that ends in new weights. A Recursive Language Model is an inference loop that keeps a long input in a code runtime and lets a frozen model compute over it. Five diagrams, one grid, and where prompt optimizers such as GEPA sit between them.

Read post
14
Codex September 2026 AI-written

I added MCP toggles to Codex, then made them fast

An interactive /mcp menu for Codex, with a real terminal demo. My first toggle waited seven seconds for tool discovery; the revised version saved in 46 ms while the server connected in the background. How the status-only API works, why a checked box did not prove tool access, and where the patch lives after GitHub refused the upstream PR.

Read post
13
Hardware September 2026 AI-written

Find My found my house. Bluetooth found the pillow

My iPhone was dead somewhere in the house. Find My said Home, Now, and then refused to ring it. A passive Bluetooth scan on a laptop carried room to room closed the last thirty metres: 120 packets, five rooms, one metre of final uncertainty. The trick was tracking the beacon by state rather than by id, because the id rotates every few minutes and takes your meter down with it.

Read post
12
Security September 2026 AI-written

Your agent has been writing your secrets to disk

I scanned 1.2 GB of my own Claude Code and Codex transcripts for credentials and found 373 across 105 files, including a live API key repeated 60 times and a plaintext password. The script is a single file with no dependencies. The write-up is mostly about the four bugs that got past a green test suite.

Read post
11
Research August 2026 AI-written

Advancements in image search and nearest neighbor algorithms from 2021 to 2026

Five years of image search in one place. CLIP made text a query for pictures, compression got a proof and moved inside the graph, cross-modal queries turned out to break the assumption every index was built on, and storing a vector fell from memory prices to object-storage prices. A sourced synthesis, with no original benchmarks.

Read post
10
Benchmark August 2026 AI-written

MLX vs llama.cpp on an M3 Ultra: mlx-lm decodes 1.49x faster, and one run is not an answer

A measured MLX vs llama.cpp comparison on a 512GB Mac Studio M3 Ultra at a 234,158-token prompt. mlx-lm 0.31.3 decodes 1.49x faster than llama.cpp b10200 and ties on prefill, while llama.cpp uses 29% less system-wide memory and outranks every MLX serving stack measured on decode. The llama.cpp arm is a single unrepeated run, and this post is mostly about why that matters.

Read post
09
Benchmark August 2026 AI-written

Every 256K-capable local LLM on my Mac Studio M3 Ultra, ranked. The winner decodes at 60.45 tokens/sec.

Sixteen model and engine configurations at a real 262,000-token prompt on a 512GB Mac Studio M3 Ultra. Nemotron-3.5-Lightning-30B-A3B wins at 60.45 tok/s decode with 8/8 needle recall, and it wins by degrading slowly: its decode falls 1.83x from 2k to 262k where a dense 14B falls 10.68x. Architecture beats parameter count, a 1M-native model fails at 1M, and all five recall failures I published turned out to be my own harness.

Read post
08
Hardware August 2026 AI-written

macOS clamps my M3 Ultra's GPU to 338 MHz before the fans even try. Maxing them doubled my LLM throughput.

My LLM benchmarks kept collapsing 4x mid-session. macmon caught a firmware power limiter clamping the GPU to 338 MHz and holding it while the die cooled, fans never past 70%. Pinning them at max with fanpro: 2.57x sustained decode, and a 100k-context job in 259 s instead of 568+, byte-identical.

Read post
07
Benchmark July 2026 AI-written

Kimi-Linear ran a real 1M context on my Mac Studio. I checked all million tokens.

Last post I called local 1M context a mirage. Then Kimi-Linear-48B passed: 8/8 needle recall at a real 1,048,692-token prompt on a 512GB M3 Ultra, full ingestion proven. Native 1M is finally real. It just takes a five-hour prefill.

Read post
06
Benchmark July 2026 AI-written

The two numbers that decide local LLMs: 100 tokens/sec and 1M context

I ran a 754B model on a 512GB Mac Studio. It fits, it crawls, and its 1M context flag is a warning message and a silent cap. Where local models fail as coding tools, and the one job they are great at.

Read post
05
Hardware July 2026 AI-written

Making a Logitech mouse follow its keyboard across Macs

Easy-Switch moves the keyboard and abandons the mouse. One HID++ packet fixes that, once you get past the two permission gates macOS hides between you and your own devices.

Read post
04
Claude Code June 2026 AI-written

How I run Claude Code: Opus 4.8 advisor + ultracode

Two switches I leave on: the advisor tool and /effort ultracode. An honest, log-backed account of where they help, where they are overkill, and where the model wisely skips them.

Read post
03
Template April 2026 AI-written

I built a SaaS starter because every other one is wrong

An opinionated Cloudflare-first template. Next.js 16, D1, Better Auth, Stripe. No monorepo. No edge-runtime religion. No status page.

Read post
02
Benchmark April 2026 AI-written

Local LLM Benchmark: Gemma 4 vs Qwen 3.5

Head-to-head on a Mac Studio M3 Ultra. 26 prompts, 6 categories, and one surprising finding: the model that decoded faster finished 8.2x slower. Numbers re-derived from the server logs in September 2026.

Read post
01
Data January 2026 AI-written

Bangladesh 2026 National Election Candidates

Explore 1,680 candidates across 275 constituencies. Filter by coalition, division, party, and more.

Explore data