<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Zekun Blog</title>
    <description>Building and evaluating AI-powered products, agent systems, and local-first developer tools.</description>
    <link>https://www.zekun.blog/</link>
    <atom:link href="https://www.zekun.blog/feed.xml" rel="self" type="application/rss+xml" />
    <pubDate>Wed, 26 Aug 2026 23:11:35 +0000</pubDate>
    <lastBuildDate>Wed, 26 Aug 2026 23:11:35 +0000</lastBuildDate>
    <generator>Jekyll v3.10.0</generator>
    
      
      
      <item>
        <title>What Should a Coding Agent Be Allowed to Remember?</title>
        <description>Why coding-agent memory should earn authority through admission, identity, routing, mutation safety, and bounded erasure—not mere persistence.

&lt;a href=&quot;https://www.zekun.blog/2026/08/26/memory-custodian-remember/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Wed, 26 Aug 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/08/26/memory-custodian-remember/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/08/26/memory-custodian-remember/</guid>
        
        <category>Agent</category>
        
        <category>Agent Memory</category>
        
        <category>Developer Tools</category>
        
        <category>Software Architecture</category>
        
        <category>Local-First</category>
        
        <category>Data Governance</category>
        
        <category>AI</category>
        
        
      </item>
    
      
      
      <item>
        <title>Slides Thief 2.0: From Rectangle Heuristics to Evidence-Aware Review</title>
        <description>How Slides Thief 2.0 combines multiple detectors, candidate scoring, local refinement, and batch geometry for more reliable browser-local correction.

&lt;a href=&quot;https://www.zekun.blog/2026/08/01/slides-thief-2-detection/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sat, 01 Aug 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/08/01/slides-thief-2-detection/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/08/01/slides-thief-2-detection/</guid>
        
        <category>Computer Vision</category>
        
        <category>Image Processing</category>
        
        <category>Web Application</category>
        
        <category>JavaScript</category>
        
        <category>Software Architecture</category>
        
        <category>Local-First</category>
        
        <category>Productivity Tool</category>
        
        <category>Project</category>
        
        
      </item>
    
      
      
      <item>
        <title>Designing Memory That Can Safely Forget</title>
        <description>A design for bounded agent-memory forgetting using explicit modes, dry-run previews, semantic entries, and validated multi-file plans.

&lt;a href=&quot;https://www.zekun.blog/2026/07/21/memory-custodian-safe/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Tue, 21 Jul 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/07/21/memory-custodian-safe/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/07/21/memory-custodian-safe/</guid>
        
        <category>Agent</category>
        
        <category>Agent Memory</category>
        
        <category>Developer Tools</category>
        
        <category>Software Architecture</category>
        
        <category>Local-First</category>
        
        <category>Data Governance</category>
        
        <category>AI</category>
        
        <category>Project</category>
        
        
      </item>
    
      
      
      <item>
        <title>Why Project Memory Should Be Plain Text and Repo-Native</title>
        <description>Why durable coding-agent memory should use repo-native Markdown, Git review, manifest routing, and semantic entry boundaries.

&lt;a href=&quot;https://www.zekun.blog/2026/07/20/memory-custodian-tech-design/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Mon, 20 Jul 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/07/20/memory-custodian-tech-design/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/07/20/memory-custodian-tech-design/</guid>
        
        <category>Agent</category>
        
        <category>Agent Memory</category>
        
        <category>Developer Tools</category>
        
        <category>Software Architecture</category>
        
        <category>Local-First</category>
        
        <category>Markdown</category>
        
        <category>Git</category>
        
        <category>AI</category>
        
        <category>Project</category>
        
        
      </item>
    
      
      
      <item>
        <title>Slides Thief - Turn Photographed Presentation Slides into Clean PDFs</title>
        <description>Slides Thief is a browser-based tool that turns photographed presentation slides into perspective-corrected images and clean PDFs, with all processing performed locally.

&lt;a href=&quot;https://www.zekun.blog/2026/07/13/slides-thief/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Mon, 13 Jul 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/07/13/slides-thief/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/07/13/slides-thief/</guid>
        
        <category>Computer Vision</category>
        
        <category>Web Application</category>
        
        <category>JavaScript</category>
        
        <category>PDF Generation</category>
        
        <category>Productivity Tool</category>
        
        <category>Project</category>
        
        <category>Local-First</category>
        
        
      </item>
    
      
      
      <item>
        <title>MemoryCustodian: Durable Project Memory for Coding Agents</title>
        <description>MemoryCustodian gives coding agents durable, reviewable project memory using repo-native Markdown, Git history, and task-specific context routing.

