<?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://riceball-tw.github.io/print/</loc></url><url><loc>https://riceball-tw.github.io/print/en/</loc></url><url><loc>https://riceball-tw.github.io/print/en/about/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/astro-v5-thoughts/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/backing-up-the-program-won-t-do-anything-we-need-t-15/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/ai-ml/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/announcement/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/career/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/dev-tools/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/learning/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/open-source/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/performance/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/tech-thoughts/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/categories/web-dev/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/demo-note/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/dev-tools-spotlight/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-copy-the-firewall-we-can-get-to-the-tls-inte-6/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-copy-the-monitor-we-can-get-to-the-http-prot-9/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-input-the-microchip-we-can-get-to-the-rss-po-4/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-navigate-the-capacitor-we-can-get-to-the-ip--18/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-reboot-the-port-we-can-get-to-the-sql-array--25/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/if-we-transmit-the-interface-we-can-get-to-the-ftp-1/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/new-theme-announcement/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/the-agp-protocol-is-down-index-the-online-system-s-28/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/the-dns-hard-drive-is-down-synthesize-the-primary--30/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/the-sdd-sensor-is-down-override-the-open-source-ap-3/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/the-ssd-transmitter-is-down-index-the-neural-pixel-24/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/try-to-generate-the-pci-driver-maybe-it-will-navig-13/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/try-to-reboot-the-adp-application-maybe-it-will-ov-16/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-auxiliary-smtp-card-then-you-can-index-the-7/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-bluetooth-cli-hard-drive-then-you-can-rebo-20/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-digital-scsi-microchip-then-you-can-index--27/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-mobile-json-feed-then-you-can-back-up-the--8/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-mobile-sas-program-then-you-can-transmit-t-29/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-online-vga-protocol-then-you-can-input-the-22/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-optical-adp-application-then-you-can-parse-10/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-primary-ai-port-then-you-can-override-the--26/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/use-the-redundant-ai-application-then-you-can-calc-11/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/we-need-to-bypass-the-bluetooth-sql-feed-21/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/we-need-to-navigate-the-neural-usb-card-23/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/we-need-to-override-the-open-source-ftp-port-19/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/we-need-to-program-the-primary-dns-protocol-12/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/you-can-t-bypass-the-capacitor-without-copying-the-14/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/you-can-t-compress-the-port-without-compressing-th-17/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/you-can-t-connect-the-circuit-without-indexing-the-5/</loc></url><url><loc>https://riceball-tw.github.io/print/en/notes/you-can-t-quantify-the-interface-without-connectin-2/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/add-rate-limiting-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/ai-code-review-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/animate-lists-with-vue-transition/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/api-key-leak-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/astro-error-pages-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/astro-islands-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/async-writing-beats-more-meetings/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/automating-invoice-pipeline-with-n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/avoid-layout-shift-from-fonts/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/bisect-a-broken-build/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/blank-screens-that-guide-users/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/browser-rendering-paint-composite/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/build-kanban-with-drag-drop/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/burnout-signs-engineers-ignore/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/cache-dependencies-to-speed-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/cascade-layers-for-design-systems/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/ai/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/astro/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/browser/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/challenge/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/ci-cd/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/css/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/cybersecurity/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/database/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/design/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/example/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/express-js/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/functional-programming/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/git/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/go/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/html/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/implementation/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/infrastructure/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/pattern/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/react/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/seo/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/share/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/software-testing/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/team/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/ui/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/ux/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/vue/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/categories/web-performance/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/choose-indexes-for-slow-queries/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/choosing-rewrite-over-refactor/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/color-palette-from-one-brand/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/common-a11y-mistakes-in-markup/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/content-security-policy-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/cookie-security-flags-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/core-web-vitals-for-blogs/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/css-subgrid-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/currying-explained-with-real-apis/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/dark-mode-is-a-system/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/deleting-our-e2e-test-suite/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/designing-empty-states-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/diagnose-long-tasks-with-devtools/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/drag-sort-list-pointer-events/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/empty-states-as-onboarding/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/error-handling-patterns-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/expand-and-contract-migration/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/expressive-code-demo/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/fix-listener-memory-leaks/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/flaky-tests-triage-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/git-hooks-vs-ci-checks/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/github-actions-vs-gitlab-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/go-cli-flags-with-cobra/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/go-error-wrapping-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/go-goroutines-vs-worker-pool/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/graph-shortest-path-interview-breakdown/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/hackathon-scope-control-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/hundred-days-of-coding-challenges/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/hunting-a-flaky-e2e-test/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/immutability-habits-in-javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/interactive-rebase-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/javascript-event-loop-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/keyboard-navigation-by-default/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/lessons-from-a-loaders-redesign/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/llm-tool-calling-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/local-rag-knowledge-base/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/make-a-css-only-tooltip/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/measure-third-party-script-cost/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/measure-web-vitals-with-rum/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/mermaid-gallery/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/microcopy-mistakes-in-form-errors/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/migration-locked-a-production-table/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/monorepo-vs-multi-repo-tradeoffs/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/monthly-writing-retrospective/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/n8n-error-workflow-retry-strategy/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/n8n-webhook-vs-polling-triggers/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/narrowing-unknown-after-json-parse/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/nginx-reverse-proxy-ssl-renewal/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/offline-first-notes-conflict-resolution/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/onboard-a-new-teammate/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/open-sourcing-internal-tools/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/passkeys-vs-password-managers/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/picture-element-for-responsive-images/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/postgres-backup-restore-drill/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/prefetch-prerender-navigation/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/programmatic-seo-pages-case-study/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/provide-inject-vs-props-drilling/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/react-context-vs-state-library/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/react-server-components-data-loading/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/reading-code-from-other-people/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/recover-lost-commits-with-reflog/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/retry-backoff-with-jitter/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/rewrite-legacy-jquery-dashboard/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/right-sizing-cloud-server-costs/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/run-a-blameless-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/satisfies-vs-as-in-typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/scroll-driven-animations-vs-js/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/senior-engineers-write-less-code/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/ship-feature-flags-before-feature/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/snapshot-tests-false-confidence/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/stop-adding-abstraction-too-early/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/structured-data-for-blog-posts/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/structuredclone-vs-json-clone/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/structuring-middleware-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/teach-what-you-just-learned/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/the-case-for-boring-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/todo-app-rewritten-three-times/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/tracking-down-react-rerenders/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/transactions-and-isolation-levels-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/type-safe-env-configuration/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/use-pprof-to-find-bottlenecks/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/useeffect-fetch-cancellation/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/using-astro-actions-for-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/vanishing-session-cookie-in-safari/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/watch-vs-watcheffect-in-vue/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/weather-widget-from-public-api/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/weekly-demo-day-for-teams/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/when-astro-ssr-makes-sense/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/when-not-to-use-llm/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/when-to-use-dialog-element/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/why-framework-churn-exhausts-frontend/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/why-my-generic-constraint-fails/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/why-our-design-system-stalled/</loc></url><url><loc>https://riceball-tw.github.io/print/en/posts/why-pure-function-pays-off/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/about/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/notes/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/notes/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/notes/demo-note/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/add-rate-limiting-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/ai-code-review-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/animate-lists-with-vue-transition/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/api-key-leak-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/astro-error-pages-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/astro-islands-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/async-writing-beats-more-meetings/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/automating-invoice-pipeline-with-n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/avoid-layout-shift-from-fonts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/bisect-a-broken-build/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/blank-screens-that-guide-users/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/browser-rendering-paint-composite/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/build-kanban-with-drag-drop/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/burnout-signs-engineers-ignore/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/cache-dependencies-to-speed-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/cascade-layers-for-design-systems/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/ai/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/astro/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/browser/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/challenge/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/ci-cd/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/css/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/cybersecurity/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/database/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/design/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/example/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/express-js/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/functional-programming/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/git/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/go/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/html/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/implementation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/infrastructure/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/pattern/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/react/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/seo/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/share/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/software-testing/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/team/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/ui/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/ux/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/vue/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/categories/web-performance/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/choose-indexes-for-slow-queries/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/choosing-rewrite-over-refactor/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/color-palette-from-one-brand/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/common-a11y-mistakes-in-markup/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/content-security-policy-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/cookie-security-flags-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/core-web-vitals-for-blogs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/css-subgrid-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/currying-explained-with-real-apis/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/dark-mode-is-a-system/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/deleting-our-e2e-test-suite/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/designing-empty-states-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/diagnose-long-tasks-with-devtools/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/drag-sort-list-pointer-events/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/empty-states-as-onboarding/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/error-handling-patterns-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/expand-and-contract-migration/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/fix-listener-memory-leaks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/flaky-tests-triage-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/git-hooks-vs-ci-checks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/github-actions-vs-gitlab-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/go-cli-flags-with-cobra/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/go-error-wrapping-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/go-goroutines-vs-worker-pool/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/graph-shortest-path-interview-breakdown/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/hackathon-scope-control-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/hundred-days-of-coding-challenges/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/hunting-a-flaky-e2e-test/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/immutability-habits-in-javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/interactive-rebase-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/javascript-event-loop-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/keyboard-navigation-by-default/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/lessons-from-a-loaders-redesign/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/llm-tool-calling-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/local-rag-knowledge-base/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/make-a-css-only-tooltip/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/measure-third-party-script-cost/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/measure-web-vitals-with-rum/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/microcopy-mistakes-in-form-errors/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/migration-locked-a-production-table/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/monorepo-vs-multi-repo-tradeoffs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/monthly-writing-retrospective/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/n8n-error-workflow-retry-strategy/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/n8n-webhook-vs-polling-triggers/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/narrowing-unknown-after-json-parse/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/nginx-reverse-proxy-ssl-renewal/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/offline-first-notes-conflict-resolution/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/onboard-a-new-teammate/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/open-sourcing-internal-tools/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/passkeys-vs-password-managers/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/picture-element-for-responsive-images/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/postgres-backup-restore-drill/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/prefetch-prerender-navigation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/programmatic-seo-pages-case-study/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/provide-inject-vs-props-drilling/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/react-context-vs-state-library/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/react-server-components-data-loading/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/reading-code-from-other-people/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/recover-lost-commits-with-reflog/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/retry-backoff-with-jitter/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/rewrite-legacy-jquery-dashboard/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/right-sizing-cloud-server-costs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/run-a-blameless-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/satisfies-vs-as-in-typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/scroll-driven-animations-vs-js/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/senior-engineers-write-less-code/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/ship-feature-flags-before-feature/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/snapshot-tests-false-confidence/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/stop-adding-abstraction-too-early/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/structured-data-for-blog-posts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/structuredclone-vs-json-clone/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/structuring-middleware-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/teach-what-you-just-learned/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/the-case-for-boring-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/todo-app-rewritten-three-times/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/tracking-down-react-rerenders/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/transactions-and-isolation-levels-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/type-safe-env-configuration/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/use-pprof-to-find-bottlenecks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/useeffect-fetch-cancellation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/using-astro-actions-for-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/vanishing-session-cookie-in-safari/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/watch-vs-watcheffect-in-vue/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/weather-widget-from-public-api/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/weekly-demo-day-for-teams/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/when-astro-ssr-makes-sense/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/when-not-to-use-llm/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/when-to-use-dialog-element/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/why-framework-churn-exhausts-frontend/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/why-my-generic-constraint-fails/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/why-our-design-system-stalled/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-cn/posts/why-pure-function-pays-off/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/about/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/notes/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/notes/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/notes/demo-note/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/add-rate-limiting-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/ai-code-review-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/animate-lists-with-vue-transition/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/api-key-leak-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/astro-error-pages-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/astro-islands-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/async-writing-beats-more-meetings/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/automating-invoice-pipeline-with-n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/avoid-layout-shift-from-fonts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/bisect-a-broken-build/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/blank-screens-that-guide-users/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/browser-rendering-paint-composite/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/build-kanban-with-drag-drop/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/burnout-signs-engineers-ignore/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/cache-dependencies-to-speed-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/cascade-layers-for-design-systems/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/ai/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/astro/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/browser/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/challenge/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/ci-cd/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/css/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/cybersecurity/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/database/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/design/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/example/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/express-js/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/functional-programming/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/git/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/go/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/html/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/implementation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/infrastructure/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/n8n/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/non-technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/pattern/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/react/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/seo/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/share/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/software-testing/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/team/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/technical-discussion/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/ui/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/ux/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/vue/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/categories/web-performance/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/choose-indexes-for-slow-queries/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/choosing-rewrite-over-refactor/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/color-palette-from-one-brand/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/common-a11y-mistakes-in-markup/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/content-security-policy-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/cookie-security-flags-checklist/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/core-web-vitals-for-blogs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/css-subgrid-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/currying-explained-with-real-apis/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/dark-mode-is-a-system/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/deleting-our-e2e-test-suite/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/designing-empty-states-that-help/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/diagnose-long-tasks-with-devtools/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/drag-sort-list-pointer-events/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/empty-states-as-onboarding/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/error-handling-patterns-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/expand-and-contract-migration/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/fix-listener-memory-leaks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/flaky-tests-triage-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/git-hooks-vs-ci-checks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/github-actions-vs-gitlab-ci/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/go-cli-flags-with-cobra/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/go-error-wrapping-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/go-goroutines-vs-worker-pool/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/graph-shortest-path-interview-breakdown/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/hackathon-scope-control-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/hundred-days-of-coding-challenges/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/hunting-a-flaky-e2e-test/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/immutability-habits-in-javascript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/interactive-rebase-workflow/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/javascript-event-loop-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/keyboard-navigation-by-default/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/lessons-from-a-loaders-redesign/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/llm-tool-calling-patterns/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/local-rag-knowledge-base/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/make-a-css-only-tooltip/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/measure-third-party-script-cost/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/measure-web-vitals-with-rum/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/microcopy-mistakes-in-form-errors/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/migration-locked-a-production-table/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/monorepo-vs-multi-repo-tradeoffs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/monthly-writing-retrospective/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/n8n-error-workflow-retry-strategy/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/n8n-webhook-vs-polling-triggers/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/narrowing-unknown-after-json-parse/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/nginx-reverse-proxy-ssl-renewal/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/offline-first-notes-conflict-resolution/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/onboard-a-new-teammate/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/open-sourcing-internal-tools/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/passkeys-vs-password-managers/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/picture-element-for-responsive-images/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/postgres-backup-restore-drill/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/prefetch-prerender-navigation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/programmatic-seo-pages-case-study/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/provide-inject-vs-props-drilling/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/react-context-vs-state-library/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/react-server-components-data-loading/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/reading-code-from-other-people/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/recover-lost-commits-with-reflog/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/retry-backoff-with-jitter/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/rewrite-legacy-jquery-dashboard/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/right-sizing-cloud-server-costs/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/run-a-blameless-postmortem/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/satisfies-vs-as-in-typescript/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/scroll-driven-animations-vs-js/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/senior-engineers-write-less-code/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/ship-feature-flags-before-feature/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/snapshot-tests-false-confidence/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/stop-adding-abstraction-too-early/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/structured-data-for-blog-posts/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/structuredclone-vs-json-clone/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/structuring-middleware-in-express/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/teach-what-you-just-learned/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/the-case-for-boring-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/todo-app-rewritten-three-times/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/tracking-down-react-rerenders/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/transactions-and-isolation-levels-explained/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/type-safe-env-configuration/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/use-pprof-to-find-bottlenecks/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/useeffect-fetch-cancellation/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/using-astro-actions-for-forms/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/vanishing-session-cookie-in-safari/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/watch-vs-watcheffect-in-vue/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/weather-widget-from-public-api/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/weekly-demo-day-for-teams/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/when-astro-ssr-makes-sense/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/when-not-to-use-llm/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/when-to-use-dialog-element/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/why-framework-churn-exhausts-frontend/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/why-my-generic-constraint-fails/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/why-our-design-system-stalled/</loc></url><url><loc>https://riceball-tw.github.io/print/zh-tw/posts/why-pure-function-pays-off/</loc></url></urlset>