<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>Asep’s Dev Diary</title><description>Asep Koharudin’s engineering portfolio and developer diary. Software projects, AI experiments, and notes from building products and leading an engineering team.</description><link>https://kohar.space/</link><language>en</language><item><title>Tracing and blocking webshell scanners with Cloudflare analytics and WAF rules</title><link>https://kohar.space/blog/tracing-and-blocking-webshell-scanners-with-cloudflare/</link><guid isPermaLink="true">https://kohar.space/blog/tracing-and-blocking-webshell-scanners-with-cloudflare/</guid><description>My static site returned thousands of 404s for PHP files it never had. How I traced the requests to scanner VMs with Cloudflare analytics, and the WAF rules that stop them.</description><pubDate>Sat, 10 Oct 2026 00:00:00 GMT</pubDate><category>Cloudflare</category><category>Security</category><category>Web</category></item><item><title>Function calling: connecting AI to your application</title><link>https://kohar.space/blog/function-calling/</link><guid isPermaLink="true">https://kohar.space/blog/function-calling/</guid><description>How a language model requests data from your application, how your code handles the request, and how the result becomes a useful answer.</description><pubDate>Fri, 20 Sep 2024 00:00:00 GMT</pubDate><category>AI</category><category>Function Calling</category><category>OpenAI</category></item><item><title>How to collect MikroTik HTTP logs for a web dashboard</title><link>https://kohar.space/blog/mikrotik-http-logs/</link><guid isPermaLink="true">https://kohar.space/blog/mikrotik-http-logs/</guid><description>Set up MikroTik web-proxy logging, send requests to a UDP receiver, and prepare the records for a searchable web dashboard.</description><pubDate>Tue, 15 Feb 2022 00:00:00 GMT</pubDate><category>MikroTik</category><category>Networking</category><category>Logging</category></item></channel></rss>