<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Posts · Vixyun · Tools &amp; Content</title>
    <link>https://vixyun.top/posts/</link>
    <description>Short notes on productivity, tools and technology.</description>
    <generator>Hugo</generator>
    <language>en</language>
    <lastBuildDate>Mon, 19 Oct 2026 10:30:00 +0800</lastBuildDate>
    <atom:link href="https://vixyun.top/posts/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>How Big Does This QR Code Need to Be: Bytes, Versions, and What Level H Costs</title>
      <link>https://vixyun.top/posts/qr-code-size-version-and-level/</link>
      <pubDate>Mon, 19 Oct 2026 10:30:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/qr-code-size-version-and-level/</guid>
      <description>A QR version is a size, not a quality: what your text costs in bits, which level pushes it into a bigger grid, and how many millimetres that needs on paper.</description>
    </item>
    <item>
      <title>502, 504 or 503? First work out which machine answered you</title>
      <link>https://vixyun.top/posts/502-bad-gateway-troubleshooting/</link>
      <pubDate>Sun, 04 Oct 2026 11:40:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/502-bad-gateway-troubleshooting/</guid>
      <description>Measured in a browser: a 502 with a body shows the server&#39;s own page, an empty 502 shows nothing, and a killed connection produces no number at all.</description>
    </item>
    <item>
      <title>How to read a cron expression: day and weekday are ORed, and when the next run really is</title>
      <link>https://vixyun.top/posts/cron-expression-how-to-read/</link>
      <pubDate>Sun, 04 Oct 2026 11:20:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/cron-expression-how-to-read/</guid>
      <description>Why */5 aligns to midnight, not to your last run, the day-or-weekday union rule (0 0 13 * 5 runs 62 times a year), the 29 Feb wait, DST, and a checklist.</description>
    </item>
    <item>
      <title>How long should a password be: entropy, average guesses, and guesses per second</title>
      <link>https://vixyun.top/posts/password-entropy-crack-time/</link>
      <pubDate>Sun, 04 Oct 2026 11:00:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/password-entropy-crack-time/</guid>
      <description>Bits come only from how a password was sampled: length × log2(pool). Crack times for 8-to-20-character passwords at three attack rates, and what entropy misses.</description>
    </item>
    <item>
      <title>Verifying a download with SHA-256: when it does not match, look at the length first</title>
      <link>https://vixyun.top/posts/verify-downloaded-file-checksum/</link>
      <pubDate>Sun, 04 Oct 2026 10:40:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/verify-downloaded-file-checksum/</guid>
      <description>sha256sum, Get-FileHash, certutil and shasum compared, the order to debug a mismatched digest, what MD5 and SHA-1 are still good for, why CRC32 is not a hash.</description>
    </item>
    <item>
      <title>URL encoding: + vs %20, whether ; splits parameters, and why a lone % throws</title>
      <link>https://vixyun.top/posts/url-encoding-plus-vs-percent20/</link>
      <pubDate>Sun, 04 Oct 2026 10:20:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/url-encoding-plus-vs-percent20/</guid>
      <description>Spaces have three legal spellings, + is a space only in a query, ; is not a parameter separator, and a lone percent throws URIError. Work segment by segment.</description>
    </item>
    <item>
      <title>Base64 with Chinese and emoji: why btoa throws and atob returns mojibake</title>
      <link>https://vixyun.top/posts/base64-encoding-chinese/</link>
      <pubDate>Sun, 04 Oct 2026 10:00:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/base64-encoding-chinese/</guid>
      <description>btoa(&#39;你好&#39;) throws and atob returns mojibake because Base64 works on bytes, not characters. The UTF-8 round trip, padding, why + breaks tokens, base64url.</description>
    </item>
    <item>
      <title>Five CSV to JSON Traps: Leading Zeros, Quotes and Newlines Inside Cells</title>
      <link>https://vixyun.top/posts/csv-to-json-conversion-pitfalls/</link>
      <pubDate>Sun, 04 Oct 2026 09:40:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/csv-to-json-conversion-pitfalls/</guid>
      <description>Why 007 became 7, why splitting on a comma shreds rows, why European spreadsheets export semicolon CSV, and what to do with ragged rows and duplicate headers.</description>
    </item>
    <item>
      <title>How Many Working Days Until the Deadline? Three Things to Settle First</title>
      <link>https://vixyun.top/posts/working-days-and-deadline-counting/</link>
      <pubDate>Sun, 04 Oct 2026 09:20:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/working-days-and-deadline-counting/</guid>
      <description>One pair of dates has four right answers: calendar days, whole weeks, working days, years-months-days. Covers endpoint rules, month-end clamping and due dates.</description>
    </item>
    <item>
      <title>Convert a Unix Timestamp to Beijing Time (or Any Other Zone)</title>
      <link>https://vixyun.top/posts/unix-timestamp-to-beijing-time/</link>
      <pubDate>Sun, 04 Oct 2026 09:00:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/unix-timestamp-to-beijing-time/</guid>
      <description>A Unix timestamp carries no timezone: Beijing time is the same instant at UTC+8. Ten versus thirteen digits, the 8-hour bug, and the 1986-1991 DST years.</description>
    </item>
    <item>
      <title>Hello, Vixyun!</title>
      <link>https://vixyun.top/posts/hello-vixyun/</link>
      <pubDate>Tue, 17 Feb 2026 00:00:00 +0800</pubDate>
      <guid>https://vixyun.top/posts/hello-vixyun/</guid>
      <description>The site is live. A quick note on what it is, how it&#39;s built, and what&#39;s next.</description>
    </item>
  </channel>
</rss>
