<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Chen Xiangyang — Posts</title>
    <link>https://cxy0218-blog.pages.dev/posts/</link>
    <description>Study notes, debugging diaries and write-ups by Chen Xiangyang.</description>
    <language>en</language>
    <lastBuildDate>Fri, 16 Oct 2026 06:00:00 GMT</lastBuildDate>
    <atom:link href="https://cxy0218-blog.pages.dev/rss.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>The site stuttered twice, so I traced it twice</title>
      <link>https://cxy0218-blog.pages.dev/posts/frontend-performance/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/frontend-performance/</guid>
      <pubDate>Fri, 16 Oct 2026 06:00:00 GMT</pubDate>
      <description>Slow first paint on my phone, janky page transitions, images popping in one by one — and how I tracked each problem down.</description>
    </item>
    <item>
      <title>The fox in the corner: from cut-out sprite to conversation partner</title>
      <link>https://cxy0218-blog.pages.dev/posts/ai-desktop-pet/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/ai-desktop-pet/</guid>
      <pubDate>Fri, 16 Oct 2026 03:30:00 GMT</pubDate>
      <description>Cutting out sprites, a state machine, Pomodoro hooks, a DeepSeek connection — and a few details I reworked more than once.</description>
    </item>
    <item>
      <title>The check-in page: finding out where the hours really went</title>
      <link>https://cxy0218-blog.pages.dev/posts/checkin-feature/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/checkin-feature/</guid>
      <pubDate>Fri, 16 Oct 2026 02:00:00 GMT</pubDate>
      <description>Things I reworked several times while building it: the data model, the timer, the calendar colors, and export/backup.</description>
    </item>
    <item>
      <title>Another computer, same blog: moving the site from C: to D:</title>
      <link>https://cxy0218-blog.pages.dev/posts/blog-migration-notes/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/blog-migration-notes/</guid>
      <pubDate>Wed, 14 Oct 2026 13:30:00 GMT</pubDate>
      <description>How I got it running on a machine without Node — and the three places it got stuck.</description>
    </item>
    <item>
      <title>After the OS lab: the commands I actually type</title>
      <link>https://cxy0218-blog.pages.dev/posts/linux-command-line/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/linux-command-line/</guid>
      <pubDate>Wed, 14 Oct 2026 12:30:00 GMT</pubDate>
      <description>Lab sessions mean commands I cannot remember, so I look them up. These are the ones I use most, and a few I got burned by.</description>
    </item>
    <item>
      <title>Sorting algorithms: choosing one, after writing them all</title>
      <link>https://cxy0218-blog.pages.dev/posts/algorithm-sorting/</link>
      <guid isPermaLink="true">https://cxy0218-blog.pages.dev/posts/algorithm-sorting/</guid>
      <pubDate>Wed, 14 Oct 2026 11:30:00 GMT</pubDate>
      <description>I implemented bubble, insertion, merge, quicksort and heapsort, hit a few traps, and ended up with a comparison table.</description>
    </item>
  </channel>
</rss>
