Skip to main content

Quick Thoughts

Some quick thoughts on software development, AI, and startups.

Data Investigation

News Sites Continue to depend on American Surveillance Technology

Explore how dozens of countries and websites rely on privacy-invading ad technology and route all readers data to American servers.

DevelopmentAI

Fine-tuning made it worse, and I still do not know why

What I learned fine-tuning speech models locally · Part 2

I fine-tuned whisper-small on 7.7 hours of real spontaneous speech and made it 2.6 times worse. I had a tidy explanation for it, so I tested the explanation, and the test said I was wrong.

The four stages of a fine-tuning pipeline: data collection, data processing, fine-tuning, testing.

AIResearch

Good speech data is the hard part

Locally fine-tuning Whisper and ASR models with Listenr · Part 1

Whisper is impressive and its vocabulary stopped in 2023. Fine-tuning fixes that, but only if you have high quality data, and getting that is the part nobody wants to do.

The OpenSCAD editor showing the script for a pipe reducer next to its rendered 3D preview.

TechnologyAI

LLM generated 3D modeling is the way to go

After hitting walls with FreeCAD, TinkerCAD, and Fusion 360, I discovered that scripting 3D models in OpenSCAD with an LLM produces precise, reusable parts faster than any GUI-based workflow I tried. Two prompts into ChatGPT, I had a working pipe reducer printed and in hand.

A graphic depicting a human developer collaborating with robotic elements, surrounded by code, symbolizing AI-assisted automation.

DevelopmentTechnology

Automate Everything: LLMs and Bash Scripts Mean Saved Time

Using LLMs to generate deterministic scripts rather than running real-time AI agents is a more reliable, testable, and repeatable approach to automation. This post explains the strategy, shares real examples from managing this blog, and covers how to keep the output production-ready.

A cartoon image of a laptop with a magnifying glass looking at a concern human using the machine

Research

Why do Canadian News Sites Track Me so Much?

After noticing CBC blocking 11 tracker domains in uBlock Origin, I built an automated tool to scan Canadian and international news sites and measure exactly how many trackers each one loads. The results reveal a pattern of aggressive, ad-network-driven data collection that goes well beyond basic analytics.

An illustration of a developer working alongside robotic arms in a library of code, representing the choice between a third-party library and AI-generated code.

TechnologyOpinion

Rethinking Library Dependencies in the GenAI age

Large language models are changing the calculus on when to reach for a third-party library versus generating a lightweight, purpose-built implementation. This post examines the tradeoffs and where a hybrid approach of GenAI-generated code refined by a developer makes the most practical sense.

A colorful cartoon-style digital illustration depicting a light-skinned developer working on a laptop surrounded by code snippets, emphasizing the theme of integrating hCaptcha into web applications.

Development

Using hCaptcha instead of Google's ReCaptcha with Vue and Express

hCaptcha is a privacy-respecting, drop-in alternative to Google ReCaptcha that actually pays you for serving its challenges on your site. This post shows how to integrate it into a Vue frontend and verify tokens server-side in Node with minimal code.

Development

Using Google's Captcha V3 with Express and Node

Google ReCaptcha V3 offers invisible bot detection that scores users without requiring puzzle challenges, and wiring it into an Express backend is straightforward once you understand the token verification flow. This post walks through the full frontend and backend integration with working code examples.