&lt;a href=&quot;https://www.zekun.blog/2026/07/01/memory-custodian/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Wed, 01 Jul 2026 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2026/07/01/memory-custodian/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2026/07/01/memory-custodian/</guid>
        
        <category>Agent</category>
        
        <category>Agent Memory</category>
        
        <category>Developer Tools</category>
        
        <category>Software Architecture</category>
        
        <category>Local-First</category>
        
        <category>CLI</category>
        
        <category>AI</category>
        
        <category>Project</category>
        
        
      </item>
    
      
      
      <item>
        <title>Social inequality and cultural factors impact the awareness and reaction during the cryptic transmission period of the pandemic</title>
        <description>Paper note on how social inequality and cultural factors shaped awareness and reaction during cryptic pandemic transmission.

&lt;a href=&quot;https://www.zekun.blog/2025/02/01/paper-social-inequality-pandemic/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sat, 01 Feb 2025 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2025/02/01/paper-social-inequality-pandemic/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2025/02/01/paper-social-inequality-pandemic/</guid>
        
        <category>Paper</category>
        
        <category>COVID-19</category>
        
        <category>EDA</category>
        
        <category>Data Science</category>
        
        
      </item>
    
      
      
      <item>
        <title>Characterizing browser-based medical imaging AI with serverless edge computing: towards addressing clinical data security constraints</title>
        <description>Paper summary: characterizing browser-based medical imaging AI with serverless edge computing under clinical data constraints.

&lt;a href=&quot;https://www.zekun.blog/2023/04/10/paper-browser-based-medical-imaging-ai/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Mon, 10 Apr 2023 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2023/04/10/paper-browser-based-medical-imaging-ai/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2023/04/10/paper-browser-based-medical-imaging-ai/</guid>
        
        <category>Paper</category>
        
        <category>Machine Learning</category>
        
        <category>Web Application</category>
        
        <category>AI</category>
        
        <category>Local-First</category>
        
        <category>Computer Vision</category>
        
        
      </item>
    
      
      
      <item>
        <title>WearMask: Fast in-browser face mask detection with serverless edge computing for COVID-19</title>
        <description>Paper summary: WearMask brings fast in-browser face mask detection with serverless edge computing for COVID-19.

&lt;a href=&quot;https://www.zekun.blog/2023/01/01/paper-wearmask-fast-in-browser/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sun, 01 Jan 2023 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2023/01/01/paper-wearmask-fast-in-browser/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2023/01/01/paper-wearmask-fast-in-browser/</guid>
        
        <category>Paper</category>
        
        <category>COVID-19</category>
        
        <category>Masked Face</category>
        
        <category>Deep Learning</category>
        
        <category>Serverless</category>
        
        <category>Edge Computing</category>
        
        <category>AI</category>
        
        <category>Local-First</category>
        
        <category>Computer Vision</category>
        
        
      </item>
    
      
      
      <item>
        <title>K-Means-Based Anomalous Email Detection in PySpark</title>
        <description>Detect anomalous emails with MinHash and K-Means in PySpark, demonstrated in a Colab-friendly workflow.

&lt;a href=&quot;https://www.zekun.blog/2021/05/05/kmeans-anomaly-detection/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Wed, 05 May 2021 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2021/05/05/kmeans-anomaly-detection/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2021/05/05/kmeans-anomaly-detection/</guid>
        
        <category>Anomaly Detection</category>
        
        <category>Machine Learning</category>
        
        <category>Text Analysis</category>
        
        <category>K-Means</category>
        
        <category>Project</category>
        
        <category>Python</category>
        
        <category>PySpark</category>
        
        
      </item>
    
      
      
      <item>
        <title>WearMask - Face Mask Detection Project Details</title>
        <description>Project details behind WearMask, a low-cost local face mask detection setup for small businesses and public spaces.

&lt;a href=&quot;https://www.zekun.blog/2020/12/01/mask-detection-report/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Tue, 01 Dec 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/12/01/mask-detection-report/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/12/01/mask-detection-report/</guid>
        
        <category>Deep Learning</category>
        
        <category>Object Detection</category>
        
        <category>Model Deployment</category>
        
        <category>Project</category>
        
        <category>NCNN</category>
        
        <category>Python</category>
        
        <category>C++</category>
        
        <category>JavaScript</category>
        
        <category>WebAssembly</category>
        
        <category>AI</category>
        
        <category>Local-First</category>
        
        <category>Computer Vision</category>
        
        
      </item>
    
      
      
      <item>
        <title>Super-Fast In-Browser Face Mask Detection</title>
        <description>WearMask: a super-fast in-browser face mask detector that runs locally with NCNN and WebAssembly.

&lt;a href=&quot;https://www.zekun.blog/2020/11/27/mask-detection/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Fri, 27 Nov 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/11/27/mask-detection/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/11/27/mask-detection/</guid>
        
        <category>Deep Learning</category>
        
        <category>Object Detection</category>
        
        <category>Model Deployment</category>
        
        <category>Project</category>
        
        <category>NCNN</category>
        
        <category>Python</category>
        
        <category>C++</category>
        
        <category>JavaScript</category>
        
        <category>WebAssembly</category>
        
        <category>Web Application</category>
        
        <category>AI</category>
        
        <category>Local-First</category>
        
        <category>Computer Vision</category>
        
        
      </item>
    
      
      
      <item>
        <title>Tutorial for Compiling NCNN with WASM</title>
        <description>Compile NCNN to WebAssembly so deep learning inference can run directly in the browser.

