<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>Zixian Chen - Blog</title>
		<link>https://zixianchen.com/blog</link>
		<description>Blog posts by Zixian Chen.</description>
		<language>en</language>
		<atom:link href="https://zixianchen.com/rss.xml" rel="self" type="application/rss+xml" />
		<item>
			<title>Apologize Only If You Actually Did Something Wrong</title>
			<link>https://zixianchen.com/blog/apologize-only-if-you-actually-did-something-wrong</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/apologize-only-if-you-actually-did-something-wrong</guid>
			<pubDate>Fri, 07 Aug 2026 00:00:00 GMT</pubDate>
			<description>Why we apologize for taking leave or asking someone to do their job, and how the habit reinforces deference at work.</description>
			<category>Work</category>
		</item>
		<item>
			<title>Blocking Scanner Noise with Cloudflare WAF</title>
			<link>https://zixianchen.com/blog/blocking-scanner-noise-with-cloudflare-waf</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/blocking-scanner-noise-with-cloudflare-waf</guid>
			<pubDate>Sat, 01 Aug 2026 00:00:00 GMT</pubDate>
			<description>I don&apos;t run PHP or WordPress, so I used Cloudflare WAF to stop those probes from reaching my server and cluttering its logs.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Staff Work, Part 3: Staff Work Is Everyone’s Problem</title>
			<link>https://zixianchen.com/blog/staff-work-is-everyones-problem</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/staff-work-is-everyones-problem</guid>
			<pubDate>Mon, 27 Jul 2026 00:00:00 GMT</pubDate>
			<description>Officers need to learn from comments. Managers need to know how to guide, teach and learn too, because decisions depend on the work.</description>
			<category>Work</category>
		</item>
		<item>
			<title>Fixing Coolify Container Networking on Oracle Cloud After a Reboot</title>
			<link>https://zixianchen.com/blog/gpt-4-6-sol-fix-coolify-deployments-oracle-cloud</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/gpt-4-6-sol-fix-coolify-deployments-oracle-cloud</guid>
			<pubDate>Sun, 26 Jul 2026 00:00:00 GMT</pubDate>
			<description>A reboot restored a tangled iptables snapshot that blocked Docker container traffic. Here is how GPT 4.6 Sol helped me diagnose and clean it up.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Staff Work, Part 2: The Small Stuff Is Still Part of Staff Work</title>
			<link>https://zixianchen.com/blog/staff-work-small-stuff-is-still-part-of-staff-work</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/staff-work-small-stuff-is-still-part-of-staff-work</guid>
			<pubDate>Wed, 22 Jul 2026 00:00:00 GMT</pubDate>
			<description>A practical guide to preparing papers, emails, slides and records, and checking the actual package before it goes up.</description>
			<category>Work</category>
		</item>
		<item>
			<title>Staff Work, Part 1: Make It Make Sense Before It Goes Up</title>
			<link>https://zixianchen.com/blog/staff-work-make-it-make-sense-before-it-goes-up</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/staff-work-make-it-make-sense-before-it-goes-up</guid>
			<pubDate>Sun, 19 Jul 2026 00:00:00 GMT</pubDate>
			<description>A practical reference guide to thinking through staff work, communicating upwards, and making a clear recommendation.</description>
			<category>Work</category>
		</item>
		<item>
			<title>Pixel Wi-Fi Stuck Scanning After a SIM Swap: The Fix</title>
			<link>https://zixianchen.com/blog/wireless-sgx-stuck-scanning-sim-swap-pixel-reset-network-settings</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/wireless-sgx-stuck-scanning-sim-swap-pixel-reset-network-settings</guid>
			<pubDate>Tue, 30 Jun 2026 00:00:00 GMT</pubDate>
			<description>A new SIM left my Pixel stuck scanning for Wireless@SGx and my home Wi-Fi. Resetting Android’s network settings fixed both on the first try.</description>
			<category>Life</category>
		</item>
		<item>
			<title>Excluding node_modules From Backblaze Backups on Windows</title>
			<link>https://zixianchen.com/blog/excluding-node-modules-from-backblaze-backups-windows</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/excluding-node-modules-from-backblaze-backups-windows</guid>
			<pubDate>Thu, 04 Jun 2026 00:00:00 GMT</pubDate>
			<description>The Backblaze exclusion rules that finally worked for my node_modules, SvelteKit caches, Go build caches, and other development folders on Windows.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>How AI Changed the Way I Write</title>
			<link>https://zixianchen.com/blog/how-ai-changed-the-way-i-write</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/how-ai-changed-the-way-i-write</guid>
			<pubDate>Wed, 06 May 2026 00:00:00 GMT</pubDate>
			<description>On soulless AI prose, the writing habits I&apos;ve had to abandon, and the weird mental shift of writing defensively against your own tools.</description>
			<category>Life</category>
		</item>
		<item>
			<title>Wireless@SGx Connected but No Internet on Linux Mint: The Fix</title>
			<link>https://zixianchen.com/blog/wireless-sgx-not-working-linux-mint-connected-no-internet</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/wireless-sgx-not-working-linux-mint-connected-no-internet</guid>
			<pubDate>Tue, 14 Apr 2026 00:00:00 GMT</pubDate>
			<description>Wireless@SGx authenticated on Linux Mint but TCP was blocked. Setting NetworkManager to use a stable cloned MAC fixed it after hours of wrong DNS turns.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Feeling Some AI Coding FOMO</title>
			<link>https://zixianchen.com/blog/feeling-some-ai-coding-fomo</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/feeling-some-ai-coding-fomo</guid>
			<pubDate>Sat, 11 Apr 2026 00:00:00 GMT</pubDate>
			<description>Just writing down how I&apos;ve been feeling about AI coding tools lately.</description>
			<category>Life</category>
		</item>
		<item>
			<title>Coolify Postgres 18 Data Disappearing on Restart? Check PGDATA</title>
			<link>https://zixianchen.com/blog/coolify-postgres-18-pgdata-restart</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/coolify-postgres-18-pgdata-restart</guid>
			<pubDate>Wed, 11 Mar 2026 00:00:00 GMT</pubDate>
			<description>Postgres 18 Alpine changed the default PGDATA path, silently breaking Coolify storage mounts that worked fine on Postgres 16.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Google Photos 20K Photos Album Limit Workaround</title>
			<link>https://zixianchen.com/blog/google-photos-20k-photos-album-limit-workaround</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/google-photos-20k-photos-album-limit-workaround</guid>
			<pubDate>Fri, 17 Oct 2025 00:00:00 GMT</pubDate>
			<description>A workaround for auto-adding Google Photos albums to continue where the last one left off.</description>
			<category>Life</category>
		</item>
		<item>
			<title>Migrating a Static SvelteKit Site from Cloudflare Pages to Workers</title>
			<link>https://zixianchen.com/blog/migrating-sveltekit-static-site-adapter-static-cloudflare-pages-workers</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/migrating-sveltekit-static-site-adapter-static-cloudflare-pages-workers</guid>
			<pubDate>Mon, 29 Sep 2025 00:00:00 GMT</pubDate>
			<description>I moved an adapter-static SvelteKit site from Cloudflare Pages to Workers with a static-assets Wrangler config and three deployment settings.</description>
			<category>Dev</category>
		</item>
		<item>
			<title>Setting Up PocketBase’s First Superuser on Coolify</title>
			<link>https://zixianchen.com/blog/pocketbase-setup-first-time-superuser-creation</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/pocketbase-setup-first-time-superuser-creation</guid>
			<pubDate>Sun, 15 Jun 2025 00:00:00 GMT</pubDate>
			<description>I created PocketBase’s first superuser on Coolify with the installer URL in the service logs. The current CLI command works too.</description>
			<category>Dev</category>
		</item>
		<item>
			<title>Fixing Alpine Linux CDN Errors in Coolify Docker Compose Builds</title>
			<link>https://zixianchen.com/blog/coolify-docker-compose-build-failures-alpinelinux-cdn-temporary-error</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/coolify-docker-compose-build-failures-alpinelinux-cdn-temporary-error</guid>
			<pubDate>Sat, 29 Mar 2025 00:00:00 GMT</pubDate>
			<description>My Coolify Docker Compose build on Oracle Cloud could not reach the Alpine Linux CDN. Using the host network fixed it, with a security trade-off.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Fixing Astro 5’s Cannot Access $$Picture Build Error</title>
			<link>https://zixianchen.com/blog/troubleshooting-astro-5-upgrade-picture-error</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/troubleshooting-astro-5-upgrade-picture-error</guid>
			<pubDate>Fri, 13 Dec 2024 00:00:00 GMT</pubDate>
			<description>My Astro 5 build failed with “Cannot access $$Picture before initialization.” The fix was replacing the legacy Picture import with astro:assets.</description>
			<category>Dev</category>
		</item>
		<item>
			<title>Coolify: Connecting Docker Compose App to Postgres DB</title>
			<link>https://zixianchen.com/blog/finally-connecting-docker-compose-app-postgres-db-coolify</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/finally-connecting-docker-compose-app-postgres-db-coolify</guid>
			<pubDate>Sat, 16 Nov 2024 00:00:00 GMT</pubDate>
			<description>I connected a Docker Compose app to a separate Coolify Postgres service by enabling the predefined network and using the internal database URL.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Configuring Resend SMTP for PocketBase Email</title>
			<link>https://zixianchen.com/blog/using-resend-com-smtp-saas-provider-pocketbase-emails</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/using-resend-com-smtp-saas-provider-pocketbase-emails</guid>
			<pubDate>Sun, 13 Oct 2024 00:00:00 GMT</pubDate>
			<description>I configured Resend SMTP in PocketBase for verification and account emails, including the DNS, API key, sender, and application URL settings.</description>
			<category>Dev</category>
		</item>
		<item>
			<title>Adding Backblaze B2 Bucket to Coolify</title>
			<link>https://zixianchen.com/blog/adding-backblaze-b2-bucket-to-coolify</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/adding-backblaze-b2-bucket-to-coolify</guid>
			<pubDate>Tue, 24 Sep 2024 00:00:00 GMT</pubDate>
			<description>Config to add a Backblaze B2 bucket to Coolify&apos;s S3 storages for backup.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Adding Delay to a CSS Loader When Using HTMX Swaps</title>
			<link>https://zixianchen.com/blog/adding-delay-to-css-loader-when-using-htmx-swaps</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/adding-delay-to-css-loader-when-using-htmx-swaps</guid>
			<pubDate>Sat, 10 Aug 2024 00:00:00 GMT</pubDate>
			<description>I tried three ways to stop HTMX&apos;s hx-indicator from flashing: request events, a CSS delay, and the Loading States extension.</description>
			<category>Dev</category>
		</item>
		<item>
			<title>Extending an OCI Ubuntu Boot Volume with growpart</title>
			<link>https://zixianchen.com/blog/oracle-cloud-infrastructure-oci-resize-extend-boot-volume-size</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/oracle-cloud-infrastructure-oci-resize-extend-boot-volume-size</guid>
			<pubDate>Sun, 07 Jul 2024 00:00:00 GMT</pubDate>
			<description>I resized my boot volume on Oracle Cloud using growpart, not oci-growfs.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Using Coolify’s Internal Postgres Database URL</title>
			<link>https://zixianchen.com/blog/using-postgres-coolify-internal-database-url</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/using-postgres-coolify-internal-database-url</guid>
			<pubDate>Sat, 29 Jun 2024 00:00:00 GMT</pubDate>
			<description>I found Coolify’s internal Postgres URL for an app in the same project, then used the public port only when I needed remote database access.</description>
			<category>Systems</category>
		</item>
		<item>
			<title>Making Pagefind Work on SvelteKit</title>
			<link>https://zixianchen.com/blog/making-pagefind-work-sveltekit</link>
			<guid isPermaLink="true">https://zixianchen.com/blog/making-pagefind-work-sveltekit</guid>
			<pubDate>Thu, 27 Jun 2024 00:00:00 GMT</pubDate>
			<description>A current setup for making Pagefind search work in both local development and production on SvelteKit.</description>
			<category>Dev</category>
		</item>
	</channel>
</rss>