<?xml version="1.0" encoding="UTF-8"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:news="http://www.google.com/schemas/sitemap-news/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1" xmlns:video="http://www.google.com/schemas/sitemap-video/1.1"><url><loc>https://blog.hoelee.com/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/"/></url><url><loc>https://blog.hoelee.com/about/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/about/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/about/"/></url><url><loc>https://blog.hoelee.com/categories/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/"/></url><url><loc>https://blog.hoelee.com/categories/ai/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/ai/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/ai/"/></url><url><loc>https://blog.hoelee.com/categories/case-studies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/case-studies/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/case-studies/"/></url><url><loc>https://blog.hoelee.com/categories/devops/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/devops/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/devops/"/></url><url><loc>https://blog.hoelee.com/categories/engineering/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/engineering/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/engineering/"/></url><url><loc>https://blog.hoelee.com/categories/notes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/notes/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/notes/"/></url><url><loc>https://blog.hoelee.com/categories/tutorials/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/tutorials/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/tutorials/"/></url><url><loc>https://blog.hoelee.com/posts/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/"/></url><url><loc>https://blog.hoelee.com/posts/ai-furniture-compositing-with-flux-kontext/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/ai-furniture-compositing-with-flux-kontext/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/ai-furniture-compositing-with-flux-kontext/"/></url><url><loc>https://blog.hoelee.com/posts/authentik-major-upgrade-gotchas/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/authentik-major-upgrade-gotchas/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/authentik-major-upgrade-gotchas/"/></url><url><loc>https://blog.hoelee.com/posts/automating-cyberpanel-without-the-ui/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/automating-cyberpanel-without-the-ui/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/automating-cyberpanel-without-the-ui/"/></url><url><loc>https://blog.hoelee.com/posts/best-ai-video-generators-2026/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/best-ai-video-generators-2026/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/best-ai-video-generators-2026/"/></url><url><loc>https://blog.hoelee.com/posts/hardening-a-tor-onion-service/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/hardening-a-tor-onion-service/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/hardening-a-tor-onion-service/"/></url><url><loc>https://blog.hoelee.com/posts/hello-world/</loc><lastmod>2026-09-05T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/hello-world/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/hello-world/"/></url><url><loc>https://blog.hoelee.com/posts/how-i-built-the-digikedai-telegram-bot/</loc><lastmod>2026-09-06T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-built-the-digikedai-telegram-bot/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-built-the-digikedai-telegram-bot/"/></url><url><loc>https://blog.hoelee.com/posts/how-i-host-this-blog/</loc><lastmod>2026-09-06T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-host-this-blog/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-host-this-blog/"/></url><url><loc>https://blog.hoelee.com/posts/how-i-made-my-own-songs-with-suno-ai/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-made-my-own-songs-with-suno-ai/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-made-my-own-songs-with-suno-ai/"/></url><url><loc>https://blog.hoelee.com/posts/how-i-vetted-20-vps-providers-with-parallel-subagents/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-vetted-20-vps-providers-with-parallel-subagents/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-vetted-20-vps-providers-with-parallel-subagents/"/></url><url><loc>https://blog.hoelee.com/posts/how-to-verify-a-hosting-provider-before-you-buy/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-to-verify-a-hosting-provider-before-you-buy/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-to-verify-a-hosting-provider-before-you-buy/"/></url><url><loc>https://blog.hoelee.com/posts/n8n-v1-to-v2-upgrade-gotchas/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/n8n-v1-to-v2-upgrade-gotchas/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/n8n-v1-to-v2-upgrade-gotchas/"/></url><url><loc>https://blog.hoelee.com/posts/passbolt-hang-three-failure-modes/</loc><lastmod>2026-09-13T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/passbolt-hang-three-failure-modes/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/passbolt-hang-three-failure-modes/"/></url><url><loc>https://blog.hoelee.com/posts/patching-workbench-26-for-mariadb/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/patching-workbench-26-for-mariadb/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/patching-workbench-26-for-mariadb/"/></url><url><loc>https://blog.hoelee.com/posts/replacing-rdpguard-with-ipban/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/replacing-rdpguard-with-ipban/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/replacing-rdpguard-with-ipban/"/></url><url><loc>https://blog.hoelee.com/posts/running-tts-as-a-service-with-token-sidecars/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/running-tts-as-a-service-with-token-sidecars/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/running-tts-as-a-service-with-token-sidecars/"/></url><url><loc>https://blog.hoelee.com/posts/scraping-bot-walled-marketplace-warm-browser-session/</loc><lastmod>2026-09-13T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/scraping-bot-walled-marketplace-warm-browser-session/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/scraping-bot-walled-marketplace-warm-browser-session/"/></url><url><loc>https://blog.hoelee.com/posts/self-healing-digital-goods-entitlements/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-healing-digital-goods-entitlements/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-healing-digital-goods-entitlements/"/></url><url><loc>https://blog.hoelee.com/posts/self-hosted-speech-to-text-api/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-hosted-speech-to-text-api/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-hosted-speech-to-text-api/"/></url><url><loc>https://blog.hoelee.com/posts/self-hosting-mem0-memory-stack/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-hosting-mem0-memory-stack/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-hosting-mem0-memory-stack/"/></url><url><loc>https://blog.hoelee.com/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin/"/></url><url><loc>https://blog.hoelee.com/posts/syncing-a-self-improving-ai-agent-across-machines/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/syncing-a-self-improving-ai-agent-across-machines/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/syncing-a-self-improving-ai-agent-across-machines/"/></url><url><loc>https://blog.hoelee.com/posts/that-dying-ssd-was-just-a-bad-sata-cable/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/that-dying-ssd-was-just-a-bad-sata-cable/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/that-dying-ssd-was-just-a-bad-sata-cable/"/></url><url><loc>https://blog.hoelee.com/posts/the-cause-was-trim-not-the-ssds/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/the-cause-was-trim-not-the-ssds/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/the-cause-was-trim-not-the-ssds/"/></url><url><loc>https://blog.hoelee.com/posts/the-nocodb-attachment-that-wouldnt-update/</loc><lastmod>2026-09-10T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/the-nocodb-attachment-that-wouldnt-update/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/the-nocodb-attachment-that-wouldnt-update/"/></url><url><loc>https://blog.hoelee.com/posts/unraid-stop-array-hangs-on-swapfile/</loc><lastmod>2026-09-15T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/unraid-stop-array-hangs-on-swapfile/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/unraid-stop-array-hangs-on-swapfile/"/></url><url><loc>https://blog.hoelee.com/posts/using-chinese-llm-apis-from-malaysia/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/using-chinese-llm-apis-from-malaysia/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/using-chinese-llm-apis-from-malaysia/"/></url><url><loc>https://blog.hoelee.com/posts/when-smart-says-healthy-but-your-raid-is-corrupting-data/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/when-smart-says-healthy-but-your-raid-is-corrupting-data/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/when-smart-says-healthy-but-your-raid-is-corrupting-data/"/></url><url><loc>https://blog.hoelee.com/posts/why-telegram-bot-notifications-die/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/why-telegram-bot-notifications-die/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/why-telegram-bot-notifications-die/"/></url><url><loc>https://blog.hoelee.com/posts/why-your-headless-browser-cant-scrape-everything/</loc><lastmod>2026-09-10T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/why-your-headless-browser-cant-scrape-everything/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/why-your-headless-browser-cant-scrape-everything/"/></url><url><loc>https://blog.hoelee.com/posts/zh/ai-furniture-compositing-with-flux-kontext/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/ai-furniture-compositing-with-flux-kontext/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/ai-furniture-compositing-with-flux-kontext/"/></url><url><loc>https://blog.hoelee.com/posts/zh/authentik-major-upgrade-gotchas/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/authentik-major-upgrade-gotchas/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/authentik-major-upgrade-gotchas/"/></url><url><loc>https://blog.hoelee.com/posts/zh/automating-cyberpanel-without-the-ui/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/automating-cyberpanel-without-the-ui/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/automating-cyberpanel-without-the-ui/"/></url><url><loc>https://blog.hoelee.com/posts/zh/best-ai-video-generators-2026/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/best-ai-video-generators-2026/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/best-ai-video-generators-2026/"/></url><url><loc>https://blog.hoelee.com/posts/zh/hardening-a-tor-onion-service/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/hardening-a-tor-onion-service/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/hardening-a-tor-onion-service/"/></url><url><loc>https://blog.hoelee.com/posts/zh/hello-world/</loc><lastmod>2026-09-05T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/hello-world/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/hello-world/"/></url><url><loc>https://blog.hoelee.com/posts/zh/how-i-built-the-digikedai-telegram-bot/</loc><lastmod>2026-09-06T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-built-the-digikedai-telegram-bot/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-built-the-digikedai-telegram-bot/"/></url><url><loc>https://blog.hoelee.com/posts/zh/how-i-host-this-blog/</loc><lastmod>2026-09-06T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-host-this-blog/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-host-this-blog/"/></url><url><loc>https://blog.hoelee.com/posts/zh/how-i-made-my-own-songs-with-suno-ai/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-made-my-own-songs-with-suno-ai/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-made-my-own-songs-with-suno-ai/"/></url><url><loc>https://blog.hoelee.com/posts/zh/how-i-vetted-20-vps-providers-with-parallel-subagents/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-i-vetted-20-vps-providers-with-parallel-subagents/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-i-vetted-20-vps-providers-with-parallel-subagents/"/></url><url><loc>https://blog.hoelee.com/posts/zh/how-to-verify-a-hosting-provider-before-you-buy/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/how-to-verify-a-hosting-provider-before-you-buy/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/how-to-verify-a-hosting-provider-before-you-buy/"/></url><url><loc>https://blog.hoelee.com/posts/zh/n8n-v1-to-v2-upgrade-gotchas/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/n8n-v1-to-v2-upgrade-gotchas/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/n8n-v1-to-v2-upgrade-gotchas/"/></url><url><loc>https://blog.hoelee.com/posts/zh/passbolt-hang-three-failure-modes/</loc><lastmod>2026-09-13T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/passbolt-hang-three-failure-modes/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/passbolt-hang-three-failure-modes/"/></url><url><loc>https://blog.hoelee.com/posts/zh/patching-workbench-26-for-mariadb/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/patching-workbench-26-for-mariadb/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/patching-workbench-26-for-mariadb/"/></url><url><loc>https://blog.hoelee.com/posts/zh/replacing-rdpguard-with-ipban/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/replacing-rdpguard-with-ipban/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/replacing-rdpguard-with-ipban/"/></url><url><loc>https://blog.hoelee.com/posts/zh/running-tts-as-a-service-with-token-sidecars/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/running-tts-as-a-service-with-token-sidecars/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/running-tts-as-a-service-with-token-sidecars/"/></url><url><loc>https://blog.hoelee.com/posts/zh/scraping-bot-walled-marketplace-warm-browser-session/</loc><lastmod>2026-09-13T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/scraping-bot-walled-marketplace-warm-browser-session/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/scraping-bot-walled-marketplace-warm-browser-session/"/></url><url><loc>https://blog.hoelee.com/posts/zh/self-healing-digital-goods-entitlements/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-healing-digital-goods-entitlements/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-healing-digital-goods-entitlements/"/></url><url><loc>https://blog.hoelee.com/posts/zh/self-hosted-speech-to-text-api/</loc><lastmod>2026-09-19T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-hosted-speech-to-text-api/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-hosted-speech-to-text-api/"/></url><url><loc>https://blog.hoelee.com/posts/zh/self-hosting-mem0-memory-stack/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/self-hosting-mem0-memory-stack/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/self-hosting-mem0-memory-stack/"/></url><url><loc>https://blog.hoelee.com/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/shipping-an-ai-photo-editor-as-a-wordpress-plugin/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/shipping-an-ai-photo-editor-as-a-wordpress-plugin/"/></url><url><loc>https://blog.hoelee.com/posts/zh/syncing-a-self-improving-ai-agent-across-machines/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/syncing-a-self-improving-ai-agent-across-machines/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/syncing-a-self-improving-ai-agent-across-machines/"/></url><url><loc>https://blog.hoelee.com/posts/zh/that-dying-ssd-was-just-a-bad-sata-cable/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/that-dying-ssd-was-just-a-bad-sata-cable/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/that-dying-ssd-was-just-a-bad-sata-cable/"/></url><url><loc>https://blog.hoelee.com/posts/zh/the-cause-was-trim-not-the-ssds/</loc><lastmod>2026-09-18T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/the-cause-was-trim-not-the-ssds/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/the-cause-was-trim-not-the-ssds/"/></url><url><loc>https://blog.hoelee.com/posts/zh/the-nocodb-attachment-that-wouldnt-update/</loc><lastmod>2026-09-10T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/the-nocodb-attachment-that-wouldnt-update/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/the-nocodb-attachment-that-wouldnt-update/"/></url><url><loc>https://blog.hoelee.com/posts/zh/unraid-stop-array-hangs-on-swapfile/</loc><lastmod>2026-09-15T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/unraid-stop-array-hangs-on-swapfile/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/unraid-stop-array-hangs-on-swapfile/"/></url><url><loc>https://blog.hoelee.com/posts/zh/using-chinese-llm-apis-from-malaysia/</loc><lastmod>2026-09-11T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/using-chinese-llm-apis-from-malaysia/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/using-chinese-llm-apis-from-malaysia/"/></url><url><loc>https://blog.hoelee.com/posts/zh/when-smart-says-healthy-but-your-raid-is-corrupting-data/</loc><lastmod>2026-09-16T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/when-smart-says-healthy-but-your-raid-is-corrupting-data/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/when-smart-says-healthy-but-your-raid-is-corrupting-data/"/></url><url><loc>https://blog.hoelee.com/posts/zh/why-telegram-bot-notifications-die/</loc><lastmod>2026-09-09T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/why-telegram-bot-notifications-die/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/why-telegram-bot-notifications-die/"/></url><url><loc>https://blog.hoelee.com/posts/zh/why-your-headless-browser-cant-scrape-everything/</loc><lastmod>2026-09-10T00:00:00.000Z</lastmod><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/why-your-headless-browser-cant-scrape-everything/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/posts/zh/why-your-headless-browser-cant-scrape-everything/"/></url><url><loc>https://blog.hoelee.com/zh/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/posts/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/"/></url><url><loc>https://blog.hoelee.com/zh/about/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/about/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/about/"/></url><url><loc>https://blog.hoelee.com/zh/categories/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/"/></url><url><loc>https://blog.hoelee.com/zh/categories/ai/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/ai/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/ai/"/></url><url><loc>https://blog.hoelee.com/zh/categories/case-studies/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/case-studies/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/case-studies/"/></url><url><loc>https://blog.hoelee.com/zh/categories/devops/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/devops/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/devops/"/></url><url><loc>https://blog.hoelee.com/zh/categories/engineering/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/engineering/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/engineering/"/></url><url><loc>https://blog.hoelee.com/zh/categories/notes/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/notes/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/notes/"/></url><url><loc>https://blog.hoelee.com/zh/categories/tutorials/</loc><xhtml:link rel="alternate" hreflang="en" href="https://blog.hoelee.com/categories/tutorials/"/><xhtml:link rel="alternate" hreflang="zh" href="https://blog.hoelee.com/zh/categories/tutorials/"/></url></urlset>