A Summary of Markdown Syntax and External Tag Usage
Built-in Markdown Formatting Reference: Markdown 语法图文全面详解(10 分钟学会) Note: This page may occasionally have CSS conflict issues! Code Blocks 示例源码渲染演示\```sh # VSCode终端 hexo clean; hexo s hexo clean; hexo g; hexo d git add .; git commit -m "npm publish"; npm version patch; git push # Cmder终端 hexo clean && hexo s hexo clean && hexo g && hexo d git add . && git commit -m "npm publish" && npm version patch git push \```# VSCode终端 hexo clean; hexo s hexo cl...
How to Ask Questions the Smart Way
Reprint Notice The following content is reposted by Asuna from How-To-Ask-Questions-The-Smart-Way It is intended solely to accelerate access within mainland China. If there is any infringement, please contact us and it will be removed! How To Ask Questions The Smart Way How To Ask Questions The Smart Way Copyright © 2001,2006,2014 Eric S. Raymond, Rick Moen The English version of this guide is copyrighted by Eric S. Raymond and Rick Moen. Original URL: http://www.catb.org/~esr/faqs/smart-qu...
What I'm Doing When Eight Tracks Run in Parallel
Before writing this, I glanced at the build machine: 5 tmux sessions running, 372 task directories under ~/.local/state/ai-jobs totaling 3.1 GB, load average 2.90 and drifting between two and seven the whole time. The machine has 128 cores, up for four and a half days. Those numbers are a single sampled instant—they’d changed again by the time I finished this paragraph, which is itself part of the point. The projects on hand at the same moment: a Rust + SQL site reworking its statistics query...
The Typecheck Was Green After the Merge
2aa1194ed, titled “Merge latest main into zsf”. A completely ordinary merge commit. It deleted the entire Adjust runtime. Under packages/api/src/adjust/, 7 of the 8 files were deleted outright, and diff --stat was 4 insertions and 292 deletions. No conflicts. No compile errors. CI was green. How the deletion slipped in The merge’s two parents are e5051db93 and 93173a00b (main), and the merge base is e11e286ff. On the base, these 8 files were intact, and all the git ls-tree references were pr...
The server behind the tunnel thinks it's in HTTP
The site is written in Bun + Hono, runs in a container, and is exposed via Cloudflare Tunnel. Five days ago there were two bugs in a row (be15f5a, 2ea4f53, eight minutes apart), both of which “brought local development assumptions into this topology.” First: origin is http When the tunnel sends requests in from the public internet, the hop to the container is http. So anywhere that gets the origin via request.url gets http://.... Most places don’t care; two do: the cookie’s Secure attribute...
Letting Service Worker Step Down on Its Own
88b54539 refactor(web): retire service worker caching safely, 1107 lines deleted and 354 lines added. The numbers make it look like a refactor, but really it’s arranging an exit for something that’s still alive. Why I Wanted to Delete It This site is a Next.js app, and PWA precaching used to be handled by Serwist. The problems gradually surfaced: After a deploy, the precache in the browser is still there, so users get the previous version of the HTML and the previous version of the JS. Once...
After Pulling EXISTS Out of the FILTER
The detail page for channel stats takes 1.5 seconds. On a backend dashboard that’s not a disaster, but waiting a second and a half on every refresh is something users remember. The baseline is a production scale of 246,000 clicks over a 30-day window. The detail page takes 1.51 s, the cross-channel overview 1.49 s, and the share page 0.85 s—the share page is shown to advertisers, and a second and a half of white screen looks bad. The problem isn’t data volume First, let’s clarify the term “v...
That One Comment Earned at the Cost of Production Downtime
In the opening comment of infra/migrations/0055_work_code_case_uniq.sql there’s a passage that was bought with a real production outage. Before I wrote it, I first wrote down a judgment — and production shot that judgment down… Let me lay out the background first, otherwise that comment just reads like generic hand-wringing. What we’re fixing isn’t “can’t find it” 0001_init.sql hands work.code a bare TEXT UNIQUE, i.e. UNIQUE (code), case-sensitive. But every read path on the site matches on ...
After moving the secret key out of _config.yml, every command has to remember to include the other config file
A string of commits on the morning of August 4 had one theme: clearing sensitive values out of the blog config — the Baidu/Bing push tokens, the api_key used for LLM tagging, the passphrase for encrypted post categories — all moved into _config.local.yml of .gitignore, leaving only a _config.local.example.yml template in the repo. Three related things happened the same day: the comment system moved from Twikoo+Waline to Artalk, the license changed from CC BY-NC-SA 4.0 to CC BY 4.0, and AI cra...
188 Players, 0 That Play Sound: An Old Bug Exposed by a Theme Upgrade
The Butterfly release notes for the jump from 5.6.1 to 5.7.0 state one thing plainly: built-in APlayer/Meting support has been removed. After upgrading, the aplayerInject config stopped working, and the related entries in layout/includes/third-party/aplayer.pug and plugins.yml vanished along with it. /music/ holds 188 <meting-js>, and inject also contains one fixed player. The tags themselves are still there, but the script injection is gone, so the page just shows a row of empty custom...
