<?xml version="1.0" encoding="utf-8" standalone="yes"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xhtml="http://www.w3.org/1999/xhtml"><url><loc>http://kaiwern.com/tags/debugging/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2026/03/22/debugging-http-traffic-with-tcpdump-and-tshark/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tcpdump/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tshark/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/qwen3.5/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2026/03/01/run-qwen3.5-locally-on-your-mac/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/unblock-0-0-0-0-connections-on-macos-via-cli/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2026/01/22/converting-fujifilm-raw-files-to-jpeg-with-cli/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/cors-issue-for-file-upload-to-backblaze-and-cloudflare-r2-with-phoenix-liveview/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/liveview/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/phoenix/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/postgresql/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/psql/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/some-useful-psql-commands-to-know/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/categories/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/how-can-i-write-more-consistently/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/categories/life/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/08/11/benchmarking-http-server-stuck-at-16k-requests/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/networking/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tcp/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/about/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/07/29/last-6-weeks-in-the-recurse-center/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/recurse-center/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/pgrx/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/rust/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/07/20/writing-postgresql-extension-in-rust-with-pgx/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/expose-new-port-in-iptables/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/06/20/handy-lsof-options-to-know/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/lsof/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tips/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/05/26/implementing-tests-rerun-in-exunit.run-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/oss/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/files/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/testing/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/things-i-learn-while-testing-files-in-rust/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/05/12/first-6-weeks-in-the-recurse-center/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/logging-thread-id-in-rust/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/decomposition/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/vim/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/04/28/writing-a-custom-vim-command/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/productivity/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/fragments/solutions-im-trying-to-have-a-productive-day/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/04/05/benchmarking-and-writing-a-concurrent-mini-redis-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/series/building-mini-redis-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/database/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/mini-redis/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tutorial/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/04/04/writing-a-mini-redis-server-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/firefox/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/javascript/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/web-extension/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/02/12/writing-a-simple-firefox-extension/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/parser/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/redis/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2022/01/04/writing-a-simple-redis-protocol-parser-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/12/13/2021-in-review/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/timezone/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/07/20/what-you-need-to-know-about-postgresql-timezone/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/series/debugging-with-tracing-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/06/27/debugging-with-tracing-in-elixir-with-recon_trace/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/recon_trace/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/tracing/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/06/15/the-one-simple-trick-to-accomplish-your-so-many-goals/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/05/15/blue-green-deployment-with-nginx-for-elixir-phoenix-release/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/deployment/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/nginx/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/03/23/dont-be-too-hard-on-yourself/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2021/01/19/2020-in-review/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/dbg/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/11/02/debugging-with-tracing-in-elixir/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/08/20/identify-and-specify-identity-file-used-by-ssh/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/ssh/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/07/20/deploying-elixir/phoenix-release-to-production/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/06/20/building-elixir/phoenix-release-with-docker/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/docker/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/05/21/what-you-might-want-to-know-about-genserver/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/04/14/essential-date-functions-for-grouping-in-postgresql/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/aws/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/03/16/aws-ec2-disk-space-full/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/devops/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/git/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2020/02/23/ignoring-file-instead-of-folder-with-the-same-name-in-.gitignore/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2019/06/03/using-tesseract-ocr-in-elixir/phoenix/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2019/05/28/send-temporary-file-in-phoenix/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2019/03/31/how-i-keep-track-of-tasks-for-multiple-side-projects/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/database-index/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/til/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2019/02/18/til-indexing-null-in-oracle-database/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/12/01/advent-of-code-2018-day-1-part-2-how-i-improve-my-solution-by-34x-faster/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/aoc/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/12/01/advent-of-code-2018-day-1-part-1/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/rails/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/ruby/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/11/27/using-markdown-for-static-pages-in-rails/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/10/14/minimal-elixir-web-application-with-plug-and-cowboy/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/10/03/a-note-onapplication-in-mix.exs-starting-from-elixir-1.4/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/awk/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/09/09/using-awk-to-extract-generated-file-from-jekyll-compose/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/04/11/a-note-about-using-fetch-in-js/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2018/03/28/using-ruby-next-in-map/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2017/11/04/ruby-fetch/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2017/10/24/register-in-vim/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/tags/vue.js/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2017/10/17/vue.js-add-component-on-click/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/posts/2017/10/15/ruby-.-notation/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url><url><loc>http://kaiwern.com/series/elixir/phoenix-deployment-with-release/</loc></url><url><loc>http://kaiwern.com/series/</loc><lastmod>2026-03-22T16:47:54+08:00</lastmod></url></urlset>