<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
  <url>
    <loc>https://blog.yunforis.com/</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>1</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/what-is-harness-coding-agent</loc>
    <lastmod>2026-10-03T10:38:50+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/caesar-vigenere-cipher-decryption</loc>
    <lastmod>2026-10-02T14:52:45+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/web-reverse-practice-platform</loc>
    <lastmod>2026-10-03T11:45:49+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/coded-computing-distributed-computation</loc>
    <lastmod>2026-10-02T12:16:33+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-8-bypass</loc>
    <lastmod>2026-10-03T11:43:48+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-spider-anti-crawling-techniques</loc>
    <lastmod>2026-10-03T11:06:43+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-selenium-dynamic-web-scraping</loc>
    <lastmod>2026-10-03T11:05:25+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-regex-extract-web-data</loc>
    <lastmod>2026-10-03T11:25:12+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-pyquery-web-parsing</loc>
    <lastmod>2026-10-03T10:56:19+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-4-xpath</loc>
    <lastmod>2026-10-03T11:30:26+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-beautifulsoup-html-parsing</loc>
    <lastmod>2026-10-03T10:45:42+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-first-program</loc>
    <lastmod>2026-10-19T04:21:34+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-html-structure-basics</loc>
    <lastmod>2026-10-19T04:21:32+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-crawler-1-intro</loc>
    <lastmod>2026-10-19T04:21:31+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/propensity-score-matching-python-tutoring</loc>
    <lastmod>2026-10-19T04:21:33+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/propensity-score-matching</loc>
    <lastmod>2026-10-19T04:21:31+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/chain-of-responsibility-pattern</loc>
    <lastmod>2026-10-03T10:34:29+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/reinforcement-learning-basics</loc>
    <lastmod>2026-09-12T11:21:41+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/fundamental-limits-of-caching-guide</loc>
    <lastmod>2026-09-13T03:46:10+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-design-pattern-proxy</loc>
    <lastmod>2026-10-03T10:33:30+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/flyweight-pattern-java</loc>
    <lastmod>2026-10-03T10:32:28+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-facade-design-pattern</loc>
    <lastmod>2026-10-03T10:31:18+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/decorator-pattern-in-java</loc>
    <lastmod>2026-10-03T10:29:21+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-email-sending-smtp-guide</loc>
    <lastmod>2026-09-07T15:26:15+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/vue-router-static-dynamic-import</loc>
    <lastmod>2026-09-07T17:30:47+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/docker-containerization-guide</loc>
    <lastmod>2026-09-07T13:08:59+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/linux-command-reference-manual</loc>
    <lastmod>2026-10-03T06:44:49+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/naive-bayes-explained</loc>
    <lastmod>2026-09-07T18:04:14+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/composite-pattern</loc>
    <lastmod>2026-10-19T04:21:35+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/about-site</loc>
    <lastmod>2026-09-07T13:44:20+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-bridge-pattern</loc>
    <lastmod>2026-10-03T10:27:07+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/design-pattern-adapter</loc>
    <lastmod>2026-10-19T04:21:33+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-builder-pattern</loc>
    <lastmod>2026-10-03T10:17:11+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-abstract-factory-pattern</loc>
    <lastmod>2026-10-03T10:15:14+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/factory-method-pattern</loc>
    <lastmod>2026-10-03T10:14:00+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-singleton-pattern</loc>
    <lastmod>2026-10-03T10:11:54+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-generics-principles-and-practice</loc>
    <lastmod>2026-10-03T10:07:45+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-string-operations-guide</loc>
    <lastmod>2026-10-19T04:19:58+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-operators-complete-guide</loc>
    <lastmod>2026-10-19T04:19:59+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-variables-and-data-types</loc>
    <lastmod>2026-10-19T04:19:58+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-hello-world-program-explained</loc>
    <lastmod>2026-10-19T04:21:30+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-ide-comparison-eclipse-idea-vscode</loc>
    <lastmod>2026-10-19T04:19:59+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-jdk-install-and-config</loc>
    <lastmod>2026-10-03T09:59:46+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/java-history-features-and-evolution</loc>
    <lastmod>2026-10-03T09:58:41+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/fishblog-fullstack-blog-system</loc>
    <lastmod>2026-10-03T11:13:22+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/springboot-rabbitmq-async-notification-system</loc>
    <lastmod>2026-10-03T09:56:20+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/restful-api-design-guide</loc>
    <lastmod>2026-10-19T04:21:35+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/elasticsearch-quick-start-guide</loc>
    <lastmod>2026-10-03T09:53:15+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/server-buying-guide</loc>
    <lastmod>2026-10-03T11:14:38+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/git-merge-conflict-resolution-guide</loc>
    <lastmod>2026-10-03T11:42:06+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/developer-command-line-tools</loc>
    <lastmod>2026-10-03T09:44:20+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/programmer-thinking-models</loc>
    <lastmod>2026-10-03T11:13:22+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/nginx-from-beginner-to-practical-guide</loc>
    <lastmod>2026-09-08T13:56:22+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/cursor-refill-bypass-registration-limit</loc>
    <lastmod>2026-09-07T17:08:12+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/tuling-js-reverse</loc>
    <lastmod>2026-09-07T13:36:40+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/posts/python-advanced-email-templates-business-notification</loc>
    <lastmod>2026-09-07T17:30:25+00:00</lastmod>
    <changefreq>yearly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/fcircle</loc>
    <lastmod>2026-08-27T15:13:02+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/comments</loc>
    <lastmod>2026-08-27T15:13:02+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/favorites</loc>
    <lastmod>2026-09-05T04:08:46+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/essay</loc>
    <lastmod>2026-08-29T10:10:26+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/air-conditioner</loc>
    <lastmod>2026-08-27T14:56:51+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/copyright</loc>
    <lastmod>2026-08-31T07:53:31+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/cookies</loc>
    <lastmod>2026-08-27T08:24:16+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/privacy</loc>
    <lastmod>2026-08-29T10:10:26+00:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/link</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/archives</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>daily</changefreq>
    <priority>0.7</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/categories</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/tags</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>weekly</changefreq>
    <priority>0.6</priority>
  </url>
  <url>
    <loc>https://blog.yunforis.com/about</loc>
    <lastmod>2026-11-03T11:19:25+08:00</lastmod>
    <changefreq>monthly</changefreq>
    <priority>0.5</priority>
  </url>
</urlset>