<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
     xmlns:atom="http://www.w3.org/2005/Atom"
     xmlns:content="http://purl.org/rss/1.0/modules/content/">
  <channel>
    <title>Augustin Chan</title>
    <link>https://augustinchan.dev</link>
    <description>Building systems that reason. Writing about AI, Web3, and software engineering.</description>
    <language>en-us</language>
    <lastBuildDate>Wed, 22 Jul 2026 14:50:17 GMT</lastBuildDate>
    <atom:link href="https://augustinchan.dev/rss.xml" rel="self" type="application/rss+xml"/>
    <generator>Next.js</generator>
    <webMaster>aug@digitalrain.studio (Augustin Chan)</webMaster>
    <managingEditor>aug@digitalrain.studio (Augustin Chan)</managingEditor>
    <copyright>Copyright 2026 Augustin Chan</copyright>
    <image>
      <url>https://augustinchan.dev/img/Xrn0Id68_400x400.jpg</url>
      <title>Augustin Chan</title>
      <link>https://augustinchan.dev</link>
    </image>
    <item>
      <title><![CDATA[The MCP Server Was the Easy Part]]></title>
      <link>https://augustinchan.dev/posts/2026-07-20-the-mcp-server-was-the-easy-part</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-20-the-mcp-server-was-the-easy-part</guid>
      <pubDate>Mon, 20 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Getting an MCP agent published into Microsoft Teams meant two identity systems sharing one login page, a license that lets you build but not publish, and about US$200 a month at the exit. Notes from a weekend in the Microsoft admin gauntlet.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[microsoft-teams]]></category>
      <category><![CDATA[copilot-studio]]></category>
      <category><![CDATA[mcp]]></category>
      <category><![CDATA[entra-id]]></category>
      <category><![CDATA[licensing]]></category>
      <category><![CDATA[claude-code]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[enterprise]]></category>
    </item>
    <item>
      <title><![CDATA[How I Tripped Fable 5's Safeguards by Talking About Statistics]]></title>
      <link>https://augustinchan.dev/posts/2026-07-17-tripping-fable-5s-safeguards-with-statistics</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-17-tripping-fable-5s-safeguards-with-statistics</guid>
      <pubDate>Fri, 17 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[A conversation about Bayes' rule, cancer screening, and HIV tests got flagged by Claude Fable 5's safety layer. The irony: a safety classifier is itself a screening test, subject to the exact base-rate math we were discussing.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[claude]]></category>
      <category><![CDATA[statistics]]></category>
      <category><![CDATA[bayes]]></category>
      <category><![CDATA[ai-safety]]></category>
      <category><![CDATA[llm]]></category>
    </item>
    <item>
      <title><![CDATA[Simplicity Won]]></title>
      <link>https://augustinchan.dev/posts/2026-07-16-simplicity-won</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-16-simplicity-won</guid>
      <pubDate>Thu, 16 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[An Informatica veteran catches up on the 2026 data stack: lakehouses, DuckDB, Kubernetes, GPUs, and the quiet reabsorption of NoSQL. The boxes changed. The discipline didn't.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[data-engineering]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[lakehouse]]></category>
      <category><![CDATA[spark]]></category>
      <category><![CDATA[postgres]]></category>
      <category><![CDATA[etl]]></category>
    </item>
    <item>
      <title><![CDATA[The Bridge Nobody Should Need Just Became the Only Way In]]></title>
      <link>https://augustinchan.dev/posts/2026-07-15-wordpress-outage-wpide-php82-github-actions-recovery</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-15-wordpress-outage-wpide-php82-github-actions-recovery</guid>
      <pubDate>Wed, 15 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Eight months after I over-engineered a GitHub Actions publishing pipeline for a friend's WordPress site, the site went down hard — and that pipeline held the only deploy key within reach. A post-mortem on WPIDE, PHP 8.2, --skip-plugins, and the day the automation math finally worked out.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[wordpress]]></category>
      <category><![CDATA[devops]]></category>
      <category><![CDATA[automation]]></category>
      <category><![CDATA[incident-response]]></category>
      <category><![CDATA[github-actions]]></category>
      <category><![CDATA[wpcli]]></category>
      <category><![CDATA[siteground]]></category>
      <category><![CDATA[php]]></category>
      <category><![CDATA[monitoring]]></category>
      <category><![CDATA[dfw-style]]></category>
    </item>
    <item>
      <title><![CDATA[One Question, Five Minutes]]></title>
      <link>https://augustinchan.dev/posts/2026-07-13-one-question-five-minutes</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-13-one-question-five-minutes</guid>
      <pubDate>Mon, 13 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Preparing a five-minute introduction for an enterprise prospect forced me to find the single question behind the papers, the products, and the podcast. The distilled result is now this site's homepage.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agency]]></category>
      <category><![CDATA[enterprise-ai]]></category>
      <category><![CDATA[positioning]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[hong-kong]]></category>
    </item>
    <item>
      <title><![CDATA[Apple's Alphabet Soup, and the Trust-Nobody Backend Behind Six Lines' Records]]></title>
      <link>https://augustinchan.dev/posts/2026-07-07-apples-alphabet-soup-in-app-purchases-six-lines</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-07-07-apples-alphabet-soup-in-app-purchases-six-lines</guid>
      <pubDate>Tue, 07 Jul 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Building The Records, a one-card-a-day collectible inside Six Lines, meant staring down SIWA, ASC, JWS, and a sandbox gate. Each piece exists because of a fight Apple picked, and together they add up to a backend that trusts the phone about nothing.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[apple]]></category>
      <category><![CDATA[in-app-purchases]]></category>
      <category><![CDATA[storekit]]></category>
      <category><![CDATA[six-lines]]></category>
      <category><![CDATA[ios]]></category>
      <category><![CDATA[payments]]></category>
      <category><![CDATA[supabase]]></category>
      <category><![CDATA[trust-model]]></category>
    </item>
    <item>
      <title><![CDATA[Work on What Has Decayed]]></title>
      <link>https://augustinchan.dev/posts/2026-06-17-work-on-what-has-decayed</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-06-17-work-on-what-has-decayed</guid>
      <pubDate>Wed, 17 Jun 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Hexagram 18 is a picture of worms bred in a vessel left standing too long. I came back to an autonomous content system I built and found exactly that: bugs that grew in the dark because no one was reading the logs. The talk I submitted to PyCon HK 2026 is the field report.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[python]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[async]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[pycon]]></category>
    </item>
    <item>
      <title><![CDATA[Newer Isn't Better]]></title>
      <link>https://augustinchan.dev/posts/2026-05-11-newer-isnt-better</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-05-11-newer-isnt-better</guid>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[We benchmarked 25 LLMs on structured regulatory output. Across Anthropic, DeepSeek, and Google, newer models regressed. The reason is instructive — and the subagent trap is worse than you think.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[evaluation]]></category>
      <category><![CDATA[structured-output]]></category>
      <category><![CDATA[enterprise]]></category>
      <category><![CDATA[open-source]]></category>
    </item>
    <item>
      <title><![CDATA[Star Charts Buried in the I-Ching]]></title>
      <link>https://augustinchan.dev/posts/2026-05-11-star-charts-buried-in-the-i-ching</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-05-11-star-charts-buried-in-the-i-ching</guid>
      <pubDate>Mon, 11 May 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Edward Shaughnessy's 1983 Stanford dissertation proved that the oldest layer of the Zhouyi encodes star charts, seasonal calendars, and astronomical myths — not abstract philosophy. The dragons of Qian are the Dragon constellation rising and setting over the course of a year. The ghosts and swine of Kui are lunar lodges. Here's what he found, and what it means.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[I-Ching]]></category>
      <category><![CDATA[Zhouyi]]></category>
      <category><![CDATA[astronomy]]></category>
      <category><![CDATA[Western-Zhou]]></category>
      <category><![CDATA[Shaughnessy]]></category>
      <category><![CDATA[King-Wen]]></category>
      <category><![CDATA[Chinese-Classics]]></category>
    </item>
    <item>
      <title><![CDATA[The Shop Floor Is the Classroom]]></title>
      <link>https://augustinchan.dev/posts/2026-05-10-the-shop-floor-is-the-classroom</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-05-10-the-shop-floor-is-the-classroom</guid>
      <pubDate>Sun, 10 May 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Tobi Lutke built an AI agent that only works in public. It accidentally recreated the apprenticeship model I've been arguing for. Capability over functionality, taste over technique, and why the best AI rollouts look like a German Lehrwerkstatt.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[enterprise]]></category>
      <category><![CDATA[culture]]></category>
      <category><![CDATA[apprenticeship]]></category>
      <category><![CDATA[shopify]]></category>
    </item>
    <item>
      <title><![CDATA[Sitemap Scope: The Silent Index Killer]]></title>
      <link>https://augustinchan.dev/posts/2026-04-16-sitemap-scope-the-silent-index-killer</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-04-16-sitemap-scope-the-silent-index-killer</guid>
      <pubDate>Thu, 16 Apr 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Google discovered 273 of 12,936 URLs from my sitemap. Search Console said 'Success.' The problem wasn't content quality or backlinks — it was a directory path.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[seo]]></category>
      <category><![CDATA[next.js]]></category>
      <category><![CDATA[sitemap]]></category>
      <category><![CDATA[google-search-console]]></category>
      <category><![CDATA[crawlability]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[vercel]]></category>
    </item>
    <item>
      <title><![CDATA[What Claude Code Does Before the Model Sees Your Message]]></title>
      <link>https://augustinchan.dev/posts/2026-04-04-claude-code-preprocessing-pipeline</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-04-04-claude-code-preprocessing-pipeline</guid>
      <pubDate>Sat, 04 Apr 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[A deep dive into Claude Code's preprocessing pipeline — the 6-stage system that transforms raw user input into a carefully orchestrated message stream with context injection, file pre-reading, skill discovery, and message normalization. Based on source code analysis.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[claude-code]]></category>
      <category><![CDATA[ai-architecture]]></category>
      <category><![CDATA[agent-systems]]></category>
      <category><![CDATA[context-engineering]]></category>
      <category><![CDATA[llm-tools]]></category>
    </item>
    <item>
      <title><![CDATA[How We Digitized 300,000 Pages of Classical Chinese with AI Vision Agents]]></title>
      <link>https://augustinchan.dev/posts/2026-04-03-digitizing-classical-chinese-with-vision-agents</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-04-03-digitizing-classical-chinese-with-vision-agents</guid>
      <pubDate>Fri, 03 Apr 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[On woodblock prints, parallel subagents, and the point where OCR stops correcting and starts fabricating. Also: why downsampling saves you 75% and nobody tells you.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[classical-chinese]]></category>
      <category><![CDATA[ocr]]></category>
      <category><![CDATA[vision-models]]></category>
      <category><![CDATA[digital-humanities]]></category>
      <category><![CDATA[architecture]]></category>
    </item>
    <item>
      <title><![CDATA[Why Every Advisor in Ancient China Used the I-Ching: Evidence from an AI Wargame]]></title>
      <link>https://augustinchan.dev/posts/2026-03-25-why-ancient-advisors-used-the-i-ching</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-25-why-ancient-advisors-used-the-i-ching</guid>
      <pubDate>Wed, 25 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[We ran a 7-state Warring States wargame with AI agents. The smallest state consulted I-Ching hexagrams before each move. The hexagram content didn't predict actions — but it doubled the agent's diplomacy rate and improved survival. Here's what that tells us about why every strategist in ancient China consulted the Changes.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[I-Ching]]></category>
      <category><![CDATA[Warring-States]]></category>
      <category><![CDATA[AI]]></category>
      <category><![CDATA[Strategy]]></category>
      <category><![CDATA[King-Wen]]></category>
      <category><![CDATA[Junzi-Alignment]]></category>
      <category><![CDATA[Game-Theory]]></category>
      <category><![CDATA[Philosophy]]></category>
    </item>
    <item>
      <title><![CDATA[Risk Isn't a Number. It's a Fingerprint.]]></title>
      <link>https://augustinchan.dev/posts/2026-03-23-when-can-an-agent-act-alone</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-23-when-can-an-agent-act-alone</guid>
      <pubDate>Mon, 23 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Most AI governance frameworks collapse risk into a single score. ARA Eval decomposes it into 7 dimensions, applies deterministic gates, and tests whether LLMs can reproduce human judgment. The answer: only one model can. I open-sourced the framework.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[risk]]></category>
      <category><![CDATA[governance]]></category>
      <category><![CDATA[evaluation]]></category>
      <category><![CDATA[open-source]]></category>
      <category><![CDATA[hong-kong]]></category>
      <category><![CDATA[fintech]]></category>
    </item>
    <item>
      <title><![CDATA[Move to iOS Won't Transfer WhatsApp. Here's the Fix Android Won't Give You.]]></title>
      <link>https://augustinchan.dev/posts/2026-03-22-move-to-ios-whatsapp-the-fix-android-wont-give-you</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-22-move-to-ios-whatsapp-the-fix-android-wont-give-you</guid>
      <pubDate>Sun, 22 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Three Android phones, one weekend, zero successful WhatsApp transfers. The error is 'Failed to find provider info for com.whatsapp.provider.migrate.ios.' The fix is a shell script. The journey to get there involved ADB forensics, a 2014 APK from the Wayback Machine, and a manual database decryption pipeline I never needed.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[android]]></category>
      <category><![CDATA[ios]]></category>
      <category><![CDATA[whatsapp]]></category>
      <category><![CDATA[move-to-ios]]></category>
      <category><![CDATA[adb]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[mobile]]></category>
      <category><![CDATA[migration]]></category>
    </item>
    <item>
      <title><![CDATA[Why I'm Building Crawl: The Migration Intelligence Gap Nobody Fills]]></title>
      <link>https://augustinchan.dev/posts/2026-03-14-why-im-building-crawl</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-14-why-im-building-crawl</guid>
      <pubDate>Sat, 14 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[12 years at Informatica taught me that every data migration fails at the same step: understanding what you have. AI is finally good enough to change that.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[crawl]]></category>
      <category><![CDATA[data-migration]]></category>
      <category><![CDATA[informatica]]></category>
      <category><![CDATA[open-source]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[llm]]></category>
    </item>
    <item>
      <title><![CDATA[Two Pages and Eleven Words: How Pagefind Exposed a Years-Long Crawlability Bug]]></title>
      <link>https://augustinchan.dev/posts/2026-03-10-pagefind-crawlability-bug-8bitoracle</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-10-pagefind-crawlability-bug-8bitoracle</guid>
      <pubDate>Tue, 10 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Adding site search to 8-Bit Oracle revealed that every SSG page was an empty div. The fix touched auth gates, static params, and hidden content — and changed how I think about what 'rendered' means.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[8-bit-oracle]]></category>
      <category><![CDATA[seo]]></category>
      <category><![CDATA[crawlability]]></category>
      <category><![CDATA[pagefind]]></category>
      <category><![CDATA[next.js]]></category>
      <category><![CDATA[ssg]]></category>
      <category><![CDATA[accessibility]]></category>
      <category><![CDATA[search]]></category>
    </item>
    <item>
      <title><![CDATA[Building in the Fog, Part 6: Field Ready]]></title>
      <link>https://augustinchan.dev/posts/2026-03-09-building-in-the-fog-6-field-ready</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-09-building-in-the-fog-6-field-ready</guid>
      <pubDate>Mon, 09 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Making provisioning software usable by supply officers on phones in a warehouse. 320px minimum, 20px text, light/dark themes, bilingual — and what 'mobile-first' means when your users don't think in software terms.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ridgeline]]></category>
      <category><![CDATA[outward-bound]]></category>
      <category><![CDATA[expedition-planning]]></category>
      <category><![CDATA[mobile-first]]></category>
      <category><![CDATA[accessibility]]></category>
      <category><![CDATA[i18n]]></category>
      <category><![CDATA[ux]]></category>
      <category><![CDATA[responsive]]></category>
    </item>
    <item>
      <title><![CDATA[The Era of Large Frameworks Is Over]]></title>
      <link>https://augustinchan.dev/posts/2026-03-03-why-i-stayed-on-elizaos</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-03-03-why-i-stayed-on-elizaos</guid>
      <pubDate>Tue, 03 Mar 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[I spent 60% of my effort fighting a framework and 40% building domain logic. Then I looked at OpenClaw (500k lines) and NanoClaw (6k lines) and realized: a sturdy core plus skills that encode taste beats a large framework every time.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[elizaos]]></category>
      <category><![CDATA[openclaw]]></category>
      <category><![CDATA[nanoclaw]]></category>
      <category><![CDATA[btq]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[frameworks]]></category>
      <category><![CDATA[embeddings]]></category>
    </item>
    <item>
      <title><![CDATA[Teaching Taste to an Agent: 4,096 Classical Chinese Verses, 7 Composition Rules, and the Skill That Paints Them]]></title>
      <link>https://augustinchan.dev/posts/2026-02-14-teaching-taste-to-agents-yilin-image-pipeline</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-02-14-teaching-taste-to-agents-yilin-image-pipeline</guid>
      <pubDate>Sat, 14 Feb 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[On turning Han dynasty oracular poetry into AI-generated ink paintings by encoding art direction as a reusable agent skill. Also: why content filters...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[agents]]></category>
      <category><![CDATA[skills]]></category>
      <category><![CDATA[image-generation]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[yilin]]></category>
      <category><![CDATA[classical-chinese]]></category>
      <category><![CDATA[dfw-style]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[art-direction]]></category>
    </item>
    <item>
      <title><![CDATA[The Junzi Hypothesis: What If Alignment Is a Seed, Not a Cage?]]></title>
      <link>https://augustinchan.dev/posts/2026-01-25-junzi-alignment-initial-weights-hypothesis</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-01-25-junzi-alignment-initial-weights-hypothesis</guid>
      <pubDate>Sun, 25 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[A raw brainstorm on whether initial model weights could predispose toward naturally aligned behavior - and why the Confucian junzi might be a better...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[alignment]]></category>
      <category><![CDATA[junzi]]></category>
      <category><![CDATA[confucianism]]></category>
      <category><![CDATA[buddhism]]></category>
      <category><![CDATA[initial-weights]]></category>
      <category><![CDATA[agi]]></category>
      <category><![CDATA[meta-learning]]></category>
      <category><![CDATA[king-wen]]></category>
      <category><![CDATA[philosophy]]></category>
      <category><![CDATA[speculation]]></category>
    </item>
    <item>
      <title><![CDATA[Whisper Cantonese Transcription: Force zh, Not yue]]></title>
      <link>https://augustinchan.dev/posts/2026-01-13-whisper-cantonese-transcription-zh-not-yue</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2026-01-13-whisper-cantonese-transcription-zh-not-yue</guid>
      <pubDate>Tue, 13 Jan 2026 00:00:00 GMT</pubDate>
      <description><![CDATA[Counter-intuitive finding: forcing Cantonese (yue) on Whisper causes decoder collapse. Force Chinese (zh) instead for coherent, searchable...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[whisper]]></category>
      <category><![CDATA[cantonese]]></category>
      <category><![CDATA[transcription]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[speech-to-text]]></category>
      <category><![CDATA[yt-dlp]]></category>
      <category><![CDATA[chinese]]></category>
      <category><![CDATA[nlp]]></category>
    </item>
    <item>
      <title><![CDATA[Vibe-Coded Evals with LLM-as-a-Judge]]></title>
      <link>https://augustinchan.dev/posts/2025-12-13-vibe-coded-evals-llm-as-judge</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-12-13-vibe-coded-evals-llm-as-judge</guid>
      <pubDate>Sat, 13 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Using Claude Code and OpenRouter infrastructure to rapidly build model evaluations with Claude Opus 4.5 as the judge]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[evals]]></category>
      <category><![CDATA[llm]]></category>
    </item>
    <item>
      <title><![CDATA[Why I Open-Sourced a Deterministic I-Ching Engine (Or: The Smallest Verifiable Compute You Can Build)]]></title>
      <link>https://augustinchan.dev/posts/2025-12-01-seeded-iching-engine</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-12-01-seeded-iching-engine</guid>
      <pubDate>Mon, 01 Dec 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Extracting the deterministic core of 8-Bit Oracle into a standalone library, and why 'same seed, same hexagram, every time' matters more than you'd...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[open-source]]></category>
      <category><![CDATA[prng]]></category>
      <category><![CDATA[determinism]]></category>
      <category><![CDATA[verifiable-compute]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[ethereum]]></category>
      <category><![CDATA[decentralized-ai]]></category>
    </item>
    <item>
      <title><![CDATA[Testing Twelve AI Image Models with Marcel Proust's Madeleine (Or: How We Chose Hunyuan for Hexagram 24)]]></title>
      <link>https://augustinchan.dev/posts/2025-11-18-proust-multimodel-comparison</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-11-18-proust-multimodel-comparison</guid>
      <pubDate>Tue, 18 Nov 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Upgrading 8-Bit Oracle's Hexagram 24: Return with Proust's famous involuntary memory scene, then systematically testing 12 diverse AI image models...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[image-generation]]></category>
      <category><![CDATA[8-bit-oracle]]></category>
      <category><![CDATA[tech-noir]]></category>
      <category><![CDATA[proust]]></category>
      <category><![CDATA[testing]]></category>
      <category><![CDATA[architecture]]></category>
    </item>
    <item>
      <title><![CDATA[On Going Legit on Twitter/X (Or: How I Learned to Stop Scraping and Love the Rate Limit)]]></title>
      <link>https://augustinchan.dev/posts/2025-11-10-twitter-api-hell</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-11-10-twitter-api-hell</guid>
      <pubDate>Mon, 10 Nov 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A three-day journey through Twitter API v2, v1.1, OAuth, rate limits, and the gradual acceptance that you can't actually hack your way around free-tier...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[api]]></category>
      <category><![CDATA[twitter]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[technical-debt]]></category>
      <category><![CDATA[scraping]]></category>
      <category><![CDATA[graphql]]></category>
    </item>
    <item>
      <title><![CDATA[LLMs Love Markdown. CMSs Love Databases. I Built a WordPress Bridge Nobody Should Need.]]></title>
      <link>https://augustinchan.dev/posts/2025-11-07-wordpress-rest-api-siteground-security-ssh-wpcli</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-11-07-wordpress-rest-api-siteground-security-ssh-wpcli</guid>
      <pubDate>Fri, 07 Nov 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A technical post-mortem on why WordPress's REST API is theoretically elegant but practically unusable for CI/CD, how SiteGround's security theater...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[wordpress]]></category>
      <category><![CDATA[devops]]></category>
      <category><![CDATA[ci-cd]]></category>
      <category><![CDATA[automation]]></category>
      <category><![CDATA[rest-api]]></category>
      <category><![CDATA[ssh]]></category>
      <category><![CDATA[wpcli]]></category>
      <category><![CDATA[siteground]]></category>
      <category><![CDATA[cms]]></category>
      <category><![CDATA[ai-agents]]></category>
      <category><![CDATA[markdown]]></category>
      <category><![CDATA[dfw-style]]></category>
    </item>
    <item>
      <title><![CDATA[The Daily Hexagram: A Journey from Complexity to Simplicity]]></title>
      <link>https://augustinchan.dev/posts/2025-10-28-binary-calendar-hexagram-simplicity</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-10-28-binary-calendar-hexagram-simplicity</guid>
      <pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[How we learned to stop worrying and love the binary calendar. On deleting databases, removing cron jobs, and discovering that the oracle was encoded in...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[simplicity]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[8-bit-oracle]]></category>
      <category><![CDATA[engineering]]></category>
      <category><![CDATA[dfw-style]]></category>
      <category><![CDATA[binary]]></category>
      <category><![CDATA[algorithms]]></category>
    </item>
    <item>
      <title><![CDATA[Memory Systems and the Graph That Wasn't: On Not Using Neo4j]]></title>
      <link>https://augustinchan.dev/posts/2025-10-28-memory-systems-and-the-graph-that-wasnt</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-10-28-memory-systems-and-the-graph-that-wasnt</guid>
      <pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[What we actually ship in 8-Bit Oracle today: JSONB conversations, hexagram context, and Postgres views — plus why we didn't adopt Neo4j, MemMachine, or...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[memory-systems]]></category>
      <category><![CDATA[postgres]]></category>
      <category><![CDATA[8-bit-oracle]]></category>
      <category><![CDATA[dfw-style]]></category>
      <category><![CDATA[engineering]]></category>
      <category><![CDATA[databases]]></category>
    </item>
    <item>
      <title><![CDATA[Memory Systems Deep Dive: Technical Appendix]]></title>
      <link>https://augustinchan.dev/posts/2025-10-28-memory-systems-appendix</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-10-28-memory-systems-appendix</guid>
      <pubDate>Tue, 28 Oct 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Complete technical comparison of MemMachine vs mem0, PostgreSQL graph alternatives (recursive CTEs, ltree, adjacency lists), and detailed...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[memory-systems]]></category>
      <category><![CDATA[postgres]]></category>
      <category><![CDATA[technical-deep-dive]]></category>
      <category><![CDATA[neo4j]]></category>
      <category><![CDATA[vector-databases]]></category>
    </item>
    <item>
      <title><![CDATA[Tech Noir, Joy Division, and the Crushing Anxiety of Optimizing for Search Engines That Might Not Exist in Three Years]]></title>
      <link>https://augustinchan.dev/posts/2025-10-24-tech-noir-seo-anxiety-2025</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-10-24-tech-noir-seo-anxiety-2025</guid>
      <pubDate>Fri, 24 Oct 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[On replacing Wilhelm with Unknown Pleasures, cultural anchoring vs keyword stuffing, and whether we're all just shouting into the void while ChatGPT...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[seo]]></category>
      <category><![CDATA[geo]]></category>
      <category><![CDATA[tech-noir]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[meta-commentary]]></category>
      <category><![CDATA[anxiety]]></category>
      <category><![CDATA[cultural-anchoring]]></category>
      <category><![CDATA[ai-search]]></category>
      <category><![CDATA[dfw-style]]></category>
    </item>
    <item>
      <title><![CDATA[When LLM Reasoning Becomes the Pattern - Meta-Classification Failure Modes]]></title>
      <link>https://augustinchan.dev/posts/2025-09-27-llm-reasoning-pattern-classification-failure-modes</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-09-27-llm-reasoning-pattern-classification-failure-modes</guid>
      <pubDate>Sat, 27 Sep 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Hard constraints beat soft self-regulation when an LLM's reasoning converges to a template.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[pattern-recognition]]></category>
      <category><![CDATA[reasoning]]></category>
      <category><![CDATA[constraints]]></category>
      <category><![CDATA[twitter]]></category>
      <category><![CDATA[content-generation]]></category>
      <category><![CDATA[failure-modes]]></category>
      <category><![CDATA[meta-patterns]]></category>
    </item>
    <item>
      <title><![CDATA[Evolutionary ADRs: Writing Architecture Decision Records from First Principles]]></title>
      <link>https://augustinchan.dev/posts/2025-09-21-evolutionary-adrs-first-principles</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-09-21-evolutionary-adrs-first-principles</guid>
      <pubDate>Sun, 21 Sep 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Why creating ADRs during development, not before it, leads to more honest and valuable documentation of your architectural decisions.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[Architecture]]></category>
      <category><![CDATA[ADR]]></category>
      <category><![CDATA[Software-Design]]></category>
      <category><![CDATA[Documentation]]></category>
      <category><![CDATA[Development-Process]]></category>
      <category><![CDATA[First-Principles]]></category>
      <category><![CDATA[Technical-Writing]]></category>
      <category><![CDATA[Software-Engineering]]></category>
    </item>
    <item>
      <title><![CDATA[Trusting Your Instincts: When AI Suggests Complex Solutions]]></title>
      <link>https://augustinchan.dev/posts/2025-09-14-trusting-instincts-ai-architecture</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-09-14-trusting-instincts-ai-architecture</guid>
      <pubDate>Sun, 14 Sep 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A debugging session reveals why your gut feeling about 'two sets of items' was right - and how to guide AI toward simpler, better solutions.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai-assistance]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[state-management]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[architecture]]></category>
      <category><![CDATA[single-source-of-truth]]></category>
      <category><![CDATA[ai-guidance]]></category>
      <category><![CDATA[software-engineering]]></category>
    </item>
    <item>
      <title><![CDATA[From Mimicry to Authenticity: Systematic Voice Evolution in DSPy]]></title>
      <link>https://augustinchan.dev/posts/2025-09-02-dspy-voice-evolution-authenticity</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-09-02-dspy-voice-evolution-authenticity</guid>
      <pubDate>Tue, 02 Sep 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Replace style copying with principled search: explore a multi-dimensional voice space and use Pareto-optimal selection to shape an original AI voice.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[dspy]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[voice-evolution]]></category>
      <category><![CDATA[gepa-optimization]]></category>
      <category><![CDATA[authenticity]]></category>
      <category><![CDATA[mimicry]]></category>
      <category><![CDATA[pareto-optimization]]></category>
      <category><![CDATA[voice-lattice]]></category>
      <category><![CDATA[ai-content-generation]]></category>
      <category><![CDATA[technical-deep-dive]]></category>
    </item>
    <item>
      <title><![CDATA[Locale Migration Strategy: When Adding Beats Replacing]]></title>
      <link>https://augustinchan.dev/posts/2025-08-19-locale-migration-strategy-decision</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-08-19-locale-migration-strategy-decision</guid>
      <pubDate>Tue, 19 Aug 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A technical deep-dive into how we avoided a risky database migration by choosing an additive strategy for adding Simplified Chinese support to our...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[internationalization]]></category>
      <category><![CDATA[database-migration]]></category>
      <category><![CDATA[risk-management]]></category>
      <category><![CDATA[production-deployment]]></category>
      <category><![CDATA[locale-strategy]]></category>
      <category><![CDATA[technical-decision-making]]></category>
    </item>
    <item>
      <title><![CDATA[Claude Code: From 30% to 50% Better Than Cursor Agent Mode]]></title>
      <link>https://augustinchan.dev/posts/2025-08-11-claude-code-productivity-gains</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-08-11-claude-code-productivity-gains</guid>
      <pubDate>Mon, 11 Aug 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[My experience with Claude Code's productivity gains, the double-edged sword of rapid development, and lessons learned from over-engineering features.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[claude-code]]></category>
      <category><![CDATA[ai-coding]]></category>
      <category><![CDATA[productivity]]></category>
      <category><![CDATA[development-workflow]]></category>
      <category><![CDATA[refactoring]]></category>
      <category><![CDATA[llm-tools]]></category>
    </item>
    <item>
      <title><![CDATA[Mem0's Aggressive `infer=True` Behavior: When LLM Filtering Goes Too Far]]></title>
      <link>https://augustinchan.dev/posts/2025-08-03-mem0-aggressive-infer-behavior</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-08-03-mem0-aggressive-infer-behavior</guid>
      <pubDate>Sun, 03 Aug 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Exploring why Mem0's default LLM prompts are overly restrictive, causing the `infer=True` mode to filter out too much content. Includes root cause...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[mem0]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[memory-management]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[python]]></category>
      <category><![CDATA[prompt-engineering]]></category>
      <category><![CDATA[fact-extraction]]></category>
      <category><![CDATA[similarity-detection]]></category>
      <category><![CDATA[developer-experience]]></category>
    </item>
    <item>
      <title><![CDATA[Getting Browser Tools MCP Server Working with Claude Code: A Simple 2-Step Solution]]></title>
      <link>https://augustinchan.dev/posts/2025-08-02-configuring-browser-tools-mcp-claude-code</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-08-02-configuring-browser-tools-mcp-claude-code</guid>
      <pubDate>Sat, 02 Aug 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Quick guide to configure browser-tools-mcp AgentDeskAI with Claude Code - solving connection issues and getting your MCP server properly integrated.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[Claude]]></category>
      <category><![CDATA[MCP]]></category>
      <category><![CDATA[Browser-Tools]]></category>
      <category><![CDATA[AgentDeskAI]]></category>
      <category><![CDATA[Development-Tools]]></category>
      <category><![CDATA[AI-Assisted-Coding]]></category>
      <category><![CDATA[Configuration]]></category>
      <category><![CDATA[Troubleshooting]]></category>
    </item>
    <item>
      <title><![CDATA[DSPy + OpenRouter: Why the Standard Integration Falls Short (And How to Fix It)]]></title>
      <link>https://augustinchan.dev/posts/2025-07-08-dspy-openrouter-integration</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-07-08-dspy-openrouter-integration</guid>
      <pubDate>Tue, 08 Jul 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[The standard DSPy OpenRouter integration lacks failover and proper app attribution. Here's how to fix it with custom headers to get automatic model...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[dspy]]></category>
      <category><![CDATA[openrouter]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[python]]></category>
      <category><![CDATA[model-failover]]></category>
      <category><![CDATA[litellm]]></category>
      <category><![CDATA[api-integration]]></category>
      <category><![CDATA[developer-experience]]></category>
    </item>
    <item>
      <title><![CDATA[Integrating RevenueCat Web Billing in React/Next.js: A Practical Guide]]></title>
      <link>https://augustinchan.dev/posts/2025-06-11-revenuecat-web-billing-integration</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-06-11-revenuecat-web-billing-integration</guid>
      <pubDate>Wed, 11 Jun 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A step-by-step guide to integrating RevenueCat Web Billing in a plain React/Next.js app. Covers account setup, SDK usage, code samples, and key gotchas...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[revenuecat]]></category>
      <category><![CDATA[stripe]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[web-billing]]></category>
      <category><![CDATA[subscriptions]]></category>
      <category><![CDATA[payments]]></category>
      <category><![CDATA[frontend]]></category>
      <category><![CDATA[developer-experience]]></category>
    </item>
    <item>
      <title><![CDATA[Cache Me If You Can: Getting Service Worker Update Toasts to Play Nice with New Jekyll Layouts]]></title>
      <link>https://augustinchan.dev/posts/2025-05-19-pwa-cache-toast-jekyll-adventures</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-05-19-pwa-cache-toast-jekyll-adventures</guid>
      <pubDate>Mon, 19 May 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A dive into debugging service worker caching and update notifications for new pages in a Jekyll site, ensuring the 'Content Refresh' toast works as...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[jekyll]]></category>
      <category><![CDATA[service-worker]]></category>
      <category><![CDATA[pwa]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[webdev]]></category>
      <category><![CDATA[caching]]></category>
    </item>
    <item>
      <title><![CDATA[Exploring 'Futures Thinking': A Design Dive for 8-Bit Oracle]]></title>
      <link>https://augustinchan.dev/posts/2025-05-18-8-bit-oracle-futures-thinking</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-05-18-8-bit-oracle-futures-thinking</guid>
      <pubDate>Sun, 18 May 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A technical exploration of 'Futures Thinking,' a potential experimental feature for 8-Bit Oracle, looking at a Triple Hex Mode and AI-driven scenario...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[8-Bit Oracle]]></category>
      <category><![CDATA[I-Ching]]></category>
      <category><![CDATA[AI]]></category>
      <category><![CDATA[Futures Thinking]]></category>
      <category><![CDATA[Divination]]></category>
      <category><![CDATA[Experimental Feature]]></category>
      <category><![CDATA[Development Log]]></category>
    </item>
    <item>
      <title><![CDATA[Android Passkeys: Frontend Adventures with CredentialManager and Jetpack Compose]]></title>
      <link>https://augustinchan.dev/posts/2025-05-16-android-passkeys-frontend-adventures</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-05-16-android-passkeys-frontend-adventures</guid>
      <pubDate>Fri, 16 May 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Building the Android frontend for FIDO2 passkeys: tackling CredentialManager, migrating DataStore, and the joys of debugging in Jetpack Compose.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[android]]></category>
      <category><![CDATA[kotlin]]></category>
      <category><![CDATA[jetpack compose]]></category>
      <category><![CDATA[passkeys]]></category>
      <category><![CDATA[fido2]]></category>
      <category><![CDATA[webauthn]]></category>
      <category><![CDATA[datastore]]></category>
      <category><![CDATA[credentialmanager]]></category>
      <category><![CDATA[frontend]]></category>
      <category><![CDATA[nia]]></category>
    </item>
    <item>
      <title><![CDATA[FIDO2 Passkeys for Android: Backend Challenges in Python]]></title>
      <link>https://augustinchan.dev/posts/2025-05-14-challenges-with-passkey-android</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-05-14-challenges-with-passkey-android</guid>
      <pubDate>Wed, 14 May 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's journey through the challenges of implementing FIDO2 passkeys for an Android app using Python, covering assetlinks.json, data...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[python]]></category>
      <category><![CDATA[fido2]]></category>
      <category><![CDATA[passkeys]]></category>
      <category><![CDATA[webauthn]]></category>
      <category><![CDATA[backend]]></category>
      <category><![CDATA[android]]></category>
      <category><![CDATA[security]]></category>
      <category><![CDATA[fastapi]]></category>
    </item>
    <item>
      <title><![CDATA[Deploying a CosmWasm Smart Contract on the Stargaze Testnet]]></title>
      <link>https://augustinchan.dev/posts/2025-03-27-getting-up-to-speed-with-cosmos-and-stargaze</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-03-27-getting-up-to-speed-with-cosmos-and-stargaze</guid>
      <pubDate>Thu, 27 Mar 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's guide to deploying a CosmWasm smart contract on the Stargaze testnet, covering environment setup, starsd CLI usage, contract uploading...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[rust]]></category>
      <category><![CDATA[cosmwasm]]></category>
      <category><![CDATA[smart contracts]]></category>
      <category><![CDATA[starsd]]></category>
      <category><![CDATA[cosmos]]></category>
      <category><![CDATA[stargaze]]></category>
      <category><![CDATA[testnet]]></category>
    </item>
    <item>
      <title><![CDATA[Revolutionizing Verifiable Compute on Solana: Key Bonsol Enhancements]]></title>
      <link>https://augustinchan.dev/posts/2025-03-08-bonsol-verifiable-compute-enhancements</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-03-08-bonsol-verifiable-compute-enhancements</guid>
      <pubDate>Sat, 08 Mar 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Deep dive into recent Bonsol framework improvements: a new I-Ching sample dApp, RISC0_DEV_MODE integration for faster development, and custom S3 URL...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[Bonsol]]></category>
      <category><![CDATA[Solana]]></category>
      <category><![CDATA[RISC0]]></category>
      <category><![CDATA[ZK]]></category>
      <category><![CDATA[Verifiable-Compute]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Blockchain]]></category>
      <category><![CDATA[Developer-Tools]]></category>
      <category><![CDATA[S3]]></category>
    </item>
    <item>
      <title><![CDATA[DKG OriginTrail Integration - Consensus HK 2025 Hackathon Win]]></title>
      <link>https://augustinchan.dev/posts/2025-02-20-dkg-origintrail-hackathon</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-02-20-dkg-origintrail-hackathon</guid>
      <pubDate>Thu, 20 Feb 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[Integrated OriginTrail DKG with Eliza AI and a custom divination backend, enabling on-chain persistence of divinations via a Telegram bot.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[DKG]]></category>
      <category><![CDATA[OriginTrail]]></category>
      <category><![CDATA[AI]]></category>
      <category><![CDATA[Blockchain]]></category>
      <category><![CDATA[Hackathon]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[JSON-LD]]></category>
      <category><![CDATA[SPARQL]]></category>
      <category><![CDATA[NodeJS]]></category>
    </item>
    <item>
      <title><![CDATA[Brainstorming a New Theory of Self-Directed Learning for AI, with AI]]></title>
      <link>https://augustinchan.dev/posts/2025-01-17-brainstorming-a-novel-theory-with-ai</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2025-01-17-brainstorming-a-novel-theory-with-ai</guid>
      <pubDate>Fri, 17 Jan 2025 00:00:00 GMT</pubDate>
      <description><![CDATA[An exploration of using the I-Ching's King Wen sequence as a potential framework for self-directed learning in AGI. Details the thought process, key...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[king-wen-sequence]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[self-directed-learning]]></category>
      <category><![CDATA[memory]]></category>
      <category><![CDATA[agi]]></category>
      <category><![CDATA[artificial-general-intelligence]]></category>
      <category><![CDATA[meta-learning]]></category>
      <category><![CDATA[information-theory]]></category>
      <category><![CDATA[ancient-wisdom]]></category>
      <category><![CDATA[ai-research]]></category>
      <category><![CDATA[zenodo]]></category>
    </item>
    <item>
      <title><![CDATA[Key Contributions to ai16z Eliza AI Project (Nov 2024)]]></title>
      <link>https://augustinchan.dev/posts/2024-11-15-eliza-ai16z-contribution</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-11-15-eliza-ai16z-contribution</guid>
      <pubDate>Fri, 15 Nov 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[Detailing significant enhancements to the ai16z Eliza AI project, focusing on local-first capabilities, model optimization, and backend stability.]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[AI]]></category>
      <category><![CDATA[LLM]]></category>
      <category><![CDATA[Embeddings]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Ollama]]></category>
      <category><![CDATA[Claude-3-Haiku]]></category>
      <category><![CDATA[Postgres]]></category>
      <category><![CDATA[Open-Source]]></category>
    </item>
    <item>
      <title><![CDATA[Zustand: A Weapon for Efficient User State Management in React]]></title>
      <link>https://augustinchan.dev/posts/2024-09-01-zustand-state-management</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-09-01-zustand-state-management</guid>
      <pubDate>Sun, 01 Sep 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[An overview of Zustand as an efficient state management library for React, highlighting its benefits over traditional methods (refs, Context API) for...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[zustand]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[state-management]]></category>
      <category><![CDATA[react-state-management]]></category>
      <category><![CDATA[global-state]]></category>
      <category><![CDATA[react-hooks]]></category>
      <category><![CDATA[performance-optimization]]></category>
      <category><![CDATA[re-renders]]></category>
      <category><![CDATA[typescript]]></category>
      <category><![CDATA[frontend-development]]></category>
    </item>
    <item>
      <title><![CDATA[Optimizing React Authentication: Minimizing Re-renders and Improving Performance]]></title>
      <link>https://augustinchan.dev/posts/2024-08-30-minimizing-re-renders</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-08-30-minimizing-re-renders</guid>
      <pubDate>Fri, 30 Aug 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A guide to minimizing re-renders and optimizing performance in React/Next.js applications with authentication. Covers combining state, memoizing...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[react]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[react-performance]]></category>
      <category><![CDATA[nextjs-optimization]]></category>
      <category><![CDATA[re-renders]]></category>
      <category><![CDATA[state-management]]></category>
      <category><![CDATA[react-hooks]]></category>
      <category><![CDATA[usestate]]></category>
      <category><![CDATA[usememo]]></category>
      <category><![CDATA[useref]]></category>
      <category><![CDATA[useeffect]]></category>
      <category><![CDATA[context-api]]></category>
      <category><![CDATA[authentication]]></category>
      <category><![CDATA[supabase]]></category>
      <category><![CDATA[debounce]]></category>
    </item>
    <item>
      <title><![CDATA[Conditional Rendering in Next.js: Hiding Footer on Specific Pages]]></title>
      <link>https://augustinchan.dev/posts/2024-06-21-conditional-rendering</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-06-21-conditional-rendering</guid>
      <pubDate>Fri, 21 Jun 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A guide to conditionally rendering components, like a footer, in a Next.js 14 (App Router) application by bridging server and client components using...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[nextjs-app-router]]></category>
      <category><![CDATA[server-components]]></category>
      <category><![CDATA[client-components]]></category>
      <category><![CDATA[conditional-rendering]]></category>
      <category><![CDATA[react-context]]></category>
      <category><![CDATA[usepathname]]></category>
      <category><![CDATA[react-hooks]]></category>
      <category><![CDATA[layout-management]]></category>
      <category><![CDATA[frontend-development]]></category>
    </item>
    <item>
      <title><![CDATA[Integrating with Shadcn: Tips and Insights for Seamless UI Component Integration]]></title>
      <link>https://augustinchan.dev/posts/2024-06-08-integrating-shadcn</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-06-08-integrating-shadcn</guid>
      <pubDate>Sat, 08 Jun 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's experience integrating Shadcn UI components into a Next.js project. Covers project preparation, handling opinionated styling (dark theme...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[shadcn-ui]]></category>
      <category><![CDATA[ui-components]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[tailwindcss]]></category>
      <category><![CDATA[radix-ui]]></category>
      <category><![CDATA[frontend-development]]></category>
      <category><![CDATA[component-libraries]]></category>
      <category><![CDATA[theme-provider]]></category>
      <category><![CDATA[css-styling]]></category>
      <category><![CDATA[developer-experience]]></category>
    </item>
    <item>
      <title><![CDATA[Securing SSH: A Detailed Look at Fail2Ban Configuration and Rule Management]]></title>
      <link>https://augustinchan.dev/posts/2024-06-03-securing-ssh</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-06-03-securing-ssh</guid>
      <pubDate>Mon, 03 Jun 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A detailed guide to troubleshooting and configuring Fail2Ban with UFW for robust SSH security. Covers iptables rule order, jail.local setup, persistent...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[security]]></category>
      <category><![CDATA[fail2ban]]></category>
      <category><![CDATA[ufw]]></category>
      <category><![CDATA[ssh]]></category>
      <category><![CDATA[iptables]]></category>
      <category><![CDATA[linux-security]]></category>
      <category><![CDATA[server-security]]></category>
      <category><![CDATA[firewall]]></category>
      <category><![CDATA[intrusion-detection]]></category>
      <category><![CDATA[log-monitoring]]></category>
      <category><![CDATA[ssh-hardening]]></category>
    </item>
    <item>
      <title><![CDATA[Navigating UI Framework Transitions: From Bootstrap to Shadcn]]></title>
      <link>https://augustinchan.dev/posts/2024-05-31-ui-frameworks</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-05-31-ui-frameworks</guid>
      <pubDate>Fri, 31 May 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's journey through UI framework choices, from Bootstrap to Next.js with Shadcn/ui. Discusses the pros and cons of component libraries like...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ui-frameworks]]></category>
      <category><![CDATA[component-libraries]]></category>
      <category><![CDATA[shadcn-ui]]></category>
      <category><![CDATA[tailwindcss]]></category>
      <category><![CDATA[radix-ui]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[bootstrap]]></category>
      <category><![CDATA[frontend-development]]></category>
    </item>
    <item>
      <title><![CDATA[Navigating Client vs Server-Side Authentication in Web Development]]></title>
      <link>https://augustinchan.dev/posts/2024-05-07-client-vs-server-side-auth</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-05-07-client-vs-server-side-auth</guid>
      <pubDate>Tue, 07 May 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[Explores client-side vs. server-side authentication using Supabase with Next.js 14 (App Router). Covers Google OAuth2 (client-side flow with...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[supabase]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[authentication]]></category>
      <category><![CDATA[client-side-auth]]></category>
      <category><![CDATA[server-side-auth]]></category>
      <category><![CDATA[oauth2]]></category>
      <category><![CDATA[magic-link]]></category>
      <category><![CDATA[supabase-ssr]]></category>
      <category><![CDATA[supabase-auth-ui]]></category>
      <category><![CDATA[auth-helpers]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[typescript]]></category>
    </item>
    <item>
      <title><![CDATA[Implementing Auth and Database for 8-Bit Oracle]]></title>
      <link>https://augustinchan.dev/posts/2024-05-05-getting-down-to-business</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-05-05-getting-down-to-business</guid>
      <pubDate>Sun, 05 May 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[Details on setting up authentication and database for the 8-Bit Oracle project using Next.js, Supabase (with Auth-UI for OAuth2), and Tailwind CSS...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[supabase]]></category>
      <category><![CDATA[authentication]]></category>
      <category><![CDATA[oauth2]]></category>
      <category><![CDATA[web3auth]]></category>
      <category><![CDATA[supabase-auth-ui]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[postgresql]]></category>
      <category><![CDATA[tailwindcss]]></category>
      <category><![CDATA[backend-development]]></category>
      <category><![CDATA[project-update]]></category>
      <category><![CDATA[beta-signup]]></category>
    </item>
    <item>
      <title><![CDATA[Claude vs GPT4 for Coding]]></title>
      <link>https://augustinchan.dev/posts/2024-04-19-claude-vs-gpt4-coding-assistants</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-04-19-claude-vs-gpt4-coding-assistants</guid>
      <pubDate>Fri, 19 Apr 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's comparison of using Claude Opus and GPT-4 (via Cursor.sh) as AI coding assistants, particularly when working with Next.js App Router vs...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai-coding-assistants]]></category>
      <category><![CDATA[claude]]></category>
      <category><![CDATA[gpt-4]]></category>
      <category><![CDATA[ai-pair-programming]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[react]]></category>
      <category><![CDATA[cursor-sh]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[code-generation]]></category>
      <category><![CDATA[developer-tools]]></category>
    </item>
    <item>
      <title><![CDATA[How to Create an Interactive Typing Effect in React with Skip Animation Feature]]></title>
      <link>https://augustinchan.dev/posts/2024-04-17-smooth-typing-effect-in-react</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-04-17-smooth-typing-effect-in-react</guid>
      <pubDate>Wed, 17 Apr 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A developer's notes and tips on implementing a smooth, multi-paragraph typing effect in React with a skip animation feature. Covers state management...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[react]]></category>
      <category><![CDATA[typing-effect]]></category>
      <category><![CDATA[animation]]></category>
      <category><![CDATA[react-hooks]]></category>
      <category><![CDATA[useeffect]]></category>
      <category><![CDATA[usestate]]></category>
      <category><![CDATA[usecallback]]></category>
      <category><![CDATA[dom-manipulation]]></category>
      <category><![CDATA[event-handling]]></category>
      <category><![CDATA[internationalization]]></category>
      <category><![CDATA[react-i18next]]></category>
      <category><![CDATA[frontend-development]]></category>
    </item>
    <item>
      <title><![CDATA[Exploring Divination Techniques: Chainlink VRF vs. Traditional Randomness Methods]]></title>
      <link>https://augustinchan.dev/posts/2024-04-15-using-chainlink-vrf-for-divination</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-04-15-using-chainlink-vrf-for-divination</guid>
      <pubDate>Mon, 15 Apr 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[An analysis of using Chainlink VRF for I-Ching divination, comparing it to traditional methods and other randomness generation techniques like PRNGs...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[chainlink-vrf]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[divination]]></category>
      <category><![CDATA[randomness]]></category>
      <category><![CDATA[blockchain]]></category>
      <category><![CDATA[smart-contracts]]></category>
      <category><![CDATA[cryptography]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[prng]]></category>
      <category><![CDATA[csprng]]></category>
      <category><![CDATA[hexagrams]]></category>
      <category><![CDATA[spiritual-technology]]></category>
      <category><![CDATA[yin-yang]]></category>
    </item>
    <item>
      <title><![CDATA[Solving Webpack Issues: Eliminating Double Script Loading and FOUC]]></title>
      <link>https://augustinchan.dev/posts/2024-03-23-webpack-strangeness</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-03-23-webpack-strangeness</guid>
      <pubDate>Sat, 23 Mar 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[Troubleshooting common Webpack issues, including double script loading due to manual and Webpack config imports, and resolving Flash of Unstyled...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[webpack]]></category>
      <category><![CDATA[javascript-bundling]]></category>
      <category><![CDATA[fouc]]></category>
      <category><![CDATA[frontend-optimization]]></category>
      <category><![CDATA[webpack-configuration]]></category>
      <category><![CDATA[css-loading]]></category>
      <category><![CDATA[production-build]]></category>
      <category><![CDATA[cross-env]]></category>
      <category><![CDATA[mini-css-extract-plugin]]></category>
      <category><![CDATA[troubleshooting]]></category>
    </item>
    <item>
      <title><![CDATA[React's useEffect Firing Twice in Dev? The HMR Culprit and a Simple Check]]></title>
      <link>https://augustinchan.dev/posts/2024-03-09-react-state-updates-and-js-timing-functions</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-03-09-react-state-updates-and-js-timing-functions</guid>
      <pubDate>Sat, 09 Mar 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A quick developer tip: If your React useEffect hook seems to run twice in Next.js development mode, Hot Module Reloading (HMR) might be the reason...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[react]]></category>
      <category><![CDATA[useeffect]]></category>
      <category><![CDATA[nextjs]]></category>
      <category><![CDATA[hmr]]></category>
      <category><![CDATA[hot-module-reloading]]></category>
      <category><![CDATA[debugging]]></category>
      <category><![CDATA[react-development]]></category>
      <category><![CDATA[javascript]]></category>
      <category><![CDATA[frontend-development]]></category>
    </item>
    <item>
      <title><![CDATA[Fortune-Telling NFTs: Weaving I-Ching Wisdom with Blockchain Technology]]></title>
      <link>https://augustinchan.dev/posts/2024-03-04-fortune-telling-nfts</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-03-04-fortune-telling-nfts</guid>
      <pubDate>Mon, 04 Mar 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A project idea to create Fortune-Telling NFTs by integrating the ancient wisdom of the I-Ching (Yin/Yang, Trigrams, Hexagrams) with modern blockchain...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[nft]]></category>
      <category><![CDATA[blockchain]]></category>
      <category><![CDATA[i-ching]]></category>
      <category><![CDATA[taoism]]></category>
      <category><![CDATA[yin-yang]]></category>
      <category><![CDATA[hexagrams]]></category>
      <category><![CDATA[trigrams]]></category>
      <category><![CDATA[generative-ai]]></category>
      <category><![CDATA[solana]]></category>
      <category><![CDATA[ethereum]]></category>
      <category><![CDATA[digital-divination]]></category>
      <category><![CDATA[web3]]></category>
      <category><![CDATA[fortune-telling]]></category>
      <category><![CDATA[chinese-culture]]></category>
      <category><![CDATA[spirituality]]></category>
      <category><![CDATA[cultural-heritage]]></category>
    </item>
    <item>
      <title><![CDATA[Brainstorming an AI-Powered Photo Critic Service]]></title>
      <link>https://augustinchan.dev/posts/2024-02-29-brainstorming-ai-driven-photo-critic</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-02-29-brainstorming-ai-driven-photo-critic</guid>
      <pubDate>Thu, 29 Feb 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[My initial thoughts on designing an AI service that can analyze and critique uploaded photos. I explore a multi-stage approach using CNNs, CLIP, and...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai]]></category>
      <category><![CDATA[photo-critic]]></category>
      <category><![CDATA[multi-modal]]></category>
      <category><![CDATA[computer-vision]]></category>
      <category><![CDATA[image-analysis]]></category>
      <category><![CDATA[cnn]]></category>
      <category><![CDATA[clip]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[retrieval-augmented-generation]]></category>
      <category><![CDATA[image-captioning]]></category>
      <category><![CDATA[aesthetic-evaluation]]></category>
    </item>
    <item>
      <title><![CDATA[Cracking AWS Network Issues: EC2 Docker to RDS Postgres Connectivity]]></title>
      <link>https://augustinchan.dev/posts/2024-02-28-diagnosing-aws-ec2-to-rds-network-issues</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-02-28-diagnosing-aws-ec2-to-rds-network-issues</guid>
      <pubDate>Wed, 28 Feb 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[A step-by-step guide to diagnosing and fixing network connection problems between a Dockerized Spring Boot app on AWS EC2 and an RDS Postgres database...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[aws]]></category>
      <category><![CDATA[ec2]]></category>
      <category><![CDATA[rds]]></category>
      <category><![CDATA[postgres]]></category>
      <category><![CDATA[networking]]></category>
      <category><![CDATA[docker]]></category>
      <category><![CDATA[spring-boot]]></category>
      <category><![CDATA[dns]]></category>
      <category><![CDATA[aws-vpc]]></category>
      <category><![CDATA[security-groups]]></category>
      <category><![CDATA[troubleshooting]]></category>
    </item>
    <item>
      <title><![CDATA[Rapid Spring Boot: Notes on JWT Authentication and JPA Data Persistence]]></title>
      <link>https://augustinchan.dev/posts/2024-02-28-spring-auth-and-persistence</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-02-28-spring-auth-and-persistence</guid>
      <pubDate>Wed, 28 Feb 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[My developer notes on quickly getting to grips with JWT authentication and data persistence in Spring Boot 3. I cover my experiences with Spring...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[spring-boot]]></category>
      <category><![CDATA[spring-security]]></category>
      <category><![CDATA[spring-data-jpa]]></category>
      <category><![CDATA[jwt]]></category>
      <category><![CDATA[bcrypt]]></category>
      <category><![CDATA[java-persistence-api]]></category>
      <category><![CDATA[jpa]]></category>
      <category><![CDATA[authentication]]></category>
      <category><![CDATA[authorization]]></category>
      <category><![CDATA[api-security]]></category>
      <category><![CDATA[java]]></category>
    </item>
    <item>
      <title><![CDATA[AI for Family Stories: Transcribing, Mapping, and Visualizing Our Histories]]></title>
      <link>https://augustinchan.dev/posts/2024-02-13-brainstorming-transcription</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-02-13-brainstorming-transcription</guid>
      <pubDate>Tue, 13 Feb 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[Some brainstorming on using AI to transcribe family stories shared at gatherings. I'm thinking about detecting narrators, mapping complex family...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai-transcription]]></category>
      <category><![CDATA[family-storytelling]]></category>
      <category><![CDATA[genealogy]]></category>
      <category><![CDATA[narrator-detection]]></category>
      <category><![CDATA[relationship-mapping]]></category>
      <category><![CDATA[voice-recognition]]></category>
      <category><![CDATA[family-history]]></category>
      <category><![CDATA[knowledge-graph]]></category>
      <category><![CDATA[cultural-heritage]]></category>
      <category><![CDATA[audio-to-text]]></category>
      <category><![CDATA[ai-storytelling]]></category>
      <category><![CDATA[voice-biometrics]]></category>
    </item>
    <item>
      <title><![CDATA[Building a Smarter AI Agent with Haystack 1.x: My Journey with RAG and Custom Pipelines]]></title>
      <link>https://augustinchan.dev/posts/2024-02-01-optimizing-rag-on-haystack</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-02-01-optimizing-rag-on-haystack</guid>
      <pubDate>Thu, 01 Feb 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[My experience implementing Retrieval Augmented Generation (RAG) and AI Agents with Haystack 1.x. I cover conversational memory, creating custom data...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[retrieval-augmented-generation]]></category>
      <category><![CDATA[rag]]></category>
      <category><![CDATA[haystack-framework]]></category>
      <category><![CDATA[ai-agents]]></category>
      <category><![CDATA[faiss]]></category>
      <category><![CDATA[vector-database]]></category>
      <category><![CDATA[google-search-integration]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[nlp]]></category>
      <category><![CDATA[custom-pipelines]]></category>
      <category><![CDATA[data-indexing]]></category>
      <category><![CDATA[conversational-ai]]></category>
    </item>
    <item>
      <title><![CDATA[Exploring Haystack: Building Advanced NLP Applications with LLMs and Vector Search]]></title>
      <link>https://augustinchan.dev/posts/2024-01-21-playing-with-haystack</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2024-01-21-playing-with-haystack</guid>
      <pubDate>Sun, 21 Jan 2024 00:00:00 GMT</pubDate>
      <description><![CDATA[My practical tips and experiences from working with the Haystack LLM framework. I cover version differences (1.x vs. 2.x beta), the benefits of...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[haystack-framework]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[nlp]]></category>
      <category><![CDATA[vector-search]]></category>
      <category><![CDATA[retrieval-augmented-generation]]></category>
      <category><![CDATA[python-development]]></category>
      <category><![CDATA[open-source]]></category>
      <category><![CDATA[git]]></category>
      <category><![CDATA[chatbot-development]]></category>
      <category><![CDATA[document-search]]></category>
      <category><![CDATA[dependency-management]]></category>
    </item>
    <item>
      <title><![CDATA[Speed Up GPT-J-6B: From Minutes to Seconds with GGML Conversion]]></title>
      <link>https://augustinchan.dev/posts/2023-11-26-huggingface-gpt-j-6b-is-slow</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2023-11-26-huggingface-gpt-j-6b-is-slow</guid>
      <pubDate>Sun, 26 Nov 2023 00:00:00 GMT</pubDate>
      <description><![CDATA[A guide on dramatically improving GPT-J-6B inference speed. I'll show you how I converted a Hugging Face model from its standard format to GGML...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[gpt-j]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[inference-speed]]></category>
      <category><![CDATA[huggingface]]></category>
      <category><![CDATA[ggml]]></category>
      <category><![CDATA[gguf]]></category>
      <category><![CDATA[model-conversion]]></category>
      <category><![CDATA[performance-optimization]]></category>
      <category><![CDATA[python]]></category>
      <category><![CDATA[local-llm]]></category>
    </item>
    <item>
      <title><![CDATA[The Challenge of Finding Uncensored AI Models]]></title>
      <link>https://augustinchan.dev/posts/2023-11-26-its-hard-to-find-an-uncensored-model</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2023-11-26-its-hard-to-find-an-uncensored-model</guid>
      <pubDate>Sun, 26 Nov 2023 00:00:00 GMT</pubDate>
      <description><![CDATA[Exploring the difficulties in finding truly uncensored AI models. I discuss the influence of OpenAI's data and look at methods for fine-tuning base...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[uncensored-ai]]></category>
      <category><![CDATA[ai-model-training]]></category>
      <category><![CDATA[huggingface-models]]></category>
      <category><![CDATA[openai]]></category>
      <category><![CDATA[gguf]]></category>
      <category><![CDATA[ai-ethics]]></category>
      <category><![CDATA[data-censorship]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[model-finetuning]]></category>
    </item>
    <item>
      <title><![CDATA[AI Model Formats Explained: Demystifying Llama.cpp, GGUF, GGML, and Transformers]]></title>
      <link>https://augustinchan.dev/posts/2023-11-26-spectacular-reddit-post-on-huggingface</link>
      <guid isPermaLink="true">https://augustinchan.dev/posts/2023-11-26-spectacular-reddit-post-on-huggingface</guid>
      <pubDate>Sun, 26 Nov 2023 00:00:00 GMT</pubDate>
      <description><![CDATA[A breakdown of a helpful Reddit discussion on AI model formats like GGUF, GGML, and tools such as Llama.cpp and Hugging Face Transformers. I add my own...]]></description>
      <author>aug@digitalrain.studio (Augustin Chan)</author>
      <category><![CDATA[ai-model-formats]]></category>
      <category><![CDATA[llama-cpp]]></category>
      <category><![CDATA[gguf]]></category>
      <category><![CDATA[ggml]]></category>
      <category><![CDATA[huggingface-transformers]]></category>
      <category><![CDATA[model-quantization]]></category>
      <category><![CDATA[safetensors]]></category>
      <category><![CDATA[gptq]]></category>
      <category><![CDATA[llm]]></category>
      <category><![CDATA[ai-tools]]></category>
      <category><![CDATA[local-llama]]></category>
      <category><![CDATA[reddit-discussion]]></category>
    </item>
  </channel>
</rss>