<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://calvin.my/</loc>
    <changefreq>daily</changefreq>
    <priority>1.0</priority>
  </url>
  <url>
    <loc>https://calvin.my/feed</loc>
    <changefreq>daily</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://calvin.my/about</loc>
    <changefreq>monthly</changefreq>
    <priority>0.8</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/warning-connection-is-not-using-a-post-quantum-key-exchange-algorithm</loc>
    <lastmod>2026-03-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/warning-mysql_native_password-authentication-type-is-disabled-by-default-in-mysql-8-4</loc>
    <lastmod>2026-03-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/the-chrome-devtool-mcp-general-availability</loc>
    <lastmod>2026-03-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/enabling-agentic-coding-in-xcode</loc>
    <lastmod>2026-03-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gemini-3-1-flash-image-nano-banana-2-preview</loc>
    <lastmod>2026-02-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rails-solid-queue-async-mode</loc>
    <lastmod>2026-01-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/adding-a-catch-all-black-hole-blocks-in-nginx</loc>
    <lastmod>2026-01-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-simplecov-code-coverage-with-rails-minitest</loc>
    <lastmod>2026-01-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/a-simple-ruby-box-demo</loc>
    <lastmod>2025-12-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.9</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/litestream-0-5-x-updates</loc>
    <lastmod>2025-12-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/build-a-simple-app-that-describes-an-image-and-works-offline</loc>
    <lastmod>2025-12-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/api-error-claude-block-must-have-a-corresponding-tool_use-block-in-the-previous-message</loc>
    <lastmod>2025-12-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gemini-3-pro-image-nano-banana-pro-early-preview</loc>
    <lastmod>2025-11-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/adding-sub-resource-integrity-with-importmap-rails</loc>
    <lastmod>2025-11-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/adding-sub-resource-integrity-with-vite-build</loc>
    <lastmod>2025-11-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/install-the-missing-ext-intl-php-extension-in-macos</loc>
    <lastmod>2025-11-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/new-ways-to-install-claude-code-on-macos</loc>
    <lastmod>2025-11-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/breaking-change-in-net-http-gem-to-exclude-default-content-type</loc>
    <lastmod>2025-11-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/claude-code-s-vision-the-chrome-devtool-mcp</loc>
    <lastmod>2025-10-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gemini-robotics-er-1-5-high-real-world-accuracy</loc>
    <lastmod>2025-10-18</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/error-certificate-verify-failed-unable-to-get-certificate-crl-openssl-ssl-sslerror</loc>
    <lastmod>2025-10-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/openai-sora-2-api-first-experience</loc>
    <lastmod>2025-10-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/creating-an-ai-assistant-that-produces-pdf-files</loc>
    <lastmod>2025-10-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gemini-nano-banana-generally-available</loc>
    <lastmod>2025-10-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/api-error-claude-s-response-exceeded-the-32000-output-token-maximum</loc>
    <lastmod>2026-04-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/ai-assistants-in-my-daily-life</loc>
    <lastmod>2025-09-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gemini-nano-banana-image-editing-capability</loc>
    <lastmod>2025-09-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/allow-composer-to-install-private-github-repository</loc>
    <lastmod>2025-08-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/android-16-kb-compatibility</loc>
    <lastmod>2025-08-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-the-summarizer-api-in-google-chrome</loc>
    <lastmod>2025-08-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/claude-code-ai-agent-101</loc>
    <lastmod>2025-07-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-git-s-pre-commit-hook</loc>
    <lastmod>2025-07-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/building-a-universal-link-application-with-gemini-cli</loc>
    <lastmod>2025-06-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/implementing-android-app-link</loc>
    <lastmod>2025-06-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-much-does-it-cost-to-build-a-service-website-using-ai</loc>
    <lastmod>2025-06-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/good-bye-skype-exporting-skype-data-histories</loc>
    <lastmod>2025-06-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/migrating-from-system-role-to-developer-role-in-openai-messages</loc>
    <lastmod>2025-05-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/fixing-a-bug-using-ai-with-google-jules</loc>
    <lastmod>2025-05-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/documenting-several-modern-additions-of-the-ruby-language-syntax</loc>
    <lastmod>2025-05-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/cleanup-completed-solid-queue-job-records</loc>
    <lastmod>2025-05-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/collection-of-less-commonly-used-html-elements</loc>
    <lastmod>2025-05-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/api-updates-on-chrome-on-device-ai-apr-2025</loc>
    <lastmod>2025-05-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploy-2-github-repositories-on-the-same-server</loc>
    <lastmod>2025-08-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/testing-the-new-gpt-image-1-model</loc>
    <lastmod>2025-04-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/install-mysql2-gem-on-newer-macos</loc>
    <lastmod>2025-04-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/testing-the-gpt-4o-web-search-model</loc>
    <lastmod>2025-04-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generating-a-wearable-apps-using-ai-with-openai-codex</loc>
    <lastmod>2025-04-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/reporting-csp-issues-in-laravel-12</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/obtaining-api-access-to-openai-o3-and-o4-mini-models</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/can-ai-spot-an-obvious-error-in-a-news-article</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/inspecting-elements-in-android-webview</loc>
    <lastmod>2025-04-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/android-ui-debugging-with-layout-bounds</loc>
    <lastmod>2025-04-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generating-web-apps-using-ai-with-firebase-studio</loc>
    <lastmod>2025-04-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-mcp-servers-in-cursor</loc>
    <lastmod>2025-04-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-gemini-free-tier-with-vs-code-chat</loc>
    <lastmod>2025-04-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generating-web-apps-with-ai-using-vs-code</loc>
    <lastmod>2025-04-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generating-android-apps-with-ai-using-cursor-editor</loc>
    <lastmod>2025-04-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/custom-button-tracking-via-google-tag-manager-and-google-analytics</loc>
    <lastmod>2025-04-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-rails-built-in-rate-limit-feature</loc>
    <lastmod>2025-04-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-clear-site-data-header</loc>
    <lastmod>2025-03-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/testing-gemini-2-0-flash-text-image-to-image-capability</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/the-making-of-ai-generated-novel-based-on-true-story</loc>
    <lastmod>2025-03-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/ai-generated-novel-based-on-true-story</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/tailwind-4-upgrades-in-rails</loc>
    <lastmod>2025-03-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/identifying-suspicious-products-using-ai</loc>
    <lastmod>2025-04-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/felo-search-the-politics-sentiments-research-chapter</loc>
    <lastmod>2025-03-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/openai-gpt4o-vs-gpt4-5</loc>
    <lastmod>2025-02-28</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/felo-search-the-property-research-chapter</loc>
    <lastmod>2025-02-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/felo-search-powerful-search-engine-powered-by-ai</loc>
    <lastmod>2025-01-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/a-few-ways-to-access-to-generative-ai-and-llm</loc>
    <lastmod>2025-01-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/i-made-an-army-of-ai-assistants</loc>
    <lastmod>2025-01-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-do-you-moderate-prompt-content</loc>
    <lastmod>2024-12-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/error-deploying-solid-cache-argumenterror</loc>
    <lastmod>2024-12-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/restore-sqlite-database-from-litestream-backup</loc>
    <lastmod>2024-12-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/upgrade-rails-version-7-2-to-8-0</loc>
    <lastmod>2024-12-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/use-speculation-rules-api-for-near-instant-page-transition</loc>
    <lastmod>2024-12-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/backup-sqlite-databases-with-litestream</loc>
    <lastmod>2024-12-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/migrating-a-rails-app-from-mysql-to-sqlite-database</loc>
    <lastmod>2024-12-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/api-updates-on-chrome-on-device-ai-nov-2024</loc>
    <lastmod>2024-11-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/open-source-license-check</loc>
    <lastmod>2024-11-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/get-start-with-bitbucket</loc>
    <lastmod>2024-11-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/git-101-connecting-your-local-git-repo-with-a-remote-repo</loc>
    <lastmod>2024-11-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/anthropic-computer-use-explained</loc>
    <lastmod>2025-04-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/making-a-deno-2-app-in-15-minutes</loc>
    <lastmod>2024-10-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/api-updates-on-chrome-on-device-ai</loc>
    <lastmod>2024-10-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-multiple-php-composer-versions-on-macos</loc>
    <lastmod>2025-03-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-to-test-qr-code-scanning-with-android-emulator-camera</loc>
    <lastmod>2024-09-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/javalin-part-2</loc>
    <lastmod>2024-09-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/javalin-101-with-kotlin-gradle</loc>
    <lastmod>2024-09-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/ssh-hardening-on-ubuntu</loc>
    <lastmod>2025-03-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-owasp-dependency-check-on-macos</loc>
    <lastmod>2024-08-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-a-self-signed-ssl-cert-on-macos</loc>
    <lastmod>2024-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-to-implement-a-nested-a-tags</loc>
    <lastmod>2024-07-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/adding-webauthn-to-a-rails-web-application</loc>
    <lastmod>2024-09-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/hotwired-stimulus-101-part-2</loc>
    <lastmod>2024-07-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/party-mode-hotwired-stimulus-101</loc>
    <lastmod>2024-07-15</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rails-solid-queue-in-production</loc>
    <lastmod>2024-07-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/on-device-generative-ai-with-gemini-nano-part-2</loc>
    <lastmod>2024-07-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/on-device-generative-ai-with-gemini-nano</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/hello-kotlin-multiplatform-world</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/android-studio-device-streaming</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/i-design-ai-code</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/is-obfuscation-still-relevant-these-day</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/extract-data-from-image-using-claude-3-5-sonnet</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/microsoft-prompt-flow-hands-on</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/csa-says-100</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/google-idx-hands-on</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/print-release-note-from-git-commit-logs</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/tinymce-not-working-on-page-loaded-by-turbo</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/vs-code-remote-tunnels</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/hello-claude-3-5-sonnet</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rag-without-knowing-rag</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/screenshot-to-code</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/my-first-luma-generated-video</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploying-rails-7-application-with-nginx-and-passenger</loc>
    <lastmod>2024-10-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/capistrano-deployment-fails-with-link_tree-argument-must-be-a-directory</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/stringio-gem-version-causing-passenger-to-fail-to-start</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/prism-js-not-working-on-page-loaded-by-turbo</loc>
    <lastmod>2024-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/password-security</loc>
    <lastmod>2022-10-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/website-security-checks</loc>
    <lastmod>2024-08-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/ubuntu-directory-permission-for-laravel-app-deployment</loc>
    <lastmod>2022-09-05</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/nokogiri-fails-to-build-with-libxml2-error</loc>
    <lastmod>2022-08-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/library-not-loaded-libssl-1-1-dylib-for-older-mysql2-gem</loc>
    <lastmod>2022-08-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/could-not-find-ed25519-error-when-running-capistrano-deploy</loc>
    <lastmod>2022-08-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/add-platform-to-ruby-application</loc>
    <lastmod>2021-12-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/check-server-tls-protocol-support</loc>
    <lastmod>2021-11-26</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/check-connection-to-rubygems-service</loc>
    <lastmod>2021-11-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/migrate-from-the-obsoleted-jcenter</loc>
    <lastmod>2021-07-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/add-key-authentication-and-disable-password-in-ubuntu</loc>
    <lastmod>2021-06-20</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/install-ffi-gem-on-macos-big-sur</loc>
    <lastmod>2021-05-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/make-sure-public-facing-url-has-nil-prove-query-string</loc>
    <lastmod>2020-11-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/firebase-cloud-messaging-invalid-argument-error-when-sending-to-more-than-1000-devices</loc>
    <lastmod>2020-11-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/change-php-ini-and-reload-in-macos</loc>
    <lastmod>2024-08-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/print-android-library-dependency-report</loc>
    <lastmod>2020-03-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-multiple-git-identities-on-macos</loc>
    <lastmod>2020-03-01</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generate-dynamic-content-using-postman</loc>
    <lastmod>2020-01-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setup-laravel-development-environment-macos</loc>
    <lastmod>2020-01-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/install-upgrade-php-in-macos</loc>
    <lastmod>2024-09-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/find-usb-device-list-on-macos</loc>
    <lastmod>2025-06-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/upgrading-mysql-server-in-macos</loc>
    <lastmod>2019-08-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/configure-bitbucket-pipelines-to-use-custom-ssh-private-keys</loc>
    <lastmod>2019-08-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setup-sidekiq-with-systemd-and-capistrano-integration</loc>
    <lastmod>2019-08-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setting-up-and-deploy-laravel-php-7-3-on-ubuntu</loc>
    <lastmod>2019-08-09</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/check-signature-of-android-apk</loc>
    <lastmod>2019-07-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setting-up-nginx-and-passenger-on-ubuntu-18-04</loc>
    <lastmod>2019-07-04</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setting-up-ruby-on-rails-on-ubuntu-18-04</loc>
    <lastmod>2020-02-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/reconstruct-rsa-public-key-from-exponent-and-modulus</loc>
    <lastmod>2024-12-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/remove-html-extension-and-map-url-to-static-html-file-in-nginx</loc>
    <lastmod>2019-06-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/add-or-remove-domain-to-existing-letsencrypt-s-cert</loc>
    <lastmod>2019-06-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/adding-cors-header-for-specific-domains-in-nginx</loc>
    <lastmod>2019-06-27</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/clean-up-inodes-100-usage-caused-by-linux-headers</loc>
    <lastmod>2018-09-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/convert-equirectangular-panorama-image-into-pannellum-supported-multi-resolution-image</loc>
    <lastmod>2018-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/dynamically-supply-smtp-config-in-rails</loc>
    <lastmod>2018-06-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/read-yaml-file-in-java</loc>
    <lastmod>2018-06-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/get-and-set-json-type-data-on-html-form-in-rails</loc>
    <lastmod>2018-05-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/changing-the-passenger-max-process</loc>
    <lastmod>2018-05-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/increase-file-descriptor-for-rabbitmq</loc>
    <lastmod>2018-05-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-active-storage-for-api-project</loc>
    <lastmod>2018-06-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/install-new-version-of-ruby-via-rbenv</loc>
    <lastmod>2018-06-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rails-api-authentication</loc>
    <lastmod>2018-04-11</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/nginx-1-13-9-http-2-server-push</loc>
    <lastmod>2018-03-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/assets-precompile-fails-because-of-insufficient-memory</loc>
    <lastmod>2018-03-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-to-use-yarn-in-rails-5-1-to-manage-javascript-dependencies</loc>
    <lastmod>2018-03-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-to-set-caa-dns-record</loc>
    <lastmod>2018-03-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/how-to-upgrade-gradle-in-your-android-project</loc>
    <lastmod>2018-03-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/redis-store-integration-steps</loc>
    <lastmod>2018-03-19</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rails-url-helper-does-not-respect-relative_url_root-configuration-in-mailer</loc>
    <lastmod>2018-03-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/letsencrypt-invalid-response-error-during-renewal-due-to-http-https-redirection</loc>
    <lastmod>2018-02-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/integrate-google-sign-in</loc>
    <lastmod>2018-01-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/handling-weekdays-weekends-and-public-holidays-by-using-various-built-in-methods-in-ruby-and-rails</loc>
    <lastmod>2018-01-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/define-ruby-version-for-all-your-app</loc>
    <lastmod>2017-12-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/false-warning-for-style-andor-cop-when-used-as-chaining-operation</loc>
    <lastmod>2017-12-03</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploy-rails-app-using-capistrano</loc>
    <lastmod>2017-12-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/use-rails-5-1-encrypted-secrets</loc>
    <lastmod>2017-12-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/use-gitignore-to-prevent-committing-unwanted-files</loc>
    <lastmod>2020-02-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/10-common-rubocop-catches</loc>
    <lastmod>2017-12-02</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploying-java-app-as-daemon</loc>
    <lastmod>2017-11-29</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/reconstruct-query-string-from-request</loc>
    <lastmod>2017-08-07</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/making-a-facebook-messenger-bot</loc>
    <lastmod>2017-08-21</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/making-a-simple-telegram-chatbot</loc>
    <lastmod>2017-07-31</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/preview-actionmailer-email-content</loc>
    <lastmod>2017-07-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/implement-and-verify-certificate-pinning-in-android</loc>
    <lastmod>2017-07-30</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/avoiding-table-name-conflict-when-multiple-delayed-job-accessing-the-same-database</loc>
    <lastmod>2017-07-25</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/force-http-header-name-lowercase</loc>
    <lastmod>2025-06-17</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploying-laravel-on-ubuntu</loc>
    <lastmod>2017-07-23</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/spark-java-web-framework</loc>
    <lastmod>2017-07-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/error-installing-mini_racer-gem</loc>
    <lastmod>2017-07-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/exception-and-error-handling-in-ruby</loc>
    <lastmod>2017-07-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rails-smtp-setting-without-authentication</loc>
    <lastmod>2017-07-22</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/test-rails-mailer-with-rspec</loc>
    <lastmod>2017-07-08</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/load-smtp-setting-dynamically</loc>
    <lastmod>2018-01-24</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-a-custom-config-file</loc>
    <lastmod>2017-07-06</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/share-a-private-s3-object</loc>
    <lastmod>2017-06-14</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/whenever-gem-cron-job-bundle-command-not-found-issue</loc>
    <lastmod>2017-10-10</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/uploading-text-string-or-file-to-s3</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/designing-android-icons</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/gradle-build-problem-with-unicode-class-and-method-name</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/generate-and-validate-request-signature-for-http-apis</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/convert-p12-cert-to-pem-format</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rsa-public-key-encryption-and-private-key-decryption</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/basic-nodejs-setup-on-ubuntu-16-04</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/removing-links-added-when-printing-bootstrap-pages</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/upgrading-to-google-invisible-recaptcha</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/use-preconnect-dns-prefetch-hint</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/the-usage-of-schema-rb</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-delayed-job-in-low-demand-system</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/upgrade-to-nginx-mainstream-1-11-0-to-solve-a-few-http2-related-problem</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/tls-ssl-protocols-and-cipher-suites</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploy-rails-app-in-subdirectory</loc>
    <lastmod>2017-11-16</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/protect-email-address-displayed-on-your-page</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/redirect-www-to-non-www-and-http-to-https-in-nginx</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/open-graph-tags-for-facebook</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/dynamically-generated-sitemap-in-rails</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/spf-validation-for-your-mail-server</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/censoring-data-in-rails-log-files</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/deploying-rails-app</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/rate-limiting-on-nginx</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-a-custom-domain-name-for-cloudfront-cdn</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-aws-cloudfront-as-your-content-delivery-network</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setting-up-sendy-with-nginx</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-microdata-to-structure-your-web-content</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/log-rotation-and-maintenance-in-ubuntu</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setup-rabbitmq-service-on-ubuntu</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setup-sidekiq-on-ubuntu-with-upstart</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/hiding-server-identity-and-signature-for-nginx-and-passenger</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setup-nginx-and-passenger-on-ubuntu</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/setting-up-ruby-on-rails-on-ubuntu</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/configure-rails-app-to-share-cookies-across-sub-domains</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/enabling-hsts-in-nginx</loc>
    <lastmod>2017-06-13</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/blocking-malicious-crawler-in-nginx</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-let-s-encrypt-as-your-ssl-cert-authority-via-certbot</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts/using-custom-dh-param-in-nginx</loc>
    <lastmod>2017-06-12</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts?cat=etc</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts?cat=ops</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts?cat=dev</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://calvin.my/posts?cat=gai</loc>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
</urlset>