&lt;a href=&quot;https://www.zekun.blog/2020/11/15/build-ncnn-wasm/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sun, 15 Nov 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/11/15/build-ncnn-wasm/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/11/15/build-ncnn-wasm/</guid>
        
        <category>NCNN</category>
        
        <category>Deep Learning</category>
        
        <category>Model Deployment</category>
        
        <category>Tutorial</category>
        
        <category>C++</category>
        
        <category>WebAssembly</category>
        
        <category>AI</category>
        
        
      </item>
    
      
      
      <item>
        <title>Tutorial for Compiling the NCNN Library</title>
        <description>Step-by-step notes on compiling the NCNN library as the first stage of on-device model deployment.

&lt;a href=&quot;https://www.zekun.blog/2020/11/10/build-ncnn/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Tue, 10 Nov 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/11/10/build-ncnn/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/11/10/build-ncnn/</guid>
        
        <category>NCNN</category>
        
        <category>Deep Learning</category>
        
        <category>Model Deployment</category>
        
        <category>Tutorial</category>
        
        <category>C++</category>
        
        <category>AI</category>
        
        
      </item>
    
      
      
      <item>
        <title>Darknet to Keras - Model Transformation</title>
        <description>Convert Darknet models to Keras/TensorFlow 2.0 for easier training and deployment workflows.

&lt;a href=&quot;https://www.zekun.blog/2020/10/25/darknet2keras/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sun, 25 Oct 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/10/25/darknet2keras/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/10/25/darknet2keras/</guid>
        
        <category>Deep Learning</category>
        
        <category>Python</category>
        
        <category>AI</category>
        
        
      </item>
    
      
      
      <item>
        <title>How to Get Information from an IP Address?</title>
        <description>A short tutorial on looking up IP geolocation with MaxMind GeoLite2 and the Python geoip2 library.

&lt;a href=&quot;https://www.zekun.blog/2020/07/20/get-ip-info/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Mon, 20 Jul 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/07/20/get-ip-info/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/07/20/get-ip-info/</guid>
        
        <category>Tutorial</category>
        
        <category>Python</category>
        
        
      </item>
    
      
      
      <item>
        <title>COVID-19 Data Exploration (WIP)</title>
        <description>Early exploratory analysis and visualization of COVID-19 data while the pandemic was still unfolding.

&lt;a href=&quot;https://www.zekun.blog/2020/03/19/COVID-19-EDA/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Thu, 19 Mar 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/03/19/COVID-19-EDA/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/03/19/COVID-19-EDA/</guid>
        
        <category>COVID-19</category>
        
        <category>Visualization</category>
        
        <category>EDA</category>
        
        <category>R</category>
        
        
      </item>
    
      
      
      <item>
        <title>LAPOP Data Dashboard</title>
        <description>A Shiny dashboard prototype for exploring LAPOP survey data with interactive filters and charts.

&lt;a href=&quot;https://www.zekun.blog/2020/02/19/LAPOP-dashboard/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Wed, 19 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/02/19/LAPOP-dashboard/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/02/19/LAPOP-dashboard/</guid>
        
        <category>Dashboard</category>
        
        <category>Visualization</category>
        
        <category>Project</category>
        
        <category>R</category>
        
        <category>Web Application</category>
        
        
      </item>
    
      
      
      <item>
        <title>Cashbox Magazine Song Chart Analysis</title>
        <description>An end-to-end data analysis pipeline using Cashbox Magazine song chart history, from cleaning to visualization.

&lt;a href=&quot;https://www.zekun.blog/2020/02/15/song-analysis/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Sat, 15 Feb 2020 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2020/02/15/song-analysis/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2020/02/15/song-analysis/</guid>
        
        <category>EDA</category>
        
        <category>Project</category>
        
        <category>R</category>
        
        <category>Text Analysis</category>
        
        
      </item>
    
      
      
      <item>
        <title>Think Strategically and Get Jobs - H1B Visa Analysis</title>
        <description>Analyze H-1B petition data to help international data science students strategize their U.S. job search.

&lt;a href=&quot;https://www.zekun.blog/2019/12/12/h1b-analysis/&quot;&gt;Continue reading…&lt;/a&gt;</description>
        <pubDate>Thu, 12 Dec 2019 00:00:00 +0000</pubDate>
        <link>https://www.zekun.blog/2019/12/12/h1b-analysis/</link>
        <guid isPermaLink="true">https://www.zekun.blog/2019/12/12/h1b-analysis/</guid>
        
        <category>Career</category>
        
        <category>Data Science</category>
        
        <category>EDA</category>
        
        <category>Project</category>
        
        <category>R</category>
        
        
      </item>
    
  </channel>
</rss>
