<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Quick Thoughts</title><description>Some quick thoughts on software development, AI, and startups.</description><link>https://quickthoughts.ca/</link><item><title>Apple&apos;s privacy invading tech is likely going mainstream</title><link>https://quickthoughts.ca/posts/self-owning-ai-tech/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/self-owning-ai-tech/</guid><description>Progress waits for no one. And yet is it progress? Apple is rumored to be adding cameras to its highly purchased AirPods.</description><pubDate>Sun, 10 May 2026 09:00:00 GMT</pubDate></item><item><title>How I locally fine-tuned Whisper using my own voice data and some effort</title><link>https://quickthoughts.ca/posts/listenr-asr-training-data-problem/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/listenr-asr-training-data-problem/</guid><description>Off-the-shelf Whisper models are impressive but struggle with personal vocabulary, accents, and jargon not present in their training data. This post covers why standard open datasets fall short for personal fine-tuning and how I built Listenr to continuously capture and transcribe my own conversational audio as a training set.</description><pubDate>Wed, 04 Mar 2026 17:00:00 GMT</pubDate></item><item><title>Making Firefox&apos;s AI Chatbot local-only with Lemonade</title><link>https://quickthoughts.ca/posts/firefox-chatback-lemonade-sdk/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/firefox-chatback-lemonade-sdk/</guid><description>Firefox&apos;s AI chatbot sidebar can talk to a local Lemonade server. One CLI command and one about:config flip and your prompts never leave your machine.</description><pubDate>Sun, 01 Mar 2026 02:25:00 GMT</pubDate></item><item><title>LLM generated 3D modeling is the way to go</title><link>https://quickthoughts.ca/posts/3d-models--llm-is-a-new-world/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/3d-models--llm-is-a-new-world/</guid><description>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.</description><pubDate>Wed, 23 Jul 2025 19:23:39 GMT</pubDate></item><item><title>Automate Everything: LLMs and Bash Scripts Mean Saved Time</title><link>https://quickthoughts.ca/posts/automate-smarter-maximizing-reliable-workflows-with-llm-generated-scripts/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/automate-smarter-maximizing-reliable-workflows-with-llm-generated-scripts/</guid><description>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.</description><pubDate>Mon, 21 Apr 2025 18:15:51 GMT</pubDate></item><item><title>Why do Canadian News Sites Track Me so Much?</title><link>https://quickthoughts.ca/posts/why-do-canadian-news-sites-track-me-so-agressively/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/why-do-canadian-news-sites-track-me-so-agressively/</guid><description>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.</description><pubDate>Tue, 01 Apr 2025 08:10:27 GMT</pubDate></item><item><title>Rethinking Library Dependencies in the GenAI age</title><link>https://quickthoughts.ca/posts/genai-replaces-code-libraries/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/genai-replaces-code-libraries/</guid><description>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.</description><pubDate>Fri, 21 Mar 2025 22:10:48 GMT</pubDate></item><item><title>Using hCaptcha instead of Google&apos;s ReCaptcha with Vue and Express</title><link>https://quickthoughts.ca/posts/using-hcaptcha-in-vue-instead-of-google/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/using-hcaptcha-in-vue-instead-of-google/</guid><description>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.</description><pubDate>Sat, 16 Dec 2023 01:10:48 GMT</pubDate></item><item><title>Using Google&apos;s Captcha V3 with Express and Node</title><link>https://quickthoughts.ca/posts/google-captcha-express-js/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/google-captcha-express-js/</guid><description>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.</description><pubDate>Mon, 06 Mar 2023 01:10:48 GMT</pubDate></item><item><title>Considerations when supporting a legacy software stack</title><link>https://quickthoughts.ca/posts/considerations-when-supporting-a-legacy/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/considerations-when-supporting-a-legacy/</guid><description>Maintaining a legacy web application is a challenge most developers eventually face, where migrations are too costly, rebuilds are impractical, and doing nothing means a growing list of security risks. This post covers practical considerations for keeping aging stacks alive while keeping technical debt in check.</description><pubDate>Tue, 31 Jan 2023 19:10:48 GMT</pubDate></item><item><title>Build a URL Shortener with Node + Mongo</title><link>https://quickthoughts.ca/posts/nodejs-url-shortener-tutorial/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/nodejs-url-shortener-tutorial/</guid><description>Building a URL shortener is a great project for exploring real-world concerns like unique ID generation, database modeling, and abuse prevention. This post covers the core mechanics using Node and MongoDB, focusing on the counter-based schema design that keeps short IDs truly short.</description><pubDate>Sun, 13 Feb 2022 09:10:48 GMT</pubDate></item><item><title>Building a Flask Application: Where to Start</title><link>https://quickthoughts.ca/posts/flask-development-101/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/flask-development-101/</guid><description>Flask is a lightweight Python web framework that gets out of your way, but choosing the right supporting tools for your database, frontend, and dev environment is where the real decisions are made. This post walks through the key choices when building a full Flask application from scratch.</description><pubDate>Wed, 09 Feb 2022 10:10:38 GMT</pubDate></item><item><title>Refreshing an old stack&apos;s front end</title><link>https://quickthoughts.ca/posts/refreshing-old-stacks/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/refreshing-old-stacks/</guid><description>When an application&apos;s core technology grows stale, mixing a modern frontend framework like Vue into an aging backend can be a practical step forward without a full rebuild. This post explores why decoupling your frontend from server-side rendering engines makes sense and how to do it incrementally.</description><pubDate>Mon, 31 Jan 2022 19:10:48 GMT</pubDate></item><item><title>The Good and Bad After 12 Months with a System76 Lemur Pro 9</title><link>https://quickthoughts.ca/posts/s76-lemp9-review/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/s76-lemp9-review/</guid><description>After 12 months with a System76 Lemur Pro 9, a Linux-focused laptop with a metal chassis and user-replaceable internals, the experience has been a mix of genuine strengths and persistent hardware and software quirks. This post goes through each in detail.</description><pubDate>Wed, 15 Sep 2021 01:10:48 GMT</pubDate></item><item><title>Building a Startup on $10 a Month</title><link>https://quickthoughts.ca/posts/the-10-dollar-startup/</link><guid isPermaLink="true">https://quickthoughts.ca/posts/the-10-dollar-startup/</guid><description>Running a SaaS startup serving thousands of users for just $10 a month is achievable by choosing a VPS over managed services, leaning on free tiers, and writing code instead of buying tools. This post breaks down the specific stack and frugal mindset behind keeping costs minimal without limiting what you can build.</description><pubDate>Sat, 16 Jan 2021 01:10:48 GMT</pubDate></item></channel></rss>