<?xml version="1.0" encoding="UTF-8"?><?xml-stylesheet type="text/xsl" href="//dyikai.me/sitemap.xsl"?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:image="http://www.google.com/schemas/sitemap-image/1.1"><url><loc>https://dyikai.me/running-trojan-and-nginx-on-the-same-vps-with-haproxy/</loc><lastmod>2026-05-31T23:50:52.688Z</lastmod><image:image><image:loc>https://images.unsplash.com/photo-1557632095-8979f6f21d94?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHRyb2phbnxlbnwwfHx8fDE3Njc2OTEzMDB8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:loc><image:caption>photo-1557632095-8979f6f21d94?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDF8fHRyb2phbnxlbnwwfHx8fDE3Njc2OTEzMDB8MA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:caption></image:image></url><url><loc>https://dyikai.me/swift-concurrency/</loc><lastmod>2026-05-31T23:50:50.587Z</lastmod><image:image><image:loc>https://images.unsplash.com/photo-1709802191120-3c13542e1416?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fHN3aWZ0fGVufDB8fHx8MTc2NzY5MTM2OHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:loc><image:caption>photo-1709802191120-3c13542e1416?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDl8fHN3aWZ0fGVufDB8fHx8MTc2NzY5MTM2OHww&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:caption></image:image></url><url><loc>https://dyikai.me/swift-concurrency-from-synchronous-code-to-structured-task/</loc><lastmod>2026-05-31T23:50:49.016Z</lastmod><image:image><image:loc>https://images.unsplash.com/photo-1575052734309-6008d800b7dc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fFRocmVhZHN8ZW58MHx8fHwxNzY4MzAxMjc5fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:loc><image:caption>photo-1575052734309-6008d800b7dc?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDV8fFRocmVhZHN8ZW58MHx8fHwxNzY4MzAxMjc5fDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:caption></image:image></url><url><loc>https://dyikai.me/swift-concurrency-rethinking-actor-boundaries-through-viewmodels-and-viewcontrollers/</loc><lastmod>2026-05-31T23:50:45.631Z</lastmod><image:image><image:loc>https://images.unsplash.com/photo-1611701600139-0d468e20c9a1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fFRyYXB8ZW58MHx8fHwxNzczMzAwODkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:loc><image:caption>photo-1611701600139-0d468e20c9a1?crop=entropy&amp;cs=tinysrgb&amp;fit=max&amp;fm=jpg&amp;ixid=M3wxMTc3M3wwfDF8c2VhcmNofDJ8fFRyYXB8ZW58MHx8fHwxNzczMzAwODkzfDA&amp;ixlib=rb-4.1.0&amp;q=80&amp;w=2000</image:caption></image:image></url></urlset>