辣椒炒肉

<div id="content" class="content e-content"> <header> <h1 class="title p-name">辣椒炒肉</h1> </header><p> 實踐一下 <a href="57.html">Zine#57</a> 裡分享的 <a href="https://recipetables.com/why">RecipeTables</a> 的做法。 </p> <div class="recipe"> <table> <caption> 辣椒炒肉菜譜 </caption> <tbody> <tr> <td> 螺丝椒或是其它青椒約 250g </td> <td> 切片 </td> <td rowspan=5 align="center"> 熱鍋,少許少許油,下入青椒煽炒,壓一壓, 煽一陣子後加入少量盐,直到煽軟,有點虎皮的感覺,捞起備用。 </td> <td rowspan=5> 熱鍋,放入適量油 <small>(可以稍微多一些)</small>, 如果有肥肉就先放入肥肉,先中大火炒變色,再小火煸出猪油。 捞走肥肉,下入豆豉炒香,接著放入蒜片炒香<small>(一起放也行)</small>。 </td> <td rowspan=5> 下入青椒和肉,將肉炒熟變色,再下入白木耳翻炒一段時間,把食材炒熟。 </td> <td rowspan=5> 都差不多熟了<small>(用肉色判斷)</small>之後, 加入適量生抽(咸味)、老抽 (上色)、白糖(提鮮,削减辣味),翻炒均勻即可裝盤。 </td> </tr> <tr> <td> 梅花肉或前腿肉 200g ~ 400g </td> <td> 切片,不要太厚。 基於肉量,加入適量生抽、老抽、小蘇打腌製十分鐘左右 </td> </tr> <tr> <td> 白木耳若干 (喜歡就多放點) </td> <td> 温水泡發 30 分鐘,再用清水洗干净 </td> </tr> <tr> <td> 豆豉少許 </td> <td> 清水清洗一下,切碎 </td> </tr> <tr> <td> 大蒜兩顆 (十來瓣) </td> <td> 切片 </td> </tr> </tbody> </table> </div> <figure> <a href="images/recipe-la-jiao-chao-rou/la-jiao-chao-rou.webp"><img src="https://imgproxy.citrusreader.com/K2rYzzpkVtibtweI-12sa73POwdwzui2eh34Sj3OjAg/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL3JlY2lwZS1sYS1qaWFvLWNoYW8tcm91L2xhLWppYW8tY2hhby1yb3Uud2VicA" alt="la-jiao-chao-rou.webp" style="block-size: 50vh" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>辣椒炒肉成品</figcaption> </figure> <p> 參考視頻教程: </p> <ul class="org-ul"> <li><a href="https://www.bilibili.com/video/BV123eFzyEZi/">【无敌下饭神菜!!辣椒炒肉!!】</a> (03:19) by 村驴</li> </ul> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/recipe-la-jiao-chao-rou.txt">純文本版本</a> <a href="https://taxodium.ink/recipe-la-jiao-chao-rou.org">原始 org 文件</a>

2026/9/7
阅读更多

用 Tamper-monkey 集成 Kagi Translate - 以及用 Docker Sandbox 使用 OpenCode 和 DeepSeek

<div id="content" class="content e-content"> <header> <h1 class="title p-name">用 Tamper-monkey 集成 Kagi Translate</h1> <p class="subtitle" role="doc-subtitle">以及用 Docker Sandbox 使用 OpenCode 和 DeepSeek</p> </header><p> 我現在主要用 <a href="my-experience-with-kagi-translate.html">Kagi Translate</a> 閱讀外文, Kagi Translate 提供了 <a href="https://translate.kagi.com/extension">瀏覧器插件</a>,有三個我常用的功能: 1) 網頁全文翻譯 2) 選擇內容翻譯 3) 字典定義。但插件很久沒更新了,最近用下來也有兩個很影响使用的地方: </p> <ol class="org-ol"> <li>網頁翻譯有時會吞掉一些文章內容;有的段落可能只翻譯了一兩個單詞。原來我可以打開一堆頁面,然後全部翻譯,哪個翻譯好了我就看哪個,現在我還要檢查內容是否完整,用起來提心吊胆的。而且重新翻譯也未必有用,它是有緩存的,先要清空插件的緩存後才能触發新的翻譯,但清除緩存重新請求也未必正常,有時我需要切換目標語言或不同的翻譯質量才行。總之就是不穩定,不能放心地用。</li> <li>除了全文翻譯,我有時也會用到字典功能,去了解一個我不認識的單詞,但現在查詢結果經常是空白一片,也不清楚是什麼問題。唯一比較穩定的就是選擇內容翻譯了。</li> </ol> <p> Kagi Translate 的網頁功能倒是一直在更新,每過几天就提示我刷新頁面获取新版本,網頁上也有一些插件上沒有的功能。於是我就想,網頁是相對稳定的,我能不能就用網頁功能呢?借助 <a href="https://www.tampermonkey.net/">Tampermonkey</a>,我把 Kagi Translate 網頁塞在一個彈窗裡,通過快捷鍵調用,我用下來還挺滿意的。 </p> <p> 下面分享一下整體功能。 </p> <figure> <a href="images/integrate-kagi-translate-with-tampermonkey/dictionary.webp"><img src="https://imgproxy.citrusreader.com/CWlYRc8vpglwHE_71po5qwyWQpz0gFdA_dtCY6jh3Dw/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2ludGVncmF0ZS1rYWdpLXRyYW5zbGF0ZS13aXRoLXRhbXBlcm1vbmtleS9kaWN0aW9uYXJ5LndlYnA" alt="dictionary.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>在頁面上使用 Kagi Translate 的 Dictionary 功能</figcaption> </figure> <p> 使用網頁版的字典可以看到更多信息,也支持將單詞存到 <a href="https://apps.ankiweb.net/">Anki</a> 裡複習。我挺喜歡集成的 Anki 功能的,但是插件裡沒有這個功能,只有網頁版有。之前我需要複製單詞,打開網頁才能用,用起來有些麻煩,所以我也很少用。現在我可以在任意頁面上直接調用,方便多了,這兩天用下來,新增了上百個單詞<small>(不熟悉的單詞太多了)</small>。單詞是從我閱讀的文章中获取的,相比那些預製的單詞集,它們更貼近我當前的水平,複習時也會更親切些,對它們也還留有一些印象。 </p> <figure> <a href="images/integrate-kagi-translate-with-tampermonkey/dictionary-anki.webp"><img src="https://imgproxy.citrusreader.com/HZsKQqZ_UGaYyIeERyITJahOm6DnI7dRw7wI4zTF5DA/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2ludGVncmF0ZS1rYWdpLXRyYW5zbGF0ZS13aXRoLXRhbXBlcm1vbmtleS9kaWN0aW9uYXJ5LWFua2kud2VicA" alt="dictionary-anki.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;2&nbsp; </span>在頁面上使用 Kagi Translate 的 Dictionary 中的 Anki 功能</figcaption> </figure> <p> 因為打開的窗口比較細長,原始樣式下 <kbd>Send to Anki</kbd> 在最下面,需要多滾動一下才能看見,為了方便,我用 <a href="https://github.com/openstyles/stylus">openstyles/stylus</a> 覆盖了 Anki 彈窗的樣,隱藏了一些我不需要的信息,現在 <kbd>Send to Anki</kbd> 就可以直接在頁面上點擊了。 </p> <details> <summary>相關覆盖樣式</summary> <p> 應用在 <a href="https://translate.kagi.com/dictionary">https://translate.kagi.com/dictionary</a> ,隱藏了 Preview 部分。 </p> <div class="org-src-container"> <pre class="src src-css"><code><span class="org-builtin">@media</span> screen and (width &lt;=700px) { <span class="org-css-selector">.modal-container[data-modal-id=</span><span class="org-string">"Export to Anki"</span><span class="org-css-selector">] [role=</span><span class="org-string">"dialog"</span><span class="org-css-selector">] &gt; div:nth-child(2) &gt; div:first-child &gt; div:nth-child(2)</span> { <span class="org-css-property">display</span>: none; } } </code></pre> </div> </details> <figure> <a href="images/integrate-kagi-translate-with-tampermonkey/translate.webp"><img src="https://imgproxy.citrusreader.com/dBnZWpk0VLJ-KVFYGljbz8Pf8JJihM4PvFpo4YqS1Vw/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2ludGVncmF0ZS1rYWdpLXRyYW5zbGF0ZS13aXRoLXRhbXBlcm1vbmtleS90cmFuc2xhdGUud2VicA" alt="translate.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;3&nbsp; </span>在頁面上使用 Kagi Translate 的 Translate 功能</figcaption> </figure> <p> 翻譯也比插件功能更丰富,例如我可以悬浮在原文上,查看每個單詞和翻譯的映射,也有更多的翻譯選項可用。 </p> <figure> <a href="images/integrate-kagi-translate-with-tampermonkey/website.webp"><img src="https://imgproxy.citrusreader.com/ZZOJQDlhcU_kiQ7VR-wPt_biaoLy9Du5jsLdElgEVDA/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2ludGVncmF0ZS1rYWdpLXRyYW5zbGF0ZS13aXRoLXRhbXBlcm1vbmtleS93ZWJzaXRlLndlYnA" alt="website.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;4&nbsp; </span>在頁面上使用 Kagi Translate 的 Website 功能</figcaption> </figure> <p> 網頁翻譯我現在用的比較少,主要是不太穩定,網頁版也會出現吞掉內容的情况。但我閱讀英文還是有些吃力,也有點慢,如果文章很長、我又不是很感興趣,或者我想速讀,我還是會用全文翻譯。 </p> <p> 以上就是大致的功能了,如果你感興趣的話,這是相關代碼: <a href="https://gist.github.com/Spike-Leung/eab7cb6a3d005e5f3e119c2b657c4589">kagi-translate.user.js</a>。安裝 Tampermonkey 後,點擊代碼連結,在頁面上點 <kbd>Raw</kbd> 按鈕,應該就會触發安裝了,具體用法可以看代碼注釋。裡面的快捷鍵是我習慣的,你可以改成自己習慣的。為了能快速關閉彈窗,最好也了解一下瀏覧器關閉窗口的快捷鍵。<b>需要注意的是 Kagi Translate 只有訂閱了 <a href="maybe-you-want-to-try-kagi.html">Kagi</a> 才能用。</b> </p> <hr> <p> 接下來我分享一些實現上的細節。 </p> <p> 我最初的想法是用 <a href="https://www.tampermonkey.net/">Tampermonkey</a> 获取頁面需要翻譯的文本 (選中部分),在頁面上插入一個 <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/iframe">iframe</a>,裡面嵌入網頁版的 Kagi Translate。 Kagi Translate 本身是支持用 URL 去調用的,拼接好查詢的 URL 就行。除此之外,iframe 應該是能關閉、拖動、縮放窗口大小的,再用 Tampermonkey 捕获快捷鍵,理論上用起來應該和插件是差不多的。 </p> <p> 用 Tampermonkey 寫,需要符合 Tampermonkey 語法、調用 <a href="https://developer.mozilla.org/en-US/docs/Web/API/HTML_DOM_API">DOM API</a> 實現 DOM 的生成和插入、還有樣式和拖動等交互,手寫還是有些工作量的,也要看不少文檔了解用法,就偷懶借助 OpenCode 生成了一個原型,在文章的最後我還會分享一下如何用 Docker Sandbox 運行和配置 OpenCode 和 DeepSeek。 </p> <p> 生成的第一個原型是用 iframe 實現的,但因為 <a href="https://developer.mozilla.org/en-US/docs/Web/HTTP/Guides/CORS">跨域</a>,Kagi Translate 的網頁被瀏覧器攔截了,沒法加載出來。 DeepSeek 給的另一個方法是用 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open">window.open()</a> 打開一個彈窗去加載,因為是在一個新窗口,就不會有跨域問題。試了試,基本能用了,之後我就接手過來,一邊用,一邊調整代碼,直到滿足我的使用。 </p> <p> 我花時間比較多的是調整 window.open 的效果。 </p> <p> <code>window.open</code> 的第二個參數是 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#target">target</a>,要求是沒有空格的字符串。當存在相同 target 的 Window 實例時, <code>window.open</code> 就可以複用這個實例,這樣一個頁面就只有一個實例,也就只有一個彈窗,避免多次調用產生一堆不同的彈窗。如果你希望用多個彈窗呈現,那就在調用 <code>window.open</code> 時,讓 target 的值每次都不一樣。 </p> <p> 想要 <code>window.open</code> 用彈窗而不是在一個新的 Tab 打開,需要設置第三個參數 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#windowfeatures">windowFeatures</a>,這也是一個字符串,多個屬性用 <code>,</code> 分隔,例如: <code>"left=100,top=100,width=320,height=320"</code> 。設置 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#popup">popup</a> 或 popup 相關屬性為 <code>true</code> 就能以彈窗形式打開 URL。 </p> <p> 此外還能設置定位,將 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#left">left</a> 設置為 0,可以讓彈窗貼著屏幕的左邊緣<small>(如果發現還有空隙,可以嘗試重啟一下瀏覧器。)</small>。 </p> <p> 通過 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#width">width</a> 和 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/open#height">height</a> 可以大致控制窗口尺寸,為了盡量不遮擋正文,寛度我設置得比較小,而高度則盡可能高,占滿頁面高度,從而多顯示一些內容。所幸 Kagi Translate 的頁面响應性做得很好,寛度小也不影響使用。實際用下來,我發現寛高會受到頁面縮放比例影響,例如 width 設置為 100px,頁面放大為 120%,那麼最終的窗口寛度會接近 120px。這樣會有個問題,我經常要放大頁面,放大字體閱讀,本來預設的寬度是不會遮擋的,但現在窗口基於頁面縮放比例變寛了,就遮擋了。應對的方法是,在設置寛度時,現預先移除縮放比例的影響,具體來說就是利用 <a href="https://developer.mozilla.org/en-US/docs/Web/API/Window/devicePixelRatio">devicePixelRatio</a> 先預处理一下寛度:<code>features.width = features.width / window.devicePixelRatio;</code> 。 </p> <p> 還留了一些沒解决的問題: </p> <ul class="org-ul"> <li>集成了 <a href="https://kagi.com/summarizer">Kagi Summarizer</a>,但它沒法用彈窗呈現<small>(不會出現)</small>,總是會在新的 Tab 打開。具體原因我還不清楚,如果你知道原因請告訴我 <small>(我很好奇!.gif)</small>。我用 OpenCode 和 DeepSeek Pro 排查了一些可能,它給的方案我都試了,都不能用彈窗打開,還是會用 Tab 打開。我猜測是 Kagi 收到請求後做了什麼处理,但不清楚原理。</li> <li>集成了 <a href="https://help.kagi.com/kagi/translate/url-parameters.html#website-translation-options">website</a>,即頁面全文翻譯,當翻譯的 URL 帯有 query 參數時,例如 <a href="https://example.com/posts.php?index=9527">https://example.com/posts.php?index=9527</a>, website 的參數如 <code>?to=zh</code> 或 <code>&amp;to=zh</code> Kagi Translate 識別不了,這些參數會被當作要翻譯的 URL 的參數<small>(如果安裝了 Kagi Translate 的插件的話,website 的功能會被插件接管,插件倒是能处理)</small>。</li> </ul> <p> 這個方法也是有缺陷的: </p> <ol class="org-ol"> <li><del>它可能會產生很多臨時的窗口,需要手動去關閉維护;</del> 可以在頁面關閉時統一清空临時窗口。</li> <li>反复訪問 Kagi Translate 的 URL,也會產生很多 Kagi Translate 的歷史記录󠄃。</li> <li>彈窗也可能會被瀏覧器攔截,需要允許彈窗。</li> </ol> <p> 回頋一下,其實做的事很簡單:選擇頁面內容,拼接成目標 URL,然後彈窗展示結果。這裡的 URL 可以是 Kagi Translate,也可以是任意支持參數查詢的 URL,例如 <a href="https://en.wikipedia.org/wiki/Wikipedia">Wikipedia</a>、<a href="https://developer.mozilla.org/en-US/">MDN</a>。 </p> <hr> <p> 最後分享一下如何用 <a href="https://www.docker.com/products/docker-sandboxes/">Docker Sandbox</a> 使用 <a href="https://opencode.ai/">OpenCode</a> 和 <a href="https://www.deepseek.com/">DeepSeek</a>。 </p> <p> 我之前安裝過 OpenCode,但沒做沙箱隔离,總覺得很不安全。 Simon Willison 提出過 <a href="https://simonwillison.net/2025/Jun/16/the-lethal-trifecta/">AI 代理程式的致命三要素</a>: 1)它能够訪問私有數據 2)它可能會接触到惡意內容 3) 它具備可用於竊取數據的外部通訊能力。如果滿足這三個條件,攻擊者就可以輕易地誘騙它存取您的私有數據並將其發送給該攻擊者。 </p> <p> OpenCode 拥有我本地文件的讀寫能力,它還有 websearch 的能力,如果它在查詢資料時受到了提示詞注入攻擊,可能會在我不知情下,泄露了我的數據,所以後來我就卸載了。 </p> <p> 更安全的做法是把它隔离在一個沙箱裡,最好的沙箱是一台干净的、沒有敏感數據的電脑,隨它怎麼折騰也不會有太大風險。 </p> <p> 我沒有一台閒置的電脑,就只好用提供沙箱环境的軟件做隔离了<small>(你是怎麼隔离的?現在普遍做法是什麼呢?)</small>。前陣子了解到 Docker Sandbox,提供了一個操作相對方便的沙箱,我這次就是用 Docker Sandbox 運行 OpenCode 的。 </p> <blockquote> <p> Docker Sandboxes run AI coding agents in <span class="underline">isolated microVM sandboxes</span>. Each sandbox gets its own Docker daemon, filesystem, and network — the agent can build containers, install packages, and modify files without touching your host system. </p> <p> <a href="https://docs.docker.com/ai/sandboxes/get-started/#:~:text=Markdown-,Docker,system">Source</a> </p> </blockquote> <p> Docker Sandbox 目前支持了一些 <a href="https://docs.docker.com/ai/sandboxes/agents/">常見的 Agent</a>,例如 Claude Code、Codex、OpenCode,但還不够全,我想用的 <a href="https://github.com/earendil-works/pi">earendil-works/pi</a> 它還不支持,不過可以也 <a href="https://docs.docker.com/ai/sandboxes/customize/">自行構建</a>。 </p> <p> 下面分享一下在 macOS 上用 Docker Sandbox 使用 OpenCode 和 DeepSeek。 </p> <p> <b>0.安裝</b> </p> <div class="org-src-container"> <pre class="src src-bash"><code>brew trust docker/tap &amp;&amp; brew install docker/tap/sbx </code></pre> </div> <p> <b>1.登录󠄃</b> </p> <div class="org-src-container"> <pre class="src src-bash"><code>sbx login </code></pre> </div> <p> 我認為一個 CLI 工具是不需要登录󠄃的,但 Docker 可能是要向用戶銷售服務,需要關聯用戶,它強製要求登录󠄃才能用。 </p> <p> <b>2.設置 DeepSeek API</b> </p> <p> Docker Sandbox <a href="https://docs.docker.com/ai/sandboxes/configuration/credentials/#built-in-services">默認不支持 DeepSeek</a>,需要用 <code>set-custom</code> 去設定: </p> <div class="org-src-container"> <pre class="src src-bash"><code>sbx secret set-custom <span class="org-sh-escaped-newline">\</span> --host api.deepseek.com <span class="org-sh-escaped-newline">\</span> --env DEEPSEEK_API_KEY <span class="org-sh-escaped-newline">\</span> --value &lt;your-deepseek-api-key&gt; </code></pre> </div> <p> 如果你是這麼設置的, <b>API Key 會殘留在 History 裡,記得清除對應的 History,避免暴露 API Key。</b>你也可以用 <code>--command</code> 去讀取,避免內聯的明文 API Key,具體見 <a href="https://docs.docker.com/ai/sandboxes/configuration/credentials/#custom-secrets">Manage credentials</a>。 </p> <p> <b>3.允許 Deepseek API 連接網絡</b> </p> <div class="org-src-container"> <pre class="src src-bash"><code>sbx policy allow network api.deepseek.com </code></pre> </div> <p> 通過 <code>sbx policy</code> 可以控製一些 sandbox 的權限,例如網絡訪問,可以避免 LLM 訪問不信任的網站,更多見 <a href="https://docs.docker.com/ai/sandboxes/governance/concepts/">Policy concepts</a>。 </p> <p> <b>4.運行 Opencode</b> </p> <div class="org-src-container"> <pre class="src src-bash"><code>sbx run opencode </code></pre> </div> <p> 在 OpenCode 裡選 DeepSeek 的 Model 就能正常用了。 </p> <p> 默認它的網絡是受限的,你可以將 Sandbox Policy 的 <a href="https://docs.docker.com/ai/sandboxes/governance/access-controls/local/#default-preset">Default Preset</a> 設為 Balanced,默認拒絕網絡訪問,但允許常見的 package managers (NPM, PyPI 等), code hosts (GitHub, GitLab 等) 等訪問網絡。 </p> <p> 如果要放開更多的網絡訪問,就用 <code>sbx policy allow network &lt;domain&gt;</code> 去設置。也可以直接用 <code>sbx</code> 喚起一個可交互的 TUI,在裡面設置 (推薦)。 </p> <p> Sandbox 默認只能訪問你掛載的目录󠄃,例如你在 <code>~/git/repo</code> 下運行 <code>sbx run opencode</code> ,那它就只能訪問 <code>~/git/repo</code> 目录󠄃,有讀寫能力。如果你還不放心,也可以用 <a href="https://docs.docker.com/ai/sandboxes/workflows/git/#clone-mode">Clone Mode</a>,這樣 OpenCode 會將倉庫 Clone 到 Sandbox 裡改,改好了你再从 Sandbox 裡 fetch 到本地,會更安全些。更多用法就自己看 <a href="https://docs.docker.com/ai/sandboxes/">文檔</a> 吧 :) </p> <hr> <p> 感謝你讀到這裡,希望文章內容對你有帮助啦,有問題也歡迎 Email 交流 :) </p> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/integrate-kagi-translate-with-tampermonkey.txt">純文本版本</a> <a href="https://taxodium.ink/integrate-kagi-translate-with-tampermonkey.org">原始 org 文件</a>

2026/9/4
阅读更多

TIL:Punycode - 域名中的 Unicode

<div id="content" class="content e-content"> <header> <h1 class="title p-name">TIL:Punycode</h1> <p class="subtitle" role="doc-subtitle">域名中的 Unicode</p> </header><p> 之前看了 マリウス 的 <a href="https://マリウス.com/disable-javascript-org/">disable-javascript.org</a>,我就用 <a href="elfeed-4-0-0-usage-sharing.html">Elfeed</a> 訂閱了他的博客,但後面一直在 Elfeed 裡看到拉取报錯,錯誤信息如下: </p> <pre class="example"> [error]: https://マリウス.com/index.xml: "(60) Peer certificate cannot be authenticated with known CA certificates." </pre> <p> Elfeed 是用 <a href="https://curl.se/">curl</a> 發請求的<small>(前提是 <code>elfeed-use-curl</code> 為 <code>t</code>)</small>,直接用 curl 請求的話,报錯是: </p> <pre class="example"> curl: (35) LibreSSL SSL_connect: SSL_ERROR_SYSCALL in connection to マリウス.com:443 </pre> <p> 之後我去問了 Kagi Assistant,經過一些排查後,終於找到了問題。 </p> <hr> <p> 留意請求的域名,你會發現 <del>你会讶异,你是我最压抑,最深处的秘密</del> ,我請求的域名是 <b>マリウス.com</b> 。但是 <a href="https://en.wikipedia.org/wiki/Domain_name#:~:text=30%5D-,A,period%29%2E">域名只支持 ASCII</a> ,而 <b>マリウス</b> 顯然不是 ASCII ,而是 <a href="https://en.wikipedia.org/wiki/Unicode">Unicode</a>。 </p> <p> 當你在瀏覧器中輸入域名包含 <b>非 ASCII</b> 字符時,瀏覧器會將其轉成 <a href="https://en.wikipedia.org/wiki/Punycode">Punycode</a> <sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup>表示: </p> <blockquote> <p> Punycode 是 Unicode 在受限的 ASCII 字元子集下,用於網際網路主機名稱的表示方式。<span class="underline">使用 Punycode 時,包含 Unicode 字元的主機名稱會被轉換為僅由字母、數字與連字號組成的 ASCII 子集,</span><span class="underline">稱為字母‑數字‑連字號(letter–digit–hyphen, LDH)子集。</span> </p> </blockquote> <p> 例如, <code>マリウス.com</code> 會被編碼為 <code>xn--gckvb8fzb.com</code> ,其中的 <code>gckvb8fzb</code> 是 <code>マリウス</code> 對應的 Punycode,<code>xn--</code> 是一個固定的 <a href="https://en.wikipedia.org/wiki/Internationalized_domain_name">國際化域名 (International Domain Names, IDN)</a> 前綴。 </p> <p> 檢查我現在的 curl (<code>curl -V</code>),看到的是: </p> <pre class="example"> curl 8.7.1 (x86_64-apple-darwin25.0) libcurl/8.7.1 (SecureTransport) LibreSSL/3.3.6 zlib/1.2.12 nghttp2/1.68.1 Release-Date: 2024-03-27 Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt pop3 pop3s rtsp smb smbs smtp smtps telnet tftp Features: alt-svc AsynchDNS GSS-API HSTS HTTP2 HTTPS-proxy IPv6 Kerberos Largefile libz MultiSSL NTLM SPNEGO SSL threadsafe UnixSockets </pre> <p> 裡面沒有 IDN 相關的功能,所以是無法处理 マリウス.com 這樣的 IDN 的。 </p> <p> 知道問題就好辦了,讓 curl 支持 IDN 就好,我用 <a href="https://brew.sh/">homebrew</a> 下載了新的 curl: </p> <div class="org-src-container"> <pre class="src src-bash"><code><span class="org-comment-delimiter"># </span><span class="org-comment">&#20808;&#23433;&#35037;&#26032;&#29256;&#26412;</span> brew update brew install curl <span class="org-comment-delimiter"># </span><span class="org-comment">&#35373;&#21040; PATH &#30340;&#21069;&#38754;&#65292;&#20248;&#20808;&#29992; homebrew &#30340;&#29256;&#26412;</span> <span class="org-builtin">export</span> <span class="org-variable-name">PATH</span>=<span class="org-string">"$(brew --prefix)/opt/curl/bin:$PATH"</span> </code></pre> </div> <p> 裡面就包含 IDN: </p> <pre class="example"> curl 8.21.0 (aarch64-apple-darwin25.4.0) libcurl/8.21.0 OpenSSL/3.6.4 zlib/1.2.12 brotli/1.2.0 zstd/1.5.7 AppleIDN libpsl/0.23.3 libssh2/1.11.1 nghttp2/1.70.0 ngtcp2/1.25.0 nghttp3/1.18.0 mit-krb5/1.7-prerelease OpenLDAP/2.4.28/Apple Release-Date: 2026-06-24 Protocols: dict file ftp ftps gopher gophers http https imap imaps ipfs ipns ldap ldaps mqtt mqtts pop3 pop3s rtsp scp sftp smtp smtps telnet tftp ws wss Features: alt-svc AppleSecTrust AsynchDNS brotli GSS-API HSTS HTTP2 HTTP3 HTTPS-proxy IDN IPv6 Kerberos Largefile libz PSL SPNEGO SSL threadsafe TLS-SRP UnixSockets zstd </pre> <p> 用這個版本的 curl 進行請求,就能正常返回了。 </p> <p> 如果 curl 不支持 IDN 也不想更新,用 Ponycode 形式的域名 (xn&ndash;gckvb8fzb.com) 就好。 </p> <hr> <p> 另外 マリウス 也寫了篇文章解釋他的域名,感興趣也可以看看: <a href="https://マリウス.com/never-click-on-a-link-that-looks-like-that/">NEVER click on a link that looks like that</a>。 </p> <div id="footnotes"> <h2 class="footnotes">&#33050;&#27880;: </h2> <div id="text-footnotes"> <div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 相關規𫈣: </p> <ul class="org-ul"> <li><a href="https://datatracker.ietf.org/doc/html/rfc5891">RFC 5891 - Internationalized Domain Names in Applications (IDNA): Protocol</a></li> <li><a href="https://datatracker.ietf.org/doc/html/rfc3492">RFC 3492 - Punycode: A Bootstring encoding of Unicode for Internationalized Domain Names in Applications (IDNA)</a></li> </ul></div></div> </div> </div></div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/til-punycode.txt">純文本版本</a> <a href="https://taxodium.ink/til-punycode.org">原始 org 文件</a>

2026/9/1
阅读更多

Zine#57 - 用你的錢包去投票

<div id="content" class="content e-content"> <header> <h1 class="title p-name">Zine#57</h1> <p class="subtitle" role="doc-subtitle">用你的錢包去投票</p> </header><details> <summary>目录󠄃</summary> <div id="text-table-of-contents" role="doc-toc"> <ul> <li><a href="#C0FDD2D7-8CF4-4110-83A7-9D83AB05D5DE">News | Article</a></li> <li><a href="#D2FCF0E9-3C58-4F47-91E9-4D7F86C1E5E0">Cool Bit</a></li> <li><a href="#C207377C-B8FB-4EA5-8D82-B310C59CB4EB">Tutorial | Resource</a></li> <li><a href="#B81A7173-3EA8-4E44-BF44-A5B92DABC3D6">Code Related</a></li> <li><a href="#997465C9-195D-4D33-A9FB-5E4F0ABD0AE5">AI Related</a></li> <li><a href="#A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9">Tool | Library</a></li> <li><a href="#1649E019-F2F5-4946-BCAE-3EAAF911614B">Emacs</a></li> <li><a href="#06161A62-32B5-4F0E-B931-CB46DA90823C">一些话 | 摘抄</a></li> <li><a href="#57351850-2C24-4391-AD50-397FBAAC238F">多媒体</a></li> </ul> </div> </details> <figure> <a href="images/zine/57/Shek-O.webp"><img src="https://imgproxy.citrusreader.com/g0cVVLxQrpD5jc6cObcpYFCb2O-Bh5oMCknqOJhnl3Q/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL3ppbmUvNTcvU2hlay1PLndlYnA" alt="Shek-O.webp"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>香港石澳拍的一張胶片,後面是山,山前是一片海灣,海灣中間有一片岩石,岩石上有一些房屋。</figcaption> </figure> <p> 這期內容有點多,如果你想聴點歌慢慢看,我推薦 <a href="album-45.html">Album#45 - Sweet Sticky Thing</a>,這張專輯聴完要差不多一個小時,應該够了。什麼?你說你聴過了,不想聴這張?那 <i>Thomas Bangalter: Mythologies</i> 怎麼樣呢,這是 Daft Punk 成員 <a href="https://en.wikipedia.org/wiki/Thomas_Bangalter">Thomas Bangalter</a> 製作的古典樂,也很不錯。你說想聴有人聲的?如果這辈子只能带一張專輯去荒島,方大同、MJ、Prince 共同的答案<sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup>都是 Stevie Wonder 的 <i>Songs In The Key Of Life</i> ,這張怎麼樣?還不滿意?好吧,好吧,俺最近還聴了兩張不錯的 Jazz,<ruby>穐<rp>(</rp><rt lang="zh">qiū</rt><rp>)</rp></ruby>吉敏子的 <i>HOPE</i> 和 <i>孤軍</i> ,要是你還不滿意,俺也沒轍了,要不你去 <a href="album-wall.html">Album Wall</a> 自己翻一翻? </p> <hr> <p> 訂閱了全部的 Blaugust 參加者的博客,每天都有大量文章更新。大多數都是英文的博客,也有少量中文、日語、法語、葡萄牙語等其它語言的博客。因為發起人 Belghast 主要關注的是遊戱,所以 Blaugust 中也有大量寫遊戱相關的博客。不過我對遊戱相關的文章興趣不大,後面我移除了很多不感興趣的博客<small>(有的樣式不好看不下去了)</small>,移除時會有點舍不得,怕錯過一些有趣的內容,但我想有緣的話,下次 Blaugust 還是會再次看到的,也算是一種「一期一會」吧。除了遊戱,還看到很多關於 AI 使用的討論,還有高温和山火,温室效應的後果似乎正慢慢顯現,有時也會想,<a href="https://zh.wikipedia.org/zh-cn/%E6%98%8E%E6%97%A5%E4%B9%8B%E5%BE%8C_(%E9%9B%BB%E5%BD%B1)">后天 (The Day After Tomorrow)</a> 的劇情會不會真的成為現實。 </p> <p> 算法會使得接收到的內容變得單調、趋同,而訂閱 Blaugust 的博客,則是一種讓接收的信息變得多樣的辦法。這些博客都不是算法推給我的,我不知道會看到什麼,有時也會看到一些比較小眾的內容。 </p> <p> 因為 Blaugust 是以英文為主的,其他語言的關注度就很低,我想很多英文母語者,看到是外語就不想看了。多虧了 AI 翻譯,不管是什麼語言,我都能大致看看。不過文章還是太多了,我一般都是速讀,讀的不怎麼仔細,扫几眼如果文章不感興我就不看了。說起翻譯,訂閱的沉浸式翻譯馬上就要到期了,也不打算續訂了,還好看了眼訂閱信息,差點就自動續費了。之後打算就用 <a href="my-experience-with-kagi-translate.html">Kagi Translate</a>,但最近 Kagi Translate 也有點抽風,全文翻譯時有的內容會丟失,時好時壞的。而且以後 <a href="https://kagifeedback.org/d/11085-will-kagi-translate-be-available-on-the-professional-plan">Professional Plan 可能不包含 Kagi Translate</a>,不知道到時是如何計費的,如果要多花 15 刀升到 Ultimate Plan 才能用,那我應該不會升級,到時再找找其它替代方案,也許借助 AI 自己實現一個更好。 </p> <p> 前陣子家裡的電動磨豆機一啟動,客廳就會跳閘,大概是磨豆機需要的電流激增导致的。用電多的是馬達,可能是有什麼堵住了磨盤,於是折開磨盤清理干净,再試了試,又跳閘了。這個時候我想可能是磨豆機壞了,想著要麼還在保修期就送回去修,或者買個新的,或者用回手磨,每天磨 25 克豆子鍛錬臂力。在放弃它之前,我把它拿下來仔細檢查了一下,發現出粉口有堆積了很多粉块,難道是因為粉块阻礙了出粉,导致磨盤很難轉動,從而导致電流激增?不管如何,清了再說。清出了不少粉块,用到現在都沒怎麼清理過出粉口,沒想到還會堆積。清了之後磨了几次,都不會再跳閘了,又能多用几年了。 </p> <div id="outline-container-C0FDD2D7-8CF4-4110-83A7-9D83AB05D5DE" class="outline-2"> <h2 id="C0FDD2D7-8CF4-4110-83A7-9D83AB05D5DE"><a href="#C0FDD2D7-8CF4-4110-83A7-9D83AB05D5DE">News | Article</a></h2> <div class="outline-text-2" id="text-C0FDD2D7-8CF4-4110-83A7-9D83AB05D5DE"><ul class="org-ul"> <li><p> <a href="https://welshtroll.co.uk/post/2026-resized-for-readers-comfort.html">Resized For Readers Comfort</a> by Kris </p> <p> 適當將字體調大可以讓文章閱讀起來更輕鬆舒服,字體大一些不用費勁去看清,如果你是博客作者我推薦你試試。 </p> <p> 你可以用 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/clamp">clamp()</a> 動態基於屏幕寬度調整字體大小: <code>clamp(22px, calc(22px + 0.6vw), 24px)</code> ;也可以設置固定大小,用 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@media">媒體查詢</a> 分別設置電脑上和手機上的大小。 </p></li> <li><p> <a href="https://www.wpbeginner.com/research/history-of-blogging/">A History of Blogging (1993 - Present Day Timeline)</a> </p> <p> 博客的發展歷史,如果你想穿越回博客蓬勃發展的年代,這就是你的指南。 </p></li> <li><p> <a href="https://blog.neil-lin.com/blog/life-notes/2026/07/coffee-knowledge/">咖啡小知識</a> by Neil Lin </p> <p> 咖啡的主要成份是水,所以水是很重要的,如果是做手冲咖啡,礦泉水比純水要好,裡面的鈣和鎂可以讓咖啡更好喝。具體來說,鈣可以引出質感,即咖啡的本味和口感(果汁感、茶感);而鎂可以引出酸味(水果味)。我一般就用農夫山泉。 </p></li> <li><p> <a href="https://frantic.im/mirage/">The Productivity Mirage</a> by Alex Kotliarskyi </p> <p> 作者喜歡折騰編輯器,以提高自己的效率,在 Hackathons 上他遇見了大佬 Bob,他想學學 Bob 的什麼編輯技巧,發現大佬只是用 Sublime 和朴實無華的 printf,而且還贏得了 Hackathons。 </p> <blockquote> <p> 我過於關注他 <i>如何</i> 做事,完全忽略了他 <i>在做什麼</i> 。他的產品品味與直覺比他使用的編輯器設定更重要。 </p> <p> 每當我在 X 上瀏覽時,總會想到這個故事。每天,都有人發明新的工作方式,聲稱能改變一切。或許真的會有。<span class="underline">但最終重要的,是解決正確的問題。</span> </p> <p> <a href="https://frantic.im/mirage/#:~:text=Unsurprisingly,problems">Source</a> </p> </blockquote></li> <li><p> <a href="https://wcrobinson.org/2026/08/05/blaugust-2026-week-1-the-reasons-i-write-amidst-a-world-threatening-to-leave-it-behind/comment-page-1/#respond">Blaugust 2026 (Week #1): The Reasons I Write</a> by WCRobinson </p> <p> 博客紙質備份。 </p></li> <li><p> <a href="https://michaelharley.net/posts/2026/08/02/relationship-advice-id-give-to-my-younger-self/">Relationship advice I'd give to my younger self</a> by Michael Harley </p> <p> Michael 給年輕自己的感情建議。關於「唯一」和共同財產的部分蠻有啟發。 </p></li> <li><p> <a href="https://alexcastro.com.br/toda-caneca-ja-esta-quebrada/">Toda caneca já está quebrada</a> by Alex Castro </p> <p> 如果把時間拉的足够長,總有一天,馬克杯會破碎。 </p> <blockquote> <p> 因為遲早有一天,那隻馬克杯會破碎。這件事如此不可避免,以至於我們甚至可以認為,破碎才是它的自然狀態。它如今的完整不過是一個短暫的插曲、一場小小的奇蹟,是從時間那裡借來的,過不了多久便會被糾正。 </p> <p> <a href="https://alexcastro.com.br/toda-caneca-ja-esta-quebrada/#:~:text=Pois,breve">Source</a> </p> </blockquote> <p> 馬克杯破碎了,只是回到了它的自然狀態,不必過分難過,再去找時間借一個吧。 </p> <p> 馬克杯總有一天會破碎,美好的事物總有一天也會逝去,糟糕的事情也同樣會過去。 </p> <p> via <a href="https://robida.net/entries/2026/08/06/every-mug-is-already-broken">Every mug is already broken</a> by Beto Dealmeida </p></li> <li><p> <a href="https://godless-internets.org/2026/08/06/blaugust-feed-readers-dont-forget-these-blogs">Blaugust Feed Readers: Don't Forget These Blogs!</a> by owls </p> <p> 我也做了 <a href="blaugust-2026-feeds.html">Blaugust 2026 Feeds</a>,裡面有的博客沒有提供 RSS 或我找不到我就不管了,而 owls 還特意整理了出來并推廣了他們。他提醒了我一件事,有的博客不是不想添加 RSS,而是作者可能并不會,或者是真的忙不過來;也提醒我不要先入為主,應該先去了解清楚再作結論。 </p></li> <li><p> <a href="https://brennan.day/knitting-the-web-we-need-interlinkers/">Knitting the Web: We Need Interlinkers!</a> by Brennan Kenneth Brown </p> <p> 在你的文章中連結其他博客或文章,最好在連結時加上一些相關文字,共同編織一個巨大的互聯網。 </p></li> <li><p> <a href="https://wrywriter.ca/posts/nouvelle-france">Nouvelle France</a> by Alex </p> <p> Alex 參加新法國的節慶的記录󠄃,不少人會穿上十七世紀的服裝,像是一場大型 Cosplay。 </p></li> <li><p> <a href="https://monocyte.blog/using-an-old-android-phone-as-a-music-player/">using an old android phone as a music player</a> by monocyte </p> <p> 如果你有一台閑置的旧手機,可以把它做成一個音樂播放器。<a href="https://www.raptitude.com/2017/12/go-deeper-not-wider/">好好利用己有的物件</a>。 </p></li> <li><p> <a href="https://heartsoulmachine.com/blog/2026/08-09-some-people-say/">Some People Say</a> by Tim Klapdor </p> <p> 「有人說&hellip;所以&hellip;」,有時會看到類似這樣的表述,但如果去細究這些人是誰,往往找不到答案。如果一個作者經常用「有人說」却不告設你是誰說,那他很可能就是在胡說。与其用「有人說&hellip;」,不如具體地給出來源。 </p> <blockquote> <p> 「有人說」在媒體中是個簡寫,表示這是一種意見、直覺或直覺感受,卻沒有人願意署名。它借用了「有一定數量的人」在背後支持的暗示,試圖僅僅透過暗示有多人持相同觀點來獲得可信度。這些人往往不存在,他們只是用來提出觀點或支持議程的工具。這種語言的使用迎合了我們的思維模式:當事物附帶一個數字時,就具有重量、能施加力量並且有存在感,但這只是一個技巧。 </p> <p> <a href="https://heartsoulmachine.com/blog/2026/08-09-some-people-say/#:~:text=%E2%80%9CSome,trick">Source</a> </p> </blockquote></li> <li><p> <a href="https://nullish.smol.pub/an-rss-experiment">An RSS experiment</a> by nullish </p> <p> 作者將訂閱源拆到了多個 RSS 閱讀器中管理,還挺有趣的,例如把個人博客類的放到 A、把新聞資訊類的放到 B,這樣在閱讀個人博客時就不會被新聞干擾。虽然在閱讀器裡通過分組也能實現類似的功能,但拆到不同閱讀器中可能用起來更方便點,隔离得也更徹底。 </p></li> <li><p> <a href="https://chrismaiorana.com/your-metadata-and-you/">Your metadata and you</a> by Chris Maiorana </p> <p> 你分享出去的照片包含了大量的元信息,包擴時間、地點、設備信息等。 </p> <blockquote> <p> 無論出於何種意圖和目的,你都應該在分享數位內容後立即將其視為公開內容,即使你是私下分享的。 </p> <p> <a href="https://chrismaiorana.com/your-metadata-and-you/#:~:text=However,privately">Source</a> </p> </blockquote> <p> 我放在博客的圖會用 <a href="https://imagemagick.org/">ImageMagick</a> 轉成 webp 并壓縮體積,現在我又多加了一個 <code>-strip</code> 參數移除圖片裡的元信息。 </p> <details> <summary>ZSH 函數</summary> <div class="org-src-container"> <pre class="src src-zsh"><code><span class="org-function-name">convert_to_webp</span>() { <span class="org-builtin">local</span> <span class="org-variable-name">qscale</span>=<span class="org-string">"${1:-75}"</span> <span class="org-builtin">local</span> <span class="org-variable-name">format</span>=<span class="org-string">"${2:-webp}"</span> <span class="org-keyword">for</span> img<span class="org-keyword"> in</span> *.(jpg|jpeg|png|heic|HEIC|JPG|JPEG|PNG); <span class="org-keyword">do</span> magick <span class="org-string">"$img"</span> -strip -quality <span class="org-string">"$qscale"</span> <span class="org-string">"${img%.*}.$format"</span> <span class="org-keyword">done</span> } </code></pre> </div> </details></li> <li><p> <a href="https://seths.blog/2026/08/give-me-one-reason/">Give me one reason</a> by Seth Godin </p> <p> 很多拒絕理由看似是你的問題,你會覺得如果哪裡做得更好,對方也許不會拒絕你。但實際可能是,對方就是想拒絕你,只是給了你一個聴起來客氣的原因。別太內耗,接受被拒絕這個事實,這會省下很多時間。 </p></li> <li><p> <a href="https://oldster.substack.com/p/draw-me-like-one-of-your-french-girls">Draw Me Like One of Your French Girls</a> by Oldster Magazine and Alysia Abbott </p> <p> 一位中年女士去當裸體模特的故事。 </p> <blockquote> <p> 在一場特別艱難的素描課中,我試著描繪一名擺出乏味姿勢的中年男性模特兒,心想: 你知道嗎,我也做得到。有句話是這麼說的:「上帝啊,請賜予我一個平庸白人男子的自信。」我正逐漸獲得那份自信。為什麼不是我? </p> <p> <a href="https://oldster.substack.com/p/draw-me-like-one-of-your-french-girls#:~:text=class%2E-,After,me,-%3F">Source</a> </p> </blockquote> <blockquote> <p> 我選擇不戴眼鏡,這樣就看不見所有人注視著我的樣子。我可以聽見一百個人同時交談所發出的喧鬧聲,卻無法參與其中。於是,我開始放任思緒飄蕩,沉浸在自己的想法裡。就在這時,一股越來越強烈的難以置信感席捲了我。我以為自己是誰,竟敢站在這裡?一個不知羞恥的蕩婦嗎?<span class="underline">赤裸裸地攤開身體躺在舞台上,我覺得自己像是在對父權體制比出一根中指。</span> </p> <p> 我不禁覺得自己好像偷偷做了什麼。你把我看成一位中年女士,覺得我不值得多看一眼?好吧,你現在正看著我。而且我真的很健美,也真的很柔軟有彈性。是的,我的肚子有點凸。我生過兩個孩子。用諾拉・艾芙隆的話來說,我不喜歡自己的脖子,也不喜歡膝蓋,還有近看時的雙手。<span class="underline">但這是一具身體,一具存在於世上的真實身體。</span><span class="underline">它陪我走過了 54 年,四處旅行、辛勤工作,也承受過失落與創傷。</span><span class="underline">而在座的年輕藝術家們,如果你們夠幸運,這也是你們未來的樣子。</span>年齡增長是我們所有人都無法逃避的。 </p> <p> <a href="https://oldster.substack.com/p/draw-me-like-one-of-your-french-girls#:~:text=I%20chose,us">Source</a> </p> </blockquote></li> <li><p> <a href="https://sive.rs/fit">Building without predicting</a> by Derek Sivers </p> <blockquote> <p> 一切始於一句格言: </p> <p> 所有建築都是預測。所有預測都是錯的。 </p> <p> 如何在不預測的情況下打造? <b>延後決策。先使用現有的東西。發掘實際需求。</b> </p> <p> 當你發現自己正在想「我們會需要這個」時,停下來說:「讓我們找出真正需要的是什麼。」 </p> <p> 一個傳奇般的例子:他們建造了一座新公園,並爭論步道應該設在哪裡。沿著邊緣?穿過中間?勝出的答案: 先開放沒有步道的公園。<b>一年後,看看人們都走過哪些地方。找出草地被踩禿的路徑。在那裡鋪設步道。</b>不要預測。 </p> <p> [&hellip;] </p> <p> 不預測要怎麼蓋房子?住進一個沒有家具、尚未完工的地方,只添購你已 <b>證明</b> 自己需要或想要的東西。 </p> <p> <b>這是一場有趣的哲學實驗,用來驗證你真正需要的是什麼。</b>尤其當成本高昂時,它會提高「需要」這個詞的門檻。 </p> <p> <a href="https://sive.rs/fit#:~:text=It%20starts,need%E2%80%9D%2E">Source</a> </p> </blockquote> <p> 蠻有趣的観點,先用好現有的東西,不要急著增加新的東西,慢慢地發掘實際需求,有的東西或許并不需要。搬進新家添置家具、給新電脑装軟件、構建 Emacs 配置等都可以應用。 </p> <p> 之前我想喝冰拿鐵,想找個容器將做好的热拿鐵放進冰箱冷凍层,差點就要下單買一個瓶子,但其實我只是需要一個足够大的容器,於是用手冲的分享壺應付了一下,也挺好用的。現在我很少喝冰拿鐵了,如果當初冲動買了,現在家裡可能又多了一件不怎麼用到的物件。 </p> <p> Seth Godin 的 <a href="https://seths.blog/2026/08/dont-eat-if-youre-not-hungry/">Don’t eat if you’re not hungry</a> 我覺得也有類似的意思: </p> <blockquote> <p> 这不仅是良好的节食建议。 </p> <p> 这几乎适用于我们所参与的每一项事业。 </p> <p> 系统希望我们为它而永不满足,但这并非我们必须接受的邀请。 </p> </blockquote></li> <li><p> <a href="https://michaelharley.net/posts/2026/08/22/please-let-me-interact-with-your-blog-post/">Please let me interact with your blog post!</a> by Michael Harley </p> <p> 文章列舉了很多博客的交互方法,如 Webmentions、直接在 RSS 信息流中回复邮件链接、在文章底部添加回复邮件链接、博客文章的社交媒体链接、联系页面或表单⋯⋯ 虽然文章沒提到留言,但作者的博客還是有的。 </p> <p> 有時我也想給博客加回留言,想收到一些回復,但還是不想因為留言而費神 (見 <a href="remove-comment-from-blog.html">移除博客的留言</a>)。留言區也是有好处的,是一個讀者間可以討論的地方,有時也能看到一這有趣的討論<small>(有時也可能是相互攻擊)</small>,關閉了留言區也切斷了這種可能。如果你有想說的,還請給我發封郵件吧 :) </p> <p> 上面提到的方法中,如果你的博客還沒有 Webmention,我會推薦添加一下,你可以參考 <a href="add-webmention-to-blog.html">给博客添加 Webmention</a>,有問題也可以郵件交流。 </p> <p> 而在 RSS 信息流中添加回复邮件链接,可能很多人都沒意識到。有的讀者只會用 RSS 閱讀器閱讀,如果有回复邮件链接,就能增加收到回復的可能性。除了放回复邮件链接,你還可以在 RSS 信息流裡加一些 RSS 信息流獨有的內容,給讀者一些小驚喜。 </p> <p> 另見: <a href="https://danq.me/2026/08/23/re-please-let-me-interact-with-your-blog-post/">Re: Please let me interact with your blog post!</a> by Dan Q </p></li> <li><p> <a href="https://www.gordonmclean.co.uk/2026/08/18/i-no-longer-care/">I no longer care</a> by Gordon McLean </p> <p> 作者年長後很多事變得不那麼在乎了。以前覺得拥有的越多越好,現在則覺得越少越好,放下更多不再在乎的東西。放下更多後,就能騰出更多,如時間、注意力,然後可以把它們投入在更在乎的東西上。 </p></li> <li><p> <a href="https://kk.org/thetechnium/a-billion-dollars/">A Billion Dollars</a> by The Technium </p> <blockquote> <p> 我想到《華爾街之狼》裡的一幕,主角 Bud 為了賺取百萬美元、退休並騎摩托車橫跨中國,忍受高薪卻不喜歡的金融工作。笑點在於,你不需要在華爾街工作或賺到百萬美元,就能買摩托車橫跨中國。只要用在 Costco 短暫暑期打工省下的 2,000 美元,就能輕鬆完成整段旅程。 </p> <p> <span class="underline">我的練習重點在於,大多數人的夢想並非被金錢所限制。</span><span class="underline">當然需要一些資金,但通常不需要想像中那麼多。</span><span class="underline">你很可能不需要數百萬美元就能啟動你的夢想。</span> </p> <p> <span class="underline">大多數夢想的瓶頸不是財務,而是缺乏自信、冒險的意願與面對失敗的勇氣,或是缺乏對現有資源可能性的想像。</span>如果你想寫小說,你不需要資本——只需要自律與每天 1,000 個字。如果你想創立顧問公司,你需要專業知識與第一位客戶,而不是戰爭金庫。<span class="underline">金錢常被當作方便的藉口,因為它具體可感,但實際上很少是成就的真正阻礙。</span> </p> <p> <a href="https://kk.org/thetechnium/a-billion-dollars/#:~:text=dollars%2E-,I,1%2C000">Source</a> </p> </blockquote> <p> 類似的籍口是,「等我退休了,有時間了我就⋯⋯」,但實際上只要你想,很多事現在就可以做。 </p> <p> 文章後面還分享了一些作者自己的經驗,在資金少時,他是如何完成一些想做的事情。 </p></li> <li><p> <a href="https://www.seangoedecke.com/you-should-never-be-angry-at-work/">You should never be angry at work</a> by Sean Goedecke </p> <p> 作者認為你不應該在職埸中生氣: </p> <ul class="org-ul"> <li>憤怒會讓你成為一個問題,會讓人不敢靠近,不敢与你合作。</li> <li>大家會繞過、疏離憤怒的人,你可能會被冷落。</li> <li>但是感到憤怒是健康的,這表明你在乎你的工作,一個稱職的工程師總是高度的在乎他的工作。</li> <li>憤怒也可能是因為你關心的和公司關心的不同,如果你不認同,你也無法改變,憤怒和抵抗是無意義的,沒有任何好事會因此而發生。</li> <li>如果你是負責人,是做出决策的關鍵人物,那你也許可以在職場中情緒化地行事,大家虽然不爽你,但也拿你沒辦法,也不能因此疏離你。</li> </ul></li> <li><p> 用你的錢包去投票 </p> <p> Andreas 寫了篇 <a href="https://82mhz.net/posts/2026/08/tech-sucks-you-have-to-vote-with-your-wallet-or-nothing-will-change/">Tech sucks: You have to vote with your wallet, or nothing will change</a>,裡面說道有個人憤怒地吐槽 Apple 公司的產品,但他用的却又都是 Apple 公司的產品。 Andreas 認為 Apple 根本不在呼這個人的吐槽,反正出了新品他還是會買,還是會為 Apple 付費: </p> <blockquote> <p> Apple 想要他的錢,而他完全如他們所願地給了出去。他拍攝憤怒的影片這件事對 Apple 來說根本無關緊要,<span class="underline">因為他們知道,下一代 iPhone 或 MacBook 推出時,他還是會買單。</span><span class="underline">所以他們為什麼要改變任何事情?就因為他拍了一支憤怒的影片?</span>他們或許會在無聊、需要找點樂子時看上一眼,笑一笑,但接著就會回頭繼續把裝置做得更糟,讓終端使用者和開發者更加難受。因為他們做得到。因為人們還是持續購買。 </p> <p> 不管你喜不喜歡,如果成為某家公司的客戶,開始讓你覺得自己更像是處在一段虐待關係中,而不是互利的關係,那就該是考慮離開的時候了。沒錯,這很可怕。很痛苦。也需要犧牲。而且,是的,我知道,還有那個生態系。它用「一切就是能運作」的承諾引誘你加入,而一旦你身陷其中,就無法離開,至少無法不付出極大的痛苦。你知道這叫什麼嗎,順帶一提?陷阱。 </p> <p> 離開很糟。但沒有其他辦法。<span class="underline">只要你持續把錢砸給那些惡待你的企業,他們為什麼要改變?</span> </p> <p> <a href="https://82mhz.net/posts/2026/08/tech-sucks-you-have-to-vote-with-your-wallet-or-nothing-will-change/#:~:text=Apple%20wants,change,-%3F">Source</a> </p> </blockquote> <p> 我很認同,如果有的公司我很討厭,可我却一直去買他們的產品,用他們的服務,我不還是在支持這些公司嗎?他們又何必做出改變呢? </p> <p> Gordon McLean <a href="https://www.gordonmclean.co.uk/2026/08/11/tech-sucks-really/">有一些不同的看法</a>,他說你不喜歡就不用聴起來很簡單,但做起來却沒那麼容易。你很難不用這些大公司的服務,這些公司某種程度已經成為了基础設施,很多人的生活已經离不開它們了;少數人選擇不用這些公司的產品,這些公司并不知道這部分人為什麼不用了,它們并不知道這些人在表逹什麼抗議,只有當不用的人的數量達到一個量級,這些公司才會有所意識;如果你選擇不用這些公司的產品,剩下的選擇也不多,其它選擇可能同樣都有問題,只是其中一個問題少點而已;而且很多人也不知道离開之後可以去哪裡,哪裡有相似的替代。 </p> <p> 我也同意 Gordon 的一些看法,离開一些服務真的不容易。我不想用微信,但在疫情期間,要用微信來記录󠄃健康碼,如果我不用,似乎我也無法出行了;去餐廳點參,大多也是扫碼,主要也是那几個應用(微信、支付寶、美團等),當然可以不扫碼,而是叫服務員過來點餐,就是麻煩點;換手機,國內的很多手機產商都往裡面塞了很多廣告;下載個應用還要拦著你,告訴你這應用不安全,要關閉一堆設置才能安裝,明明這是我的手機,但好像我只買了個使用權;那我就換一個干净點的系統,但一方面要折騰刷機,大多數用户并沒用這樣的能力,另一方面,現在也限制你刷機,各種為難你 <a href="https://zh.wikipedia.org/wiki/%E8%A7%A3%E9%94%81Bootloader">解锁 Bootloader</a>。國內主流的手機大多如此,沒什麼很好的選擇。我不喜歡 Google,換到了 Kagi,但 Kagi 其實也用到了 Google 的搜索數據,某種程度上我也沒完全离開 Google。 </p> <p> 了解過 <a href="https://www.gnu.org/philosophy/free-sw.zh-cn.html">自由軟件</a> 的人,應該都會同意自由軟件是更好的,但要踐行自由軟件的理念并不容易,很少有人能像 <a href="https://www.stallman.org/">Richard Stallman</a> 那樣生活,例如他認為航空分司的網站是非自由軟件,所以他拒絕使用,要訂票他會通過電話。虽然我喜歡自由軟件的理念,但要我放弃許多便利,像 Richard Stallman 這樣踐行理念,對我來說還有些難。我知道這些非自由軟件不好,它們可能有不少後門、靜默地采集我的數據、利用大數據來殺熟,但確實也提供了便利,而我是因為舍不得這些便利而接受了它們可能在損害我利益的事實。同時,我也是一個「共犯」,我的使用會助長它們,毕竟我為了方便而不在乎它們損害我,它們也就沒必要改變,而其他人看到我用,可能也會跟著用,進一步擴大了它們的用戶。 </p> <p> 我確實為了一些便利而放弃了一些權利,就像是 <a href="https://zh.wikipedia.org/zh-cn/%E9%BB%91%E5%AE%A2%E5%B8%9D%E5%9B%BD">黑客帝国</a> 裡的一些人,選擇活在矩陣生成的虛拟世界,甘願成為給矩陣供電的生物電源。所以我要放弃反抗了嗎?不,選擇權還在我手上,現在的我還也可以做出選擇。一下子完全改變或許很難,但可以一點點地改變,去選擇那些自己認同的東西,拒絕那些不認同的、損害自己的東西,儘管這意味著要放弃一些便利,給生活填入一些摩擦。黑客帝国中,有的人并沒有意識到自己活在一個虛假的世界,通過博客、通過交流,讓周圍的人意識到問題,去帮助他們,或許也能影響一些人做出改變。 </p> <p> 一個人的改變也許微不足道,但當足够多的人都開始改變,我想世界也會因此而改變。 </p> <p> Andreas 的文章在 Blaugust 中有几篇回應,感興趣可以看看: </p> <ul class="org-ul"> <li><a href="https://82mhz.net/posts/2026/08/tech-sucks-you-have-to-vote-with-your-wallet-or-nothing-will-change/">Tech sucks: You have to vote with your wallet, or nothing will change</a> by Andreas <ul class="org-ul"> <li><a href="https://www.gordonmclean.co.uk/2026/08/11/tech-sucks-really/">Tech sucks? Really?</a> by Gordon McLean</li> <li><a href="https://michaelharley.net/posts/2026/08/13/re-tech-sucks-really/">Re: Tech sucks? Really?</a> by Michael Harley</li> <li><a href="https://unattributed.cc/2026/08/12/tech-sucks-victim-in-denial/">Tech Sucks! Victim in Denial!</a> by Unattributed <ul class="org-ul"> <li><a href="https://www.gordonmclean.co.uk/2026/08/13/a-rebuttal-to-a-response-on-tech-sucks/">A rebuttal to a response on Tech Sucks</a> by Gordon McLean</li> <li><a href="https://unattributed.cc/2026/08/14/more-tech-sucks/">More Tech Sucks!</a> by Unattributed</li> </ul></li> </ul></li> <li><a href="https://daverupert.com/2026/07/number-chart-go-up/">Before I go: Double your business with companies you like</a> by Dave Rupert</li> </ul></li> <li><p> <a href="https://noisydeadlines.net/no-big-deal">No big deal</a> by Noisy Deadlines </p> <p> 有時,一些事會讓人感覺有嚴重的後果,從而引發焦慮和恐慌。這時可以試試作者的方法,問自己几個問題,分析一下現狀,例如: </p> <ul class="org-ul"> <li>我現在的感受如何?</li> <li>為什麼我會有這些感受?</li> <li>如果我不立即回答問題或要求,會發生什麼?我會怎麼樣?</li> <li>為什麼這是個問題?其中有多少取決於你?你會對此作何感受?</li> <li>那解決方案會是什麼呢?</li> </ul> <p> 冷靜下來想一想,也許會發現後果其實沒有想的嚴重,根本沒什麼大不了的。 </p></li> <li><p> <a href="https://wrywriter.ca/posts/i-can-do-this">I Can Do This!</a> by Alex </p> <p> Alex 小時候不會游泳,却一頭扎進泳池,還學會了游泳。 </p> <blockquote> <p> 基本上,這就是我人生中所有事情的寫照。 </p> <p> 我直接跳進去,帶著一定的信念,我能做到。 </p> <p> <a href="https://wrywriter.ca/posts/i-can-do-this#:~:text=Basically,this">Source</a> </p> </blockquote> <p> 說實話其實挺危險也挺幸運的,但不惧危險,只管去行動,確實能做成很多事。 </p></li> <li><p> <a href="https://wrywriter.ca/posts/the-act-of-forgetting">The Act of Forgetting</a> by Alex </p> <blockquote> <p> 我們最大的禮物之一是忘記的能力。 </p> <p> [&hellip;] </p> <p> 所以請記住,有時候,忘記也是可以的。 </p> </blockquote> <p> 所幸時間可以撫平傷痛,淡化到讓人能够接受的程度,不然總是活在悲傷和痛苦中,人就沒法向前走了。 </p></li> <li><p> <a href="https://www.raptitude.com/2026/08/how-to-look-the-sky-in-the-face/">How to Look the Sky in the Face</a> by David </p> <p> 記录󠄃了 David 躺在地上看天空的經歷和感受,有空也試試。 </p> <blockquote> <p> 躺在草地上直視天空,完全不同於以水平方式、沿著底部觀望。水平觀望常常很愜意,尤其在日落時分,但根本不是同一件事。 </p> <p> 將身體水平放置,最好是柔軟的草地上,讓你能正對天空,耐心地觀察它。此時你是在正面看它,或許多年來是第一次。只有當你正面直視天空時,才能體會它的真實比例。它真的非常巨大,佔滿了你視野的 100%。這是你將會見到的最大事物。 </p> <p> <a href="https://www.raptitude.com/2026/08/how-to-look-the-sky-in-the-face/#:~:text=Lying%20on,see">Source</a> </p> </blockquote></li> <li><p> <a href="https://www.crosenthal.com/chrome/2026/08/13/the-ghost-of-retirement-future.html">The ghost of retirement future</a> by Courtney Rosenthal </p> <p> 作者在一個餐廳裡看到几個老頭在為難服務員,服務員都快哭了,當服務員來到他這裡時,他代替他們向服務員道歉,還多給了小費。 </p> <blockquote> <p> 那天給我留下了深刻印象。有些人到了某個年紀,發現自己的光輝歲月已經過去。於是他們活在遺憾與怨恨的當下。 </p> </blockquote> <p> 尊老,不意味著老了就可以無理取閙。老混蛋一樣是個混蛋。 </p></li> <li><p> <a href="https://hollie.eilloh.net/posts/family-vacay-day-5-deer-a-new-guitar-bad-fire-good-fire-etc">Family Vacay Day 5 - Deer, a new guitar, bad fire, good fire, etc.</a> by Hollie </p> <p> 喜歡看 Hollie 分享的生活,丰富多彩。我只是取了其中一篇,Hollie 在 Blaugust 每天都在更新,推薦去看看。 </p> <p> See also: <a href="https://hollie.eilloh.net/posts/rip-seb">RIP Seb</a> by Hollie </p></li> <li><p> <a href="https://divergentrays.com/blog/posts/2026-08-03-The-Divorce-Ring">The Divorce Ring</a> by Divergent Rays </p> <p> 關於作者的離婚戒指的故事。 </p> <p> 作者平時會分享很多好看的珠寶首飾和一些有趣的連結,是一個我常看的博客。 </p> <p> See also: </p> <ul class="org-ul"> <li><a href="https://divergentrays.com/blog/posts/2026-08-14-Scarabs-from-Heaven">Scarabs from Heaven</a> by Divergent Rays</li> <li><p> <a href="https://divergentrays.com/blog/posts/2026-08-22-The-Brown-Eyes">The Brown Eyes</a> by Divergent Rays </p> <blockquote> <p> 我記得有一天特別難熬,跑到自己的房間,可能是想哭。媽媽走進來跟我說話,問我怎麼了。我本來不想說什麼,結果情緒一下子全湧了出來。有人很刻薄,老師不公平,衣服不合適……這些抱怨一個接著一個,因為說出一件事就會想到其他所有不對的地方。我把自己鬧得焦頭爛額,最後說出了我人生中所有的不滿:「而且我的眼睛是棕色的!」 </p> <p> 感謝我的媽媽,她當時坐在那裡,帶著關心和同理心聽我傾訴,當我說出那句話時,她只是笑了起來。當我大聲說出那句在腦海裡想了很久的話時,我才意識到它有多荒謬。我們一起大笑,她抱了抱我,當時的情況就這樣變得還好。 </p> <p> 這句話成了我們的口頭禪,即使我長大成人後,當一天過得特別糟時,我仍會記得她問我:「可是你的眼睛是棕色的嗎?」這總能為情況帶來一些輕鬆。我的媽媽已經離世超過20年了,但有時當我度過極糟的一天時,我仍能聽到她問我這句話,雖然帶著苦澀卻也讓人感到安慰。 </p> <p> <a href="https://divergentrays.com/blog/posts/2026-08-22-The-Brown-Eyes#:~:text=age%2E-,I,comforting%2E">Source</a> </p> </blockquote></li> </ul></li> <li><p> <a href="https://fyr.io/post/feeds-are-critical">RSS/Atom Feeds are Critical</a> by fyr.io </p> <blockquote> <p> 您必須提升所有人的可及性,無論他們是視力正常、失明、失聰、無法使用您寫作的語言、只能在 56k 撥號速度、1 吋螢幕上瀏覽網路,或其他任何情況。<span class="underline">RSS/Atom 等供稿本身就是無障礙。</span>不論我寫的內容價值如何:我有什麼資格拒絕一個沒有做錯事的人取得我所寫的內容? </p> <p> <a href="https://fyr.io/post/feeds-are-critical#:~:text=prefixes%2E-,Do,written">Source</a> </p> </blockquote> <p> 說多少次都不够,如果你有博客,記得提供一份 RSS 或 Atom 訂閱流,并且讓人容易找到。 </p> <p> 你可以放一個明顯的按鈕,或在 HTML 頁面的 <code>&lt;head&gt;</code> 加上: </p> <div class="org-src-container"> <pre class="src src-html"><code>&lt;<span class="org-function-name">head</span>&gt; <span class="org-comment-delimiter">&lt;!-- </span><span class="org-comment">RSS</span><span class="org-comment-delimiter"> --&gt;</span> &lt;<span class="org-function-name">link</span> <span class="org-variable-name">rel</span>=<span class="org-string">"alternate"</span> <span class="org-variable-name">type</span>=<span class="org-string">"application/rss+xml"</span> <span class="org-variable-name">title</span>=<span class="org-string">"your blog name"</span> <span class="org-variable-name">href</span>=<span class="org-string">"https://example.org/feed.xml"</span> /&gt; <span class="org-comment-delimiter">&lt;!-- </span><span class="org-comment">Atom</span><span class="org-comment-delimiter"> --&gt;</span> &lt;<span class="org-function-name">link</span> <span class="org-variable-name">rel</span>=<span class="org-string">"alternate"</span> <span class="org-variable-name">type</span>=<span class="org-string">"application/atom+xml"</span> <span class="org-variable-name">title</span>=<span class="org-string">"your blog name"</span> <span class="org-variable-name">href</span>=<span class="org-string">"https://example.org/atom.xml"</span> /&gt; &lt;/<span class="org-function-name">head</span>&gt; </code></pre> </div> <p> 有的人在訂閱流裡只提供了摘要,可能是不想被輕易爬取,也可能是想引导讀者去網站上看。但我還是傾向放全文,更方便讀者,或許會方便了爬取的人,但我不想為此而犧牲讀者的便利。當然我還是建議讀者去看看原文的,會有更好的排版,有的網站設計也很有趣。 </p></li> <li><p> <a href="https://marisabel.nl/public/blog/The_Purpose_of_Paper">The Purpose of Paper</a> by Marisabel Munoz </p> <p> 一篇對紙張的頌歌。 </p> <blockquote> <p> 紙張本身擁有一場歷史盛宴,因為歷史正是書寫於其上。信件在世界各地流通,將其連結,把思想從一個岸頭傳送到另一個岸頭。書籍形塑了思想。賦予力量。也奪走力量。 </p> <p> <a href="https://marisabel.nl/public/blog/The_Purpose_of_Paper#:~:text=Paper%2C%20as,away%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://protesilaos.com/commentary/2026-08-14-desire-authenticity-moderation/">About desire, authenticity, and moderation</a> by Protesilaos </p> <blockquote> <p> 受回顧欲望驅使的人容易陷入永遠不滿足的陷阱,因為過去(無論是字面上的還是比喻的)總是更好且在某種程度上「真實」,因此不願對當下的可得之物產生依戀。相反的情況也是如此,我們會不斷想著只要換上更新的事物或關係,生活就會更好,於是又開始幻想下一個迭代會帶來更大的快樂,結果不斷在變動的沙丘上徘徊,無法建立任何穩固的基礎。 </p> <p> <a href="https://protesilaos.com/commentary/2026-08-14-desire-authenticity-moderation/#:~:text=it%2E-,The,on,-%2E">Source</a> </p> </blockquote> <p> 專注於當下。 </p></li> <li><p> <a href="https://vhbelvadi.com/entrance-to-the-wood">Painting exchange: Entrance to the Wood</a> by V.H. Belvadi </p> <blockquote> <p> 绘画交换是一种活动,两个人互相指定一幅画,并让对方写下对这幅画的看法。 </p> </blockquote> <p> 蠻有趣的,在 Blaugust 還看到交換文章,即把文章發布到對方的博客裡;還有交換專輯,這我或許能試試。中文博客之間也可以試試這類活動。 </p></li> <li><p> <a href="https://vhbelvadi.com/the-sea-in-a-drought">The sea in a drought</a> by V.H. Belvadi </p> <p> 喜歡裡面的照片。 </p></li> <li><p> <a href="https://brennan.day/webmaster-a-manifesto-for-everyone/">WEBMASTER@ a manifesto for everyone</a> by Brennan Kenneth Brown </p> <p> 關於 Webmaster 的歷史。 </p> <blockquote> <p> 當時,出現了一群自稱「網站管理員」(Webmaster) 的全新網路專業人士。兼具設計師、開發者與傳道者的身分,網站管理員擁有足夠的網路深奧知識,能夠管理、編輯與建立大小不一的網站。 </p> <p> — Jay Hoffman(2017 年 8 月 28 日) </p> <p> <a href="https://brennan.day/webmaster-a-manifesto-for-everyone/#:~:text=At,2017">Source</a> </p> </blockquote> <blockquote> <p> <span class="underline">要成為網站管理員 (Webmaster),你只需要一台電腦、一個文字編輯器,以及一個託管方式。僅此而已。</span> </p> <p> [&hellip;] </p> <p> 網站管理員不僅僅是開發者。你是 UX/UI 設計師、寫手與編輯、無障礙專家,也是為他人爭取數位自主權的倡導者。你是創造者,而非消費者。你完全有能力做到這一切。 </p> <p> 你會與語意標記奮戰,使頁面可及。你會為字體字距與色彩調色板苦惱。你會寫作、發表自己的怪異癖好,並連結給你的網路鄰居。你會管理伺服器日誌、調整 <code>.htaccess</code> 檔案,並決定與設計你的數位家園的架構。 </p> <p> 這不是職業道路,而是一門手藝。這是最後一個最佳的多學科沙盒,兼具創意與技術,全部在 <code>index.html</code> 中呈現。 </p> <p> 而且 <b>沒有錯誤的答案</b> 。 </p> <p> <a href="https://brennan.day/webmaster-a-manifesto-for-everyone/#:~:text=To%20be%20a,us">Source</a> </p> </blockquote> <p> 你還在等什麼,來成為 Webmaster 吧! </p></li> <li><p> <a href="https://eyu.at/posts/567.202608.html">寻猫记</a> by 鹅玉 </p> <p> 點進去看猫猫 🐈 </p> <p> 鹅玉的網站排版也很不錯,段落前的小涂鸦很可愛,有機會也試試。 </p></li> <li><p> <a href="https://blog.ikukaroom.com/ban-pin-shan/">半屏山的冷知識</a> by ikuka </p> <p> 有趣的故事,還可以看看 shuo-jen 分享的 <a href="https://shuojen.com/blog/2026/08/28/jottings">晴天娃娃</a> 的故事。 </p></li> <li><p> <a href="https://winnielim.org/journal/book-reviews/on-murakamis-conversations-with-seiji-ozawa-wavelength-appreciation-and-negative-space/">on Murakami’s conversations with Seiji Ozawa: wavelength, appreciation, and negative space</a> by Winnie Lim </p> <p> 作者看 <a href="https://en.wikipedia.org/wiki/Absolutely_on_Music">Absolutely on Music</a> 的書評,書是 <a href="https://en.wikipedia.org/wiki/Haruki_Murakami">村上春樹</a> 與 <a href="https://en.wikipedia.org/wiki/Seiji_Ozawa">小澤征爾</a> 針對音樂展開的幾段對話。 </p> <blockquote> <p> 我想用文字說明這本書真正打動我的地方:像小澤這樣的人可能累積了大量關於音樂的想法與知識,卻從未在任何地方轉化或表達。這些可能被鎖在他腦中抽象的形式裡。正好需要像村上這樣——對音樂執著卻本身不是音樂家——的人,將他的想法用文字表達出來。我驚訝於村上能注意到錄音的細節,並促使小澤談論它。這種對細節的注意大概只有像村上這樣執著且反覆聆聽同一曲目的人才能做到。雖然一位是指揮家,另一位是作家,但他們在同一波長上神奇地對話。年紀教會我,很難找到能在同一波長上交談的人。這說明兩人有相同的興趣光譜,且經歷大致相似,兩個心靈都能以彼此能共鳴的方式詮釋這些經驗。 </p> <p> <a href="https://winnielim.org/journal/book-reviews/on-murakamis-conversations-with-seiji-ozawa-wavelength-appreciation-and-negative-space/#:~:text=it%2E-,I,relate%20with">Source</a> </p> </blockquote> <p> 在文章裡找到了一個喜歡的爵士鋼琴演奏家 ⸺ 穐吉敏子 ⸺ 後面我也許會分享一些她的專輯 :) </p></li> <li><p> <a href="https://lyonsinbeta.com/posts/case-for-my-case/">A case for my case</a> by lyonsinbeta </p> <p> 作者分享了他的耳機套,我也分享一下我的。 </p> <figure> <a href="images/zine/57/airpods-bag.webp"><img src="https://imgproxy.citrusreader.com/k1HD3Xoabb1LIKgMzdaZ590EP_HShYFnSC35qG9HMcI/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL3ppbmUvNTcvYWlycG9kcy1iYWcud2VicA" alt="airpods-bag.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;2&nbsp; </span>AirPods 的耳機套,瑪利歐主題,材質是布料</figcaption> </figure> <p> 耳機和耳機套都是女友送的禮物,我挺喜歡這個耳機套的,材質和色彩都喜歡,鈕扣縫的不好,後來我用針綫加固了一下,所以有一個丑丑的補丁,虽然丑,但也多了一份和我的聯係。 </p></li> <li><p> <a href="https://hamatti.org/posts/theres-no-membership-card-for-indieweb/">There’s no membership card for IndieWeb</a> by Juha-Matti Santala </p> <blockquote> <p> 我認為 IndieWeb 應該是一套可以努力實踐的理念。你實踐了其中多少項?並不重要。這不會讓你或你的網站變得更「IndieWeb」或更不「IndieWeb」。我不認為我們應該列出任何檢核表,來評估某人是否屬於 IndieWeb。 </p> <p> 我們應該專注於分享及討論想法,並協助打造工具,讓更多想要實踐這些想法的人(不論出於何種原因)都能夠做到。 </p> <p> <a href="https://hamatti.org/posts/theres-no-membership-card-for-indieweb/#:~:text=requirements%2E-,I,so%2E">Source</a> </p> </blockquote> <blockquote> <p> 嚴格的定義會排除許多可能「幾乎符合」的人,導致他們無法加入,因為必須先滿足所有條件才能成為群體的一員,而一次完成所有步驟往往過於繁重。 </p> <p> <a href="https://hamatti.org/posts/theres-no-membership-card-for-indieweb/#:~:text=A%20strict,once%2E">Source</a> </p> </blockquote> <p> 自由軟件也是如此。很多理念都很好,但對於新人來說,一下子全部做到并不容易。對他們寬容一點,多分享相關信息,帮助他們入門,才能讓更多的人加入進來。 </p></li> <li><p> <a href="https://alexhsu.com/last-time">「最後一次」冥想</a> by Alex Hsu </p> <p> 把每一次都當作最後一次,也許會更用力地去體驗和珍惜。 </p> <blockquote> <p> 我的第三個故事是關於死亡。當我 17 歲時,我看到一句話大概是:「如果你過每一天有如那是你的最後一天,某一天你將肯定是對的。」它使我印象深刻,而自那時開始,在過去的 33 年,我每天早上看著鏡子並問自己:<span class="underline">「如果今天是我生命的最後一天,我會想做我今天即將要做的事嗎?」</span><span class="underline">而每當答案連續很多天是「不」,我便知道我需做些改變。</span><span class="underline">記住我將馬上死亡是我所遇過最重要的東西來幫助我在人生裡做重大決擇,</span><span class="underline">因為幾乎所有的事情 – 所有外在的期待、所有的自尊、所有對困窘及失敗的害怕 –</span><span class="underline">這些事情在死亡面前只會自動消失,僅留下真正重要的。</span>記住你將死去是我所知道最好的方法來讓你避開你有東西會失去這個想法之陷阱。你已不受保護,沒有理由不去追隨你的內心。 </p> <p> <a href="https://www.mropengate.com/2015/05/steve-jobs-stanford-commencement-speech.html">[中英對照] 賈伯斯對史丹佛大學畢業生演說 Steve Jobs' Stanford Commencement Address 2005</a> by Opengate <small>(Opengate 的博客看著也不錯,但奈何我找不到訂閱連結)</small> </p> </blockquote></li> <li><p> <a href="https://blog.absurdpirate.com/tea-as-a-cure-for-brainrot/">Tea as a Cure For Brainrot</a> by Absurd Pirate </p> <blockquote> <p> 當我們談論到腦腐(brainrot)時,通常是因為過量的低質量刺激所致。而泡茶,或者實際上任何需要某種有條理儀式的飲品製作形式(手沖咖啡也是其中之一),則完全處於光譜的另一端。當你面臨腦腐發作時,那是因為連珠炮式、高強度的視覺刺激。 </p> <p> <a href="https://blog.absurdpirate.com/tea-as-a-cure-for-brainrot/#:~:text=When%20we,stimuli">Source</a> </p> </blockquote> <p> 做手冲咖啡時會有一種平靜感,用手磨磨豆,磨完可以聞到咖啡粉的干香。然後展開濾紙,澆熱水讓它和濾杯壁貼合,倒入咖啡粉,輕輕晃動濾杯讓咖啡粉鋪平。繞圈小水流悶蒸,如果咖啡粉比較新鮮,就會慢慢鼓起一個飽滿的小鼓包,還能聞到熱氣帯出來的湿香。繼續繞圈注水,完成萃取,等咖啡液的温度慢慢下降<sup><a id="fnr.2" class="footref" href="#fn.2" role="doc-backlink">2</a></sup>,就能喝到一杯或苦、或酸、或甜的咖啡。豆子好,冲也得好,有時也能喝出一些風味,讓人回味和享受。 </p> <blockquote> <p> 我們很多人(包括我自己),都發現自己很難在沒有任何背景刺激的情況下做事。無論是打掃房間時聽音樂、寫作業時聽 Podcast,還是吃飯時看 YouTube 影片。<span class="underline">然而,能夠靜下心來與自己獨處是很重要的。</span><span class="underline">一顆無法在寧靜中獨處的心,往往會錯失生活中細微的美好。</span> </p> <p> <a href="https://blog.absurdpirate.com/tea-as-a-cure-for-brainrot/#:~:text=A%20lot,beauties">Source</a> </p> </blockquote></li> <li><p> <a href="https://defector.com/the-other-elephant">The Other Elephant</a> by Sabrina Imbler </p> <p> 大象是具有社會性的生物,需要和其它大象進行社交,不然也會像人一樣感到孤獨。但動物園一般也不會養很多隻大象,不能滿足大象的社交需要,所以大象其實不適合在動物園裡養。 </p></li> <li><p> <a href="https://portside.org/2026-08-02/sunday-science-most-ovarian-cancer-isnt-and-fact-can-save-lives">Sunday Science: Most ‘Ovarian Cancer’ Isn’t. And That Fact Can Save Lives.</a> by Gina Kolata </p> <blockquote> <p> 「卵巢癌」是個誤稱,Stone 醫生說,幾乎所有的卵巢癌——以及幾乎所有致命的卵巢癌——其實都是輸卵管癌。大約 20% 左右起源於卵巢的癌症則不同,Stone 醫生說,通常可以治癒。 </p> <p> 女性如果切除輸卵管——這些像軟糖蠕蟲般的管道負責將卵子從卵巢運送到子宮——可將罹患卵巢癌的機率降低近 80%。這是一個只需五分鐘的手術,幾乎可以在任何腹部手術中同時完成,包括子宮切除術、輸卵管結紮、膽囊手術與疝氣修補。 </p> <p> <a href="https://portside.org/2026-08-02/sunday-science-most-ovarian-cancer-isnt-and-fact-can-save-lives#:~:text=%E2%80%9COvarian,repair">Source</a> </p> </blockquote></li> <li><p> <a href="https://kedara.eu/purpose-of-tear-water-tea/">The purpose of tear-water tea</a> by Ruben Verweij </p> <blockquote> <p> 故事中,猫头鹰通过想着“那些令人悲伤的事”来泡一壶茶;他的泪水开始自由流淌,他灵巧地将泪水接进茶壶里。让我来演示一下这是如何运作的: </p> <p> 我怀念去露营旅行的日子。我怀念那趟火车:车站里的食物、气味、声响和风景。[&hellip;] </p> <p> 当他的罐子装满泪水后,猫头鹰开心地停止哭泣,准备泡茶: </p> <p> “好了,”猫头鹰说。“这样就够了!”猫头鹰停止了哭泣。他把水壶放在炉子上烧水泡茶。猫头鹰倒满杯子时,感到满心欢喜。 “尝起来有点咸,”他说,“但泪水茶总是很好喝的。” </p> <p> 这是一个美丽的故事,也是一个我觉得非常有帮助的练习。<span class="underline">通过为沉溺于悲伤分配有限的时间,通过装满茶壶再倒空它,之后的生活尝起来更加甜美。</span>没有流下一滴眼泪,我已经感到轻松了许多。痛苦的意义是否就在于通过它的存在来定义幸福?两者能否独立存在? </p> <p> <a href="https://kedara.eu/purpose-of-tear-water-tea/#:~:text=In%20the%20story,other">Source</a> </p> </blockquote></li> <li><p> <a href="https://www.v01.io/posts/2026/08/three-people-is-a-team/">Three People Is a Team. Seven Is a Committee with Zero Decisions.</a> by Klaus Breyer </p> <blockquote> <p> 人們會說:「但我們需要每個人的意見。」不,你不需要。你需要在正確的時間獲得正確的意見。團隊的其他成員可以透過非同步的方式提供回饋。他們可以查閱 <a href="https://www.v01.io/posts/2024/05/shaping-architecture-feedback-loop/">架構決策紀錄(ADRs)</a>,也可以查看白板上成形的解決方案。但他們不需要參加每一次的會議。 </p> <p> 納入更多人會讓人感覺具包容性、感覺很民主。但這會拖慢一切。更糟糕的是,這會分散所有權。當每個人都有責任時,就沒有人負責任。 </p> <p> <a href="https://www.v01.io/posts/2026/08/three-people-is-a-team/#:~:text=People%20will,responsible,-%2E">Source</a> </p> </blockquote> <p> 這個結論,古人早就說過了「一個和尚挑水喝,兩個和尚抬水喝,三個和尚沒水喝」。 </p></li> <li><p> <a href="https://www.tariqdeir.com/best-customers-barely-use-your-product/">Sometimes Your Best Customers Barely Use Your Product</a> by Tariq Deir </p> <p> 作者開發了一個航班相關的應用,發現那些最佳客戶幾乎不使用他的產品,他們很快完成操作就消失了,而那些用的很多的客戶反而流失得很快。 </p> <blockquote> <p> <span class="underline">如果有人每天都必須不斷打開我的產品才能從中獲得價值,或許我實際上並沒有從他們的生活中減輕多少工作量?</span>對於某些應用程式來說,那是正確的形態,你想要創造一些具有黏著性和吸引力的東西。 </p> <p> 但看來我最長期的會員並不想要另一個可以瀏覽的平台。 </p> <p> 他們希望我安靜地觀察成千上萬個航班,並在出現相關內容時輕拍他們的肩膀。 </p> <p> <span class="underline">他們需要做的越少,產品實際上運作得可能就越好。</span> </p> <p> <a href="https://www.tariqdeir.com/best-customers-barely-use-your-product/#:~:text=If,working">Source</a> </p> </blockquote> <p> 對於工具類軟件來確實如此,需要做的越少也越方便。像是訂機票,我想要的就是輸入起點、終點、日期時間,找到實惠的那一趟,然後付費就够了。但現在很多應用裡還會有很多廣告、彈窗、附加服務等干擾你,想盡辦法讓你在應用裡多停留,實在討厭。 </p> <p> 發現問題後,作者沒有因為自己付出了不少努力而給錯誤的方向找理由,他開始推出一些改進,看看客户的反應。 </p> <blockquote> <p> 不要對自己的努力產生情感依賴。 </p> <p> 這就是沉沒成本開始滲入你決策的方式。 </p> <p> 你會停止問自己,這仍然是正確的建設方向嗎? </p> <p> 而開始問,我該如何為已經完成的所有工作找理由? </p> <p> 這兩個問題大相徑庭。 </p> <p> 當我們開始一個新產品、服務或概念時,只能從假設出發。 </p> <p> 我們在冒險。 </p> <p> 我們在下注。 </p> <p> 我們在不確定是否正確的情況下構建事物。 </p> <p> 這就是工作本身。 </p> <p> 但這些假設最終應該被證據取代,而不是被以下想法取代: </p> <p> 好吧,我已經花了六個月時間打造它了,所以不如繼續下去。 </p> <p> <a href="https://www.tariqdeir.com/best-customers-barely-use-your-product/#:~:text=Do%20not,on">Source</a> </p> </blockquote> <p> 我以前理解錯了 <a href="https://sive.rs/1s">Writing one sentence per line</a>,文章裡也有很多短句段落,現在我有點反感這種文風。這種風格也是有好处的,讀起來容易,而且不少人看文章都是 <a href="47.html#877634F0-5359-4787-BF3D-28FBFDF4909A">符合 F 形模式</a>,短句型式也可以讓人關注更多信息,讀起來更口語話,寫得好也有一點詩的感覺。但就是太短了,太占空間,有的意思相近的話其實可以連成一個稍長點的段落的,沒必要拆這麼短。 </p></li> </ul> </div> </div> <div id="outline-container-D2FCF0E9-3C58-4F47-91E9-4D7F86C1E5E0" class="outline-2"> <h2 id="D2FCF0E9-3C58-4F47-91E9-4D7F86C1E5E0"><a href="#D2FCF0E9-3C58-4F47-91E9-4D7F86C1E5E0">Cool Bit</a></h2> <div class="outline-text-2" id="text-D2FCF0E9-3C58-4F47-91E9-4D7F86C1E5E0"><ul class="org-ul"> <li><p> <a href="https://luckyinstar.neocities.org/blog">lucky instar blog</a> </p> <p> 如果你對昆蟲、動物感興趣,可以關注一下這個博客,作者 Jakalopes 是一個生物學家,從他的博客裡能看到很多有趣的生物,以及了解一點生物知識。 </p></li> <li><p> <a href="https://github.com/ErikMcClure/bad-licenses">ErikMcClure/bad-licenses</a> </p> <blockquote> <p> 荒誕「開源」授權條款概覽。 </p> </blockquote> <p> 另見: <a href="https://github.com/me-shaon/GLWTPL">me-shaon/GLWTPL: "Good Luck With That" Public License</a> </p> <details> <summary>GLWT</summary> <p class="verse"> GLWT(Good Luck With That) 公共授權條款<br> 版權所有 (c) 任何人,除了開發者<br> <br> 任何人都有權複製、發行、修改、合併、出售、出版、再授權本軟<br> 體,或用作任何其他用途,但一切風險需自行負擔。<br> <br> 開發者對本專案內的原始碼一無所知。<br> 它可能可以運行也可能無法,沒有其他情況。<br> <br> &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;GOOD LUCK WITH THAT 公共授權條款<br> &#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;&#xa0;複製、發行及修改的條款與約束<br> <br> 零:在不導致開發者被指責或追究的情況下,你想做什麼都可以。<br> <br> 在任何情況下,無論是否為合約規範之行為或是侵權行為,或是肇<br> 因於本軟體,或為軟體本身、使用情境或是其他交易所衍生與之相<br> 關之任何索償、損壞或其他責任,開發者一概不負責。<br> <br> 祝你好運及一帆風順。<br> </p> </details></li> <li><p> <a href="https://clickclickclick.click/">Click</a> </p> <p> 一個點擊遊戏,域名也挺有趣的。 </p> <p> 另見: <a href="23.html#2C3DDAD7-3AAB-4AB9-BDD0-567F42E2D9D3">Zine#23::Stimulation Clicker</a>、<a href="26.html#7A5D6F16-6550-4B20-9D38-D87223CE060A">Zine#26::Cookie Cliker</a> </p></li> <li><p> <a href="https://danq.me/2026/08/06/jpeg/">You’re Pronouncing JPEG Wrong</a> by Dan Q </p> <p> 你是怎麼讀 JPEG 的? </p></li> <li><p> <a href="https://danq.me/2026/08/06/normal-fing-sunglasses/">Normal F***ing Sunglasses</a> by Dan Q </p> <p> DuckDuckGo 出的眼鏡,宣傳片很搞笑。 </p></li> <li><p> <a href="https://warandpeas.com/2026/08/06/how-to-befriend-a-fly/">How to Befriend a Fly</a> by War and Peas </p> <p> 蜘蛛:「嘿!蒼蠅 bro,我們交朋友吧,我保証不吃你」 </p></li> <li><p> <a href="https://thehtml.review/">the html review</a> </p> <blockquote> <p> HTML Review 是一份每年出版、以網路為存在形式的文學期刊。 </p> <p> [&hellip;] </p> <p> 我們徵求能充分發揮網路作為媒介特性的投稿。詩、小說、非虛構、散文、圖像敘事及各種實驗作品,皆歡迎投稿。不論是在美學或主題上,我們都喜愛具有獨特性的獨立作品,並且聚焦於極為特定的主題。 </p> </blockquote> <p> 收录󠄃了一些實驗性的頁面,有的交互很特別,有的排版很不一樣,都挺有創意的,可以探索一下。例如: </p> <ul class="org-ul"> <li><a href="https://coyote.computer/milkfish/">milkfish</a> 像在刮魚鱗</li> <li><a href="https://highway-01.banner-depot-2000.net/">Banner Highway 01 汽车是旅行的工具</a> 一邊開車,一邊看路牌上的句子</li> </ul></li> <li><p> <a href="https://www.mixfont.com/experiments/decoy-font?ref=labnotes.org">Decoy Font</a> </p> <blockquote> <p> 一款能從人工智慧面前隱藏你輸入內容的 TTF 字型。輸入一段訊息,其中的每個字母都包含一個誘餌。 </p> </blockquote></li> <li><p> <a href="https://envoy.henry.codes/">Send me the poetry</a> by Henry </p> <blockquote> <p> 這個網站會發送訊息到一個連接在熱感式印打印機上的 Raspberry Pi Zero W 晶片,這台打印機就放在我客廳的架子上。當你在這裡提交內容時,打印機就會發出一聲短音,然後在我家打印出詩句 :) </p> </blockquote> <p> 蠻有趣的,有喜歡的詩可以發發看,沒有就不要打擾作者了。 </p></li> <li><p> <a href="https://www.californiaherps.com/films/snakesinmovies.html">Snakes In Movies Illustrated List</a> </p> <p> 影視劇中的蛇。 </p></li> <li><p> <a href="https://milliondollarhomepage.com/">The Million Dollar Homepage - Own a piece of internet history!</a> </p> <blockquote> <p> <a href="https://en.wikipedia.org/wiki/The_Million_Dollar_Homepage">百萬美元首頁</a> 是一個網站,於 2005 年由 Alex Tew(英格蘭 Wiltshire 的學生)構思,旨在為他的大學教育籌款。此首頁由百萬個像素組成,排列成 1000 × 1000 的像素格;這些基於圖像的連結以每個 $1 的價格,按 10 × 10 的區塊出售。購買這些像素區塊的用戶提供要顯示的微型圖像、指向該圖像的 URL,以及在游標懸停於連結上時顯示的標語。此網站的目標是將所有像素全部售出,為創作者創造百萬美元的收入。 </p> </blockquote></li> <li><p> <a href="https://www.neatorama.com/2026/07/13/The-Cinnamon-Bachelors-and-Pepper-Bachelors-of-Denmark/">The Cinnamon Bachelors and Pepper Bachelors of Denmark</a> by Miss Cellania </p> <p> 如果你住在丹麥,尤其是日德蘭地區,到了 25 歲還沒結婚,可能會 <a href="https://farandwide.com/s/denmark-has-a-playful-cinnamon-birthday-tradition-for-unmarried-25-year-olds">遭到肉桂攻擊</a>。 </p></li> <li><p> <a href="http://www.eviloverlord.com/lists/overlord.html">Peter's Evil Overlord List</a> </p> <p> 「如果我有一天成為邪惡霸王,我會做的 100 件事」 </p> <blockquote> <ul class="org-ul"> <li>當我抓住對手,而他說:「聽著,在你殺我之前,至少能不能告訴我這一切到底是怎麼回事?」我會說:「不行。」然後射殺他。不,仔細想想,我會先射殺他,再說:「不行。」</li> <li>我絕不會說出「但在殺掉你之前,我有件事想知道」這句話。</li> <li>我不會生兒子。雖然他那個可笑且毫無周詳規畫的篡位企圖肯定會輕易失敗,卻會在關鍵時刻造成致命的分心。</li> <li>我不會生女兒。她會美麗得如同她邪惡一般,但只要看一眼英雄那粗獷的面容,她就會背叛自己的父親。</li> <li>最後,為了讓我的臣民永遠陷入無思考能力的恍惚狀態,我會為每個人提供免費且無限制的網際網路存取權。</li> </ul> </blockquote></li> <li><p> <a href="https://branch.constraint.systems/">Branch</a> </p> <blockquote> <p> Branch 是一個由樹木和樹枝照片組成的協作拼貼作品。拍攝一張照片並追蹤流向,即可將其添加到分支中。 </p> </blockquote></li> <li><p> <a href="https://kuber.studio/cookie/">I didn't set a cookie.</a> </p> <p> 網站識別你大量信息,再次提醒你,光是訪問一個頁面就暴露了多少關於你的信息。有的網站并不需要用 cookie 記住你,它們會用許多信息組合成一個唯一的指紋識別你。 </p></li> <li><p> <a href="https://archiveofarchives.com/">Archive of Archives</a> </p> <p> 作者收集的一些歸檔合集,主要和設計、物件、音樂相關的。樣式設計還不錯。 </p></li> <li><p> <a href="https://stonetools.ghost.io/">Stone Tools</a> </p> <blockquote> <p> 探索 8/16 位元時代的復古生產力軟體。不玩遊戲,只為工作。 </p> </blockquote></li> <li><p> <a href="https://type.joohyunpark.com/">Type</a> </p> <p> 輸入內容然後確認,內容就會掉落。中文會變成問號。 </p></li> <li><p> <a href="https://printingfilms.com/">Printing Films Archive</a> </p> <blockquote> <p> PrintingFilms.com 是一個收藏老電影的網站,展示印刷、新聞與排版的技術及流程。 </p> </blockquote></li> <li><p> <a href="https://vole.wtf/widthipedia/">Widthipedia</a> </p> <p> 改變屏幕寬度,隨機訪問一個 Wiki 頁面。實現起來應該挺簡單的,監聴窗口寬度變化然後調用 Wikipedia 的 API 刷新就好了。 </p></li> <li><p> <a href="https://walzr.com/lost-and-found">Lost and Found</a> </p> <blockquote> <p> 當體育場或機場出現遺失物時,工作人員會拍照、記錄並等待。數百個場所使用同一款軟體工具來管理遺失物品,而我搜刮了他們的存檔:數千張遺失物品的意外肖像。 </p> </blockquote> <p> 大部分是手機和書。 </p></li> <li><p> <a href="https://fragglet.github.io/sdl-sopwith-builds/tags/sdl-sopwith-2.9.0/sopwith.html">SDL Sopwith 2.9.0</a> </p> <p> 一個開飛機的複古遊戱。 </p> <blockquote> <p> 《Sopwith》是由 BMB Compuscience 的 David L. Clark 於 1984 年開發的一款橫向捲軸射擊遊戲。 </p> <p> 遊戲內容涉及駕駛一架索普威思(Sopwith)雙翼飛機,試圖炸毀敵方建築物,同時避開敵機的火力和各種其他障礙物。 </p> <p> <a href="https://en.wikipedia.org/wiki/Sopwith_%28video_game%29">Sopwith (video game) - Wikipedia</a> </p> </blockquote></li> <li><p> <a href="https://www.beautifulpublicdata.com/boat-names/">50,000 boat names</a> </p> <p> 各種船隻的名字。 </p></li> <li><p> <a href="https://lanemcmartin.itch.io/neuralimina">Neuralimina</a> by lanemcmartin </p> <blockquote> <p> 《Neuralimina》是一款關於探索夢境的超現實點擊冒險短篇遊戲。在不合邏輯的環境中穿梭。解開神秘的謎題。尋找逃脫之路。 </p> </blockquote> <p> 密室逃脫類遊戱。 </p></li> <li><p> <a href="https://mstdn.social/@rysiek/117077198717825135">"Human in the loop."</a> </p> <p> 真正的 Human in the loop。 </p></li> <li><p> <a href="https://minghuaji.dpm.org.cn/">故宫名画记</a> </p> <blockquote> <p> “故宫名画记” (<a href="https://minghuaji.dpm.org.cn">https://minghuaji.dpm.org.cn</a>) 是故宫博物院官方网站下的中国古代绘画高清大图鉴赏栏目,主要提供故宫藏中国古代绘画珍品的高清大图欣赏和多媒体导览内容,目前可浏览《清明上河图》《韩熙载夜宴图》《千里江山图》等一千余幅绘画史上的不朽名作。 </p> </blockquote></li> <li><p> <a href="https://art.joonas.wtf/">Plein Air</a> </p> <blockquote> <p> Plein air(法語意為「在戶外」)是指在室外繪畫的學科,直面天氣的變換,就像康斯特勃(Constable)在薩福克郡的草地上研究雲彩,莫內(Monet)在每個季節的每一小時畫著同樣的乾草堆。畫家們將畫布帶到室外,是因為光線無法在事後被記憶,只能在繪畫時身處其中。 </p> <p> Plein Air 讓你站在其中一幅畫作旁。你頭頂的天空與畫中的天空共享著同一時刻——同樣漫長的午後,同樣威脅著要降臨的風暴,同樣依附在河面上的霧氣。一幅為此時此刻所選的畫作。 </p> </blockquote> <p> 簡單來說就是基於天氣和時間返回匹配的畫作。 </p></li> <li><p> <a href="https://www.youtube.com/watch?v=3YtygAx_C6A">A Walkable ASCII Cyberpunk City in One HTML File</a> (2:47) by Grow Now! Games </p> <p> 用 ASCII 描繪的可探索的城市。 </p></li> <li><p> <a href="https://www.submarinecablemap.com/">Submarine Cable Map</a> </p> <p> 海底電纜地圖。 </p></li> <li><p> <a href="https://placeoddities.com/">Place Oddities</a> </p> <p> 打開後會看到一張英國地圖,上面有很多可點擊的元素,可以看到很多奇怪的,不明所以的內容。點擊右上角的 Sacred Well (聖井),也可以進行隨機訪問。 </p></li> <li><p> <a href="https://www.shibuyaaa.com/shibby-sampler">sampler</a> </p> <p> 用 YouTube 視頻搓碟? </p></li> <li><p> <a href="https://winchxyz.github.io/moon-rover/">REGOLITH — The Silence at Anaxagoras</a> </p> <p> 月球探測車模拟,挺逼真的。在設置裡還能開啟延迟,讓模拟更真實。 </p></li> <li><p> <a href="https://www.talktyl.com/">ttyl</a> </p> <blockquote> <p> Send a voice note to your future self. </p> </blockquote> <p> 一個 iOS App,用來給未來的自己留言。 </p></li> <li><p> <a href="https://oceanographicmagazine.com/winners-gallery/">Winners Gallery - Oceanographic</a> </p> <p> 年度海洋攝影。 </p> <p> 另見: <a href="https://ippawards.com/winners/showcase">iPhone Photography Awards 2026 Winners</a><small>(不是,別人的 iPhone 拍出來怎麼都這麼好看?)</small> </p></li> <li><p> <a href="https://santionispirits.com/">Santioni Spirits | Cocktails to Indulge Now, Atone Later</a> </p> <p> 這是一個名为 Santioni 的飲品品牌的網站,做得也太酷了吧! </p></li> <li><p> <a href="https://www.bre.art/">The Bre Pettis Collection of Computer Art</a> </p> <blockquote> <p> Bre Pettis 電腦藝術收藏是我的個人收藏,裡面包含使用電腦、演算法、繪圖機與創意機械製作的藝術作品。此網站是它的目錄:作品、創作它們的藝術家,以及圍繞它們的書籍與唱片圖書館。 </p> </blockquote></li> <li><p> <a href="https://tomarigi.me/world">Tomarigi</a> </p> <p> 網絡攝像頭聚合網站。 </p></li> <li><p> <a href="https://moepwellington.xyz/">moe p. wellington</a> </p> <p> moe p. wellington 是一個德國的藝術家,這是他的個人網站,有一些他的作品。 </p></li> <li><p> <a href="https://annualreport.gallery/">Annual Report Archive</a> </p> <p> 年度报告畫廊。 </p> <blockquote> <p> 在上個世紀的大部分時間裡,年度報告是公司投入大量精力的產物,會聘請平面設計師、插畫家和藝術家。無論如何,平面設計工作的費用都很昂貴,因此公司利用這種沉沒成本,將日常報告轉化為具有真實意義的事物,藉此凝聚團隊士氣。 </p> <p> 當個人電腦普及,版面設計和平面設計變得「民主化」之後,公司預期支付的費用隨之下降。因此,雖然他們繼續投資於品牌和行銷,卻停止了對美學的投入。 </p> <p> 隨著圖形製作透過 AI 工具進一步機械化,我確實擔心這次我們即將失去什麼。我想,回顧一下我們以前失去了什麼,看看或許我們能給予其中一些偉大的創意新的生命,應該會很有趣。 </p> </blockquote></li> <li><p> <a href="https://fulltalktime.com/">Text like it’s 2005 — Full Talktime</a> </p> <p> 網站模拟了老式的按鍵手機 (像諾基亚),可以用它寫短信,發送後會得到一個連結,打開連結就可以收到信息。 </p></li> <li><p> <a href="https://turnleft.app/">TURN LEFT! — one-button stock car racing</a> </p> <p> 一個小遊戲,按任意按鈕讓小車左轉,不發生碰撞跑完就行。車多了之後,要避免碰撞還有點難。 </p></li> <li><p> <a href="https://hitthedot.app/">On the Dot</a> </p> <p> 給一個秒數,你覺得到了就點停,看看你的準確率。我的準確率是 92%,我的辦法是數 1001,1002⋯⋯每個數字的時間大致就是一秒。 </p></li> <li><p> <a href="https://kengocodes.itch.io/isle">isle by kengocodes</a> </p> <p> 遊戱會隨機生成一個島嶼,你化身一隻鳥在其中漫步。 </p></li> <li><p> <a href="https://leehenry.top/posts/words_in_wildness/ww-vol09/#%E5%BD%93%E8%AF%AD%E8%A8%80%E5%9B%A0%E7%86%9F%E6%82%89%E4%B8%8D%E8%A2%AB%E6%B3%A8%E8%A7%86">当语言因熟悉不被注视 | 漫想与杂谈 Iss.07 · 处暑</a> by 伏枥 </p> <blockquote> <p> 还有个很著名的读「喉、舌、齿、唇、口、鼻」这几个字的时候,感受一下发音的位置;还有「前、中、后」这仨字;接着读「绳、线、丝」时,又感受一下语气的粗细。 </p> <p> <a href="https://leehenry.top/posts/words_in_wildness/ww-vol09/#%E5%BD%93%E8%AF%AD%E8%A8%80%E5%9B%A0%E7%86%9F%E6%82%89%E4%B8%8D%E8%A2%AB%E6%B3%A8%E8%A7%86:~:text=%E8%BF%98%E6%9C%89%E4%B8%AA%E5%BE%88%E8%91%97%E5%90%8D%E7%9A%84%E8%AF%BB%E3%80%8C%E5%96%89%E3%80%81%E8%88%8C%E3%80%81%E9%BD%BF%E3%80%81%E5%94%87%E3%80%81%E5%8F%A3%E3%80%81%E9%BC%BB%E3%80%8D%E8%BF%99%E5%87%A0%E4%B8%AA%E5%AD%97%E7%9A%84%E6%97%B6%E5%80%99%EF%BC%8C%E6%84%9F%E5%8F%97%E4%B8%80%E4%B8%8B%E5%8F%91%E9%9F%B3%E7%9A%84%E4%BD%8D%E7%BD%AE%EF%BC%9B%E8%BF%98%E6%9C%89%E3%80%8C%E5%89%8D%E3%80%81%E4%B8%AD%E3%80%81%E5%90%8E%E3%80%8D%E8%BF%99%E4%BB%A8%E5%AD%97%EF%BC%9B%E6%8E%A5%E7%9D%80%E8%AF%BB%E3%80%8C%E7%BB%B3%E3%80%81%E7%BA%BF%E3%80%81%E4%B8%9D%E3%80%8D%E6%97%B6%EF%BC%8C%E5%8F%88%E6%84%9F%E5%8F%97%E4%B8%80%E4%B8%8B%E8%AF%AD%E6%B0%94%E7%9A%84%E7%B2%97%E7%BB%86">Source</a> </p> </blockquote> <p> 試了一下,神奇!很好奇背後的故事,是巧合還是特意設計過的? </p> <blockquote> <p> 「结束」是结衣束带的简写,把衣服整理好,腰带扎紧,正在进行的活动到此为止,该走人了。 </p> <p> 有人觉得「马上」很浪漫吗?古人最快的交通工具,有一种迫不及待的,及时回应的浪漫。 </p> <p> <a href="https://leehenry.top/posts/words_in_wildness/ww-vol09/#%E5%BD%93%E8%AF%AD%E8%A8%80%E5%9B%A0%E7%86%9F%E6%82%89%E4%B8%8D%E8%A2%AB%E6%B3%A8%E8%A7%86:~:text=%E3%80%8C%E7%BB%93%E6%9D%9F,%E6%B5%AA%E6%BC%AB,-%E3%80%82">Source</a> </p> </blockquote> <p> 這麼一解讀,這兩個詞多了種美感。 </p></li> <li><p> <a href="https://lameazoid.com/mini-brands-vinyl-player/">Mini Brands Vinyl Player</a> by Ramen Junkie </p> <p> 迷你黑膠唱片機,蠻好看的。 </p></li> <li><p> <a href="https://tinyawards.net/vote/?2026">Vote for the 2026 Tiny Awards Winner</a> </p> <blockquote> <p> 自 2023 年以來,該獎項致力於表彰小型、詩意、創意且手工製作的最佳網絡作品。 </p> <p> Tiny Awards 之所以存在,是因為我們認為重要的一點是,要讓那些往往被更傳統、規模更大或更商業化的獎項所忽視的個人網頁項目受到關注。 </p> <p> 每年,我們都會邀請網路世界提名過去 12 個月內建立的、他們最喜歡的創意非商業網站。由來自廣闊的網頁創意領域的精選專家評審團將選出他們的最愛。最後,整個網路將對這份名單進行投票,選出最受歡迎的作品。 </p> </blockquote> <p> 網站的設計挺好看的,分享几個我喜歡的: </p> <ul class="org-ul"> <li><a href="https://neal.fun/cursor-camp/">Cursor Camp</a> 在裡面和別人踢了場足球 :P</li> <li><a href="https://ori.dog/">Everything Everywhere All at Once</a> 這個創意很棒欸!我的一票就投給你了!</li> <li><a href="https://moth-in-relay.net/">(moth) in relay</a> 1947 年在 Harvard Mark II 發現的 Bug 原來還活著 :P</li> <li><a href="https://babyshapedvoids.netlify.app/">baby shaped voids</a> 也是很有趣的呈現</li> </ul> <p> 還有很多有趣的,去探索看看吧! (via <a href="https://webcurios.co.uk/webcurios-28-08-26/">Webcurios 28/08/26</a>) </p></li> <li><p> <a href="https://mesh3d.gallery/websites">3D Three.js &amp; WebGL Websites | mesh3d</a> </p> <p> 一些有趣的 3D 效果。 </p></li> <li><p> <a href="https://www.whatwetellai.com/">What We Tell AI</a> </p> <blockquote> <p> What We Tell AI 是一個探索關於我們與人工智慧(A.I.)之間複雜關係秘密的計畫。 </p> <p> 去年九月,我們在舊金山的杜樂麗公園(Dolores Park)設置了一個箱子,請陌生人寫下關於他們與 A.I. 關係的告白。 </p> <p> 從那時起,我們在加州灣區、紐約及其他地區的公園、購物中心,甚至是 AI 會議中,收集了超過 350 份手寫筆記。 </p> <p> 作為這奇特時代的一個縮影,WWTAI 揭示了 2026 年(即 ChatGPT 發佈僅 3 年後)圍繞 AI 使用而新興的禁忌,以及它在我們私密生活中日益增加的存在感。 </p> <p> 在理想的情況下,我們希望這個計畫能引發人們對 AI 影響的深層反思,不僅是對我們的世界,更是對我們的個人生活:我們如何思考、如何愛,以及我們如何共同理解這一切。 </p> </blockquote> <p> 頁面進入時的設計挺好的。 </p></li> <li><p> <a href="https://artistaiden.com/sound-in-space">Sound In Space</a> </p> <p> 中間有個星雲,然後會隨機出現星光和聲音,自己點進去看看吧。 </p></li> <li><p> <a href="https://windows96.net/">Windows 96</a> </p> <p> Windows 96 模拟,裡面甚至能玩三維彈球,還有很多可探索的,例如找到 IE 瀏覧器打開自己博客看看 :P </p></li> <li><p> <a href="https://samuel.vvolhejn.com/">Samuel</a> </p> <blockquote> <p> Samuel 是一個學習控制這個搞怪嘴巴來模仿說話的模型。說點什麼,它就會像鸚鵡學舌一樣跟著你說;如果你害羞的話,可以試試其中一個預製片段。 </p> <p> 嘴巴本身是 <a href="https://dood.al/pinktrombone/">Pink Trombone</a>,最初由 Neil Thapen 發起的項目,他將其描述為「赤手空拳的語音合成」。 </p> </blockquote> <p> 手動控製也挺好玩的,搞怪。 </p></li> <li><p> <a href="https://tree.icqr.com">ICQR</a> </p> <p> 把二維碼顯示成一棵樹。 </p></li> <li><p> <a href="https://desktopcolors.com/">The desktop color archive</a> </p> <p> 一些老的操作系統的配色。 </p></li> <li><p> <a href="https://seunghyuk.com/portfolio">Seunghyuk Kim — Graphic Designer</a> </p> <p> 交互超酷的個人網站。 </p></li> <li><p> <a href="https://amix-design.com/tl/tool-g-wireshooter/">Wire Action Shooter | 敵を捕まえてぶん回せ! | AMIX</a> </p> <p> 一個玩著還不錯的遊戱,還挺容易上手的,我都沒看說明,玩了玩就會了。用鼠標的話,左鍵移動飛船,右鍵捕获敵機,然後通過移動,甩動敵機當作武器進行攻擊。最好還是用手機玩,鼠標太廢手了。 </p></li> <li><p> <a href="https://antics.gg/p/side-out-94df7d">SIDE OUT</a> </p> <p> 也是個蠻好玩的遊戱,共 8 個玩家一起彈球,接不到就會被淘汰。 </p></li> <li><p> <a href="https://nartier.itch.io/walkable-cities">Walkable Cities</a> by miziziziz </p> <p> 賽博相扑走。 </p></li> <li><p> <a href="https://subway.fyi/essentials">The Essentials — How Close Is Everything You Need in NYC?</a> </p> <p> 在紐約地圖上任意選一個坐標,在地圖上尋找鄰里所需的一切,如医院、電影院等,利用步行、乘巴士、搭地鐵,只需一程票價,用來選住的地方挺有帮助的。 </p> <p> 還有 <a href="https://subway.fyi/60minutes">60 Minutes</a>,點擊城市中的任何地方,地鐵和巴士會從點擊的位置開始向外蔓延,回答了用公共交通,60 分鐘能去到哪。 </p> <p> 有沒有人也做一個國内版本的。 </p></li> <li><p> <a href="https://diagramchasing.fun/2026/mapping-clouds">Mapping India's Clouds</a> by Aman Bhargava </p> <p> 像素風雲圖的挺好看的。 </p></li> <li>有趣的樣式 <ul class="org-ul"> <li><a href="https://tabitha.computer/2026/08/movie-on-faust/">Movie on Faust</a> 貼圖不錯,以後可以試試。</li> <li><a href="https://www.omz13.com/">homepage!omz13</a> 像是一頁笔記本的紙。</li> <li><a href="https://fenx.design/">分形杂记</a> 頁面上的蠟燭交互挺不錯的。作者也寫周刊: <a href="https://fenx.work/">Design Scenes</a>,主要是關於技術和設計的。</li> </ul></li> </ul> </div> </div> <div id="outline-container-C207377C-B8FB-4EA5-8D82-B310C59CB4EB" class="outline-2"> <h2 id="C207377C-B8FB-4EA5-8D82-B310C59CB4EB"><a href="#C207377C-B8FB-4EA5-8D82-B310C59CB4EB">Tutorial | Resource</a></h2> <div class="outline-text-2" id="text-C207377C-B8FB-4EA5-8D82-B310C59CB4EB"><ul class="org-ul"> <li><p> <a href="https://nickwignall.com/how-to-take-feedback-without-getting-defensive/">How to Take Feedback without Getting Defensive</a> by Nick Wignall </p> <p> 在收到負面回饋和批評時,難免會有些不開心,產生一些負面情緒,可能還會有一些防禦性的行為。情緒是難以控制的,但是否要順著情緒做出行為是可以控制的。會出現負面情緒,往往是因為: </p> <blockquote> <p> 我們在被批評或收到負面回饋後感受到的情緒痛苦,大多來自於一種微妙的心態,<span class="underline">將批評視為對我們人格、核心信念或自我價值的攻擊。</span>因而產生大量痛苦情緒是合理的:如果真的有人在批評你本質的存在,你自然會感到憤怒、悲傷、恐懼或羞恥。 </p> <p> <a href="https://nickwignall.com/how-to-take-feedback-without-getting-defensive/#:~:text=Much,ashamed">Source</a> </p> </blockquote> <p> 不過作者認為,大多時候人們都不是在人身攻擊,他們只是表遠的比較笨拙,依然是出於善意的。此時,把批評看作是一次讓自己變得更好的機會,也許負面情緒就會少一些。 </p> <blockquote> <p> 但大多數情況下並非如此。<span class="underline">大多數批評與回饋——即使表達方式拙劣或缺乏同理心——最終都是出於善意。</span><span class="underline">無論你是否相信這一點,將其視為事實來處理,通常是面對批評與回饋最務實的方式。</span>為此,我的建議如下: </p> <p> <b>將批評重新框定為學習與成長的機會,而非攻擊。</b> </p> <p> 從這個角度看,無論批評多麼負面(或意圖多麼好或壞),最終都是正面的,因為它提供了讓你變得更好、成長的機會。 </p> <p> <a href="https://nickwignall.com/how-to-take-feedback-without-getting-defensive/#:~:text=But%20the,grow,-%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://calgaryvegansociety.com/2026/08/07/a-social-guide-to-being-vegan-in-a-meat-eaters-world/">A Social Guide to Being Vegan in a Meat Eaters’ World</a> by Brennan Kenneth Brown </p> <p> 素食者的社交指南。大體上就是提前詢問、告知,自己準備食物,以及記住自己可以直接說「不」。 </p></li> <li><p> <a href="https://blog.spencermagnusson.com/audio_tips_for_content_creators/">Audio Tips for Content Creators</a> by Spencer Magnusson </p> <p> 給視頻內容創作者的收音技巧。 </p> <p> See also: <a href="https://blog.spencermagnusson.com/video_tips_for_content_creators/">Video Tips for Content Creators</a> </p></li> <li><p> <a href="https://en.andros.dev/blog/70d817e8/web-design-for-terminal-browsers/">Web Design for Terminal Browsers</a> by Andros Fenollosa </p> <p> 讓你的網站在終端(命令行)的瀏覧器上也能正常閱讀的方法,和 <a href="css-naked-day-2026.html">CSS Naked Day</a> 的概念類似的,其實就是要以 HTML 优先。 </p> <p> 如果你是博客作者,你可以嘗試移除頁面的 JS 和 CSS,那基本上就是在終端的瀏覧器上的效果。如果看起來很糟糕,建議优化一下,那些用終端的瀏覧器讀者也許不會感謝你,但至少不會吐槽你。 </p></li> <li><p> <a href="https://neubrutalism.com/#">Neubrutalism</a> </p> <p> 一種頁面設計風格:新粗犷主義,網站函盖了它相關的內容,包擴定義、字體、發展歷史等。 </p> <blockquote> <p> Neubrutalism 是一種當代的網頁與 UI 設計運動,拒絕精緻的中立性,轉而採用圖形的直率:高對比的調色板、大膽的排版、明確的形狀以及顯眼的結構——尤其是輪廓與硬陰影。 </p> </blockquote></li> <li><p> <a href="https://perf.reviews/profile-guide">Reading a Performance Profile: Field Guide</a> </p> <p> 教你看懂 Chrome DevTools 的 Performance Panel。 </p></li> <li><p> <a href="https://www.bytevortex.tech/wireguard-guide-for-getting-into-homelabbing/">The not-so-short WireGuard Guide for people getting into Homelabbing.</a> by Tim Mossholder </p> <p> <a href="https://www.wireguard.com/">WireGuard</a> 是一個 VPN (虛擬私人網路) 工具,文章分享了關於它的安裝使用指南。 </p></li> <li><p> <a href="https://www.lightnote.co/">Music Theory that isn't boring</a> </p> <p> 很不錯的交互式教程,講解了聲波、和聲、音階、和弦、調性等知識。 </p> <p> via <a href="https://runjs.app/blog/music-theory-for-programmers">Music theory for programmers</a> by Luke Haas </p></li> </ul> </div> </div> <div id="outline-container-B81A7173-3EA8-4E44-BF44-A5B92DABC3D6" class="outline-2"> <h2 id="B81A7173-3EA8-4E44-BF44-A5B92DABC3D6"><a href="#B81A7173-3EA8-4E44-BF44-A5B92DABC3D6">Code Related</a></h2> <div class="outline-text-2" id="text-B81A7173-3EA8-4E44-BF44-A5B92DABC3D6"><ul class="org-ul"> <li><p> <a href="https://blog.gaborkoos.com/posts/2026-08-03-Your-JSON-Is-Lying-to-You/">Your JSON Is Lying to You</a> by Gabor Koos </p> <p> 文章整理了 JSON 的一些坑,主要 BigInt、undefined、NaN、Date 等序列化時的問題。 </p></li> <li><p> <a href="https://2026.stateofcss.com/en-US/">State of CSS 2026</a> </p> <p> 另見: <a href="https://patrickbrosset.com/articles/2026-08-07-state-of-css-2026/">State of CSS 2026</a> by Patrick </p></li> <li><p> <a href="https://www.bram.us/2026/07/30/styling-the-navigation-declarative-route-and-navigation-matching-in-css/">Styling the Navigation: Declarative Route and Navigation Matching in CSS – Bram.us</a> </p> <p> 一份 CSS 草案,可以基於頁面路由變化設置不同 CSS。 </p> <details> <summary>語法</summary> <div class="org-src-container"> <pre class="src src-css"><code><span class="org-builtin">@route</span> <span class="org-variable-name">--home</span> { <span class="org-css-property">pathname</span>: url-pattern(<span class="org-string">'/'</span>); } <span class="org-builtin">@route</span> <span class="org-variable-name">--about</span> { <span class="org-css-property">pathname</span>: url-pattern(<span class="org-string">'/about'</span>); } <span class="org-builtin">@route</span> <span class="org-variable-name">--detail</span> { <span class="org-css-property">pathname</span>: url-pattern(<span class="org-string">'/detail/:id'</span>); } <span class="org-comment-delimiter">/* </span><span class="org-comment">Going from home to about? Slide left!</span><span class="org-comment-delimiter"> */</span> <span class="org-builtin">@navigation</span> (from: <span class="org-variable-name">--home</span>) and (to: <span class="org-variable-name">--about</span>) { <span class="org-builtin">@view-transition</span> { <span class="org-css-property">navigation</span>: auto; <span class="org-css-property">types</span>: slide-all-to-left; } } <span class="org-comment-delimiter">/* </span><span class="org-comment">Going back from about to home? Slide right!</span><span class="org-comment-delimiter"> */</span> <span class="org-builtin">@navigation</span> (from: <span class="org-variable-name">--about</span>) and (to: <span class="org-variable-name">--home</span>) { <span class="org-builtin">@view-transition</span> { <span class="org-css-property">navigation</span>: auto; <span class="org-css-property">types</span>: slide-all-to-right; } } </code></pre> </div> </details></li> <li><p> <a href="https://www.joshtumath.uk/posts/2026-07-02-lets-fix-the-webs-text-size/">Talk: Let's fix the web's text size</a> by Josh Tumath </p> <p> 如果你好奇為什麼系統字體調大後,瀏覧器的字體却沒有跟著變大,這篇文章可以給你解答。 </p> <p> 在頁面上可以用下面兩個方法解决這個問題: </p> <dl class="org-dl"> <dt><a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/meta/name/text-scale">&lt;meta name="text-scale"&gt;</a></dt><dd><code>&lt;meta name="text-scale" content="scale"&gt;</code> ,目前瀏覧器支持度一般。</dd> <dt><a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/env#preferred-text-scale">preferred-text-scale</a></dt><dd><code>font-size: calc(16px * env(preferred-text-scale));</code></dd> </dl> <p> 文章裡還分享了一些頁面文字縮放的注意事項。 </p></li> <li><p> <a href="https://master.dev/blog/something-nobody-told-you-about-the-image-element-it-can-overflow/#an-image-can-overflow">Something Nobody Told You About The Image Element (It Can Overflow!)</a> by Temani Afif </p> <p> 你知道嗎,就算只有一個 <code>&lt;img&gt;</code> ,裡面的圖片也可能會溢出 <code>&lt;img&gt;</code> (<a href="https://codepen.io/t_afif/pen/xbgydXM/22b48d72cecc0e4cb01c625c66707065">例子</a>)。 </p></li> <li><p> <a href="https://ishadeed.com/article/lh-unit/">The CSS lh unit</a> by Ahmad Shadeed </p> <p> 文章介紹了 CSS 單位 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length#lh">lh</a> 的一些使用場景,其中之一是用作段落間的間距,看起來確實更合理。 </p></li> <li><p> <a href="https://lea.verou.me/blog/2026/dark-mode-toggles/">Dark mode toggles: two states are enough</a> by Lea Verou </p> <p> 明暗主題的切換應該用几種狀態? </p> <p> 大多數網站會提供自動、亮色、暗色三種讓用户自己選,但對於用户來說,如果頁面看起來沒問題,一般他們不會去改,只有當他們覺得當前主題不合適時才會去改,在這種場景下,最好讓用户點一下就能換。如果是三個狀態,用户還要糾結選哪個,會增加心智負擔。三個狀態有的也會做成下拉框,用户需要點擊兩次才能完成切換,不如點擊一次方便。 </p> <p> 文章分享了一種更好的實踐,以及三個狀態的更合適的使用場景。我的博客也基於文章的方法更新了實現。 </p></li> <li><p> <a href="https://master.dev/blog/typographic-css-tricks/">5 CSS Properties You Should Know for Better Text Designs</a> by Preethi Sam </p> <p> 文章介紹了一些文本相關的 CSS 屬性,其中 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/text-combine-upright">text-combine-upright</a> 在直書排版時挺有用的。 </p></li> <li><p> <a href="https://www.bram.us/2026/08/09/unlock-diagonal-scrolling-with-css-scroll-axis-lock-none/">Unlock Immediate Diagonal Scrolling with CSS scroll-axis-lock: none</a> by Bramus </p> <p> 如果希望滾動時不要固定滾動方向,例如希望用户可以按對角綫拖動頁面,<code>scroll-axis-lock: none</code> 可以取消滾動鎖定,不過目前瀏覧器還沒全面支持。 </p></li> <li><p> <a href="https://tylersticka.com/journal/improved-css-text-stroke/">Improved CSS Text-Stroke</a> by Tyler Sticka </p> <p> 利用 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/paint-order">paint-order</a> 、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/-webkit-text-stroke">-webkit-text-stroke</a>、<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/filter-function/drop-shadow">drop-shadow()</a> 可以實現類似文字貼紙的效果,Cool! </p> <style> @scope(.text-stroke-demo) { :scope { color: #fff; font-size: calc(1rem + 5vw); line-height: 1; filter: drop-shadow(-5px 5px 0 var(--color-taxodium-purple)); -webkit-text-stroke: .2em var(--color-taxodium-purple); paint-order: stroke fill; letter-spacing: -0.05em; transform: rotate(-3deg); } } </style> <div class="text-stroke-demo">taxodium.ink</div></li> <li><p> <a href="https://portswigger.net/research/css-the-bomb-inside-your-inbox?ck_subscriber_id=3312975854#defences">CSS:the bomb inside your inbox</a> Gareth Heyes </p> <p> 有的郵件是 HTML 格式,有人可能會利用 HTML 和 CSS 來攻擊你,文章分享了一些可能的 CSS 攻擊以及如何防禦。 </p> <p> 另一個防禦方法是用 <a href="https://useplaintext.email/">純文本郵件</a>,設置你的郵件客户端只顯示純文本,完全不渲染 HTML。 </p></li> <li><p> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inert">inert HTML global attribute - HTML | MDN</a> </p> <blockquote> <p> inert 全域屬性是一個 Boolean 屬性,表示該元素及其所有扁平樹(flat tree)後代皆變為 inert(惰性)。 inert 屬性可被添加到不應具備互動性的內容區塊。當一個元素處於 inert 狀態時,該元素及其所有後代(包括連結、按鈕和表單控制元件等通常具備互動性的元素)都會被停用,因為它們無法獲得焦點或被點擊。 inert 屬性也可以添加到應處於螢幕外或隱藏的元素。一個 inert 元素及其後代會從 Tab 鍵順序和無障礙樹中被移除。 </p> <p> <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Global_attributes/inert#:~:text=The,tree,-%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://buttondown.com/nic-steenhout/archive/accessibility-getting-dropped-in-the-process/">Accessibility getting dropped in the process</a> by Nic's accessibility thoughts </p> <p> 把無障礙加入到開發流程中,在開發、測試等階段都去關注無障礙,這樣才能確保無障礙得到足够的重視,被真正的落實。 </p></li> <li><p> <a href="https://www.youtube.com/watch?v=rqjAx7lQo04">My new favorite CSS trick</a> (4:44) by Kevin Powell </p> <p> 讓 <a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Properties/border-radius">border-radius</a> 在屏幕隨著視口 (viewport) 寬度變化而變化。 </p></li> <li><p> <a href="https://meyerweb.com/eric/thoughts/2018/06/28/what-is-the-css-ch-unit/">What is the CSS ‘ch’ Unit?</a> by Eric A. Meyer </p> <p> <code>1ch</code> 并不對應 1 個字符的寬度,它的定義是: </p> <blockquote> <p> 等於用於渲染該元素的<em>字體</em>中,<em>「0」</em>(ZERO, U+0030)字形的常用前進量。 </p> <p> <a href="https://drafts.csswg.org/css-values-3/#ch:~:text=unit-,Represents,count">Source</a> </p> </blockquote> <p> 也就是說, <code>1ch</code> 是 0 這個字符的寬度,而它的寬度也取决於字體。作者透過隨機實驗發現,在比例字體中, <code>1ch</code> 通常比平均字元寬度更寬,通常大約寬出 <b>20-30%</b> 。 </p> <blockquote> <p> 所以一般來說,如果你想要 80 個字元的欄寬,並且打算使用 ch 來設定其大小,目標大約設為 60ch 即可,除非你特別使用的字體帶有偏瘦的零。如果你同時使用多種字體,例如標題用一種,內文用另一種,那麼在設定 ch 度量並認為兩者等效時要非常小心。機率極高、極高它們是不會等效的。 </p> <p> <a href="https://meyerweb.com/eric/thoughts/2018/06/28/what-is-the-css-ch-unit/#:~:text=So%20in,be,-%2E">Source</a> </p> </blockquote> <p> 如果用在中文,那你要比較一下 0 和中文字的寬度。 </p></li> <li><p> <a href="https://blog.gaborkoos.com/posts/2026-08-14-Your-Modules-Are-Lying-to-You/">Your Modules Are Lying to You</a> by Gabor Koos </p> <p> 關於 ESM 和 CommonJS 的一些細節。文章很長,不想看也可以直接跳到 <a href="https://blog.gaborkoos.com/posts/2026-08-14-Your-Modules-Are-Lying-to-You/#practical-rules-for-module-boundaries">結論部分</a>。 </p></li> <li><p> <a href="https://jakearchibald.com/2026/css-custom-property-compute-time/">Controlling when CSS custom properties are computed</a> by Jake Archibald </p> <blockquote> <p> 註冊自訂屬性 (<a href="https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/At-rules/@property">@property</a>) 並指定語法會使其值在較早的上下文中被計算。 </p> </blockquote></li> <li><p> <a href="https://chrisburnell.com/html-can-do-that/">HTML Can Do That</a> Chris Burnell </p> <p> 分享了一些 HTML 能做的功能。 </p></li> <li><p> <a href="https://www.matuzo.at/blog/2026/html-boilerplate">My HTML boilerplate in 2026</a> by Manuel Matuzović </p> <p> 可以基於文章對自己的頁面查漏補缺,我也加了一些缺少的內容,如 <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Attributes/rel#canonical">&lt;link ref="canonical"&gt;</a>,當有多個 URL 指向同一個頁面時,這有助於搜索引擎去重。 </p></li> <li><p> <a href="https://ishadeed.com/article/flex-wrap-balance/">Balancing flex items with flex-wrap: balance</a> by Ahmad Shadeed </p> <p> 讓 Flex 布局在換行時,子元素的排列均衡,作者還分享了很多方法,其中 <code>flex-wrap: balance</code> 是最簡單的,不過目前 Firefox 還不支持。 </p></li> <li><p> <a href="https://www.carmenansio.com/articles/3d-css-guide/">3D CSS Guide: perspective, preserve-3d and translateZ</a> by Carmen Ansio </p> <p> 文章分享了如何用 CSS 實現 3D 效果,很詳盡。 </p></li> <li><p> <a href="https://sockpuppet.org/blog/2026/08/20/stop-making-tuis/">Stop Making TUIs</a> by Thomas &amp; Erin Ptacek </p> <p> 主要原因是,TUI 想實現的很多 UI 功能,在原生 UI (例如 Swift 應用) 裡是開箱即用的,而在 TUI 裡要和終端搏門很久,也未必有原生應用做得好;其次是複雜的 TUI 往往在無障礙上也做難做好,而原生在這方面也做得更好。 </p> <details> <summary>摘录</summary> <blockquote> <p> 但這就是 TUI(文本用戶界面)的問題之一:即使有像 Ratatui、Textual 或 Bubbletea 這樣優秀的框架,<span class="underline">你仍然在與終端機搏鬥,只為了漸近地接近任何原生框架開箱即用的表現。</span>捲動和捲動目標就是一個明顯的例子。拖放是另一個。文本選擇——當你使用帶內信令來繪製視窗邊界時,這會變得很棘手!多個懸浮視窗。而這些都還沒提到圖像處理。 </p> <p> 你可以花一個小時在 TUI 框架中做出許多標準控制項的體面版本:日期選擇器、加密文本框、進度條、文本編輯器。但其中大多數都不會比同類組件的系統版本好,而且如果不投入更多工作,它們的組合效果也不理想。 </p> <p> <span class="underline">這一切在原生 UI 中都是開箱即用的。</span> </p> <p> <a href="https://sockpuppet.org/blog/2026/08/20/stop-making-tuis/#:~:text=apps%2E-,But,UI">Source</a> </p> </blockquote> <blockquote> <p> 人們會告訴你文字使用者介面(TUI)是具備無障礙性的。 </p> <p> 這個論點的問題在於它很 <a href="https://www.osnews.com/story/144892/the-text-mode-lie-why-modern-tuis-are-a-nightmare-for-accessibility/">可能是錯誤的</a>。我對這個論點保持謹慎,因為我並非無障礙功能的使用者。我只能根據從事無障礙工作的人員經驗來判斷。<a href="https://www.youtube.com/watch?v=jdF0TkZpMvk&amp;t=991s">就像這位講者</a> 描述螢幕閱讀器如何逐行讀取 TUI「介面框架」的所有更新;井字號、井字號、井字號、井字號、橫線、橫線。看起來很糟! </p> <p> <a href="https://sockpuppet.org/blog/2026/08/20/stop-making-tuis/#:~:text=People%20will,bad">Source</a> </p> </blockquote> </details></li> <li><p> <a href="https://shkspr.mobi/blog/2026/08/a-simple-copy-this-code-button-in-javascript/">A simple “copy this code” button in JavaScript</a> by Terence Eden </p> <p> 有個複製按鈕會方便複製代碼。文章還分享了一些 HTML 技巧。 </p></li> </ul> </div> </div> <div id="outline-container-997465C9-195D-4D33-A9FB-5E4F0ABD0AE5" class="outline-2"> <h2 id="997465C9-195D-4D33-A9FB-5E4F0ABD0AE5"><a href="#997465C9-195D-4D33-A9FB-5E4F0ABD0AE5">AI Related</a></h2> <div class="outline-text-2" id="text-997465C9-195D-4D33-A9FB-5E4F0ABD0AE5"><p> ☞ <a href="57.html#A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9">我想跳過 AI 部分</a> </p> <ul class="org-ul"> <li><p> <a href="https://shkspr.mobi/blog/2026/08/metadata-for-ai-generated-outputs/">Metadata for AI Generated Outputs</a> by Terence Eden </p> <p> 文章討論了如何去標記頁面上的 AI 內容,例如用 <code>lang="ai"</code> 、用 <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/samp">&lt;samp&gt;</a> 元素、自定義元素如 <code>&lt;ai-generated&gt;</code> 。 </p></li> <li><p> <a href="https://journal.james-zhan.com/ai-writing/">Stop Trying to Distinguish AI-Generated Writing From Human Writing Because You Can’t</a> by James Zhan </p> <p> 現在有的人對 AI 有些魔怔了,寫的好的說是 AI 寫的,寫的不好的也說是 AI 寫的,還要找出各種用 AI 寫的特征佐証自己。 </p> <p> 作者的建議是別去在意,不要為了不像 AI 而讓自己的文字面目全非,晦澀難懂: </p> <blockquote> <p> 而且,為什麼「更難閱讀」他媽的是件好事?更難閱讀怎麼就代表是人類寫的或是好的寫作?在我聽來,那是因為那位人類作者需要提升寫作技巧,好讓他們的作品更容易理解。博士論文通常因為過度且不必要地使用艱深詞彙和複雜句式而難以閱讀——在我看來,這是一個「缺陷」而非「特色」。<span class="underline">如果你寫的東西是要給人看的、是為了交流,那就用簡單易懂的方式寫出來;</span><span class="underline">不要故意弄得晦澀難懂。</span><span class="underline">僅僅因為你使用了沒人平時會用的詞彙,並不代表你更有學問、更有文化或更聰明。</span> </p> <p> <a href="https://journal.james-zhan.com/ai-writing/#:~:text=But%20also,uses">Source</a> </p> </blockquote> <p> 如果你是讀者,也不用太在意是不是 AI 寫的,如果你認為文章寫的不好,不愛看也不用勉強去看。 </p> <p> 我不喜歡看 AI 生成的文字,因為大多都很囉嗦,讀著也乏味,也有一些生成得好的,我讀著也分辩不出來,直到文章最後作者主動披露我才知道,說實話會有點被惡心到。用 AI 生成,中間就隔了一层 AI 的翻譯,再也不是和作者直接對話了,更像是和虛空對話。 </p></li> <li><p> <a href="https://lists.gnu.org/archive/html/emacs-devel/2026-07/msg00318.html">LLM Commit in upstream `master`?!</a> </p> <p> Emacs 的提交信息裡出現了 LLM 引起的一些討論。目前 Emacs 中是禁止用 LLM 生成的代碼的,因為會存在版權問題,但對提交信息的要求還有些模糊。事件的經過是有開發者在開發時利用 LLM 輔助,代碼是自己寫的,只是提交信息裡 LLM 擅自加上了它的簽名 (Co-authored by Claude Fable 5),在一些討論後,負責人通過強制推送移除了相關提交信息。 </p> <p> 討論串整體挺友好的,大家針對具體問題討論,快速解决問題,而不會有很多偏离主題的討論。再次推薦 Richard Stallman 寫的 <a href="https://www.gnu.org/philosophy/kind-communication.html">GNU Kind Communications Guidelines</a>。 </p></li> <li><p> <a href="https://www.aihero.dev/a-complete-guide-to-agents-md">A Complete Guide To AGENTS.md</a> by Matt Pocock </p> <p> 理想的 <code>AGENTS.md</code> 檔案應盡可能精簡,包含以下內容就差不多了: </p> <ul class="org-ul"> <li>用一句話描述項目</li> <li>描述使用的包管理器,npm、corepack⋯⋯,避免它用錯了</li> <li>構建相關的指令</li> </ul> <p> 其他內容采用 <b>漸進式揭露</b> ,把內容拆分到不同文件中,在需要時提示 agent 去讀,例如「For TypeScript conventions, see docs/TYPESCRIPT.md」。 </p></li> <li><p> <a href="https://wmyskxz.cn/wiki/whats_ai">AI 是怎么回事:开场白&amp;目录</a> by 我没有三颗心脏 </p> <p> 一個系列文章,拆解 AI 是怎么回事。 </p> <blockquote> <p> 这个系列不是教程。我不是老师,我只是比你早走了几步的探索者。更准确地说,这是一本探索笔记——“我在研究 AI 的过程中,发现了这些有趣的东西,想分享给你。” </p> <p> 我给自己定了一个规矩:每一个概念,都要拆到你能在纸上算出来为止。不跳步骤,不留黑箱。 </p> </blockquote> <p> 作者也寫 <a href="https://wmyskxz.cn/wiki/tags/%E4%BB%A3%E7%A0%81%E4%B9%8B%E5%A4%96%E5%91%A8%E5%88%8A/">周刊</a>,感興趣也可以訂閱。 </p></li> <li><p> <a href="https://shkspr.mobi/blog/2026/08/asymmetric-agents/">Asymmetric Agents</a> by Terence Eden </p> <p> 所謂的 AI 代理人承擔了很多角色:僕人、奴隸、溫順數位夥伴、管家、秘書⋯⋯以及隨機性笨蛋。 </p></li> <li><p> <a href="https://www.ajwaxman.com/writing/software-for-one">Software for One</a> by Adam Waxman </p> <p> AI 開啟了個人軟件的時代,每個人都可以實現滿足自己獨特需求的軟件,以後開發門檻更低時,肯定會有更多人自己構建自己的軟件。 </p></li> <li><p> <a href="https://kig.re/2026/08/19/condensing-twenty-years-of-wisdom-in-one-markdown.html#light">Condensing Twenty Years of Wisdom in One Markdown</a> by Konstantin Gredeskoul </p> <blockquote> <p> 如果你無法審查輸出,就必須限制輸入。就這樣。這就是全部技巧。你把判斷前移,從程式碼審查移到代理在寫下一行程式碼前所閱讀的上下文。 </p> <p> <a href="https://kig.re/2026/08/19/condensing-twenty-years-of-wisdom-in-one-markdown.html#light:~:text=Down-,If,line">Source</a> </p> </blockquote> <p> 文中還有作者整理的「<a href="https://kig.re/2026/08/19/condensing-twenty-years-of-wisdom-in-one-markdown.html#my-postgresql-best-practices---for-the-ai-agents">PostgreSQL 最佳實踐——面向 AI 智能體</a>」。 </p></li> <li><p> <a href="https://mastodon.social/@kottke/117151078952883396">kottke.org: "Meat proxy (noun): “A person who forwards AI-gene…" - Mastodon</a> </p> <blockquote> <p> 肉身代理 (meat proxy):「指在未閱讀、理解或驗證的情況下,直接轉發 AI 生成的文本、程式碼或其他輸出的人。此人的角色僅作為 AI 系統與最終接收者之間的傳遞中介。」 </p> </blockquote></li> <li><p> <a href="https://www.gatesnotes.com/home/home-page-topic/reader/a-turbulent-ai-era-and-critical-choices-to-make">The turbulent AI era is here. The choices we make now are critical.</a> by Bill Gates </p> <p> Bill Gates 認為 AI 有三大風險: </p> <ul class="org-ul"> <li>許多工作將永遠消失。<small>(AI 會取代很多工作,却沒有創造更多工作,AI 的帯來的收益只集中在少數人手中)</small></li> <li>人工智慧將賦予人類(甚至可能是人工智慧本身)更多造成傷害的能力。<small>(AI 是双刃劍,可以更好的助人,但帮助的也可能是惡人)</small></li> <li>人工智慧可能會阻礙孩子的發展,並取代人際關係。<small>(和 AI 相处是沒有摩擦的,但和人相处是有的,而正是在這些摩擦裡,人學會了如何其他人相处; AI 也會讓人更少思考)</small></li> </ul> <p> 儘管有風險,但他也同意 AI 是很有用的,但需要確保能惠及所有人,而不是少數人,為此,他認為: </p> <ul class="org-ul"> <li>國家,以及國家之間,需要建立一套全新的過渡管理系統</li> <li>刻意為人類保留一些工作</li> <li>重新平衡我們對勞動力和資本的徵稅方式 <small>(應該對 AI 代幣和機器人徵稅)</small></li> </ul></li> <li><p> <a href="https://anil.recoil.org/notes/rumour-is-the-exploit">Just a rumour of a bug is enough to find a security exploit these days</a> by Anil Madhavapeddy </p> <p> LLM 讓發現和攻擊漏洞變得更容易了,當網上出現漏洞相關消息時,就馬上會有機器人開始嘗試攻擊。 </p> <blockquote> <p> 在與漏洞報告者就可能的修復方案進行一番來回溝通後,我悄悄地公開開啟了 cohttp#1145,以吸引更多人關注。這通常需要幾天的時間,且在一兩週內發布版本是合理的。然而,在大約十分鐘內(!),這個網站就開始接到針對百分比編碼遍歷序列的探測,這表明自動化監視程式正在密切關注公共存儲庫。 </p> <p> <a href="https://anil.recoil.org/notes/rumour-is-the-exploit#:~:text=After%20some,repositories">Source</a> </p> </blockquote> <blockquote> <p> 傳統的安全流程涉及對漏洞進行禁運,並假設細節的保密性能夠保護用戶。然而,如今代理程式只需要一個大致的搜尋方向,就能進行自己的研究。 Fang 等人發現,當給予 CVE 描述時,他們的 GPT-4 代理程式在 15 個漏洞基準測試中成功利用了 87%,而如果沒有該描述,成功率僅為 7%。 </p> <p> <a href="https://anil.recoil.org/notes/rumour-is-the-exploit#:~:text=Conventional,7%25%2E">Source</a> </p> </blockquote> <p> 作者提出了三個措施,但感覺還是任重道遠。 </p></li> <li><p> <a href="https://larsfaye.com/articles/ai-coding-will-prevent-expertise?ck_subscriber_id=3312975854#my-ai-assistance-checklist">AI Coding will Prevent Expertise</a> by Lars Faye </p> <blockquote> <p> <b>我的 AI 辅助检查清单:</b> </p> <ul class="org-ul"> <li>如果我没有 AI 工具可用,我还能完成这项任务吗?</li> <li>我是在利用模型加深理解,还是为了快速得到答案?</li> <li>如果我必须审查并验证生成的输出,我能充分解释其中发生了什么吗?</li> <li>如果我在学习一个新概念,我是否做了充分的研究,知道该提出哪些正确的问题?</li> <li>我是否已通过其他方法(阅读文档、标准搜索工具、StackOverflow、Reddit)交叉引用并验证了这种方法?</li> <li>这是一个真正机械重复、已被执行过上百次的任务,还是过程中需要高层决策的任务 ?</li> </ul> <p> [&hellip;] </p> <p> 关键在于辨别认知债务与认知卸载之间的差异:认知债务是放弃你的判断和决策 ,而认知卸载则是委托机械性或繁琐的任务 。 </p> <p> <a href="https://larsfaye.com/articles/ai-coding-will-prevent-expertise?ck_subscriber_id=3312975854#my-ai-assistance-checklist:~:text=My%20AI,tedious%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://lucumr.pocoo.org/2026/8/24/anger-anxiety-agency/">Anger, Anxiety and Agency</a> by Armin Ronacher </p> <blockquote> <p> 我不知道這個產業的未來會是什麼樣子,也不知道誰會從中受益,我想我並不是唯一有此疑慮的人。然而,我只能呼籲所有感到憤怒、尋找反派的人,改為保持好奇。保持足夠的好奇去了解正在改變的事物,保持足夠的興奮去嘗試它。然後,從我們學到的知識中,獲得判斷何時需要抵抗以及將抵抗指向何處的權利。 </p> <p> <a href="https://lucumr.pocoo.org/2026/8/24/anger-anxiety-agency/#:~:text=now%2E-,I,direct%20it">Source</a> </p> </blockquote></li> <li><p> <a href="https://simonwillison.net/2026/Aug/22/more-than-just-code-review/">More than just code review</a> </p> <blockquote> <p> 善用程式碼代理所需的關鍵技能,是能夠有信心地指示它們如何進行修改,接著也能有信心地確認這些修改已以正確的方式套用。 </p> <p> 有時候,這包括審查它們所撰寫的每一行程式碼,但也有其他方式可以達成這個目標。逐行查看程式碼,從來都不是驗證軟體變更最有效的方法。 </p> </blockquote></li> <li><p> <a href="https://filiph.net/text/2026-08-21-11am-no-we-haven't-seen-this-before.html">“AI will only do the drudging work,” they said</a> by Filip Hráček </p> <blockquote> <p> 我們從未見過這種情況,而如果 AI 公司實現了他們所 <a href="https://openai.com/charter/">宣稱的目標</a>,我們將不得不面對這樣的局面:人類基本上變得毫無用處。而這同樣會造成前所未有的情況。人類天生就渴望發揮作用。這也是人變老之所以困難的一個重要原因——你可能見過某位年事已高的爺爺,明明以他脆弱的身體狀況根本不適合幫忙,卻還是試圖插手某件事;當年輕人堅持表示不需要他的幫助時,他又因此感到難過。儘管人們總是談論著只想坐下來欣賞風景,或整天照料盆栽,但我們人類只能這樣過一陣子,很快就會渴望做點什麼,任何能帶來實際影響的事。 </p> <p> <a href="https://filiph.net/text/2026-08-21-11am-no-we-haven't-seen-this-before.html#:~:text=today%2E-,We,impactful">Source</a> </p> </blockquote></li> <li><p> <a href="https://chattjb.org/about">ChatTJB</a> </p> <blockquote> <p> ChatTJB 是新世代的單一操作者大型語言體驗(Large Language Experience, LLE),建構於以人類為根基的推理層之上。不同於從機率模型中取樣,每個查詢都會透過專有的生物推理基底加以解決,提供完全可解讀、非合成,且源頭可究責的回應。 </p> <p> 實際運作方式:你提出問題,一位名叫 Tucker 的人會閱讀問題、思考,並在醒著且有動力時回覆。 </p> </blockquote></li> <li><p> <a href="https://vickiboykis.com/2026/08/12/write-for-people/?ck_subscriber_id=3312975854">Write for people</a> by Vicki Boykis </p> <blockquote> <p> 但當機器針對不同理解程度的人,同時生成專業術語和長篇大論的解釋時,情況就開始變得棘手了。「更新依賴項」(Bumped dependencies)很好,大家都知道我們在更新套件。但「作為持續維護實務的一部分,執行了預定的依賴項刷新。在整個依賴關係圖中(包括適用的傳遞依賴項)應用了次要和補丁級別的版本提升」就很糟糕。 </p> <p> 你在生成它時沒讀過,我閱讀時也不會讀。我們正在生成一堆形容詞和副詞並扔給對方。這些輸出是一個基於整個網際網路技術文件語料庫訓練的模型結果,其訓練目標是完成句子,而不是為了讓人理解。 </p> <p> <a href="https://vickiboykis.com/2026/08/12/write-for-people/?ck_subscriber_id=3312975854#:~:text=But%20where,human%20understanding">Source</a> </p> </blockquote></li> <li><p> <a href="https://emilkowal.ski/ui/friction-as-a-feature">Friction as a Feature</a> by Emil Kowalski </p> <blockquote> <p> <span class="underline">但阻力一直在悄悄扮演第二個角色:它讓我們在動手打造之前先思考。</span> </p> <p> 在 AI 出現之前,撰寫程式碼的成本很高,因此建造成本為哪些想法能夠存活到真正被實現設下了更高的門檻。<span class="underline">你必須有所取捨,因為投入的心力本身就迫使你判斷什麼值得打造。</span> </p> <p> <a href="https://emilkowal.ski/ui/friction-as-a-feature#:~:text=But,making">Source</a> </p> </blockquote> <blockquote> <p> 這就是為什麼人們不喜歡近期大量出現的 vibe-coded 應用程式和 UI 函式庫。<span class="underline">它們背後很少經過深思熟慮,因為沒有阻力迫使人們這麼做。</span> </p> <p> 它們沒有設計感,只是存在著。 </p> <p> <a href="https://emilkowal.ski/ui/friction-as-a-feature#:~:text=That%E2%80%99s%20why,exist">Source</a> </p> </blockquote></li> <li><p> <a href="https://zed.dev/blog/software-craftsmanship-in-the-era-of-vibes?ck_subscriber_id=3312975854">The Case for Software Craftsmanship in the Era of Vibes</a> by Nathan Sobo </p> <blockquote> <p> 那麼,我們該如何打造優良的軟體?方法可能不只一種,但我可以告訴你我的做法。這需要你對使用者體驗承擔責任。 </p> <p> <a href="https://zed.dev/blog/software-craftsmanship-in-the-era-of-vibes?ck_subscriber_id=3312975854#:~:text=So%20how%20do%20we%20build%20good%20software%3F%20There%20are%20probably%20multiple%20ways%2C%20but%20I%27ll%20tell%20you%20mine%2E%20It%20requires%20taking%20ownership%20of%20the%20user%27s%20experience">Source</a> </p> </blockquote></li> <li><p> <a href="https://blog.florianherrengt.com/ai-removing-middle-class-software-engineering.html?ck_subscriber_id=3312975854">AI is removing the middle class of software engineering</a> by </p> <blockquote> <p> 你需要貢獻出超越單純給予代理一個提示所能獲得的價值。 </p> <p> 如果你缺乏評估 LLM 建議所需的判斷力,那麼要求更多判斷並不能解決問題。 </p> <p> 到了某個時候,仍然必須有人知道究竟發生了什麼事。而那就是團隊中最有價值的人。 </p> <p> <a href="https://blog.florianherrengt.com/ai-removing-middle-class-software-engineering.html?ck_subscriber_id=3312975854#:~:text=You%20need,team%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://projectbrain.md/">BRAIN.md</a> </p> <blockquote> <p> An open, agent-agnostic <span class="underline">standard</span> for capturing a project's durable knowledge as plain Markdown — read and written through one small CLI. It lives in your repo and travels across agents, machines, and models. </p> </blockquote> <blockquote> <p> <code>AGENTS.md</code> usually tells coding agents how to work in the repository. <code>BRAIN.md</code> points to the project brain: structured knowledge about why decisions were made, what is currently true, and what context should guide future work. </p> </blockquote></li> <li><p> <a href="https://github.com/dmno-dev/varlock">dmno-dev/varlock</a> </p> <blockquote> <p> <span class="underline">AI-safe .env files</span>: Schemas for agents, Secrets for humans. </p> </blockquote></li> <li><p> <a href="https://www.docker.com/products/docker-sandboxes/">Docker Sandboxes</a> </p> <blockquote> <p> Run AI agents safely in local <span class="underline">sandboxes</span>. </p> </blockquote></li> <li><p> <a href="https://github.com/deepseek-ai/deepseek-harness">deepseek-ai/deepseek-harness</a> </p> <blockquote> <p> DeepSeek Harness (dsh) is an open-source agent harness developed by DeepSeek AI. </p> <p> It uses an architecture where <b>everything is a plugin</b>, and is powered by <a href="https://github.com/cordiverse/cordis">Cordis</a>, whose design is described in <a href="https://github.com/cordiverse/paper">A Programming Paradigm for Spatiotemporal Composability</a>. </p> </blockquote> <p> 另見: </p> <ul class="org-ul"> <li><a href="https://digua.moe/posts/20260813-dsh.html">内测结束了,聊聊 DeepSeek Harness 的使用体验</a> by 地瓜</li> <li><a href="https://github.com/awesome-dsh-plugin/awesome-dsh-plugin">awesome-dsh-plugin/awesome-dsh-plugin</a></li> </ul></li> <li><p> <a href="https://anywear.decart.ai/">Anywear — Try clothes on, anywhere.</a> </p> <blockquote> <p> Drag any clothing item from any online store and see it on you, instantly. </p> </blockquote> <p> 直播和網上買衣服的場景應該很有用。 </p></li> <li><p> <a href="https://github.com/modem-dev/hunk">modem-dev/hunk</a> </p> <blockquote> <p> Review-first terminal <span class="underline">diff viewer</span> for agentic coders. </p> </blockquote></li> <li><p> <a href="https://github.com/vectorize-io/hindsight">vectorize-io/hindsight</a> </p> <blockquote> <p> Hindsight: Agent <span class="underline">Memory</span> That Learns. </p> </blockquote></li> <li><p> <a href="https://github.com/yetone/cumora">yetone/cumora</a> </p> <blockquote> <p> Where <span class="underline">agent teams</span> gather. Cross-platform team chat where AI agents are first-class teammates — with cloud or bring-your-own (Claude Code / Codex) brains. </p> </blockquote></li> <li><p> <a href="https://github.com/h4ckf0r0day/obscura">h4ckf0r0day/obscura</a> </p> <blockquote> <p> Obscura is a <span class="underline">headless browser engine</span> written in Rust, built for <span class="underline">web scraping and AI agent automation</span>. It runs real JavaScript via V8, supports the Chrome DevTools Protocol, and acts as <span class="underline">a drop-in replacement for headless Chrome with Puppeteer and Playwright</span>. </p> </blockquote></li> <li><p> <a href="https://github.com/trailhq/Graft#the-problem">trailhq/Graft</a> </p> <blockquote> <p> Turbocharge Claude Code, Cursor, Codex, Gemini &amp; every coding agent: faster, cheaper, with <span class="underline">contextual understanding specific to your codebase</span>. </p> </blockquote></li> </ul> </div> </div> <div id="outline-container-A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9" class="outline-2"> <h2 id="A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9"><a href="#A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9">Tool | Library</a></h2> <div class="outline-text-2" id="text-A95FABDC-EB43-4D71-88B1-4A4DDB37D6E9"><ul class="org-ul"> <li><p> <a href="https://zoom.earth/">Zoom Earth</a> </p> <p> 一個不錯的氣象工具。 </p></li> <li><p> <a href="https://dither.neato.fun/">Dither — Vector Dither Tool</a> </p> <p> 不錯的圖像 Dither 工具。 </p></li> <li><p> <a href="https://typ.ing/text">typ.ing</a> </p> <p> 一個不錯的英文打字練習網站,練習類型很多,例如 <a href="https://typ.ing/text/keyboard-yoga">keyboard yoga</a>。選擇菜單也是通過打字完成的,有趣的交互。 </p></li> <li><p> <a href="https://recipetables.com/">RecipeTables</a> </p> <blockquote> <p> 將任何食譜轉換成一目了然的表格,並保存所有製作過的食譜。 </p> </blockquote> <p> 用表格呈現食譜確實很直觀! </p></li> <li><p> <a href="https://everydaymactools.com/punchcard/">Punchcard: clock out, take the receipt</a> </p> <blockquote> <p> Punchcard 駐留在您的選單列 (menu bar) 中,靜靜地記錄您的時間流向。在結束營業時,它會為您列印一張收據:逐項列出、蓋章並準備好寄出。沒有專案,無需記住計時器,也不必建立帳戶。 </p> </blockquote> <p> 用收據的形式呈現展幕使用時間,挺有創意。 </p></li> <li><p> <a href="https://github.com/davatron5000/microlighter">davatron5000/microlighter</a> </p> <blockquote> <p> 一個專為網頁設計、 <span class="underline">極小且無依賴項的語法高亮工具</span> 。 </p> <p> MicroLighter 使用 <a href="https://developer.mozilla.org/en-US/docs/Web/API/CSS_Custom_Highlight_API">CSS Custom Highlight API</a> 和 TextMate 語法規則。<span class="underline">它在不為每個標記添加 &lt;span&gt; 標籤的情況下高亮代碼,因此您的標記語言能保持整潔且易於編輯。</span> </p> </blockquote></li> <li><p> <a href="https://www.csstypestudio.com/">CSS Type Studio</a> </p> <p> 可以探索各種 CSS 字體屬性的作用。 </p></li> <li><p> <a href="https://github.com/inokawa/virtua">inokawa/virtua</a> </p> <blockquote> <p> A zero-config, fast and small (~3kB) <span class="underline">virtual list</span> (and grid) component for React, Vue, Solid, Svelte and Angular. </p> </blockquote></li> <li><p> <a href="https://github.com/jespervos/blossom-carousel">jespervos/blossom-carousel</a> </p> <blockquote> <p> Native-first <span class="underline">carousel</span> enhanced with drag support for pointer devices. </p> </blockquote></li> <li><p> <a href="https://github.com/yt-dlp/yt-dlp">yt-dlp/yt-dlp</a> </p> <blockquote> <p> A feature-rich command-line audio/video downloader. </p> </blockquote> <p> 用來下載 YouTube,Bilibili 上的視頻、音頻。 </p></li> <li><p> <a href="https://github.com/firecrawl/anydoc">firecrawl/anydoc</a> </p> <blockquote> <p> <span class="underline">Convert Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV, and PDF to clean Markdown.</span> Built in Rust, with Node.js and Python bindings. </p> </blockquote></li> <li><p> <a href="https://github.com/westpoint-io/lazyrsync">westpoint-io/lazyrsync</a> </p> <blockquote> <p> A friendly <span class="underline">terminal UI for rsync</span>, written in Rust. </p> </blockquote></li> <li><p> <a href="https://gingham.ishamsu.com/">gingham</a> </p> <p> 一個製作格子圖案的網站。 </p></li> <li><p> <a href="https://datablur.app/?ref=DenseDiscovery-403">DataBlur: Blur Your Screen &amp; Hide Sensitive Data</a> </p> <p> 一個隠藏敏感信息的瀏覧器插件。 </p></li> <li><p> <a href="https://github.com/anypost/emailmd">anypost/emailmd</a> </p> <blockquote> <p> emailmd <span class="underline">converts markdown into responsive, email-safe HTML</span> that works across Gmail, Outlook, Apple Mail, Yahoo, and every other client. </p> </blockquote></li> <li><p> <a href="https://github.com/simoneamico-ux-dev/veil">simoneamico-ux-dev/veil</a> </p> <blockquote> <p> <span class="underline">Dark mode PDFs</span> without destroying your images. </p> </blockquote> <blockquote> <p> veil uses PDF.js to render each page, then applies CSS inversion for the dark background. A second canvas restores the original image pixels over the inverted regions, so photos, charts, and diagrams keep their true colors. </p> </blockquote></li> <li><p> <a href="https://www.whocanuse.com/">WhoCanUse</a> </p> <p> 選擇一個顏色,了解不同視障人士會看到什麼顏色。 </p></li> </ul> </div> </div> <div id="outline-container-1649E019-F2F5-4946-BCAE-3EAAF911614B" class="outline-2"> <h2 id="1649E019-F2F5-4946-BCAE-3EAAF911614B"><a href="#1649E019-F2F5-4946-BCAE-3EAAF911614B">Emacs</a></h2> <div class="outline-text-2" id="text-1649E019-F2F5-4946-BCAE-3EAAF911614B"><ul class="org-ul"> <li><p> <a href="https://en.andros.dev/blog/e0e00b4b/eww-the-emacs-browser-you-underestimate/">EWW, the Emacs browser you underestimate</a> by Andros Fenollosa </p> <p> EWW 是 Emacs 內置的瀏覧器,完全用 Emacs Lisp 編寫,將 HTML 轉換成 Emacs 的中的文本格式。 EWW 不支持 JS 和 CSS,如果你的網站用 EWW 打開能正常瀏覧,說明你的網站 HTML 寫得比較標準,文章也分享了如何編寫 HTML 使其能在 EWW 中表現更好。 </p></li> <li><p> <a href="https://protesilaos.com/codelog/2026-08-05-emacs-speedbar-file-explorer/">Emacs: the ‘speedbar’ built-in file explorer (Emacs 31)</a> by Protesilaos </p> <p> speedbar 可以充當目录󠄃,也可以充當代碼文件的索引。 </p></li> <li><p> <a href="https://protesilaos.com/codelog/2026-08-13-emacs-themes-solarized-wallpapers/">About Emacs themes, Solarized, and wallpapers</a> by Protesilaos </p> <blockquote> <p> 主題是個人選擇,影響個人需求的因素很多。請記住,可讀性也取決於字體大小、環境光以及你使用的螢幕亮度。 </p> <p> [&hellip;] </p> <p> 不過一般來說,人們常忘記調整螢幕亮度,所以請務必調整,並利用環境光來避免眼睛疲勞。 </p> <p> <a href="https://protesilaos.com/codelog/2026-08-13-emacs-themes-solarized-wallpapers/#:~:text=I%20should,eyes">Source</a> </p> </blockquote></li> <li><a href="https://protesilaos.com/codelog/2026-08-09-emacs-expand-abbrev-mode-definitions-conditionally/">Emacs: conditionally expand abbrev-mode definitions</a> by Protesilaos</li> <li><a href="https://protesilaos.com/codelog/2026-08-29-emacs-completion-preview-mode/">Emacs: completion-preview-mode and the Completions buffer (Emacs 31)</a> by Protesilaos</li> <li><p> <a href="https://taonaw.com/2026/08/05/emacs-config-gems-part.html">Emacs Config Gems - Part 3</a> by The Art Of Not Asking Why </p> <p> <a href="https://taonaw.com/2026/08/09/emacs-config-gems-part.html">Part 4</a>、<a href="https://taonaw.com/2026/08/29/emacs-config-gems-part.html">Part 5</a> </p></li> <li><p> <a href="https://chrismaiorana.com/emacs-pastoral/">The Emacs pastoral tradition</a> by Chris </p> <blockquote> <p> 你可能已經注意到,Emacs 使用者往往和其他電腦使用者不太一樣。雖然你大概可以確定,使用 vim 或 VSCode 的人多半是開發人員,或從事軟體工程、DevOps 或系統管理工作,但 Emacs 使用者幾乎可能來自各行各業。 </p> <p> 一般軟體通常具備一些基本要素——例如使用者、功能、文件和最佳實務——但 Emacs 擁有一套傳統 。 </p> <p> <a href="https://chrismaiorana.com/emacs-pastoral/#:~:text=You%E2%80%99ve,tradition">Source</a> </p> </blockquote></li> <li><p> <a href="https://chrismaiorana.com/emacs-ffap/">Using ffap to jump to file includes in Emacs</a> by Chris </p> <p> 利用 <code>ffap</code> 可以方便地找到 <code>#+includes</code> 的文件。 </p></li> <li><p> <a href="https://www.reddit.com/r/emacs/comments/1vkufc3/a_warning_for_new_emacs_users/">A warning for new Emacs users</a> </p> <blockquote> <p> Don't get confused by the word "sexp". That's how Emacs gets young people in. </p> <p> They come looking for sex, get sucked into endlessly configuring their workflow, and eventually forget what they came for in the first place. </p> </blockquote> <p> (via <a href="https://irreal.org/blog/?p=14010">Some Thursday Humor | Irreal</a>) </p></li> <li><a href="https://ray-on-emacs.blogspot.com/2026/08/emacs-numbered-backup-strategy.html">Ray on Emacs: Emacs Numbered Backup Strategy</a></li> <li><p> <a href="https://www.reddit.com/r/emacs/comments/1vjcac1/how_to_learn_emacs_like_for_real/">How to learn Emacs, like, for real</a> </p> <blockquote> <p> 所以總結來說,<span class="underline">真正學會 Emacs 的方法,就是想辦法在裡面完成你想做的事,而且要用你想要的方式來完成。</span>你就是在這個過程中學會的。很意外吧!這也是為什麼每個人的學習旅程都不一樣,因為每個人想做的事都不同。不過老實說,學習 Emacs 超級有趣,因為 Emacs 是在賦予你能力,而不是限制你;這讓它成為最令人滿足、也最有趣的工具之一。它可能會成為我一輩子都會使用的工具。 </p> <p> <a href="https://www.reddit.com/r/emacs/comments/1vjcac1/how_to_learn_emacs_like_for_real/#:~:text=So%20in,me">Source</a> </p> </blockquote></li> <li><p> <a href="https://codeberg.org/jamesendreshowell/gists/src/branch/master/jeh-transpose.el">gists/jeh-transpose.el</a> by jamesendreshowell </p> <blockquote> <p> Transpose characters or words, reversibly, by not moving point. </p> </blockquote></li> <li><a href="https://www.youtube.com/watch?v=IGQbp0JHi_I">How Prot Organizes Knowledge, Projects, and Tasks in Emacs</a> (37:52) by linkarzu</li> <li><p> <a href="https://corwin.bru.st/2026-08-16-emacs-card-games-on-melpa/">Emacs Card Games on MELPA</a> </p> <p> 還能在 Emacs 裡玩紙牌遊戲! </p></li> <li><a href="https://thanosapollo.org/posts/emacs-agentic-workflow/">My Emacs Agentic Workflow</a> by Thanos Apollo</li> <li><a href="https://www.jamescherti.com/emacs-spell-checker-flyspell-ispell-aspell/">Emacs Spell Checker: Configuring Flyspell, Ispell, and Aspell to Minimize False Positives in Source Code and Prose</a> by James Cherti</li> <li><p> <a href="https://www.jamescherti.com/emacs-why-use-setq-instead-setopt/">Emacs startup: Why setq beats setopt, customize-set-variable, and use-package :custom?</a> by James Cherti </p> <p> See also: <a href="https://irreal.org/blog/?p=14034">Setq And The Others</a> by Irreal </p></li> <li><a href="https://www.jamescherti.com/emacs-fix-org-mode-copy-paste-yank-bleed/">Emacs: Copy-paste without org-mode or markdown-mode formatting bleeding into other buffers</a> by James Cherti</li> <li><p> <a href="https://www.jamescherti.com/emacs-eglot-performance/">Configuring Emacs Eglot for Optimal Performance</a> by James Cherti </p> <p> 抄了几個配置。 </p></li> <li><p> <a href="https://www.jamescherti.com/emacs-scrolling-better-performance-usability/">Configuring Emacs Scrolling for Better Usability</a> by James Cherti </p> <p> See also: <a href="https://irreal.org/blog/?p=14042">Tweaking Emacs Scrolling Behavior</a> by Irreal </p> <p> 因為在 Emacs 裡禁用了鼠標,我也很少一直按行滾動,我都沒太發現不對的地方,文中有的配置確實能帯來更好的使用體驗。 </p></li> <li><a href="https://www.jamescherti.com/emacs-dired-configuration/">Fixing Emacs Dired Defaults: 13 Settings for Better File Management</a> by James Cherti</li> <li><p> <a href="https://monadicsheep.org/blog/an-introduction-to-canvas-in-emacs.html">An Introduction to Canvas in GNU Emacs</a> by Divya </p> <p> Cool,給 Emacs 帯來了全新的圖形能力,我大概不會用到,但以後應該會有一些基於它的有趣的擴展。 </p></li> <li><a href="https://en.andros.dev/blog/5fcf45a2/a-year-of-org-social-my-social-network/">A year of Org Social, my social network</a> by Andros Fenollosa</li> <li><a href="https://www.masteringemacs.org/article/whats-new-in-emacs-311">What's New in Emacs 31.1?</a> by Mickey Petersen</li> <li><a href="https://rahuljuliato.com/posts/markdown-ts-mode-emacs-31">An unofficial guide to markdown-ts-mode on Emacs 31</a> by Rahul</li> <li><p> <a href="https://github.com/KallDrexx/emacs-zero-to-ide-journey">KallDrexx/emacs-zero-to-ide-journey</a> </p> <blockquote> <p> 這些文章旨在記錄我嘗試將原生 Emacs 設置為日常主力工具及完全可定制 IDE 的過程。希望能達到可以舒適地用 Emacs 取代 JetBrains 系列 IDE 的程度,更重要的是,瞭解如何對其進行擴展以實現更多功能。 </p> </blockquote></li> <li><p> <a href="https://github.com/SenkiReign/denote-spatial">SenkiReign/denote-spatial</a> </p> <blockquote> <p> Emacs 中 denote 的空間畫布。它將 denote 目錄轉換為一個可在瀏覽器中打開的,包含圖像、PDF、影片和筆記且可拖拽、可調整大小的空間畫布。 </p> </blockquote></li> <li><a href="https://joshblais.com/blog/i-made-my-phone-emacs/">My phone is now just an emacs interface</a> by Joshua Blais</li> <li><a href="https://www.chiply.dev/post-hyperbole-hyrolo">Hyperbole HyRolo: Search, Retrieve and Insert Records, Not Lines</a> by Charlie Holland</li> </ul> </div> </div> <div id="outline-container-06161A62-32B5-4F0E-B931-CB46DA90823C" class="outline-2"> <h2 id="06161A62-32B5-4F0E-B931-CB46DA90823C"><a href="#06161A62-32B5-4F0E-B931-CB46DA90823C">一些话 | 摘抄</a></h2> <div class="outline-text-2" id="text-06161A62-32B5-4F0E-B931-CB46DA90823C"><ul class="org-ul"> <li><p> <a href="https://www.manton.org/2026/07/30/this-flow-have-a-thought.html">Manton Reece</a> </p> <blockquote> <p> 此流程: </p> <ol class="org-ol"> <li>有個想法。</li> <li>開始寫一篇短文。</li> <li>它不起作用。擴展成完整的部落格文章。</li> <li>仍然不好。刪除草稿,將文字複製到筆記中。</li> <li>幾個月後,將草稿拉入更好的部落格文章,討論更大的主題。</li> </ol> <p> <span class="underline">換句話說,永遠把事情寫下來。</span> </p> </blockquote></li> <li><p> <a href="https://sophiebits.com/2026/06/25/there-are-no-lossless-transformations-of-natural-language-text">There are no lossless transformations of natural-language text</a> by Sophie Alpert </p> <blockquote> <p> <b><span class="underline">你必須為文件中的每個想法與每個句子負責。</span></b><span class="underline">在分享文件之前,確認整份文件都能代表你自己的想法,是你的責任。</span><span class="underline">如果審閱者問:「你這一行是什麼意思?」</span><span class="underline">你不能回答:「喔,抱歉,那是 AI 寫的,忽略它就好。」</span>如果你呈現給讀者的內容並不能真實代表你的想法,就會讓讀者感到困惑(也浪費他們的時間)。有些情況下,讀者會察覺並指出不一致之處;但在其他情況下,他們會誤以為那就是你真正的想法。 </p> <p> <a href="https://sophiebits.com/2026/06/25/there-are-no-lossless-transformations-of-natural-language-text#:~:text=so%3A-,You,are,-%2E">Source</a> </p> </blockquote> <blockquote> <p> <b><span class="underline">撰寫文件所花的時間應該多於閱讀文件所花的時間。</span></b><span class="underline">如果你只用一個簡短的提示生成文件,接著要求讀者閱讀較長的輸出內容,那就是不尊重他們的時間。</span>他們如果想用 ChatGPT,隨時都可以自己使用。<span class="underline">大多數文件由一個人撰寫,卻會被許多人閱讀,</span><span class="underline">因此讀者為了理解你的意思而需要額外花費的任何時間,都會對團隊的時間造成倍數增加的成本。</span><span class="underline">反過來說,如果你在傳送文件前多花一些時間,讓內容清楚、簡潔,</span><span class="underline">你只需支付一次性的成本,而每位讀者都能從中受益。</span> </p> <p> <a href="https://sophiebits.com/2026/06/25/there-are-no-lossless-transformations-of-natural-language-text#:~:text=More%20time,from,-%2E">Source</a> </p> </blockquote> <blockquote> <p> <b><span class="underline">越長並不代表越好。</span></b><span class="underline">Pascal 曾寫道:「我把這封[信]寫得比平常長,是因為我沒有時間把它縮短。」</span> AI 讓生成長篇文件變得容易許多,而它採用的策略之一,就是加入許多幾乎沒有傳達任何重要內容、反而削弱實際內容的句子。<span class="underline">如果你是根據較短的提示產出較長的文字,不妨考慮直接分享提示本身。</span><span class="underline">如果你使用 AI 進行編輯,但不讓內容變長,</span><span class="underline">空洞句子的風險會降低一些,但你的意思仍可能因此變得晦澀難懂。</span> </p> <p> <span class="underline">自然語言文本不存在無損轉換——每一次改寫與換句話說,都會改變你文字的含義;</span><span class="underline">如果這件事是由一個並不具備你個人試圖傳達之內容最詳盡心智表徵的實體完成,資訊就會遺失。</span><span class="underline">即使得犧牲所謂的「潤飾」,讀者也會樂於聽見你的想法。</span> </p> <p> <a href="https://sophiebits.com/2026/06/25/there-are-no-lossless-transformations-of-natural-language-text#:~:text=Longer%20is,polish%E2%80%9D%2E">Source</a> </p> </blockquote> <p> 我引用的內容經過了翻譯,也不是對原文的無損轉換,如果哪裡看起來怪,請去讀讀原文。 </p></li> <li><p> <a href="https://anniemueller.com/posts/waiting-to-be-found-by-only-you">Waiting to be found by only you</a> by annie </p> <blockquote> <p> 誰知道現實將如何持續發展?沒有辦法做好準備。當你無法做好準備時,就要準備在混亂中尋找詩意。祕密訊息、偶然的恩典、在不確定的旋風中尋找意義的線索。 </p> <p> <a href="https://anniemueller.com/posts/waiting-to-be-found-by-only-you#:~:text=Who,uncertainty">Source</a> </p> </blockquote></li> <li><p> <a href="https://www.containsmoderateperil.com/blog/2026/8/1/blaugust-2026-let-writing-commence">Blaugust 2026: Let Writing Commence</a> by Contains Moderate Peril </p> <blockquote> <p> “If you cannot write well, you cannot think well; if you cannot think well, others will do your thinking for you.” ⸺ Oscar Wilde </p> <p> 「如果你寫不好,就無法思考好;如果你思考不好,別人就會替你思考。」 </p> <p> “The first draft of anything is shit.” ⸺ Ernest Hemingway </p> <p> 「任何事物的第一稿都是爛東西。」 </p> <p> “There is something delicious about writing the first words of a story. You never quite know where they'll take you.” ⸺ Beatrix Potter </p> <p> 「寫下故事的第一句話有種令人愉快的感覺。你永遠不知道它們會把你帶向何方。」 </p> <p> <span class="underline">“If you can't annoy somebody, there is little point in writing.” ⸺ Kingsley Amis</span> </p> <p> <span class="underline">「如果寫作不能冒犯到誰,那寫作也沒什麼意義了。」</span> </p> </blockquote></li> <li><p> <a href="https://www.seangoedecke.com/good-writing-is-obvious-not-original/">Good writing is obvious, not original</a> by Sean Goedecke </p> <blockquote> <p> 寫作時,你應該試著表達那些顯而易見的事實,而不要花太多時間擔心自己是否有創意。諷刺的是,這反而是創作出真正原創作品的最佳途徑。 </p> <p> 每個重要的觀點都已經被討論過了。這是我在哲學研究所時學到的,但這在各個領域都適用。幾乎每個領域都有好幾代聰明絕頂的人,窮其一生在思考最重大的問題。如果你只試著寫那些真正全新的觀點,<b>你將會受限於寫一些以前沒人覺得重要到值得考慮的事:</b>換句話說,就是些瑣碎且轉瞬即逝的小事。 </p> <p> 如果專注於顯而易見的事會發生什麼呢?寫那些顯而易見的事實出乎意料地困難。寫任何東西都很難,因為 <a href="https://johnsalvatier.org/blog/2017/reality-has-a-surprising-amount-of-detail">現實中的細節多得令人驚訝</a>。儘管如此,寫顯而易見的事尤其困難,<b>因為它們往往顯眼到讓人視而不見。</b> </p> <p> <a href="https://www.seangoedecke.com/good-writing-is-obvious-not-original/#:~:text=When,see%2E">Source</a> </p> </blockquote></li> <li><p> <a href="https://francescrossley.com/conversations-with-a-six-year-old-about-the-world-cup/">Conversations with a six-year-old about the World Cup</a> by Frances </p> <blockquote> <p> 當他們出生時,你會想,我會為這個孩子付出一切。我會有無盡的時間給他們。他們永遠會得到我的全部注意力。我會永遠對他們的興趣感興趣。我會聆聽他們想說的任何事。我會成為一個安全、熱情、無評判、無條件的空間。 </p> <p> 然後,六年後,他們會來找你說:「我們可以看《小小兵》電影嗎?」 </p> <p> 你身體的每一個細胞都會尖叫。你寧願談論你最不喜歡的事——比如足球。任何事,拜託。世界上的任何事。我們只有一次有限的生命,你想告訴他們。這是五十分鐘,我們永遠不會再得到。虛無的空虛會呼喚你。 </p> <p> <span class="underline">而你會說:「好啊,當然。告訴我你最喜歡的部分。」</span> </p> <p> <a href="https://francescrossley.com/conversations-with-a-six-year-old-about-the-world-cup/#:~:text=When%20they,bits%2E%22">Source</a> </p> </blockquote></li> <li><p> <a href="https://herman.bearblog.dev/creativity/">Committing to creativity</a> </p> <blockquote> <p> 論點很清楚:<span class="underline">依賴動機是一場失敗的遊戲。動機是一種感受,而承諾是一個超越感受的決定。</span> </p> <p> 我在自己的生活中也發現這點,無論是創作還是人際關係、運動。很少有人能一直保持運動的熱情,所以需要承諾才能持之以恆。同樣地,良好的人際關係不能依賴短暫的熱情,因為人生本就坎坷。 </p> <p> 好在隨著時間推移,承諾會變得更容易。[&hellip;] </p> <p> <span class="underline">行動孕育動機,而非相反。</span> </p> <p> <a href="https://herman.bearblog.dev/creativity/#:~:text=The%20thesis,around">Source</a> </p> </blockquote></li> <li><p> <a href="https://simonwillison.net/2026/Aug/6/simon-willison-on-technical-blogging/#atom-everything">Simon Willison on Technical Blogging</a> by Simon Willison </p> <blockquote> <p> 我對寫部落格的最好建議是:降低你的標準!即使你對自己寫的文章還不滿意,也要試著發表出去。因為如果你不這麼做,你只會有一個裝滿草稿的資料夾,而且永遠不會發表任何東西。 </p> <p> 沒有人會知道你本來想寫的文章有多完美。你在自己文章裡看到的缺點,其他人是看不見的。 </p> <p> <a href="https://simonwillison.net/2026/Aug/6/simon-willison-on-technical-blogging/#atom-everything:~:text=here%3A-,My,else">Source</a> </p> </blockquote></li> <li><p> <a href="https://francescrossley.com/popularity-contests/">Popularity contests</a> by Frances </p> <blockquote> <p> 我沒有評論功能,即使平台自帶我也不會開啟。<span class="underline">我了解我自己,我不會給自己任何理由去為這些事情抓狂。</span><span class="underline">我不想解釋「言論自由」並不意味著你可以闖進我家來抱怨我如何擺放書籍,</span><span class="underline">然後再邀請成千上萬的陌生人來做同樣的事。</span> </p> <p> <a href="https://francescrossley.com/popularity-contests/#:~:text=off%2E-,I,same">Source</a> </p> </blockquote></li> <li><p> <a href="https://francescrossley.com/never-this-young-again/">Never this young again</a> by Frances </p> <blockquote> <p> 你變老之後,會開始發生一件事。年輕人看著你,就像你瘋了一樣。而那些年輕人,穿的正是我們年輕時穿過的衣服。孩子們,我們最近才知道寬鬆牛仔褲根本n不值得。你會被褲管絆倒,褲子會磨破,還會吸飽水。我們都經歷過。 </p> <p> 這不會困擾我。因為如果這些孩子夠幸運,有一天他們也會四十歲,而十八歲的年輕人會那樣看著他們。到那時,他們就會懂了。 </p> <p> 年紀增長通常不太會困擾我。<span class="underline">我總是記得:我再也不會這麼年輕了。</span> </p> <p> <a href="https://francescrossley.com/never-this-young-again/#:~:text=There%27s,again">Source</a> </p> </blockquote></li> <li><p> <a href="https://fosstodon.org/@TomSeppert/117060005551163773">TomSeppert: "The first two hours of a 10 mi…"</a> </p> <blockquote> <p> The first two hours of a 10 minute job are always the hardest. </p> </blockquote></li> <li><p> Leonardo da Vinci </p> <blockquote> <p> Where the spirit does not work with the hand, there is no art. </p> </blockquote></li> <li><p> <a href="https://heartsoulmachine.com/blog/2026/08-14-simultaneous-monologues/">Simultaneous Monologues</a> by Tim Klapdor </p> <blockquote> <p> 媒體所做的,是劫持人類互動的概念,並加以顛覆。它不創造對話,而是打造一個同時進行獨白的場所 —— 每個聲音都是自己的明星 —— 然後把音量調高。 </p> <p> <a href="https://heartsoulmachine.com/blog/2026/08-14-simultaneous-monologues/#:~:text=What%20media,volume%2E">Source</a> </p> </blockquote> <blockquote> <p> 網路確實有能力進行對話,但無法大規模實現。對話是以人為尺度的——不是機器,不是網路,而是直接且緊密相連的互動。而且,對話並不只是用來宣洩歧見的空間。<span class="underline">對話往往需要某種基本程度的共同理解,才能運作:</span><span class="underline">界線、規則與慣例——或許未明說,但彼此都心照不宣。</span>這種相互性只有在人與人之間的尺度上才可能發生。 </p> <p> 儘管人們一直在談論城鎮廣場,我們仍必須記住,<span class="underline">廣場並不是辯論或對話的場所,而是讓我們站在各自的講台上彼此叫喊的空間。</span><span class="underline">對話的家園在舒適的酒吧與咖啡館裡、沙發與休憩室中、漫長的散步途中,或圍坐在火爐旁——在共同的場所裡。</span><span class="underline">也許我們從來不需要線上的城鎮廣場。</span><span class="underline">我們需要的,是更接近那些舒適空間的事物。</span> </p> <p> <a href="https://heartsoulmachine.com/blog/2026/08-14-simultaneous-monologues/#:~:text=The%20web,spaces">Source</a> </p> </blockquote></li> <li><p> <a href="https://theamericanscholar.org/once-more-in-triple-time/">Once More in Triple Time</a> by Erik Anderson </p> <blockquote> <p> 「再來是低音部——看這裡。」Rebecca 指著說。「好幾頁裡就只有一個音符。伴奏者必須決定要如何配置這個音符。他們得從單一音符即興發揮。他們也必須選擇樂器,因為樂譜上沒有註明。到了後來的音樂,像 Mahler 和 Schumann 的作品,會有大量指示,告訴你每個音符要如何演奏;<span class="underline">但音樂越早期,樂譜上提供的資訊就越少。</span><span class="underline">Biber——這一點他絕不是唯一如此的作曲家——對音樂家提出了巨大的邀請。</span><span class="underline">他讓你參與其中,讓你思考自己的角色。</span><span class="underline">那種必須做出決定、必須創造,而不只是照著樂譜上的內容讀譜的精神,嗯,這是一種與文學的關係。</span>而在我們這個時代,這一點尤其重要,因為複製變得很容易,而且可以做到極高的水準。面對 Biber,你必須與作品互動。」 </p> <p> <a href="https://theamericanscholar.org/once-more-in-triple-time/#:~:text=%E2%80%9CThen,interact%2E%E2%80%9D">Source</a> </p> </blockquote> <blockquote> <p> 「話說回來,」Eric 繼續說道,<span class="underline">「作為一個研究脈絡的人,我不認為意義存在於音樂本身,或存在於音樂的創作方式之中。</span><span class="underline">我認為意義在於我們如何聆聽,而我們完全可以自由地形成自己的判斷。</span><span class="underline">我不是說音樂具有普世性。</span><span class="underline">我只是說,我們會賦予事物意義。</span>過去不只是一個科技較不發達、觀念已經過時的地方,而是一整套只有極小程度能夠被我們理解的意義建構方式。<span class="underline">像 Biber 這樣的人,其心智宇宙與我們這個時代的任何人都如此不同,</span><span class="underline">以至於我們或許永遠無法掌握音樂對他而言究竟意味著什麼。</span>你不僅永遠不可能準確重現音樂當年演出的樣貌,也永遠不可能進入那些聆聽者的心智之中。而你其實也不會真的想這麼做。因為,十七世紀的 Salzburg 雖然是一個對感官享受與創造力抱持某種寬容的世界,卻同時也是一個充滿暴力、偏見與苦難的世界。」 </p> <p> <a href="https://theamericanscholar.org/once-more-in-triple-time/#:~:text=%E2%80%9CThen%20again,miserable">Source</a> </p> </blockquote> <blockquote> <p> 「一部作品的生命」——說到這裡,Eric 為了措辭精確而放慢了語速——「其偶然性是一件奇特而美麗的事。而如果你不再認為自己有義務替 Biber 把它演奏正確,也不再認為自己對後世負有責任,或許你會發現,自己能學到出乎意料的多。是關於他的,沒錯,但也是關於你自己的。」 </p> <p> <a href="https://theamericanscholar.org/once-more-in-triple-time/#:~:text=%E2%80%9CThe%20life,too%2E%E2%80%9D">Source</a> </p> </blockquote></li> <li><p> <a href="https://protesilaos.com/commentary/2026-08-16-criticism-internet-friend/">Criticism and the Internet friend</a> by Protesilaos </p> <blockquote> <p> 如今有一句常見的說法:「我不是要批評,但……」這是政治正確所產生的臆想,而且一旦一貫地套用,反而會傷害那些你在乎的人。<span class="underline">批評並不等同於說人壞話或故意爭辯:批評是一種有根據的意見,並且是在你的貢獻脈絡下提出的。</span><span class="underline">你能從批評中受益,因為它有助於你從不同的角度理解事物。</span> </p> <p> <a href="https://protesilaos.com/commentary/2026-08-16-criticism-internet-friend/#:~:text=There,perspective">Source</a> </p> </blockquote> <blockquote> <p> <span class="underline">如果你的朋友從不給你任何稱得上批評的回饋,那他們就不是你的朋友。</span>他們可能是你的同事、隊友,或聊天夥伴。這些關係都很好。但他們不是朋友。<span class="underline">朋友會展現愛。</span><span class="underline">無論溫柔或嚴厲,愛都不打折扣。</span> </p> <p> <a href="https://protesilaos.com/commentary/2026-08-16-criticism-internet-friend/#:~:text=If%20your,tough">Source</a> </p> </blockquote> <blockquote> <p> <span class="underline">朋友有時什麼也不說。</span><span class="underline">他們的行動會替他們發聲。</span><span class="underline">你知道,只要我還做得到,我就會一直如此。</span><span class="underline">而且我會在那裡激勵你攀登至最高峰。</span><span class="underline">為什麼?</span><span class="underline">因為我在乎的是你這個人。</span> </p> <p> <a href="https://protesilaos.com/commentary/2026-08-16-criticism-internet-friend/#:~:text=to%2E-,A,particular">Source</a> </p> </blockquote></li> <li><p> <a href="https://protesilaos.com/keeb/2026-08-20-hyperoptimiser-mechanical-keyboard-trap/">The hyperoptimiser’s mechanical keyboard trap</a> by Protesilaos </p> <blockquote> <p> 同樣的思維也適用於其他每一項因素。某項調整解決了一個考量,卻又產生了新的考量。這就是系統的本質。原因在於,最佳化的過程,就是在既定或不得不接受的限制下,找出一組你願意承擔的取捨。最佳化不會帶來完美,只會帶來一種名義上不完美、但符合你需求的狀態。換句話說,「夠好」就是你所能達到的最接近完美的境界。 </p> <p> <a href="https://protesilaos.com/keeb/2026-08-20-hyperoptimiser-mechanical-keyboard-trap/#:~:text=The%20same,get">Source</a> </p> </blockquote></li> <li><p> <a href="https://itsfridayimnotinlove.substack.com/p/its-friday-im-not-in-love-issue-256">It's Friday I'm (not) in love - Issue #256</a> by Alessia Carlozzo </p> <blockquote> <p> 「你所渴望的一切都會實現。接著,是所有你曾希望自己從未渴望過的事物。那是一種令人愉悅的搔癢,你想要抓撓,卻發現它在皮膚底下。你搆不到它。於是,那令人愉悅的搔癢變得難以忍受。它告訴你,你最渴望的,正是你無法擁有的。而你無法擁有的,正是你曾經擁有過——卻又失去的。那是所有我未能信守的承諾所唱出的歌。它還告訴我,其實我並不是真的想回家。」 </p> <p> <a href="https://itsfridayimnotinlove.substack.com/p/its-friday-im-not-in-love-issue-256#:~:text=%E2%80%9CTutte,casa%2E%E2%80%9D">Source</a> </p> </blockquote></li> <li><p> <a href="https://blog.absurdpirate.com/rethings-to-do-after-your-dad-dies/">re:Things to do after your dad dies</a> by Absurd Pirate </p> <blockquote> <p> 有人說, <span class="underline">悲傷就是無處可去的愛</span> ,而我覺得這說法很準確。我們永遠會渴望那些已不在身邊的人能陪伴著我們。無論他們活著時我們曾與他們相處多久,我們仍會希望能和他們多相處一些時間。 </p> <p> 如果你的生命中有一個你珍愛的人,告訴他們他們對你而言意味著什麼。打電話給他們、親自去見他們、擁抱他們。其他一切都可以等。 </p> <p> <a href="https://blog.absurdpirate.com/rethings-to-do-after-your-dad-dies/#:~:text=They%20say,wait">Source</a> </p> </blockquote></li> <li><p> <a href="https://brennan.day/in-defence-of-vent-posting/">In Defence of Vent Posting</a> by Brennan Kenneth Brown </p> <blockquote> <p> 人們之所以最後會單方面傾倒自己的情緒包袱與創傷,有時甚至事先都沒詢問對方,是因為他們的杯子已經滿了。裡面確實再也沒有空間,無法繼續容納這一切。 </p> <p> <a href="https://brennan.day/in-defence-of-vent-posting/#:~:text=The%20reason,longer">Source</a> </p> </blockquote></li> </ul> </div> </div> <div id="outline-container-57351850-2C24-4391-AD50-397FBAAC238F" class="outline-2"> <h2 id="57351850-2C24-4391-AD50-397FBAAC238F"><a href="#57351850-2C24-4391-AD50-397FBAAC238F">多媒体</a></h2> <div class="outline-text-2" id="text-57351850-2C24-4391-AD50-397FBAAC238F"></div> <div id="outline-container-CD4E9070-96CF-47B2-9AE0-7E8F109B51CE" class="outline-3"> <h3 id="CD4E9070-96CF-47B2-9AE0-7E8F109B51CE"><a href="#CD4E9070-96CF-47B2-9AE0-7E8F109B51CE">视频</a></h3> <div class="outline-text-3" id="text-CD4E9070-96CF-47B2-9AE0-7E8F109B51CE"><ul class="org-ul"> <li><a href="https://www.bilibili.com/video/BV1Guu46sEkA/">聪明猫在一起久了也会有一些共同点……</a> (7:00) by 亮亮也是酿酿</li> <li><a href="https://www.bilibili.com/video/BV1ymux6BEFU/">家里的旧光盘,为什么播不出来了?</a> (12:52) by 影视飓风</li> <li><a href="https://www.bilibili.com/video/BV1nSbo6TEv4/">火箭降落的全过程,拍到了!</a> (04:10) by 影视飓风</li> <li><a href="https://www.bilibili.com/video/BV1pau46BEFb/">听懂《完美的日子》</a> (15:07) by 夏威夷爵菜头</li> <li><a href="https://www.bilibili.com/video/BV1Hmbo6BEwA/">方大同与 MJ 的荒岛首选:《生命之歌》| 50 周年纪念</a> (13:27) by 夏威夷爵菜头</li> <li><a href="https://www.bilibili.com/video/BV1RYbk6QE9o/">难倒 100 万人的铁球难题,我终于!解!开!了!</a> (14:48) by GM 的秘密基地</li> <li><p> <a href="https://www.bilibili.com/video/BV1kS8H6VERt/">《黑神话:钟馗》15分钟实机演示</a> (15:53) by 黑神话 </p> <p> 看起來相當不錯。 </p></li> <li><a href="https://www.bilibili.com/video/BV1Ew8P6pEUE/">【万字硬核考据】全方位拆解《黑钟馗》-主角/怪物/战斗/剧情/符箓</a> (35:37) by 天师道的白山正</li> <li><a href="https://www.bilibili.com/video/BV1KZ8T6kEEr/">挪威小湖里藏大鱼,却只吃挪威饵?</a> (44:53) by 蜀犬吠日 SCFR</li> <li><p> <a href="https://www.bilibili.com/video/BV1jqVL6gEB5/">7 天探索彩虹之岛 La Palma,竟被一名隐士带回悬崖洞穴</a> (1:23:59) by 蜀犬吠日 SCFR </p> <p> 喜歡蜀犬吠日的視頻風格。 </p></li> <li><a href="https://www.bilibili.com/video/BV1UNuu6AERy/">一个野人的展览</a> (09:13) by 想想工作室</li> <li><a href="https://www.youtube.com/watch?v=IwxkGdhkAGU">給我一點時間 Official Music Video</a> (8:09) by SoftLipaOfficial</li> <li><p> <a href="https://www.bilibili.com/video/BV1vm4f6bETN/">Grand Theft Auto VI:分量十足的一瞥</a> (26:49) by RockstarGames </p> <p> 像是在看電影。 </p></li> </ul> </div> </div> <div id="outline-container-217CEC82-A345-4584-8B17-F31E07F10E24" class="outline-3"> <h3 id="217CEC82-A345-4584-8B17-F31E07F10E24"><a href="#217CEC82-A345-4584-8B17-F31E07F10E24">遊戱</a></h3> <div class="outline-text-3" id="text-217CEC82-A345-4584-8B17-F31E07F10E24"><p> 沒想到時隔 11 年,<a href="https://www.thewitcher.com/jp/zh-cn/witcher3">巫师3:狂猎</a> 又重置了,而且如果買過遊戱,升級還是免費的,太良心了。 2027 年還會有新的資料片 ⸺ <a href="https://www.thewitcher.com/jp/zh-cn/songs-of-the-past">旧時曲</a>,等出了我就買來玩玩,虽然過去 11 年了,遊戱還很有生命力。如果你沒玩過,很推薦一玩,遊戱做得相當出色,操作、劇情、畫面、音樂都很好,而且因為發行時間很久,價格也得實惠。我寫過一些遊玩感受,你也可以看看:<a href="54.html#B5BC8342-0263-4404-9889-0A8C17D576CF">Zine#54</a>,<a href="55.html#04F643F1-4A87-4C49-B63B-0E5D26AA66B0">Zine#55</a>。 </p> <p> 最近 PS5 上的遊戱打折我也買了几個新遊戱,都是些老遊戱,還挺便宜: </p> <dl class="org-dl"> <dt><a href="https://www.hogwartslegacy.com/en-us">霍格沃茲之遺</a></dt><dd><p> 買給女友玩的,她挺喜歡哈利波特系列,遊戱模拟了在霍格沃茲學習的生活,女友還挺喜歡的。我也玩了玩,多人打架時還有點難應付,熟練了應該就會好很多。 </p> <p> 如果喜歡哈利波特,可以玩玩。 </p></dd> <dt><a href="https://zh.wikipedia.org/zh-tw/%E5%A4%A9%E5%9B%BD%EF%BC%9A%E6%8B%AF%E6%95%91">天國拯救</a> 1 &amp; 2</dt><dd><p> 本來只想買 1 代的,1 代才 40 块左右,2 代還要 200 多。被 PS5 坑了,我把 2 代加入了購物車,但沒完成付款,我以為會作廢,會從購物車裡自動移除。看到 1 代才 40 我馬上買了,但沒仔細檢查購物車 <small>(著急了)</small>,頁面信息也不是很明顯,看到帳單 200 多,我以為是 1 代沒打折,仔細一看,原來我把 2 代也買了。 </p> <p> 簡單玩了一下 1 代,有點不習慣第一人称的操作。遊戱操作起來沒有巫師三容易,指引也不好,有的字不容易看清。遊戱應該是想做真實的中世紀的模拟,人物的衣著、身上是否整洁都會響响別人對你的方式,它還鼓勵去偷和抢,偷摸進別人家搜刮看起來是一個主要玩法。完成一個任務也有很多方式,玩法挺丰富的,但估計要不少時間去熟悉遊戱。 </p></dd> <dt><a href="https://zh.wikipedia.org/zh-hant/%E9%BE%8D%E6%97%8F%E6%95%99%E7%BE%A9">龍之信條 1</a> </dt><dd><p> 也是個老遊戱了,現在才 40 块,就買來玩玩,是一個奇幻風格的 <a href="https://zh.wikipedia.org/wiki/%E5%8B%95%E4%BD%9C%E8%A7%92%E8%89%B2%E6%89%AE%E6%BC%94%E9%81%8A%E6%88%B2">ARPG</a> 遊戱。畫面有些古早,但音樂我挺喜歡,和 <a href="https://zh.wikipedia.org/zh-tw/%E9%AD%94%E7%89%A9%E7%8D%B5%E4%BA%BA%E7%B3%BB%E5%88%97">怪獵</a> 的有點像,也不奇怪,毕竟都是 <a href="https://zh.wikipedia.org/wiki/%E5%8D%A1%E6%99%AE%E7%A9%BA">卡普空</a> 的遊戱。我後續應該會先玩這個遊戱。 </p> <p> 如果你在 PS5 上買這個遊戱,需要把 PS5 的主機語言設置成䌓體中文才會有中文字幕。 </p></dd> </dl> <p> 推薦你去發掘老遊戲,有很多不錯的遊戱,經過了時間的沉淀,它們 Bugs 更少,性能优化也更好,網上還有大量攻略,而且往往價格也很實惠!不用總是去追求最新的遊戲 :) </p> </div> </div> </div> <div id="footnotes"> <h2 class="footnotes">&#33050;&#27880;: </h2> <div id="text-footnotes"> <div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> <a href="https://www.bilibili.com/video/BV1Hmbo6BEwA/">方大同与 MJ 的荒岛首选:《生命之歌》| 50 周年纪念</a> (13:27) by 夏威夷爵菜头 </p></div></div> <div class="footdef"><sup><a id="fn.2" class="footnum" href="#fnr.2" role="doc-backlink">2</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 分享一段關於品鉴咖啡的話: </p> <blockquote> <p> 喝咖啡时,最开始它是烫的,这时散发的只有香气,优质浅烘咖啡在这个阶段味道很柔和,往往淡得像白开水。 </p> <p> 静待它降温(Let it cool, take time), (2 minutes later&hellip;) 随着咖啡的温度降低,你的味蕾开始品尝出更多的味道,你的鼻腔能够闻到更多风味。 </p> <p> 随着冲好的咖啡温度持续降低,从 93 摄氏度以上,降到依旧很烫的 85 摄氏度,再到 57 摄氏度,这时咖啡里的各种味道才完全体现出来了。 </p> <p> 如果咖啡加工过程毫无纰漏,如果咖啡果完全成熟,这时就能感知多种无形的风味层次,一层一层揭开,一层一层发现,一层一层体会,甚至会有多层同时叠加在一起。 </p> <p> ⸺ 紀录󠄃片 《一部关于咖啡的电影》 </p> </blockquote></div></div> </div> </div></div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/57.txt">純文本版本</a> <a href="https://taxodium.ink/57.org">原始 org 文件</a>

2026/8/30
阅读更多

香港雞公嶺

<div id="content" class="content e-content"> <header> <h1 class="title p-name">香港雞公嶺</h1> </header><p> 🎵 你知道天空有多蓝 - 椅子乐团 The Chairs </p> <p> 上周二和女友去爬了香港 <a href="https://zh.wikipedia.org/zh-hk/%E9%9B%9E%E5%85%AC%E5%B6%BA">雞公嶺</a>,之所以想去,是之前看到了一些別人拍的圖片,山頂大片的綠、天空大片的蓝,還有雪白得刺眼的 <a href="https://zh.wikipedia.org/zh-hant/%E6%B5%93%E7%A7%AF%E4%BA%91">濃積雲</a>,就像是宫崎駿動画裡的埸景,一直想去看看。要看到這樣的景色,得在夏天去才行,這時山上的草還是綠的,也更容易看到大片的好看的濃積雲。 </p> <p> 雞公嶺山上几乎沒有遮擋、沒有補給的地方、沒有厠所,所以要做好防晒中暑的準備,小紅書上看到的建議是人均携帯三升以上的水。我們出發前買了將近八升的水,一些運動飲料,一些礦泉水,還帯了相機、移動電源、音響、干粮、防晒霜、雨傘,負重還不少,所幸登山包有腰帯和胸帯可以將負重分攤在上半身,背了一天肩膀也沒有酸痛。如果天氣不那麼熱,可以少帯點水,我們下山時已經沒什麼太陽了,出汗少了,最後還剩了近兩升水。 </p> <p> 我們是從深圳過去的,雞公嶺在香港元朗,离褔田口岸最近,大多數人也是從這個口岸過去的。過了口岸後,根據指示牌走到坐公交的地方,找到 75 路小巴士,坐到逢吉鄉就能到達雞公嶺附近了,車程大概二十多分鐘。 75 路小巴的價格現在是 11 港幣,車上沒看到刷乘車碼的地方,建議是出發前準備一些散錢 <small>(公交站附近沒看到店鋪,要兌散錢也不方便)</small>,我們之前去香港剛好剩了 22 港幣散錢,還挺幸運的。 75 路小巴是沒有逢吉鄉這個站的,逢吉鄉在 <i>新潭路,近宏園</i> 這站後面一些,上車的時候和司機說一聲就好了,差不多到了司機會提醒下車。 </p> <p> 到了逢吉鄉,還要往裡面走一段路才能到達登山口,路上會經過一間士多店,如果覺得水不够,可以在這裡补給一下,過了這家店後面就沒有补給點了。雞公嶺的登山口不是很明顯,它在一個蓝球場的邊上,入口处有根電綫杆,還有一小段上行的階梯,但沒有指示牌。爬山建議下載一個「兩步路」App,上面有很多人分享的路綫󠄂,選一條跟著走就好,可以避免在山上迷路 <small>(虽然路綫基本只有一條,但也有一些分叉的地方)</small>。如果找不到登山口,利用兩步路也能导航找到。不過我不喜歡這個 App,功能太雜了,設定路綫我搞了好一會儿,而且弹窗干擾也多,爬完山我就把它卸了。 </p> <p> 我們找到登山口開始登山時已經是下午兩點半左右了,最終我們花了快五個多小時才爬完,下山時天都黑了,而我們只能摸黑下山。如果你想去爬,一定要規劃好時間,如果爬得慢,大概要花五到六小時,要看看日落的時間,最好能赶在天黑前下山,不然下山會很刺激。 </p> <p> 上山路有一些木條搭建的階梯,但階梯之間是空的,也不是很好走。上山基本都是在爬升,太阳猛烈,山上也沒什麼風,悶熱悶熱的,身上很快就被汗水打湿了,每爬一小段我們就得停下來歇一陣,补补水,讓心率緩緩,緩慢地往上爬著。 </p> <p> 山上的風景還不錯,確實有大片的緣,像是用草坪將整片山鋪滿一樣,草大多都有小腿高 <small>(建議是穿長褲來爬,不然行走在草堆裡會有點不舒服)</small>。在山上能俯瞰整片元朗區和遠处的深圳,視野很好。不過天公不作美,天上烏雲比較多,漸漸遮住了太陽,看不到蓝天和大朵的濃積雲,草地也因為沒有阳光顯得有些黯淡,看不到想看的畫面。但沒有太阳直射在身上,倒也讓我們後面走起來沒那麼熱。 </p> <p> 一直走,偶尔停下來补水、拍點照片,不知不覺快日落了,我們也才差不多走到了下坡的路段,還有近四分之一的路沒走完。這時還碰到了一個反向穿越的人,他看起來就帯了瓶水,也許是打算快速穿越吧。因為是工作日來的,這一路上也見不到几個人,上山時只見到一個下山的人和一個上山的人 <small>(後來他原路下山了)</small>。爬到中間碰到了三個女人在拍照,最後一個就是剛剛上山的男人了。說實話如果沒有太多徒步經驗,不建議一個人來,也不建議工作日人少的時候來,多些人,真出什麼事還能相互照應一下。 </p> <p> 隨著太陽下沉,路也慢慢地變得有些看不清,我們開始用手機打手電摸黑往下走 <small>(還好帯了移動電源,不擔心沒電)</small>。說實話還是有點怕的,放眼望去一片漆黑,看不到路在哪,只能模糊地看到山體,還有很長的路要走,有點慌。下山的路很難走, 有的有很多碎石,有的有一些大块的石頭,有的是坑坑洼洼的泥路,<small>(像是在玩現實版的 <a href="https://zh.wikipedia.org/zh-hant/%E6%AD%BB%E4%BA%A1%E6%93%B1%E6%B7%BA">死亡擱淺</a>)</small> 一個不小心,很容易崴到脚 <small>(負重的話建議帯登山杖,减輕膝盖的壓力,也能走的更平穩)</small>。有的路几乎被雜草埋起來,我也很擔心會不會突然冒出一條蛇咬我一口。儘管打著手電,但也只能照亮脚下一兩米的路,還好有兩步路的路綫指引,還不至於迷路。夜裡虫鳴更响亮了,像置身野外的荒郊野嶺中,我倆一前一後地走著,我在前面探路导航,不停地播报著前方的地貌,「前面有很多碎石,小心地滑」、「這裡比較難走,小心一點」、「慢慢走,每一步踩穩了再走」⋯⋯ 我想女友也是有些紧張擔心的,不停地說著話,聴到人聲她也會安心點。已經是晚上了,按理說也不那麼熱,下山除了路難走、膝盖壓力大,也還算輕鬆,但可能是因為紧張害怕,肾上腺素上升,感覺身體一直在發熱冒汗。但總不能在山裡過夜,不管如何只能小心點,一點點地往出口走。走呀走,看到遠处的烏雲有閃電不斷閃爍,儘管离我們還有一段距离,但還是會擔心它會飄過來,如果打雷下雨,下山就更難了,總之要加快脚步,但也還是要注意脚下,慢即是快。一直提心吊膽地走著,慢慢開始看到底下的公路,聴到車的聲音、狗的吠聲,應該快能到山脚了,心裡稍微輕鬆點。繼續走,終於走到了有水泥階梯的地方,總算是從山裡出來了,過了一道橋,看到了路灯和馬路,有種從野外回到人類文明世界的安心感,終於安全了。 </p> <p> 出口的地方是橋頭,沿著馬路走走就可以找到 77K 大巴的公交站牌,不過要注意方向,兩個方向的站牌隔了段距离,總之跟著导航就好。 77K 大巴是可以用乘車碼的,它一直運行到深夜,所以不用擔心下山太晚坐不上車。在站牌那等了會儿,之前那片烏雲也赶了過來,開始下雨了,但幸運的是車沒多久就來了,沒怎麼淋雨,在車上時,雨才開始下大了。坐 77K 去到石湖墟郵政局,在這裡可以坐東鐵綫去到罗湖口岸,或者去到落馬洲回到褔田口岸。 </p> <p> 在石湖墟郵政局附近的大家樂吃了份猪排飯,猪排很軟,補充了大量碳水,人又重新活過來了。當時也八點多了,但不少人點餐還會點凍咖啡,不怕睡不著嗎?不過我點的也是凍咖啡就是了,很甜的咖啡,能止喝,但說不上好喝。吃完又去 711 買了兩瓶朝日的限定款啤酒,每次來香港,回去時我都會逛 711 買點境內不常見的啤酒,味道大多也還不錯。 </p> <p> 香港的徒步路綫大多都保留著原生態的樣子,人的痕迹比較少,是親近自然的好去处,雞公嶺也是如此,虽然很累,也有些意外,但走在大片草叢中我也挺喜歡的,能讓人感到放鬆。下次再來,也許是以後的某個夏天了,希望下次能看到想看的畫面。 </p> <p> 最後附上一些隨手拍的圖片: </p> <figure> <a href="images/hong-kong-kai-kung-leng/kai-kung-leng-1.webp"><img src="https://imgproxy.citrusreader.com/Dwk5XH7L_jQymytO6hrvLqCYMKlukfq9OOX9eZzxBh4/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2hvbmcta29uZy1rYWkta3VuZy1sZW5nL2thaS1rdW5nLWxlbmctMS53ZWJw" alt="kai-kung-leng-1.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>上山的路,有一些木條做的階梯</figcaption> </figure> <figure> <a href="images/hong-kong-kai-kung-leng/kai-kung-leng-2.webp"><img src="https://imgproxy.citrusreader.com/-Ge4amVJGNrqBmbwu6BLJz9gONFsDfhNC412OJuru00/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2hvbmcta29uZy1rYWkta3VuZy1sZW5nL2thaS1rdW5nLWxlbmctMi53ZWJw" alt="kai-kung-leng-2.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;2&nbsp; </span>雞公嶺山景</figcaption> </figure> <figure> <a href="images/hong-kong-kai-kung-leng/kai-kung-leng-3.webp"><img src="https://imgproxy.citrusreader.com/94W8xtmBEF5N3a_sGz9xZhqcZXpLWLq3xRUCaBCSX4k/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2hvbmcta29uZy1rYWkta3VuZy1sZW5nL2thaS1rdW5nLWxlbmctMy53ZWJw" alt="kai-kung-leng-3.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;3&nbsp; </span>雞公嶺山景</figcaption> </figure> <figure> <a href="images/hong-kong-kai-kung-leng/kai-kung-leng-4.webp"><img src="https://imgproxy.citrusreader.com/oGevOnfy4lswSQkcBK0cluNBY8i6taXVcFEuhu-vrek/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2hvbmcta29uZy1rYWkta3VuZy1sZW5nL2thaS1rdW5nLWxlbmctNC53ZWJw" alt="kai-kung-leng-4.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;4&nbsp; </span>雞公嶺山景</figcaption> </figure> <figure> <a href="images/hong-kong-kai-kung-leng/kai-kung-leng-5.webp"><img src="https://imgproxy.citrusreader.com/yaf_6IvSHLDJxVB-WjkjKfAWoW5Ya8epaCLMCA8tlhI/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2hvbmcta29uZy1rYWkta3VuZy1sZW5nL2thaS1rdW5nLWxlbmctNS53ZWJw" alt="kai-kung-leng-5.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;5&nbsp; </span>焗猪排飯</figcaption> </figure> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/hong-kong-kai-kung-leng.txt">純文本版本</a> <a href="https://taxodium.ink/hong-kong-kai-kung-leng.org">原始 org 文件</a>

2026/8/24
阅读更多

給博客添加純文本版本

<div id="content" class="content e-content"> <header> <h1 class="title p-name">給博客添加純文本版本</h1> </header><p> 看了 wiwi 的 <a href="https://wiwi.blog/blog/low-key-features/">偷偷加入的功能</a> (另見 <a href="54.html#:~:text=%E5%81%B7%E5%81%B7%E5%8A%A0%E5%85%A5%E7%9A%84%E5%8A%9F%E8%83%BD%20by%20Wiwi">Zine#54</a>) 我也給博客的文章添加了純文本版本,你可以在每篇文章的底部找到純文本版本的連結,也可以將頁面 URL 的 <code>.html</code> 換成 <code>.txt</code> 訪問純文本版本 <small>(如果換成 <code>.org</code> 就能看到文章的原始文件)</small>。最近看到 <a href="https://wiwi.blog/blog/wiwi-blog-txt/">Wiwi.Blog 純文字版</a>,我也跟著做了一個 <a href="txt.html">純文本版本的索引頁</a>。 </p> <p> 純文本的好处是極簡,基本上就是文字,沒有其它干擾元素,其次是體積小,在網絡不好時也能較快的加載 <small>(不過網絡條件不好,和服務器建立連結也需要時間,能節省的是頁面需要的流量)</small>。 </p> <p> 製作純文本版本,只要將原始文件想辦法轉成 txt 版本就好了 <small>(現在只是轉換成了 HTML)</small>,然後給所有的 txt 文件做一個索引頁 <small>(建議掛載在 <code>/txt</code> 這個路徑下)</small>,基本上就够用了。 </p> <p> 我的博客是用 <a href="org-publish-blog.html">org-publish</a> 和 <a href="blog-with-denote-and-org-publish.html">denote</a> 構建的,接下來我會分享我是如何通過它們給博客添加純文本版本的,包擴: </p> <ul class="org-ul"> <li>將原始 org 文件轉換出一個 txt 版本</li> <li>給每個頁面添加對應的純文本版本連結</li> <li>製作索引頁</li> </ul> <p> 相關代碼可以在 <a href="https://github.com/Spike-Leung/Spikemacs/blob/main/lisp/init-org-publish.el">init-org-publish.el</a> 和 <a href="https://github.com/Spike-Leung/Spikemacs/blob/main/lisp/init-denote.el">init-denote.el</a> 找到。 </p> <hr> <p> <b>將原始 org 文件轉換出一個 txt 版本</b> </p> <p> 因為我是用 <code>org-publish</code> 構建的,要構建純文本版本,可以向 <code>org-publish-project-alist</code> 添加一個 project 來實現。 </p> <div class="org-src-container"> <pre class="src src-elisp"><code>(<span class="org-keyword">setq</span> org-publish-project-alist `( <span class="org-comment-delimiter">;; </span><span class="org-comment">&#30465;&#30053;&#20854;&#23427;</span> (<span class="org-string">"plain-text-all"</span> <span class="org-builtin">:base-directory</span> <span class="org-string">"~/git/taxodium/posts"</span> <span class="org-builtin">:base-extension</span> <span class="org-string">"org"</span> <span class="org-builtin">:exclude</span> <span class="org-string">".*"</span> <span class="org-builtin">:with-toc</span> nil <span id="coderef-include" class="coderef-off"> <span class="org-builtin">:include</span> ,(spike-leung/get-file-list-from-denote-silo <span class="org-string">"~/git/taxodium/posts"</span> (<span class="org-keyword">rx</span> (<span class="org-keyword">or</span> <span class="org-string">"_blackhole"</span> <span class="org-string">"_published"</span>)))</span> <span class="org-builtin">:publishing-directory</span> ,spike-leung/org-publish-default-publishing-directory <span class="org-builtin">:publishing-function</span> spike-leung/org-publish-plain-text) <span class="org-comment-delimiter">;; </span><span class="org-comment">&#30465;&#30053;&#20854;&#23427;</span> )) </code></pre> </div> <p> 這個 project 做的事就是 <a href="#coderef-include" class="coderef" onmouseover="CodeHighlightOn(this, 'coderef-include');" onmouseout="CodeHighlightOff(this, 'coderef-include');">找到所有文章的文件</a>,用 <code>spike-leung/org-publish-plain-text</code> 处理成純文本版本。 </p> <div class="org-src-container"> <pre class="src src-emacs-lisp"><code>(<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/org-publish-plain-text</span> (_plist filename pub-dir) <span class="org-doc">"Publish a org file and use export_file_name as filename.</span> <span class="org-doc">FILENAME is the filename of the Org file to be published. PLIST</span> <span class="org-doc">is the property list for the given project. PUB-DIR is the</span> <span class="org-doc">publishing directory.</span> <span class="org-doc">Return output file name."</span> (<span class="org-keyword">unless</span> (file-directory-p pub-dir) (make-directory pub-dir t)) <span id="coderef-export-file-name" class="coderef-off"> (<span class="org-keyword">let*</span> ((export-file-name</span> (<span class="org-keyword">or</span> (spike-leung/org-publish-get-org-keyword nil nil <span class="org-string">"export_file_name"</span> filename) filename)) (base-filename (expand-file-name (file-name-nondirectory export-file-name) pub-dir)) (org-file (file-name-with-extension base-filename <span class="org-string">"org"</span>)) (text-file (file-name-with-extension base-filename <span class="org-string">"txt"</span>))) <span class="org-comment-delimiter">;; </span><span class="org-comment">generate .txt file</span> (org-publish-org-to 'ascii filename <span class="org-string">".txt"</span> _plist pub-dir) <span class="org-comment-delimiter">;; </span><span class="org-comment">copy original org file to pub-dir</span> (copy-file filename org-file t) <span class="org-comment-delimiter">;; </span><span class="org-comment">Return file name.</span> org-file)) </code></pre> </div> <p> <code>spike-leung/org-publish-plain-text</code> 會從文章的 org 文件裡找到 URL (<a href="#coderef-export-file-name" class="coderef" onmouseover="CodeHighlightOn(this, 'coderef-export-file-name');" onmouseout="CodeHighlightOff(this, 'coderef-export-file-name');">export-file-name</a>),然後用 <code>org-publish-org-to</code> 导出一個 ascii 版本到用於發布的目录󠄃,這樣就很到了每篇文章對應的純文本版本了。 </p> <p> 另外為了讓純文本版本的內容看起來更簡洁,我還覆盖了 <code>ox-ascii</code> 的一些實現,移除了加粗等標記。 </p> <details> <summary>ox-ascii 的改動</summary> <div class="org-src-container"> <pre class="src src-emacs-lisp"><code>(<span class="org-keyword">use-package</span> ox-ascii <span class="org-builtin">:straight</span> nil <span class="org-builtin">:custom</span> (org-ascii-text-width 88) (org-ascii-quote-margin 2) (org-ascii-charset 'ascii) (org-ascii-links-to-notes t) <span class="org-builtin">:config</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">do not interpret *word*, /word/, _word_ and +word+</span> (<span class="org-keyword">defun</span> <span class="org-function-name">org-ascii-bold</span> (_bold contents _info) contents) (<span class="org-keyword">defun</span> <span class="org-function-name">org-ascii-italic</span> (_italic contents _info) contents) (<span class="org-keyword">defun</span> <span class="org-function-name">org-ascii-underline</span> (_underline contents _info) contents) (<span class="org-keyword">defun</span> <span class="org-function-name">org-ascii-strike-through</span> (_strike-through contents _info) contents) <span class="org-comment-delimiter">;; </span><span class="org-comment">override `</span><span class="org-comment"><span class="org-constant">org-ascii-template--document-title</span></span><span class="org-comment">', change center align to left align</span> (<span class="org-keyword">defun</span> <span class="org-function-name">org-ascii-template--document-title</span> (info) <span class="org-doc">"Return document title, as a string.</span> <span class="org-doc">INFO is a plist used as a communication channel."</span> (<span class="org-keyword">let*</span> ((text-width (plist-get info <span class="org-builtin">:ascii-text-width</span>)) <span class="org-comment-delimiter">;; </span><span class="org-comment">Links in the title will not be resolved later, so we make</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">sure their path is located right after them.</span> (info (org-combine-plists info '(<span class="org-builtin">:ascii-links-to-notes</span> nil))) (with-title (plist-get info <span class="org-builtin">:with-title</span>)) (title (org-export-data (<span class="org-keyword">when</span> with-title (plist-get info <span class="org-builtin">:title</span>)) info)) (subtitle (org-export-data (<span class="org-keyword">when</span> with-title (plist-get info <span class="org-builtin">:subtitle</span>)) info)) (author (<span class="org-keyword">and</span> (plist-get info <span class="org-builtin">:with-author</span>) (<span class="org-keyword">let</span> ((auth (plist-get info <span class="org-builtin">:author</span>))) (<span class="org-keyword">and</span> auth (org-export-data auth info))))) (email (<span class="org-keyword">and</span> (plist-get info <span class="org-builtin">:with-email</span>) (org-export-data (plist-get info <span class="org-builtin">:email</span>) info))) (date (<span class="org-keyword">and</span> (plist-get info <span class="org-builtin">:with-date</span>) (org-export-data (org-export-get-date info) info)))) <span class="org-comment-delimiter">;; </span><span class="org-comment">There are two types of title blocks depending on the presence</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">of a title to display.</span> (<span class="org-keyword">if</span> (string= title <span class="org-string">""</span>) <span class="org-comment-delimiter">;; </span><span class="org-comment">Title block without a title. DATE is positioned at the top</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">right of the document, AUTHOR to the top left and EMAIL</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">just below.</span> (<span class="org-keyword">cond</span> ((<span class="org-keyword">and</span> (org-string-nw-p date) (org-string-nw-p author)) (concat author (make-string (- text-width (string-width date) (string-width author)) ?\s) date (<span class="org-keyword">when</span> (org-string-nw-p email) (concat <span class="org-string">"\n"</span> email)) <span class="org-string">"\n\n\n"</span>)) ((<span class="org-keyword">and</span> (org-string-nw-p date) (org-string-nw-p email)) (concat email (make-string (- text-width (string-width date) (string-width email)) ?\s) date <span class="org-string">"\n\n\n"</span>)) ((org-string-nw-p date) (concat (org-ascii--justify-lines date text-width 'right) <span class="org-string">"\n\n\n"</span>)) ((<span class="org-keyword">and</span> (org-string-nw-p author) (org-string-nw-p email)) (concat author <span class="org-string">"\n"</span> email <span class="org-string">"\n\n\n"</span>)) ((org-string-nw-p author) (concat author <span class="org-string">"\n\n\n"</span>)) ((org-string-nw-p email) (concat email <span class="org-string">"\n\n\n"</span>))) <span class="org-comment-delimiter">;; </span><span class="org-comment">Title block with a title. Document's TITLE, along with the</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">AUTHOR and its EMAIL are both overlined and an underlined,</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">centered. Date is just below, also centered.</span> (<span class="org-keyword">let*</span> ((utf8p (eq (plist-get info <span class="org-builtin">:ascii-charset</span>) 'utf-8)) <span class="org-comment-delimiter">;; </span><span class="org-comment">Format TITLE. It may be filled if it is too wide,</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">that is wider than the two thirds of the total width.</span> (title-len (min (apply #'max (mapcar #'string-width (org-split-string (concat title <span class="org-string">"\n"</span> subtitle) <span class="org-string">"\n"</span>))) (/ (* 2 text-width) 3))) (formatted-title (org-ascii--fill-string title title-len info)) (formatted-subtitle (<span class="org-keyword">when</span> (org-string-nw-p subtitle) (org-ascii--fill-string subtitle title-len info))) (line (make-string (min (+ (max title-len (string-width (<span class="org-keyword">or</span> author <span class="org-string">""</span>)) (string-width (<span class="org-keyword">or</span> email <span class="org-string">""</span>))) 2) text-width) <span class="org-warning">(</span><span class="org-keyword"><span class="org-warning">if</span></span><span class="org-warning"> utf8p ?&#9473; ?_))))</span> (org-ascii--justify-lines (concat (upcase formatted-title) (<span class="org-keyword">and</span> formatted-subtitle (concat <span class="org-string">" - "</span> formatted-subtitle)) (<span class="org-keyword">when</span> (org-string-nw-p date) (concat <span class="org-string">"\n\n"</span> date)) <span class="org-string">"\n"</span> line <span class="org-string">"\n\n"</span>) text-width 'left)))))) </code></pre> </div> </details> <p> <b>給每個頁面添加對應的純文本版本連結</b> </p> <p> 接下來要給文章添加純文本連結,只要获取到文章的 URL,然後加上 <code>.txt</code> 後輟就行。連結我放在了頁脚,頁脚的內容是通過 <code>:html-postamble spike-leung/html-postamble</code> 指定的 (<code>:html-postamble</code> 是 <code>org-publish-project-alist</code> 裡的一個配置項,用於配置頁脚)。 </p> <p> <code>spike-leung/html-postamble</code> 是一個函數: </p> <details> <summary>spike-leung/html-postamble</summary> <div class="org-src-container"> <pre class="src src-emacs-lisp"><code>(<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/html-postamble</span> (info) <span class="org-doc">"Return a string for html-postamble.</span> <span class="org-doc">INFO is a plist holding contextual information."</span> (<span class="org-keyword">let*</span> ((timestamp-format <span class="org-string">"%Y-%m-%d %a %H:%M"</span>) (display-timestamp-format <span class="org-string">"%Y-%m-%d"</span>) (input-file (plist-get info <span class="org-builtin">:input-file</span>)) (output-file (plist-get info <span class="org-builtin">:output-file</span>)) (title (org-export-data (plist-get info <span class="org-builtin">:title</span>) info)) (subtitle (org-export-data (plist-get info <span class="org-builtin">:subtitle</span>) info)) (create-date (org-export-data (org-export-get-date info timestamp-format) info)) (modified-date (format-time-string timestamp-format (<span class="org-keyword">and</span> input-file (file-attribute-modification-time (file-attributes input-file))))) (create-date-display (org-export-data (org-export-get-date info display-timestamp-format) info)) (modified-date-display (format-time-string display-timestamp-format (<span class="org-keyword">and</span> input-file (file-attribute-modification-time (file-attributes input-file))))) (output-filename (file-name-base output-file))) (concat <span class="org-comment-delimiter">;; </span><span class="org-comment">webmention</span> <span class="org-string">"&lt;details class=\"webmention\"&gt;</span> <span class="org-string">&lt;summary&gt;Webmentions &lt;span class=\"webmention__count js-required\"&gt;(&#21152;&#36733;&#20013;...)&lt;/span&gt;&lt;/summary&gt;</span> <span class="org-string">&lt;p class=\"webmention__tip\"&gt;</span> <span class="org-string">&#22914;&#26524;&#20320;&#24819;&#22238;&#24212;&#36825;&#31687;&#25991;&#31456;&#65292;&#21487;&#20197;&#22312;&#20320;&#30340;&#25991;&#31456;&#25110;&#31038;&#20132;&#23186;&#20307;&#24086;&#23376;&#20013;&#38142;&#25509;&#36825;&#31687;&#25991;&#31456;&#65292;&#28982;&#21518;&#25552;&#20132;&#20320;&#30340; URL&#65292;&#20320;&#30340;&#22238;&#24212;&#38543;&#21518;&#20250;&#26174;&#31034;&#22312;&#27492;&#39029;&#38754;&#19978;&#12290;</span> <span class="org-string">(&lt;a href=\"https://taxodium.ink/add-webmention-to-blog.html\"&gt;&#20851;&#20110; Webmention&lt;/a&gt;)</span> <span class="org-string">&lt;/p&gt;</span> <span class="org-string">&lt;noscript&gt;&lt;p class=\"webmention__tip\"&gt;&#20320;&#21487;&#20197;&#30332;&#36865; Webmention&#65292;&#20294;&#21152;&#36617;&#25976;&#25818;&#38656;&#35201;&#38283;&#21855; JS&#12290;&lt;/p&gt;&lt;/noscript&gt;</span> <span class="org-string">&lt;form action=\"https://webmention.io/taxodium.ink/webmention\" method=\"post\"&gt;</span> <span class="org-string">&lt;label for=\"source\"&gt;&#20320;&#25991;&#31456;&#25110;&#24086;&#23376;&#30340; URL:&lt;/label&gt;</span> <span class="org-string">&lt;input type=\"url\" name=\"source\" id=\"source\" placeholder=\"https://example.com/post.html\"/&gt;</span> <span class="org-string">&lt;input type=\"hidden\" name=\"target\" id=\"target\" readonly /&gt;</span> <span class="org-string">&lt;input type=\"submit\" class=\"button\" value=\"&#25552;&#20132;\"/&gt;</span> <span class="org-string">&lt;/form&gt;</span> <span class="org-string">&lt;hr&gt;&lt;/hr&gt;</span> <span class="org-string">&lt;ul class=\"webmention__list js-required\"&gt;&lt;/ul&gt;</span> <span class="org-string">&lt;/details&gt;"</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">microformat</span> <span class="org-string">"&lt;div class=\"h-card p-author\" aria-hidden=\"true\"&gt;</span> <span class="org-string">&lt;img src=\"https://taxodium.ink/favicon.ico\" class=\"u-logo\"/&gt;</span> <span class="org-string">&lt;img src=\"https://taxodium.ink/images/common/avatar.png\" class=\"u-photo\"/&gt;</span> <span class="org-string">&lt;a href=\"https://taxodium.ink\" class=\"u-url p-name\"&gt;Spike Leung&lt;/a&gt;</span> <span class="org-string">&lt;a href=\"mailto:l-yanlei@hotmail.com\" class=\"u-email\"&gt;Spike Leung&lt;/a&gt;</span> <span class="org-string">&lt;/div&gt;"</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">footer</span> (format-spec <span class="org-string">"</span> <span class="org-string">&lt;footer&gt;</span> <span class="org-string">&lt;p&gt;&#24863;&#35874;&#20320;&#30340;&#38405;&#35835;&#65281;(&#180;&#65377;&#8226; &#7509; &#8226;&#65377;`) &#9825;&lt;/p&gt;</span> <span class="org-string">&lt;p&gt;&#25991;&#31456;&#21019;&#24314;&#26044; &lt;time class=\"dt-published\" datetime=\"%c\"&gt;%C&lt;/time&gt;&#65292;&#26356;&#26032;&#26044; &lt;time class=\"dt-updated\" datetime=\"%m\"&gt;%M&lt;/time&gt;&#65292;&lt;/p&gt;</span> <span class="org-string">&lt;p&gt;&#25152;&#26377;&#21407;&#21019;&#20839;&#23481;&#22343;&#36981;&#24490; &lt;a href=\"https://creativecommons.org/licenses/by-nc-sa/4.0/deed.zh-hans\"&gt;&#32626;&#21517;&#12289;&#38750;&#21830;&#19994;&#24615;&#20351;&#29992;&#12289;&#30456;&#21516;&#26041;&#24335;&#20849;&#20139;&lt;/a&gt;&#65292;&lt;/p&gt;</span> <span class="org-string">&lt;p&gt;&#25152;&#26377;&#28304;&#20195;&#30908;&#20197;&#21450;&#20869;&#32852;&#25991;&#27284;&#36981;&#24490; &lt;a href=\"https://www.gnu.org/licenses/agpl-3.0.en.html\"&gt;AGPL v3&lt;/a&gt;&#12290;&lt;/p&gt;</span> <span class="org-string">&lt;p&gt;&#22914;&#26524;&#20320;&#26377;&#20160;&#20040;&#24819;&#35828;&#30340;&#65292;&#23613;&#31649;&#32473; &lt;a href=\"mailto:l-yanlei@hotmail.com?subject=&#22238;&#24489;: %t %s&amp;body=Hi Spike,\"&gt;Spike Leung&lt;/a&gt; &#21457;&#19968;&#23553; &lt;a href=\"https://useplaintext.email\"&gt;&#32020;&#25991;&#26412;&#37038;&#20214;&lt;/a&gt; :)&lt;/p&gt;</span> <span class="org-string">&lt;p&gt;&#22914;&#26524;&#25991;&#31456;&#23545;&#20320;&#26377;&#24110;&#21161;&#65292;&#35831;&#32771;&#34385; &lt;a href=\"https://taxodium.ink/support-me.html\"&gt;&#29992;&#20320;&#21916;&#27426;&#30340;&#26041;&#24335;&lt;/a&gt; &#25903;&#25345;&#25105;&#12290;&lt;/p&gt;</span> <span class="org-string">&lt;a href=\"/%u.txt\"&gt;&#32020;&#25991;&#26412;&#29256;&#26412;&lt;/a&gt; &lt;a href=\"/%u.org\"&gt;&#21407;&#22987; org &#25991;&#20214;&lt;/a&gt;</span> <span class="org-string">&lt;/footer&gt;"</span> `((?c . ,create-date) (?C . ,create-date-display) (?m . ,modified-date) (?M . ,modified-date-display) (?t . ,title) (?s . ,subtitle) (?u . ,output-filename))) <span class="org-comment-delimiter">;; </span><span class="org-comment">scripts</span> <span class="org-string">"&lt;script src=\"/js/code-enhanced.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;script src=\"/js/code-highlighted.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;script src=\"/js/backtop.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;script src=\"/js/sidenote.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;script src=\"/js/purify.min.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;script src=\"/js/webmention.js\" defer&gt;&lt;/script&gt;</span> <span class="org-string">&lt;noscript&gt;</span> <span class="org-string"> &lt;style&gt;</span> <span class="org-string"> .js-required {</span> <span class="org-string"> display: none;</span> <span class="org-string"> }</span> <span class="org-string"> &lt;/style&gt;</span> <span class="org-string">&lt;/noscript&gt;"</span>))) </code></pre> </div> </details> <p> 函數的參數 <code>info</code> 是一個包含了 org-publish 相關上下文的 <a href="https://www.gnu.org/software/emacs/manual/html_mono/elisp.html#Plists-and-Alists">plist</a>,其中的 <code>:output-file</code> 對應的就是最終导出的文件名字,也就是 URL,用這個 URL 拼接上 <code>.txt</code> ,展示成一個 <a href="https://developer.mozilla.org/en-US/docs/Web/HTML/Reference/Elements/a">&lt;a&gt;</a> 元素,就得到了文章的純文本版本連結。 </p> <p> <b>製作索引頁</b> </p> <p> <a href="txt.html">純文本索引頁</a> 和 <a href="index.html">首頁</a> 基本是一樣的,都是用 <a href="https://protesilaos.com/emacs/denote-org">Denote Org</a> 获取文章的 denote 連結 (<code>denote:</code>),不同之处在於,首頁是將 denote 的連結轉換成 <code>.html</code> 的連結,而純文本索引頁需要轉換成 <code>.txt</code> 的連結,這需要覆盖 <code>denote:</code> 連結的导出函數。 </p> <details> <summary>denote 相關改動</summary> <div class="org-src-container"> <pre class="src src-emacs-lisp"><code><span class="org-comment-delimiter">;;; </span><span class="org-comment">make denote-link-ol-export support #+export_file_name</span> <span class="org-comment-delimiter">;; </span><span class="org-comment">see also: https://jiewawa.me/2024/03/blogging-with-denote-and-hugo/</span> (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/my-denote--get-export-file-name</span> (file) <span class="org-doc">"Find #+export_file_name in FILE and return its value.</span> <span class="org-doc">Return nil if not found or FILE does not exist."</span> (<span class="org-keyword">when</span> (<span class="org-keyword">and</span> file (file-exists-p file)) (<span class="org-keyword">with-temp-buffer</span> (insert-file-contents file) (goto-char (point-min)) (<span class="org-keyword">when</span> (re-search-forward <span class="org-string">"^#\\+export_file_name: </span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">(</span></span><span class="org-string">.*</span><span class="org-string"><span class="org-regexp-grouping-backslash">\\</span></span><span class="org-string"><span class="org-regexp-grouping-construct">)</span></span><span class="org-string">$"</span> nil t) (string-trim (match-string-no-properties 1)))))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/denote-link-ol-export</span> (link description format) <span class="org-doc">"Export a `</span><span class="org-doc"><span class="org-constant">denote:</span></span><span class="org-doc">' link from Org files.</span> <span class="org-doc">The LINK, DESCRIPTION, and FORMAT are handled by the export</span> <span class="org-doc">backend."</span> (<span class="org-keyword">pcase-let*</span> ((`(,path ,query ,file-search) (denote-link--ol-resolve-link-to-target link <span class="org-builtin">:full-data</span>)) (export-file-name (<span class="org-keyword">when</span> path (spike-leung/my-denote--get-export-file-name path))) (anchor (<span class="org-keyword">if</span> export-file-name export-file-name (<span class="org-keyword">when</span> path (file-relative-name (file-name-sans-extension path))))) (desc (<span class="org-keyword">cond</span> (description) (file-search (format <span class="org-string">"denote:%s::%s"</span> query file-search)) (t (concat <span class="org-string">"denote:"</span> query)))) (ext org-html-extension)) (<span class="org-keyword">if</span> path (<span class="org-keyword">pcase</span> format ('html (<span class="org-keyword">if</span> file-search (format <span class="org-string">"&lt;a href=\"%s.%s%s\"&gt;%s&lt;/a&gt;"</span> (url-encode-url anchor) ext file-search desc) (format <span class="org-string">"&lt;a href=\"%s.%s\"&gt;%s&lt;/a&gt;"</span> (url-encode-url anchor) ext desc))) ('latex (format <span class="org-string">"\\href{%s}{%s}"</span> (replace-regexp-in-string <span class="org-string">"[\\{}$%&amp;_#~^]"</span> <span class="org-string">"\\\\\\&amp;"</span> path) desc)) ('texinfo (format <span class="org-string">"@uref{%s,%s}"</span> path desc)) ('ascii (<span class="org-keyword">if</span> file-search (format <span class="org-string">"[%s] <a href="https://taxodium.ink/%s.html%s&gt;&quot; desc (url-encode-url anchor) file-search ) (format &quot;[%s] &lt;https://taxodium.ink/%s.html">&lt;https://taxodium.ink/%s.html%s&gt;"</a></span><a href="https://taxodium.ink/%s.html%s&gt;&quot; desc (url-encode-url anchor) file-search ) (format &quot;[%s] &lt;https://taxodium.ink/%s.html"> desc (url-encode-url anchor) file-search ) (format </a><span class="org-string"><a href="https://taxodium.ink/%s.html%s&gt;&quot; desc (url-encode-url anchor) file-search ) (format &quot;[%s] &lt;https://taxodium.ink/%s.html">"[%s] &lt;https://taxodium.ink/%s.html&gt;</a>"</span> desc (url-encode-url anchor)))) ('md (format <span class="org-string">"[%s](%s)"</span> desc path)) (_ path)) (format-message <span class="org-string">"[[Denote query for `</span><span class="org-string"><span class="org-constant">%s</span></span><span class="org-string">']]"</span> query)))) <span class="org-comment-delimiter">;; </span><span class="org-comment">&#20462;&#25913; `</span><span class="org-comment"><span class="org-constant">denote:</span></span><span class="org-comment">' &#38142;&#25509;&#30340;&#23548;&#20986;&#65292;&#20351;&#20854;&#35835;&#21462; `#+export_file_name'</span> (add-hook 'org-export-before-processing-hook #'(<span class="org-keyword">lambda</span> (backend) (org-link-set-parameters <span class="org-string">"denote"</span> <span class="org-builtin">:export</span> #'spike-leung/denote-link-ol-export))) </code></pre> </div> <p> 更多見: <a href="https://github.com/Spike-Leung/Spikemacs/blob/main/lisp/init-denote.el">init-denote.el</a>。 </p> </details> <p> 主要的改動是讓 <code>denote:</code> 在导出時讀取 <code>org-html-extension</code> 作為後輟,默認是 <code>html</code> ,在純文本索引頁我會添加一個 <a href="https://www.gnu.org/software/emacs/manual/html_mono/emacs.html#File-Variables">File Variables</a>: </p> <div class="org-src-container"> <pre class="src src-org"><code><span class="org-comment"># Local Variables&#58;</span> <span class="org-comment"># org-html-extension: "txt"</span> <span class="org-comment"># End:</span> </code></pre> </div> <p> 將 <code>org-html-extension</code> 的默認值覆盖為 <code>txt</code> ,然後將索引頁用 <code>org-publish</code> 导出就行。 </p> <p> 除此之外就是移除了頁頭、頁脚和樣式,讓索引頁盡可能精簡一些,索引頁目前資源大小只有 35K,HTML 只有 8K,應該足够小了,網絡不好時應該也能較快地加載。 </p> <hr> <p> 如果你是博客作者,也可以考慮加一下純文本版本。如果你是讀者,要是在網絡不好時你還想看我的博客,你可以訪問 <code>https://taxodium.ink/txt.html</code> ;至於頁面,網絡不好時,你可以將 URL 上的 <code>.html</code> 換成 <code>.txt</code> ,先湊合看著。 </p> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/add-plain-text-version-to-blog.txt">純文本版本</a> <a href="https://taxodium.ink/add-plain-text-version-to-blog.org">原始 org 文件</a>

2026/8/23
阅读更多

在 Emacs 中用漢典查詢倉頡碼

<div id="content" class="content e-content"> <header> <h1 class="title p-name">在 Emacs 中用漢典查詢倉頡碼</h1> </header><p> <a href="get-started-with-cangjie-input-method.html">倉頡輸入法</a> 我已經用了很長時間,通過強迫自己在日常中使用,現在日常打字已經沒什麼問題。我最近寫的文章都是用䌓體,是因為倉頡打繁體更容易,而且我也喜歡繁體字 <small>(繁體字更容易反映字形,從而更好的理解一個字的含義)</small>。不過我的用法可能有點怪,現在用䌓體的更多是香港、澳門和臺灣的人,他們的用字有各自的習慣偏好,但由於我不了解,我大多時候只是將簡體字換成䌓體字,但我想閱讀起來應該也沒什麼問題。或許有的讀者閲讀䌓體會有點困難,我只能說聲抱歉了。 </p> <p> 儘管常用字基本會打了,但還是會有一些字不知道怎麼打,有的字我不知道對應的繁體是什麼,這時我會用 <a href="https://zdic.net">漢典</a> 去查。 </p> <p> 我有兩種用法,一種是利用 Zen 瀏覧器的快捷查詢 (Shortcut),我綁定在了 <code>@h</code> ,在我需要查一個字時,例如「倉」,我就在 Zen 瀏覧器的搜索框中輸入 <code>@h 倉</code> 就可以跳到漢典查詢。 </p> <figure> <a href="images/get-started-with-cangjie-input-method/handian-shortcut.webp"><img src="https://imgproxy.citrusreader.com/MjWoCk8MG7MBfCxhYkh0_4nH3UTk8z5GGIjfgoqN758/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2dldC1zdGFydGVkLXdpdGgtY2FuZ2ppZS1pbnB1dC1tZXRob2QvaGFuZGlhbi1zaG9ydGN1dC53ZWJw" alt="handian-shortcut.webp" loading="lazy" class="center"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>Zen 上的漢典 shortcut 配置截图。</figcaption> </figure> <p> 另一個用法是在 Emacs 裡 <small>(我用 Emacs 寫博客,在 Emacs 裡打字是最多的)</small>,我將漢典的連結寫進了 <a href="emacs-use-webjump-to-search-symbol-at-point.html">webjump</a> 裡,webjump 的功能和 Zen 瀏覧器的快捷查詢是類似的,也可以自定義查詢,通過 <code>M-x webjump</code> 就能調用。更方便的做法是將 webjump 綁定在 <a href="https://github.com/oantolin/embark">embark</a> 上,embark 相當於 Emacs 中的右鍵菜單,這樣我可以選中一個字後,通過 embark 調用 webjump,然後選擇漢典進行查詢。關於這部分的設定可以看 <a href="emacs-use-webjump-to-search-symbol-at-point.html">Emacs: 封装 webjump 搜索 symbol-at-point</a>。 </p> <p> 這兩種方法本質上都是跳轉到漢典查詢,只是調用的入口不同,我也用了很長一段時間。但漢典頁面的信息太多了,很多信息是我不關心的,而我比較關心的倉頡碼在頁面底部,每次都要滾動到底部才能看,有點麻煩。前陣子在 <a href="blaugust-2026-feeds.html">Blaugust 2026 Feeds - 以及我是如何用 Elisp 製作的</a> 中我學會了如何在 Emacs 中抓取一個頁面的 HTML,并用 Emacs 內置的 dom.el 处理 HTML 中的元素,於是我想,我也可以用相同的方法去抓取漢典的 HTML,只保留那些我關心的內容,然後在 Emacs 的 buffer 裡展示,這樣在 Emacs 中查字時會更方便。 </p> <p> 折騰了好一會儿,我已經實現了,功能的大體邏輯是這樣的: </p> <ul class="org-ul"> <li>從選中的區域 (region) 或用戶輸入获取要查詢的字</li> <li>拼接漢典的查詢連結: <a href="https://zdic.net/hans/%E5%AD%97">https://zdic.net/hans/%E5%AD%97</a></li> <li>用 <a href="https://github.com/alphapapa/plz.el">plz.el</a> 發起請求,获取到頁面的 HTML</li> <li>用 dom.el 获取我需要的信息:字的圖片、拼音、倉頡碼、對應的簡體或䌓體的圖片、倉頡碼、說文解字中的文字圖片 <small>(用於了解字的原始形狀)</small></li> <li>將信息拼裝好,用 Emacs 內置的瀏覧器 EWW 展示,這是因為組裝好的信息也是一份 DOM tree,適合用瀏覧器來渲染,同時如果想看原始頁面,也可以在 EWW 中用 <code>eww-browse-with-external-browser</code> 把 URL 用外部瀏覧器打開</li> </ul> <details> <summary>源碼</summary> <div class="org-src-container"> <pre class="src src-emacs-lisp"><code><span class="org-comment-delimiter">;;; </span><span class="org-comment">init-handian.el --- &#29992;&#28450;&#20856;&#26597;&#35426;&#28450;&#23383;&#30340;&#20489;&#38945;&#30908; -*- lexical-binding: t -*-</span> <span class="org-comment-delimiter">;;; </span><span class="org-comment">Commentary:</span> <span class="org-comment-delimiter">;;; </span><span class="org-comment">Code:</span> (<span class="org-keyword">require</span> '<span class="org-constant">plz</span>) (<span class="org-keyword">require</span> '<span class="org-constant">dom</span>) (<span class="org-keyword">require</span> '<span class="org-constant">cl-lib</span>) (<span class="org-keyword">require</span> '<span class="org-constant">eww</span>) (<span class="org-keyword">require</span> '<span class="org-constant">url-util</span>) (<span class="org-keyword">require</span> '<span class="org-constant">subr-x</span>) (<span class="org-keyword">defcustom</span> <span class="org-variable-name">spike-leung/handian--url</span> <span class="org-string">"https://zdic.net/hans/"</span> <span class="org-doc">"&#28450;&#20856; URL."</span> <span class="org-builtin">:type</span> 'string) (<span class="org-keyword">defvar</span> <span class="org-variable-name">spike-leung/handian--cangjie-char-table</span> (<span class="org-keyword">let</span> ((tbl (make-char-table nil))) (<span class="org-keyword">pcase-dolist</span> (`(,key . ,val) '((?a . <span class="org-string">"&#26085;"</span>) (?b . <span class="org-string">"&#26376;"</span>) (?c . <span class="org-string">"&#37329;"</span>) (?d . <span class="org-string">"&#26408;"</span>) (?e . <span class="org-string">"&#27700;"</span>) (?f . <span class="org-string">"&#28779;"</span>) (?g . <span class="org-string">"&#22303;"</span>) (?h . <span class="org-string">"&#31481;"</span>) (?i . <span class="org-string">"&#25096;"</span>) (?j . <span class="org-string">"&#21313;"</span>) (?k . <span class="org-string">"&#22823;"</span>) (?l . <span class="org-string">"&#20013;"</span>) (?m . <span class="org-string">"&#19968;"</span>) (?n . <span class="org-string">"&#24339;"</span>) (?o . <span class="org-string">"&#20154;"</span>) (?p . <span class="org-string">"&#24515;"</span>) (?q . <span class="org-string">"&#25163;"</span>) (?r . <span class="org-string">"&#21475;"</span>) (?s . <span class="org-string">"&#23608;"</span>) (?t . <span class="org-string">"&#24319;"</span>) (?u . <span class="org-string">"&#23665;"</span>) (?v . <span class="org-string">"&#22899;"</span>) (?w . <span class="org-string">"&#30000;"</span>) (?y . <span class="org-string">"&#21340;"</span>) (?x . <span class="org-string">"&#38627;"</span>) (?z . <span class="org-string">"&#37325;"</span>))) (aset tbl key val)) tbl)) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--convert-to-cangjie-char</span> (cangjie-code) <span class="org-doc">"&#23559;&#20489;&#38945;&#30908;&#36681;&#25104;&#20489;&#38945;&#23383;&#27597; abc -&gt; &#26085;&#26376;&#37329;.</span> <span class="org-doc">CANGJIE-CODE &#26159;&#20489;&#38945;&#30908;."</span> (mapconcat (<span class="org-keyword">lambda</span> (code) (<span class="org-keyword">or</span> (aref spike-leung/handian--cangjie-char-table code) (char-to-string code))) (string-to-list cangjie-code))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--char-url</span> (char) <span class="org-doc">"&#28450;&#20856; URL&#65292;&#25340;&#25509;&#19978;&#35201;&#26597;&#35426;&#30340; CHAR."</span> (concat spike-leung/handian--url (url-hexify-string char))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--img-with-bg</span> (img) <span class="org-doc">"&#25226; IMG &#21253;&#36914;&#19968;&#20491;&#28154;&#33394;&#32972;&#26223;&#30340; span&#65292;&#36991;&#20813;&#26263;&#33394;&#20027;&#38988;&#30475;&#19981;&#28165;&#40657;&#23383;."</span> (<span class="org-keyword">when</span> img `(span ((style . <span class="org-string">"background-color: #fff;"</span>)) ,img))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--variants-p</span> (dom) <span class="org-doc">"&#21028;&#26039;&#26159;&#21542;&#22312;&#12300;&#32321;&#20307;&#12301;&#25110;&#12300;&#31616;&#20307;&#12301;.</span> <span class="org-doc">DOM &#26159;&#38913;&#38754;&#25991;&#27284;&#30340; DOM &#27193;."</span> (<span class="org-keyword">let</span> ((variants (dom-by-class dom <span class="org-string">"char-card__variants"</span>))) (<span class="org-keyword">and</span> variants (<span class="org-keyword">let</span> ((text (dom-texts variants))) (<span class="org-keyword">or</span> (string-match-p <span class="org-string">"&#32321;&#20307;"</span> text) (string-match-p <span class="org-string">"&#31616;&#20307;"</span> text)))))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--variants</span> (dom) <span class="org-doc">"&#33719;&#21462;&#23383;&#30340;&#12300;&#32321;&#20307;&#12301;&#25110;&#12300;&#31616;&#20307;&#12301;&#65292;&#26597;&#35426;&#20854;&#20489;&#38945;&#30908;&#65292;&#36820;&#22238;&#23565;&#25033;&#30340; DOM.</span> <span class="org-doc">DOM &#26159;&#38913;&#38754;&#25991;&#27284;&#30340; DOM &#27193;."</span> (<span class="org-keyword">when</span> (spike-leung/handian--variants-p dom) (<span class="org-keyword">let*</span> ((variants (dom-by-class dom <span class="org-string">"char-card__variants"</span>)) (link (dom-by-class (car (dom-by-tag variants 'ul)) <span class="org-string">"variant-link"</span>)) (variant-char (<span class="org-keyword">dom-attr</span> link 'title))) (spike-leung/handian--query-char variant-char t)))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--swjz-img</span> (dom) <span class="org-doc">"&#33659;&#21462;&#12300;&#35498;&#25991;&#35299;&#23383;&#12301;&#37096;&#20998;&#30340;&#22294;&#29255;.</span> <span class="org-doc">DOM &#26159;&#38913;&#38754;&#25991;&#27284;&#30340; DOM &#27193;."</span> (<span class="org-keyword">let*</span> ((swjz (dom-by-id dom <span class="org-string">"swjz"</span>))) (list (car (dom-by-tag swjz 'img))))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--build-document</span> (dom url <span class="org-type">&amp;optional</span> is-variant) <span class="org-doc">"&#27083;&#24314;&#39023;&#31034;&#30340;&#32080;&#26524;.</span> <span class="org-doc">URL &#26159;&#28450;&#20856;&#30340; URL&#65292;&#23383;&#20316;&#28858;&#26597;&#35426;&#21443;&#25976;.</span> <span class="org-doc">DOM &#26159;&#38913;&#38754;&#25991;&#27284;&#30340; DOM &#27193;.</span> <span class="org-doc">&#22914;&#26524; IS-VARIANT &#26159; nil&#65292;&#21063;&#38989;&#22806;&#26597;&#35426;&#19968;&#27425;&#36889;&#20491;&#23383;&#23565;&#25033;&#30340;&#12300;&#32321;&#20307;&#12301;&#25110;&#12300;&#31616;&#20307;&#12301;."</span> (<span class="org-keyword">let*</span> ((glyph-img (dom-by-id dom <span class="org-string">"glyph-img"</span>)) (pinyin (dom-text (dom-by-class dom <span class="org-string">"meta-pinyin"</span>))) (info-extra (dom-by-class dom <span class="org-string">"char-card__info-extra"</span>)) (cangjie (nth 3 (dom-by-tag info-extra 'span))) <span class="org-comment-delimiter">;; </span><span class="org-comment">&#26597;&#35426;&#21407;&#23383;&#26178;&#65292;&#38989;&#22806;&#26597;&#35426;&#20854;&#35722;&#39636;&#65307;&#22914;&#26524;&#26159;&#26597;&#35426;&#30340;&#26159;&#35722;&#39636;&#21063;&#19981;&#38656;&#35201;&#38989;&#22806;&#26597;&#35426;&#20854;&#35722;&#39636;&#65292;&#21542;&#21063;&#23601;&#24490;&#29872;&#20102;&#12290;</span> (swjz-img (<span class="org-keyword">unless</span> is-variant (spike-leung/handian--swjz-img dom))) (variants (<span class="org-keyword">unless</span> is-variant (spike-leung/handian--variants dom)))) (append (list 'base (list (cons 'href url)) (spike-leung/handian--img-with-bg glyph-img) '(span nil <span class="org-string">"&#25340;&#38899;&#65306;"</span>) pinyin '(span nil <span class="org-string">"&#20489;&#38945;&#30908;&#65306;"</span>) `(span nil ,(concat (spike-leung/handian--convert-to-cangjie-char (dom-texts cangjie)) <span class="org-string">" / "</span> )) cangjie '(hr nil)) (<span class="org-keyword">and</span> variants (list variants)) `(,(spike-leung/handian--img-with-bg swjz-img))))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--query-char</span> (char <span class="org-type">&amp;optional</span> is-variant) <span class="org-doc">"&#21521;&#28450;&#20856;&#30332;&#36215;&#35531;&#27714;&#65292;&#24471;&#21040;&#36820;&#22238;&#30340; HTML&#65292;&#35299;&#26512;&#25104; DOM&#65292;&#24182;&#27083;&#24314;&#29992;&#26044;&#39023;&#31034;&#30340; DOM.</span> <span class="org-doc">CHAR &#26159;&#35201;&#26597;&#35426;&#30340;&#28450;&#23383;.</span> <span class="org-doc">&#22914;&#26524; IS-VARIANT &#26159; nil&#65292;&#21063;&#38989;&#22806;&#26597;&#35426;&#19968;&#27425;&#36889;&#20491;&#23383;&#23565;&#25033;&#30340;&#12300;&#32321;&#20307;&#12301;&#25110;&#12300;&#31616;&#20307;&#12301;."</span> (<span class="org-keyword">let*</span> ((url (concat <span class="org-string">"https://zdic.net/hans/"</span> (url-hexify-string char))) (dom (plz 'get url <span class="org-builtin">:as</span> (<span class="org-keyword">lambda</span> () (libxml-parse-html-region (point-min) (point-max))) <span class="org-builtin">:then</span> 'sync))) (spike-leung/handian--build-document dom url is-variant))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--display</span> (char document) <span class="org-doc">"&#29992; EWW &#23637;&#31034;&#26597;&#35426;&#32080;&#26524;.</span> <span class="org-doc">CHAR &#26159;&#35201;&#26597;&#35426;&#30340;&#28450;&#23383;.</span> <span class="org-doc">DOCUMENT &#27083;&#24314;&#22909;&#30340;&#29992;&#26044;&#23637;&#31034;&#30340; DOM&#65292;&#26684;&#24335;&#35201;&#21512; EWW &#35201;&#27714;&#30340;&#26684;&#24335;."</span> (<span class="org-keyword">let*</span> ((url (spike-leung/handian--char-url char)) (buf-name (format <span class="org-string">"* [H] &#28450;&#20856;:&#12300;%s&#12301;*"</span> char)) (buf (get-buffer-create buf-name))) (<span class="org-keyword">with-current-buffer</span> buf (eww-mode) (plist-put eww-data <span class="org-builtin">:url</span> url) (plist-put eww-data <span class="org-builtin">:title</span> buf-name)) (pop-to-buffer buf) (eww-display-document document nil buf) (eww--after-page-change))) (<span class="org-keyword">defun</span> <span class="org-function-name">spike-leung/handian--query</span> (char) <span class="org-doc">"&#29992;&#12300;&#28450;&#20856;&#12301;(`</span><span class="org-doc"><span class="org-constant">spike-leung/handian--url</span></span><span class="org-doc">') &#26597;&#35426;&#28450;&#23383; CHAR.</span> <span class="org-doc">&#39023;&#31034;&#28450;&#23383;&#30340;&#31777;&#39636;&#21644;&#32321;&#39636;&#65292;&#23427;&#20497;&#30340;&#25340;&#38899;&#21644;&#20489;&#38945;&#30908;&#31561;&#20449;&#24687;&#12290;</span> <span class="org-doc">&#32080;&#26524;&#20351;&#29992; `</span><span class="org-doc"><span class="org-constant">eww-mode</span></span><span class="org-doc">'&#65292;</span> <span class="org-doc">&#21487;&#20197;&#22312;&#32080;&#26524; buffer &#20013;&#29992; `</span><span class="org-doc"><span class="org-constant">eww-browse-with-external-browser</span></span><span class="org-doc">' &#25171;&#38283;&#21407;&#32178;&#31449;&#26597;&#38321;&#26356;&#22810;&#20449;&#24687;."</span> (<span class="org-keyword">interactive</span> (list (<span class="org-keyword">let</span> ((s (<span class="org-keyword">if</span> (use-region-p) (string-trim (buffer-substring-no-properties (region-beginning) (region-end))) (read-string <span class="org-string">"&#36664;&#20837;&#35201;&#26597;&#35426;&#30340;&#28450;&#23383;: "</span>)))) (<span class="org-keyword">if</span> (&gt; (length s) 1) (<span class="org-warning">user-error</span> <span class="org-string">"&#12300;%s&#12301;&#21547;&#22810;&#20491;&#23383;&#65292;&#20677;&#25509;&#21463;&#21934;&#19968;&#28450;&#23383;"</span> s) s)))) (<span class="org-keyword">setq</span> deactivate-mark t) (<span class="org-keyword">let</span> ((document (spike-leung/handian--query-char char))) (spike-leung/handian--display char document))) (<span class="org-keyword">provide</span> '<span class="org-constant">init-handian</span>) <span class="org-comment-delimiter">;;; </span><span class="org-comment">init-handian.el ends here</span> </code></pre> </div> <p> 上面的代碼可能更新不及時,最新的可以看 <a href="https://github.com/Spike-Leung/Spikemacs/blob/main/lisp/init-handian.el">init-handian.el</a>。 </p> </details> <figure> <a href="images/query-cangjie-codes-using-han-dian-in-emacs/handiam-query-result-ai.webp"><img src="https://imgproxy.citrusreader.com/3_MXoSuLiSKeoBYeXU6hT6BRZX0ZvVAaml3zaHWcn0U/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL3F1ZXJ5LWNhbmdqaWUtY29kZXMtdXNpbmctaGFuLWRpYW4taW4tZW1hY3MvaGFuZGlhbS1xdWVyeS1yZXN1bHQtYWkud2VicA" alt="handiam-query-result-ai.webp" loading="lazy"></a> <figcaption><span class="figure-number">&#22270;2&nbsp; </span>在 Emacs 中用 handian.el 查詢「愛」字的結果</figcaption> </figure> <p> 使用時,有几種用法: </p> <ul class="org-ul"> <li>直接調用 <code>spike-leung/handian--query</code> ,輸入要查詢的字查詢</li> <li>在 Emacs 中選中一個字後,調用 <code>spike-leung/handian--query</code> 查詢</li> <li><p> 將 <code>spike-leung/handian--query</code> 綁定到 embark 中,在 Emacs 中選中一個字後,調用 embark 的快捷鍵查詢 <small>(我最常用的方法)</small> </p> <details> <summary>我的相關配置</summary> <p> <a href="#coderef-embark-act" class="coderef" onmouseover="CodeHighlightOn(this, 'coderef-embark-act');" onmouseout="CodeHighlightOff(this, 'coderef-embark-act');">embark-act</a> 綁定在 <kbd>C-.</kbd>,然後 <a href="#coderef-handian--query" class="coderef" onmouseover="CodeHighlightOn(this, 'coderef-handian--query');" onmouseout="CodeHighlightOff(this, 'coderef-handian--query');">將 spike-leung/handian&ndash;query 綁定到 embark-region-map</a>,快捷鍵是 <kbd>H</kbd>。這樣,在選中一個字後,就可以用 <kbd>C-.</kbd> 喚起 embark,再按一下 <kbd>H</kbd> 就會調用 <code>spike-leung/handian--query</code> 查詢漢典并顯示相關信息。 </p> <div class="org-src-container"> <pre class="src src-elisp"><code>(<span class="org-keyword">use-package</span> embark <span class="org-builtin">:hook</span> (after-init . embark-auto-prefix-help-mode) <span class="org-builtin">:diminish</span> embark-auto-prefix-help-mode <span class="org-builtin">:after</span> (vertico) <span class="org-builtin">:bind</span> <span id="coderef-embark-act" class="coderef-off"> ((<span class="org-string">"C-."</span> . embark-act)</span> (<span class="org-string">"M-."</span> . embark-dwim) (<span class="org-string">"C-h B"</span> . embark-bindings)) <span class="org-comment-delimiter">;; </span><span class="org-comment">alternative for `</span><span class="org-comment"><span class="org-constant">describe-bindings</span></span><span class="org-comment">'</span> <span class="org-builtin">:config</span> (keymap-set embark-general-map <span class="org-string">"W"</span> #'spike-leung/webjump-symbol-at-point) (keymap-set embark-region-map <span class="org-string">"W"</span> #'spike-leung/webjump-symbol-at-point) <span id="coderef-handian--query" class="coderef-off"> (keymap-set embark-region-map <span class="org-string">"H"</span> #'spike-leung/handian--query)</span> (add-to-list 'vertico-multiform-categories '(embark-keybinding grid)) (<span class="org-keyword">setq</span> prefix-help-command #'embark-prefix-help-command embark-auto-prefix-help-delay 1.5 <span class="org-comment-delimiter">;; </span><span class="org-comment">&#40664;&#35469;&#19981;&#24392;&#20986; Embark Actions &#33756;&#21934;&#65292;&#21487;&#20197;&#36890;&#36942; C-h &#21914;&#37266;</span> embark-indicators '(embark-minimal-indicator embark-highlight-indicator embark-isearch-highlight-indicator))) </code></pre> </div> </details></li> </ul> <p> 查詢的結果會在一個 buffer 中打開,設置成了 <code>eww-mode</code> ,打開時這個 buffer 是激活狀態,此時按 <kbd>q</kbd> (<code>quit-window</code>) 可以關閉 buffer;按 <kbd>&</kbd> (<code>eww-browse-with-external-browser</code>) 可以用外部瀏覧器打開原始頁面,查看更詳細的信息。 </p> <p> 如果沒有及時關閉這些 <code>eww-mode</code> 的 buffer,可能會堆積很多临時的 buffer,可以進入 <code>ibuffer</code> (<kbd>C-x C-b</kbd>),按照 <code>eww-mode</code> 過濾 buffer (<code>ibuffer-filter-by-mode</code> ,<kbd>/ RET</kbd>),一次性關閉它們。 </p> <p> 功能對我來說挺方便的,也够用了,如果你也在 Emacs 中使用倉頡輸入法,希望對你有所帮助 :) </p> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/query-cangjie-codes-using-han-dian-in-emacs.txt">純文本版本</a> <a href="https://taxodium.ink/query-cangjie-codes-using-han-dian-in-emacs.org">原始 org 文件</a>

2026/8/23
阅读更多

Album#48 - Winter Sweet

<div id="content" class="content e-content"> <header> <h1 class="title p-name">Album#48</h1> <p class="subtitle" role="doc-subtitle">Winter Sweet</p> </header><style> @scope(.conversation) { :scope { & .girl { color: #d361ac; } & .boy { color: #6da7c1; } } } </style> <figure> <a href="images/album/20260808T231323--winter-sweet__albumwall_image_蛋堡_20091231.webp"><img src="https://imgproxy.citrusreader.com/pIKqaXxrHxuTIeTWY03d5RSz5nIIwojdl76UrAjgJ8g/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2FsYnVtLzIwMjYwODA4VDIzMTMyMy0td2ludGVyLXN3ZWV0X19hbGJ1bXdhbGxfaW1hZ2VfJUU4JTlCJThCJUU1JUEwJUExXzIwMDkxMjMxLndlYnA" alt="20260808T231323--winter-sweet__albumwall_image_蛋堡_20091231.webp"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>《Winter Sweet》專輯封面</figcaption> </figure> <details> <summary>专辑信息</summary> <ul class="org-ul"> <li>专辑名称: Winter Sweet</li> <li>歌手: 蛋堡 Solf Lipa</li> <li>年份: 2009-12-31</li> <li>时长: 50:47</li> </ul> <figure> <a href="https://lucida.to/?url=https%3A%2F%2Fmusic.amazon.com%2Falbums%2FB01N1LOJ90%3FmusicTerritory%3DUS"><img src="https://imgproxy.citrusreader.com/7OQcX-u1jlllcGoYlvOxQ-bgGQK5q_oEiS2FBXCU58o/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzLzg4eDMxL2x1Y2lkZS5naWY" alt="lucide.gif" data-href="https://lucida.to/?url=https%3A%2F%2Fmusic.amazon.com%2Falbums%2FB01N1LOJ90%3FmusicTerritory%3DUS"></a> </figure> </details> <blockquote> <p> 如果音樂也講究時令,夏日炎炎有「<a href="album-47.html">收斂水</a>」可以消暑,冬夜漫漫也能有一種暖呼呼的音樂可以補冬多好。蛋堡就想做這樣的一張專輯,將冬日裡的溫暖素材全都釀在一個罈子裡,取名叫 Winter Sweet。 </p> <p> 這張專輯就像一張電影原聲帶,由四段美好的故事構成,有青澀年代少年的煩惱,有夜裡螢幕和鍵盤之間傳遞的曖昧對白,有眾人耳目下偷偷來往的綿密簡訊,而最後由一個熱戀期裡的冬天早晨開始的生活點滴,證實冬天裡最暖的溫度不是懷爐,而是生活裡的甜蜜。 </p> </blockquote> <p> 既然分享了 <a href="album-47.html">收斂水</a>,那把 Winter Sweet 也分享一下好了,這張我也挺喜歡的。 </p> <p> 專輯裡有很多好聴的鋼琴旋律,依然融入了爵士元素,整體聴起來也是比較舒緩的。有几首曲子沒什麼詞,主要是器樂演奏,中間還穿插了三首對話切片,這樣專輯聴起來不會讓耳朵太累,全都是說唱的話,有時也會覺得噪,就像 <i>收斂水</i> 裡唱的「拿歌曲來舉例 / 太多兇悍的攤販 / 佔據耳道卻沒有人取締」,适當放一些輕鬆點的曲子,「收斂太多吵鬧的節拍」。 </p> <p> 很喜歡那三首「後來的切片」,我覺得是這張專輯的灵魂。為什麼叫「後來」而不是「從前」呢,毕竟是在從前录󠄃下來的吧?我也不知道,也許是因為這些切片都是在很久的「後來」才翻出來处理吧。「後來的切片」用簡單的吉他和弦伴奏,兩個人說著一些日常對話,俏皮可愛,在對話後又有著好聴的旋律,給人一種美好温暖的感覺。聴著覺得這兩人也太甜了,有時也會忍不住跟著他們一起笑起來。 </p> <p> 除此之外,我最喜歡的是 <i>夜聊</i> 、 <i>偷偷</i> 和 <i>Winter Sweet</i> 。 </p> <details> <summary>如果你喜歡類似「後來的切片」歌</summary> <p> 可以聴聴這些: </p> <p> 對白: </p> <ul class="org-ul"> <li><i>Answering Machine</i> by 陶喆</li> <li>喜宴 by Aliosha</li> <li>对白一:长岛冰茶 by 查可欣</li> </ul> <p> 念白/獨白: </p> <ul class="org-ul"> <li>千禧曼波 2001 by Aliosha</li> <li>不再让你孤单 by 撒娇</li> <li>Louis Vuitton SoundWalk by 舒淇 (有粵語和普通話兩個版本)</li> </ul> <p> 故事: </p> <ul class="org-ul"> <li><a href="album-43.html#25EA552B-DBA1-4C86-8BC0-10789036410F">Album#43 - 天使音乐 (Hint Notes)::恐龙形状的物体</a></li> <li>床边故事 by 四枝筆 Four Pens</li> </ul> </details> <div id="outline-container-FFA5E686-B889-4CB3-B874-B8A0E3F46D77" class="outline-2"> <h2 id="FFA5E686-B889-4CB3-B874-B8A0E3F46D77"><a href="#FFA5E686-B889-4CB3-B874-B8A0E3F46D77">TRACKLIST</a></h2> <div class="outline-text-2" id="text-FFA5E686-B889-4CB3-B874-B8A0E3F46D77"><div id="text-table-of-contents" role="doc-toc"> <ul> <li><a href="#3A69B9E9-5A45-42D8-B26B-3BD6753E57AD">Soft Lintro</a></li> <li><a href="#AD8AFC85-539F-4F92-BE43-DCE5E06BB0A5">少年維持著煩惱</a></li> <li><a href="#D3314B3A-EFF1-4C97-8E90-3BBC09956C3C">新生活</a></li> <li><a href="#DD4A4947-93EE-4212-ACEE-83E79F1C1890">後來的切片 之ㄧ</a></li> <li><a href="#A2920395-CD5D-414C-8157-85CB3F974134">白天自由,夜晚寂寞</a></li> <li><a href="#9F3F15F9-0480-4B54-918D-E03EF6310976">夜聊(你說,我說) feat. 李英宏</a></li> <li><a href="#AE8D2C3C-1C4B-451F-99BC-1C24DF58B781">你還記得嗎?</a></li> <li><a href="#1B1669C4-3151-4564-BA33-0AF93B3FCABB">後來的切片 之二</a></li> <li><a href="#37874EBC-5A81-4D83-8972-A53A0DC2416E">偷偷 feat. 閻韋伶</a></li> <li><a href="#524C9BAC-DC28-4D0C-A4A9-1581A348DA24">慢慢來</a></li> <li><a href="#77120F01-504B-434D-B9C3-50E2806E7C26">後來的切片 之三</a></li> <li><a href="#ED65CB83-4AF0-4782-BD56-C45C6FAE8422">Winter Morning Sounds</a></li> <li><a href="#D938FB66-9491-4520-9F4E-F4F980636875">Winter Sweet</a></li> <li><a href="#4A5DBDD1-3DFC-46AD-865C-99C40BD35384">旅途愉快</a></li> <li><a href="#766159ED-3E9A-4E7A-8DCC-32F73BB75401">再做一次好夢</a></li> </ul> </div> </div> <div id="outline-container-3A69B9E9-5A45-42D8-B26B-3BD6753E57AD" class="outline-3"> <h3 id="3A69B9E9-5A45-42D8-B26B-3BD6753E57AD"><a href="#3A69B9E9-5A45-42D8-B26B-3BD6753E57AD">Soft Lintro</a></h3> <div class="outline-text-3" id="text-3A69B9E9-5A45-42D8-B26B-3BD6753E57AD"></div> </div> <div id="outline-container-AD8AFC85-539F-4F92-BE43-DCE5E06BB0A5" class="outline-3"> <h3 id="AD8AFC85-539F-4F92-BE43-DCE5E06BB0A5"><a href="#AD8AFC85-539F-4F92-BE43-DCE5E06BB0A5">少年維持著煩惱</a></h3> <div class="outline-text-3" id="text-AD8AFC85-539F-4F92-BE43-DCE5E06BB0A5"><p class="verse"> (悠悠揚起 回憶歌聲 我忍不住想告訴妳一段 用青春歲月譜寫出來的 故事&hellip;)<br> <br> 他常要猶豫很多選擇 頭髮的長度 鞋子的顏色<br> 他常要面對很多抉擇 舒服的床鋪 或老師的臉色<br> 他常要背很多單字 增進了程度 拼英文的檢測<br> 有時會遇上一些麻煩 回家的長路 是埋伏和險惡<br> 他常常 坐在圍牆上看火車經過<br> 他常常翻開報紙查本週星座<br> <span class="underline">他常常發呆 在重要時候</span><br> <span class="underline">所以每件事都反覆確認 以防有聽錯</span><br> <span class="underline">他徬徨 關於一些把握或錯過 或懊悔 有心無心的過錯</span><br> <span class="underline">不喜歡囉嗦 有時比較少講話</span><br> <span class="underline">看著書 聽著歌 幻想著長大</span><br> <br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> <br> <span class="underline">當然他有他的煩惱 有時是沒法 有時是不想去趕跑</span><br> <span class="underline">比如說懂自己的人多麼難找</span><br> <span class="underline">好學校多難考 和愛戀的纏繞</span><br> <span class="underline">喜歡的女生 他等待著回應</span><br> <span class="underline">家裡的規定 愛情這時是違禁</span><br> <span class="underline">一星期兩次 她補習班的背影 在夜裡 畫面一直重播不會停</span><br> <span class="underline">寫成一首詩 他投稿在校刊</span><br> <span class="underline">佐青澀的文字 是青春的套餐</span><br> <span class="underline">他了解少年不怕累 老人怕爆肝</span><br> <span class="underline">不懂人長大愛孤獨 小時怕落單</span><br> <span class="underline">而處於 這個似懂非懂的年紀</span><br> <span class="underline">和屬於未來 瑣碎的成熟相比</span><br> <span class="underline">他想得太多 顯得不切實際</span><br> <span class="underline">他覺得沒有人懂 是寂寞的十七</span><br> <br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> <br> <span class="underline">他多想跳過現在的生活 沒想過多年後卻發現這成為鄉愁</span><br> <span class="underline">他很在乎承諾 沒想過多年後 沒比較多連絡</span><br> <span class="underline">他還不能看透 心裡的妒火 在多年後都只是路過</span><br> <span class="underline">他還沒法掙脫 懂的詞不多 沒法去對誰訴說</span><br> <span class="underline">他想複製成熟的樣板 沒想過會感嘆流失的浪漫</span><br> <span class="underline">期待幸福和美滿 沒想過有天在鞋盒遺忘愛情的遺憾</span><br> <span class="underline">他也沒想過 會當過壞人</span><br> <span class="underline">沒想過會懷念懵懂和單純</span><br> <span class="underline">只單純地 專心在他的煩惱</span><br> <span class="underline">微不足道的煩惱</span><br> <br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> 那少年維持著煩惱<br> 專心在他的煩惱<br> 微不足道的煩惱<br> <br> (用青春歲月譜寫出故事&hellip;)<br> </p> <p> 少年虽然不叫 <a href="https://zh.wikipedia.org/zh-tw/%E5%B0%91%E5%B9%B4%E7%BB%B4%E7%89%B9%E7%9A%84%E7%83%A6%E6%81%BC">維特</a> 但也有他的煩惱。 </p> </div> </div> <div id="outline-container-D3314B3A-EFF1-4C97-8E90-3BBC09956C3C" class="outline-3"> <h3 id="D3314B3A-EFF1-4C97-8E90-3BBC09956C3C"><a href="#D3314B3A-EFF1-4C97-8E90-3BBC09956C3C">新生活</a></h3> <div class="outline-text-3" id="text-D3314B3A-EFF1-4C97-8E90-3BBC09956C3C"></div> </div> <div id="outline-container-DD4A4947-93EE-4212-ACEE-83E79F1C1890" class="outline-3"> <h3 id="DD4A4947-93EE-4212-ACEE-83E79F1C1890"><a href="#DD4A4947-93EE-4212-ACEE-83E79F1C1890">後來的切片 之ㄧ</a></h3> <div class="outline-text-3" id="text-DD4A4947-93EE-4212-ACEE-83E79F1C1890"><div class="conversation"> <span class="girl">今天可不能再吃那些很過分的食物了</span><br> <span class="boy">什麼比如</span><br> <span class="girl">就是你在鬧脾氣要吃很貴的</span><br> <span class="boy">照你這麼說下來你有吃宵夜的打算哦</span><br> <span class="girl">怎麼說我們今天也才吃兩餐ㄋㄟˋ</span><br> <span class="girl">你有想逃避第三餐嗎</span><br> <span class="boy">那我們第三餐要吃什麼</span><br> <span class="boy">淡水現在過去 大概也...</span><br> <span class="girl">清粥小菜嘍</span><br> <span class="boy">蛤~好吧...</span><br> <span class="girl">不難吃啊 也不便宜欸</span><br> <span class="boy">所以你説小李子嘍</span><br> <span class="girl">我們可以吃通化夜市的清粥小菜</span><br> <span class="girl">這樣可以回家搬東西</span><br> <span class="girl">給房東鑰匙</span><br> <span class="boy">你現在回去房東也睡啦</span><br> <span class="girl">房東不是常常打麻將什麼的到很晚</span><br> <span class="girl">我可以傳給簡訊給他</span><br> <span class="girl">反正不管怎麼樣明天要給人家鑰匙也是要今天把它清空</span><br> <span class="boy">要不然你假裝傳給簡訊跟房東告白 看他會不會</span><br> <span class="boy">色性大發</span><br> <span class="girl">我現在一個人在房間</span><br> <span class="boy">我覺得要離開你好捨不得~</span><br> <span class="girl">這是最後一夜 你要上來陪我嗎</span><br> <span class="boy">好欸</span><br> <span class="boy">房東先生一看就 哈哈哈賺死了賺死了</span><br> <span class="girl">怎么会有这么好的事</span><br> <span class="boy">赚死啦 ... 色痞</span><br> <span class="boy">我不知道</span><br> </div> </div> </div> <div id="outline-container-A2920395-CD5D-414C-8157-85CB3F974134" class="outline-3"> <h3 id="A2920395-CD5D-414C-8157-85CB3F974134"><a href="#A2920395-CD5D-414C-8157-85CB3F974134">白天自由,夜晚寂寞</a></h3> <div class="outline-text-3" id="text-A2920395-CD5D-414C-8157-85CB3F974134"><p class="verse"> 我發現一個人非常寂寞<br> </p> </div> </div> <div id="outline-container-9F3F15F9-0480-4B54-918D-E03EF6310976" class="outline-3"> <h3 id="9F3F15F9-0480-4B54-918D-E03EF6310976"><a href="#9F3F15F9-0480-4B54-918D-E03EF6310976">夜聊(你說,我說) feat. 李英宏</a></h3> <div class="outline-text-3" id="text-9F3F15F9-0480-4B54-918D-E03EF6310976"><p class="verse"> <span class="underline">兩個日子的交界 氣氛比較迷幻</span><br> <span class="underline">晚上醒著 早上睡我比較習慣</span><br> <span class="underline">沒有目的的夜車需要陪伴</span><br> <span class="underline">在音樂和咖啡填不滿的夜晚</span><br> <span class="underline">渲染著光 工作是沒有進展的慌</span><br> 手把滑鼠緊握不放<br> 上下滾動的帳號是過目不忘<br> 也有熟的也有陌生人<br> <span class="underline">你狀態像是在說恨</span><br> 我吐舌說「怎麼?」 你說「別多問」<br> 我說「真的很生氣不然去潑糞」<br> 這只是丟出一個梗 不算太過分<br> 你說「靠邀! 是想聽爆料吧?」<br> 我說「不妨說出來當治療」<br> 你說「蛋醫師你好」 我戴起眼鏡說「你好」<br> 這是我們 第二次聊<br> <br> <span class="underline">一個人的夜晚 誰和誰陪伴</span><br> <span class="underline">看到她也在 就有安全感</span><br> <span class="underline">兩個人的夜晚 對白都在螢幕和鍵盤</span><br> <span class="underline">曖昧得很簡單</span><br> <br> 講到自己 我們講故事<br> 聊到找房子 我們聊佈置<br> <span class="underline">我說我有點躁鬱 你說你也是</span><br> <span class="underline">沒人聽你說的誤會 我聽你解釋</span><br> <span class="underline">我說「這是什麼?」 你說是好聽的歌</span><br> <span class="underline">你說「收就對了! 這個樂團我推薦!」</span><br> <span class="underline">我說「那想不想看李安的新片?」</span><br> <span class="underline">「喔對 你有沒有去春吶呢今年?」</span><br> <span class="underline">四點之後有點餓</span><br> <span class="underline">在天亮之前 我講話有點色</span><br> <span class="underline">但色得有點 有時互開玩笑試探底線</span><br> <span class="underline">有時把暗示藏在問題裡面</span><br> <span class="underline">聊到激情過後 動物會感傷</span><br> <span class="underline">我說「激情過後」 我說「張清芳」</span><br> <span class="underline">「所以這麼愛做 我們是傷心幫!」</span><br> <span class="underline">你說「傷身幫吧!愛過才傷心幫」 哈</span><br> <br> 一個人的夜晚 誰和誰陪伴<br> 看到她也在 就有安全感<br> 兩個人的夜晚 對白都在螢幕和鍵盤<br> 曖昧得很簡單<br> <br> <span class="underline">很多事適合夜晚 不能早起聊</span><br> <span class="underline">你說不管什麼都可以找你聊</span><br> 當我說我在吃夜宵 你說你也要<br> <span class="underline">當撒嬌成了制約 就沒解藥</span><br> 有時候好給小 即使隔天要早起<br> 在腦裡失了盤算 還是要找你<br> <span class="underline">逃避著 斷了聯繫的各種可能</span><br> <span class="underline">說到底 產生了依賴卻沒有責任</span><br> <span class="underline">話說得深 情流露得真</span><br> <span class="underline">有時「哈哈」是假的 掩飾著乾</span><br> 因為怕沒有回應 所以慢慢地試探<br> <span class="underline">爭辯著價值觀 分享著自傳 分享著沒有聲響的呢喃</span><br> <span class="underline">也開始交代對方要吃飯 因為相同經歷而覺得默契對</span><br> <span class="underline">所以把握每次 像怕再沒機會</span><br> <br> 一個人的夜晚 誰和誰陪伴<br> 看到她也在 就有安全感<br> 兩個人的夜晚 對白都在螢幕和鍵盤<br> 曖昧得很簡單<br> <br> 看到你十分鐘前的笑臉 我說「HI」<br> 你說「剛剛去哪?」 我說「我都在」<br> 你說「在幹嘛?」 我說「在偷菜」<br> 你說「先洗個澡」 我說「拜託快」<br> 你說「要睡了 眼睛睜不開&hellip;」<br> 你說「別太想我」 我說「I won't cry」<br> 你說「☾𖤓︎︎」 我說「Night!」<br> <span class="underline">你改了狀態 好像在說愛</span><br> </p> <p> 夜裡螢幕和鍵盤之間傳遞的曖昧對白,很精準地描寫了那種曖昧感。 </p> </div> </div> <div id="outline-container-AE8D2C3C-1C4B-451F-99BC-1C24DF58B781" class="outline-3"> <h3 id="AE8D2C3C-1C4B-451F-99BC-1C24DF58B781"><a href="#AE8D2C3C-1C4B-451F-99BC-1C24DF58B781">你還記得嗎?</a></h3> <div class="outline-text-3" id="text-AE8D2C3C-1C4B-451F-99BC-1C24DF58B781"></div> </div> <div id="outline-container-1B1669C4-3151-4564-BA33-0AF93B3FCABB" class="outline-3"> <h3 id="1B1669C4-3151-4564-BA33-0AF93B3FCABB"><a href="#1B1669C4-3151-4564-BA33-0AF93B3FCABB">後來的切片 之二</a></h3> <div class="outline-text-3" id="text-1B1669C4-3151-4564-BA33-0AF93B3FCABB"><div class="conversation"> <span class="boy">就是到九月二十七啊</span><br> <span class="girl">誰說的 為什麼</span><br> <span class="boy">因為他這個就是這裡買的沒錯啊</span><br> <span class="boy">怎麼辦都過期了啦~ 哎呦好想哭喔~</span><br> <span class="girl">我也想哭欸</span><br> <span class="girl">誰叫你每次晚上都要去吃什麼薑母鴨那種東西</span><br> <span class="girl">就沒有人理那些餅啊</span><br> <span class="girl">啊啊啊對不起...</span><br> <span class="boy">我對不起這些餅</span><br> <span class="girl">我告訴你 我現在還是要吃</span><br> <span class="boy">我對不起我麻麻</span><br> <span class="girl">我也對不起你媽媽 沒有把你顧好</span><br> <span class="girl">那你的風味如何</span><br> <span class="boy">味道上我覺得是還 okay 啊</span><br> <span class="girl">那什麼上是不 okay</span><br> <span class="boy">精神上</span><br> <span class="boy">精神上覺得</span><br> <span class="boy">好像... 怕怕的</span><br> <span class="girl">我覺得啊...</span><br> <span class="girl">有些保存期限是怕不新鮮</span><br> <span class="girl">但它一定其實還可以吃</span><br> <span class="girl">就實際上它十月底才壞</span><br> <span class="girl">可是它九月底就不新鮮了</span><br> <span class="girl">他說不定有提早</span><br> <span class="boy">那我們就來祈禱那個</span><br> <span class="boy">做餅的商人有這麼好心</span><br> <span class="girl">不只是做餅的啊我覺得只要是保存期限很多都是這樣</span><br> <span class="girl">因為你不可能到 那一天就 立刻 瞬間壞掉</span><br> <span class="girl">那那一天的前一天怎麼辦?</span><br> <span class="girl">前一天是慢慢壞嗎</span><br> <span class="girl">那表示前一天也不能吃啦~</span><br> <span class="boy">他如果到十月十號過期</span><br> <span class="boy">就是十月九號都還狀態很好</span><br> <span class="girl">然後十月十號就突然 就 boom 這樣</span><br> <span class="boy">那它怎麼知道時間</span><br> <span class="girl">對啊 奇怪吧</span><br> <span class="girl">那我們看到十月十號過期 我們九號趕快吃的話 那難道...</span><br> <span class="girl">對不對 這個值得深思欸</span><br> <span class="boy">以後這些食品都要放在</span><br> <span class="boy">不能跟月曆放在一起</span><br> <span class="boy">他們看到月曆就會知道自己要壞掉</span><br> <span class="boy">他們如果都不知道時間的話他們就不會壞掉</span><br> <span class="girl">喔我覺得這個蛋黃味道怪怪的</span><br> <span class="boy">真的嗎 真的嗎</span><br> <span class="girl">就硬硬的 可是甜甜的</span><br> <span class="boy">蛋黃酥不是本來就蛋黃硬硬的嗎</span><br> <span class="girl">那換你吃 哈哈哈~可惡~</span><br> <span class="boy">你吃 我不管</span><br> <span class="girl">你也要吃</span><br> </div> <p> 真是好甜好可愛的兩人。 </p> <p> 過期的食物想起了 <a href="https://zh.wikipedia.org/zh-tw/%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97">重慶森林</a> 裡的經典臺詞。 </p> <details> <summary>摘录</summary> <ul class="org-ul"> <li><p> 我们分手的那天是愚人节,所以我一直当她是开玩笑,我愿意让她这个玩笑维持一个月。从分手的那一天开始,我每天买一罐 5 月 1 号到期的凤梨罐头,因为凤梨是阿 May 最爱吃的东西,而 5月 1 号是我的生日。我告诉我自己,当我买满 30 罐的时候,她如果还不回来,这段感情就会过期。 </p> <p class="verse"> <i>金城武</i> :啊,请问有没有 5 月 1 号到期的凤梨罐头?<br> <i>收銀員</i> :今天几号啦?<br> <i>金</i> :4 月 30 啊<br> <i>收</i> :是啊,明天过期的东西我们不会摆出来的。<br> <i>金</i> :还有两个钟头,这么早就收掉了?<br> <i>收</i> :过期的东西没人要的,人家要买也要买新鲜的。<br> <i>金</i> :新鲜新鲜,什么新鲜啊?就是你这种人啦,喜新忘旧的。喂,弄一罐凤梨罐头要花多少心血你知道吗?又要种,又要摘,又要切,你说不要就不要啊?你有没有想过罐头的感受?<br> <i>收</i> :先生,我只是职员,我负责卖东西的,你叫我去想罐头的感受?!你有没有想过我的感受?又要抬,又要搬,还要负责扔,我也希望那些罐头永远不会过期,我还省功夫呢?你那么爱过期罐头是吗?我这里有一箱,全送给你,不收你钱!<br> <i>金</i> :啊,请问有没有 5 月 1 号到期的凤梨罐头?<br> </p></li> <li>不知道从什么时候开始,在什么东西上面都有个日期,秋刀鱼会过期,肉罐头会过期,连保鲜纸都会过期,我开始怀疑,在这个世界上,还有什么东西是不会过期的?</li> <li>終于在一家便利店,让我找到第 30 罐凤梨罐头。就在 5 月 1 号的早晨,我开始明白一件事情,在阿 May 的心中,我和这个凤梨罐头没有什么分别。</li> <li>不知道算不算是一个记录,那一天晚上,我吃掉所有的凤梨……那三十罐凤梨罐头吃得我的胃非常得不舒服,所以我跑到一家酒吧,因为听说酒可以帮助消化。有一首歌叫作 “日出时让恋爱终结”,我现在的心情就是这样,怎么样才可以让我忘记阿 May 呢?我跟我自己讲,从这一分钟开始,第一个进来的女人,我就会喜欢她。</li> <li>如果記憶也是一個罐頭的話,我希望這罐罐頭不會過期;如果一定要加一個日子的話,我希望它是一萬年。</li> </ul> </details> <p> 食物過期了我一般就扔了,虽然浪費,但是吃壞了身體生病了更麻煩。不過他們說得好像也很有道理欸!食物肯定不是到了過期日期突然壞的,保存得好的話,就算過期了,短期內應該也是能吃的,只是品質就沒那麼好了。 </p> </div> </div> <div id="outline-container-37874EBC-5A81-4D83-8972-A53A0DC2416E" class="outline-3"> <h3 id="37874EBC-5A81-4D83-8972-A53A0DC2416E"><a href="#37874EBC-5A81-4D83-8972-A53A0DC2416E">偷偷 feat. 閻韋伶</a></h3> <div class="outline-text-3" id="text-37874EBC-5A81-4D83-8972-A53A0DC2416E"><p class="verse"> 這是三分鐘之內的第五通<br> 訊息透露了我們關係不普通<br> 他們跟蹤像懷疑我會武功<br> <span class="underline">懷疑我 經營著曖昧你是股東</span><br> 實際上 我們傳了一整天<br> 一整夜 我把電話放枕邊<br> 手指按著按鍵 明著暗戀<br> 換了換電池 我又打了一整篇<br> 這時還不算熱戀期<br> <span class="underline">我的邀約 我們的測驗題</span><br> <span class="underline">害羞對我來說 應該留在上個世紀</span><br> <span class="underline">但關於公開 我還欠練習</span><br> 喔 除此之外 沒有什麼沒講開<br> <span class="underline">慢慢來我不搶拍</span><br> <span class="underline">事情明朗之前 先不講愛</span><br> <span class="underline">只是不想太招搖不是不表態</span><br> <br> <span class="underline">當我在偷偷地看著你</span><sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup><br> <span class="underline">You're so beautiful</span><br> <span class="underline">You're so beautiful</span><br> <span class="underline">當你也偷偷地看著我</span><br> <span class="underline">這一刻 我覺得 我能懂得</span><br> <span class="underline">這是我們的快樂</span><br> <br> <span class="underline">事情發展至此 我們有些共識</span><br> <span class="underline">那些期待和心跳難以控制</span><br> <span class="underline">睡前和起床都互相通知</span><br> <span class="underline">曖昧的小店發展成公司</span><br> <span class="underline">特別好約 特別乾脆</span><br> <span class="underline">對我的關心 特別安慰</span><br> <span class="underline">連出入都像班對 更別說 特別多兩人的餐會</span><br> <span class="underline">而且你很香 每次聞到我就心癢癢</span><br> 但在他們面前 卻又不能講<br> 有時 想要偷親又被打槍<br> 看著有人親近 我又不能嗆<br> 這些他們不知道 他們用猜的<br> <span class="underline">他們賊賊地問 我們總說「沒有啦!」</span><br> <span class="underline">甜蜜地否認 找不到的佐證</span><br> <span class="underline">我們的眼神 就只有我們懂</span><br> <br> 當我在偷偷地看著你<br> You're so beautiful<br> You're so beautiful<br> 當你也偷偷地看著我<br> 這一刻 我覺得 我能懂得<br> 這是我們的快樂<br> <br> 當我們一起上課<br> 當我們一起唱歌<br> 當我們一起快樂<br> <br> 欸! 脖子上的紅斑是蚊子咬的嗎?<br> 他們不曉得吧? 你聽誰講的啦!<br> 他們總是笑著把小事放得那麼大<br> 說我會勃起 因為你穿得那麼辣<br> <span class="underline">我有時不作表示 因為心虛</span><br> <span class="underline">或是用力咬字 表達情緒</span><br> 你的姐妹知情但帶有疑慮<br> 因為他們不知道 這是情趣<br> <span class="underline">我們是印象派 喜歡個大概</span><br> <span class="underline">喜歡朦朧 不喜歡 spot light</span><br> <span class="underline">喜歡閉嘴 心事不喜歡外帶</span><br> <span class="underline">我們的喜歡是細水 but more than one night</span><br> <br> 當我在偷偷地看著你<br> You're so beautiful<br> You're so beautiful<br> 當你也偷偷地看著我<br> 這一刻 我覺得 我能懂得<br> 這是我們的快樂<br> </p> <p> 怕不會就是夜聊的那個對象吧。 </p> <p> <i>夜聊</i> 和 <i>偷偷</i> 很好地抓住了愛戀時那種相互吸引和曖昧的感覺。 </p> </div> </div> <div id="outline-container-524C9BAC-DC28-4D0C-A4A9-1581A348DA24" class="outline-3"> <h3 id="524C9BAC-DC28-4D0C-A4A9-1581A348DA24"><a href="#524C9BAC-DC28-4D0C-A4A9-1581A348DA24">慢慢來</a></h3> <div class="outline-text-3" id="text-524C9BAC-DC28-4D0C-A4A9-1581A348DA24"><p> 背景中阿嫲說的「咖慢诶啦」是閔南語,就是「慢一點啦」的意思。 </p> </div> </div> <div id="outline-container-77120F01-504B-434D-B9C3-50E2806E7C26" class="outline-3"> <h3 id="77120F01-504B-434D-B9C3-50E2806E7C26"><a href="#77120F01-504B-434D-B9C3-50E2806E7C26">後來的切片 之三</a></h3> <div class="outline-text-3" id="text-77120F01-504B-434D-B9C3-50E2806E7C26"><div class="conversation"> <span class="girl">啊我還想吃一下這芋泥 現在都壞了不能夠吃</span><br> <span class="girl">我們倆要自己吃</span><br> <span class="boy">ㄟ等於這樣的話</span><br> <span class="boy">我們就不知道我們到底先壞哪一個 所以...</span><br> <span class="girl">整體性啊 這整盒都過期了</span><br> <span class="boy">是 是嗎?</span><br> <span class="girl">對</span><br> <span class="girl">哪裡有芋泥啊騙人</span><br> <span class="boy">啊 你少來</span><br> <span class="boy">你如果 你如果是覺得??你就直講</span><br> <span class="boy">不要隨便說哪裡有芋泥</span><br> <span class="girl">你打開為什麼還是黑的</span><br> <span class="girl">芋泥不應該紫色嗎?</span><br> <span class="girl">造成我心裡壓力</span><br> <span class="girl">這樣可以還 還可以回我家搬東西嗎?</span><br> <span class="boy">能啊</span><br> <span class="girl">就是如果確定幫我就把...房東…把</span><br> <span class="girl">房東給鑰匙</span><br> <span class="boy">(打斷)啊你把這盒餅送房東</span><br> <span class="girl">可惡啊你以為房東沒眼睛嗎?</span><br> <span class="boy">啊把日期(給它)撕掉</span><br> <span class="boy">你讓那個...</span><br> <span class="girl">我們這樣搬走已經很不好意思了</span><br> <span class="girl">還給人家過期的餅</span><br> <span class="boy">哈哈哈</span><br> <span class="girl">怎麼會這樣</span><br> <span class="boy">哈哈哈哈哈</span><br> <span class="girl">哎呀應該給討厭的人</span><br> <span class="girl">「ㄟ我們那個有人送我們餅欸」這樣</span><br> <span class="girl">啊我們這樣一個一個送的就沒有日期ㄌ</span><br> <span class="boy">真的 我跟你講</span><br> <span class="boy">那個你知道煙也會過期啊</span><br> <span class="girl">恩阿</span><br> <span class="boy">然後我爸爸那邊他就是都會</span><br> <span class="boy">每次那個免稅店他就會賣一堆煙</span><br> <span class="boy">然後就放到過期他自己都不知道</span><br> <span class="boy">然後有一次他就是 叫我拿去送人</span><br> <span class="boy">然後我就說:「這個過期了啦」</span><br> <span class="boy">嗯 他就:「嘖 沒關係啦」</span><br> <span class="girl">就這麼一包一包...</span><br> <span class="boy">不是他就把那個</span><br> <span class="boy">把那個 把旁邊那個</span><br> <span class="boy">有日期的地方明明是印在上面的</span><br> <span class="boy">然後把那片包裝撕掉</span><br> <span class="boy">把那個煙盒 整條的包裝撕掉</span><br> <span class="boy">然後這樣...</span><br> <span class="girl">好機車哦——</span><br> <span class="boy">哈哈哈哈哈</span><br> </div> </div> </div> <div id="outline-container-ED65CB83-4AF0-4782-BD56-C45C6FAE8422" class="outline-3"> <h3 id="ED65CB83-4AF0-4782-BD56-C45C6FAE8422"><a href="#ED65CB83-4AF0-4782-BD56-C45C6FAE8422">Winter Morning Sounds</a></h3> <div class="outline-text-3" id="text-ED65CB83-4AF0-4782-BD56-C45C6FAE8422"></div> </div> <div id="outline-container-D938FB66-9491-4520-9F4E-F4F980636875" class="outline-3"> <h3 id="D938FB66-9491-4520-9F4E-F4F980636875"><a href="#D938FB66-9491-4520-9F4E-F4F980636875">Winter Sweet</a></h3> <div class="outline-text-3" id="text-D938FB66-9491-4520-9F4E-F4F980636875"><p class="verse"> <span class="underline">醒在一個冬天的早上</span><br> <span class="underline">空氣冰冷 剛沖的可可好燙</span><br> <span class="underline">得趕在鬧鐘起床之前</span><br> <span class="underline">把吐司放進烤箱 奶油味道好香</span><br> <span class="underline">喔當然 沒忘記幫你準備一份</span><br> <span class="underline">看你睡得香甜 先讓你多睡一陣</span><br> <span class="underline">在等待的時間 我先轉個電視</span><br> <span class="underline">抱著新的熱水袋 來自昨天的夜市</span><br> <span class="underline">鬧鐘起床也把你叫醒</span><br> <span class="underline">現在你眼中我像模糊的倒影</span><br> <span class="underline">你甜甜地笑 揉了揉眼睛</span><br> <span class="underline">最喜歡看你這惺忪的表情</span><br> <span class="underline">輕輕親了額頭 輕聲說聲早安</span><br> <span class="underline">多好 這種珍貴媲美國寶</span><br> <span class="underline">享用早餐之前 先沖個熱水澡</span><br> <span class="underline">這種甜值得日夜祈禱 我祈禱</span><br> <br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> <br> <span class="underline">一樣是白天 出太陽的中午</span><br> <span class="underline">一樣能吐著白煙的那種溫度</span><br> <span class="underline">我喜歡冬天 是厚重的打扮</span><br> <span class="underline">路上的人 我們這對最好看</span><br> <span class="underline">灰色的帽 T 我配點紫色</span><br> <span class="underline">你白色的毛衣適合純粹的此刻</span><br> <span class="underline">喔是的 這氛圍有著傳說中的電影感</span><br> <span class="underline">今天的幸福堪稱我們的電影版</span><br> <span class="underline">捧著你的手 我呼了口熱氣</span><br> <span class="underline">能讓你溫暖怎麼做我都樂意</span><br> <span class="underline">這樣的一天不用刻意去設計</span><br> <span class="underline">那想要去哪裡 你別跟我客氣</span><br> <span class="underline">在今天人不多 因為氣溫驟降</span><br> <span class="underline">讓我們穿梭這冰冷大街小巷</span><br> <span class="underline">而不管這是第幾波的鋒面南下</span><br> <span class="underline">這是最甜蜜的寒假</span><br> <br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> <br> <span class="underline">開了暖爐 躲在厚厚的棉被裡</span><br> <span class="underline">點上蠟燭 在這深深的黑夜裡</span><br> <span class="underline">讓整個房間漫著暖暖的黃色</span><br> <span class="underline">淡淡的香氣 我懶懶地賴著你</span><br> <span class="underline">決定在這夜晚放點爵士</span><br> <span class="underline">來慶祝這個不是節日的節日</span><br> <span class="underline">反正棉被裡沒事 不如來點加分題</span><br> <span class="underline">用彼此的體溫 加熱我 加熱你</span><br> <span class="underline">至於明早的馬桶坐墊一樣會很冰</span><br> <span class="underline">明早的街道一樣沈默又冷清</span><br> <span class="underline">但當你醒來一樣會有杯巧克力</span><br> <span class="underline">會有場熱水澡 會有身體乳液</span><br> <span class="underline">會有護唇膏 它放在我口袋裡</span><br> <span class="underline">滋潤我軟嘴唇 這是我最得意</span><br> <span class="underline">為這小品電影 唱我新的 beat</span><br> <span class="underline">嚐最甜的蜜 我們的 Winter Sweet</span><br> <br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> 這是我們的 Winter Sweet<br> 屬於你的我的 Winter Sweet<br> <br> 陪你陪你 把時間給你給你<sup><a id="fnr.2" class="footref" href="#fn.2" role="doc-backlink">2</a></sup><br> 溫度給你給你 把糖給你給你<br> 陪你陪你 把時間給你給你<br> 溫度給你給你 把糖給你給你<br> Winter Sweet&hellip;<br> </p> <p> 編曲前半段聴起來有種冷冷的感覺,而中間「開了暖爐 躲在厚厚的棉被裡」,添上了薩克斯,就感覺暖了一些。 </p> <p> 温柔浪漫的一首。 </p> </div> </div> <div id="outline-container-4A5DBDD1-3DFC-46AD-865C-99C40BD35384" class="outline-3"> <h3 id="4A5DBDD1-3DFC-46AD-865C-99C40BD35384"><a href="#4A5DBDD1-3DFC-46AD-865C-99C40BD35384">旅途愉快</a></h3> <div class="outline-text-3" id="text-4A5DBDD1-3DFC-46AD-865C-99C40BD35384"></div> </div> <div id="outline-container-766159ED-3E9A-4E7A-8DCC-32F73BB75401" class="outline-3"> <h3 id="766159ED-3E9A-4E7A-8DCC-32F73BB75401"><a href="#766159ED-3E9A-4E7A-8DCC-32F73BB75401">再做一次好夢</a></h3> <div class="outline-text-3" id="text-766159ED-3E9A-4E7A-8DCC-32F73BB75401"><p class="verse"> 让我再做一次好梦~<br> 让我再做一次好梦~<br> 让我再做一次好梦~<br> 让我再做一次好梦~<br> 让我~<br> 让我~<br> 让让让让让我~<br> 让让让让让我再做一次好梦~<br> 让让让让让我再做一次好梦~<br> 让让让让让我再做一次好梦~<br> 让我~<br> 让我~<br> 让让让让让我再做一次好梦~<br> 让让让让我~<br> 让让让让让我再做一次好梦~<br> </p> </div> </div> </div> <div id="footnotes"> <h2 class="footnotes">&#33050;&#27880;: </h2> <div id="text-footnotes"> <div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 想到了 <a href="album-10.html#36C868E5-534D-4752-9466-70C9A91459FC">Album#10 - 唐曉詩專輯::当你爱我时</a>: </p> <p class="verse"> <span class="underline">當你愛我時</span><br> <span class="underline">你的眼睛便時時來尋找我的</span><br> <br> 當你恨我時<br> 你的眼睛便留心將我的躲避<br> <br> 這一對淡褐的敏感的眸子<br> 原是你靈魂的觸鬚<br> <br> <span class="underline">從他們的方向我可以探知</span><br> <span class="underline">你靈魂每刻的消息</span><br> </p></div></div> <div class="footdef"><sup><a id="fn.2" class="footnum" href="#fnr.2" role="doc-backlink">2</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 想到了 <a href="album-47.html#4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA">Album#47 - 收斂水::給你一個吻</a>,「給我一個吻」「給你給你」。 </p></div></div> </div> </div></div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/album-48.txt">純文本版本</a> <a href="https://taxodium.ink/album-48.org">原始 org 文件</a>

2026/8/10
阅读更多

Album#47 - 收斂水

<div id="content" class="content e-content"> <header> <h1 class="title p-name">Album#47</h1> <p class="subtitle" role="doc-subtitle">收斂水</p> </header> <figure> <a href="images/album/20260808T231254--收敛水__albumwall_image_蛋堡_20090722.webp"><img src="https://imgproxy.citrusreader.com/5C-eVSAJsGffPNThkGUy49OVUt04m9Hw-XLvTuhVopQ/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzL2FsYnVtLzIwMjYwODA4VDIzMTI1NC0tJUU2JTk0JUI2JUU2JTk1JTlCJUU2JUIwJUI0X19hbGJ1bXdhbGxfaW1hZ2VfJUU4JTlCJThCJUU1JUEwJUExXzIwMDkwNzIyLndlYnA" alt="20260808T231254--收敛水__albumwall_image_蛋堡_20090722.webp"></a> <figcaption><span class="figure-number">&#22270;1&nbsp; </span>《收斂水》專輯封面</figcaption> </figure> <details> <summary>专辑信息</summary> <ul class="org-ul"> <li>专辑名称: 收斂水</li> <li>歌手: 蛋堡 Solf Lipa</li> <li>年份: 2009-07-22</li> <li>时长: 約 52 分鐘</li> </ul> <figure> <a href="https://lucida.to/?url=https%3A%2F%2Fmusic.amazon.com%2Falbums%2FB01MYT3FG0%3FmusicTerritory%3DUS"><img src="https://imgproxy.citrusreader.com/7OQcX-u1jlllcGoYlvOxQ-bgGQK5q_oEiS2FBXCU58o/raw:1/aHR0cHM6Ly90YXhvZGl1bS5pbmsvaW1hZ2VzLzg4eDMxL2x1Y2lkZS5naWY" alt="lucide.gif" data-href="https://lucida.to/?url=https%3A%2F%2Fmusic.amazon.com%2Falbums%2FB01MYT3FG0%3FmusicTerritory%3DUS"></a> </figure> </details> <p> 這張專輯是在 Verdant 的 <a href="https://blog.verdant.ee/posts/tracks/tracks-2/">Tracks#2:收斂水</a> 發現的,聴了几遍了,是我喜歡的那類說唱。 </p> <p> 蛋堡的聲音給我一種少年感,可能和臺灣口音有關,臺灣口音總會讓我想到一些青春偶像劇。在歌詞裡很少聴到「蛋堡」兩個字,更多的是他的英文名「Soft Lipa」,會聴到「軟嘴唇」、「SL」等字樣。 </p> <p> 喜歡這張專輯的詞作,寫得都蠻有趣的。詞好還不够,還要唱得清晰,我不喜歡那些唱得飞快,聴不清在唱什麼的說唱。說唱也要有韻律感、有律動,這張專輯裡蛋堡都做得很好。 </p> <p> 除了詞,我也喜歡這張專的編曲,它融合了一些爵士元素的,聴起來給我一種放鬆的感覺,會讓我想到 Nujabes 的 Luv(Sic),有著近似的聴感 <small>(不過旋律上還是 Nujabes 更厲害些)</small>。「Hit The Rhyme」裡的鋼琴和長笛、「鄉愁」和「關於小熊」裡的薩克斯等都很好聴。 </p> <p> 專輯裡我比較喜歡的几首<small>(好難選誒!都挺好聴的)</small>:<i>Hit The Rhyme</i> 、 <i>鄉愁</i> 、 <i>關於小熊</i> 、 <i>給你一個吻</i> 、 <i>金賭蘭</i> 、 <i>熱水澡</i> 、 <i>收斂水</i> 。 </p> <p> 除了《收斂水》,我也聴了蛋堡的《Winter Sweet》和《月光》,也都不錯。如果你喜歡《收斂水》,想聴更多,就去聴聴他的其他專輯吧。 </p> <details class="indent-paragraph"> <summary>《收斂水》再版序</summary> <p> 再版序 ———藉由蛋堡的收斂水重新發行,我必須寫下來這幾年來發生的事情,就像蛋堡的史詩那樣,試著寫給 2009 的蛋堡和迪拉胖<sup><a id="fnr.1" class="footref" href="#fn.1" role="doc-backlink">1</a></sup>。 </p> <p> 這時候你們應該還在通化街公園旁的二樓小房子裏,湖水綠的牆壁還光亮尚未斑駁,生產室裏紫色的地毯還乾燥鬆軟,水泥牆壁,和那對後來單體四分五裂的紫色監聽喇叭都還新的一樣。坐在電視前面大夥兒一齊等待電視節目後面,那短短六十秒的廣告,<a href="https://www.youtube.com/watch?v=7gCtkT1A1tA&amp;list=RD7gCtkT1A1tA&amp;start_radio=1">關於小熊的 MV</a> 片段播放的時候,才覺得口袋裏真金白銀去買的第一支電視廣告真的藉由第四台的電纜傳到每一戶的電視裏,走到唱片行裡面看到華語獨立發行區裡面那張白的惹眼,我們和阿信花了好多晚上琢磨出來的專輯,那時候的玫瑰唱片行人還好多,不若現在死氣沈沈。 </p> <p> 那年的秋天,蛋堡會忽然得提出想要在冬天再發一張迷你專輯,裡面大部分的歌都只是音樂,一開始你有點怕,覺得不到半年又發一張這樣小眾的專輯很冒險,後來聽了 DEMO 也改變了心意,這樣子老是衝動大過於算計的迪拉胖,到今天為止倒是沒有什麼變化,真正屌的東西總是可以讓你不計代價想完成它。當然你也不會想到,最後蛋堡是因為這張冬天發行的專輯才得以入圍了當年的金曲獎最佳新人。那時候你們正要準備第一場不一樣的表演,在紅樓的河岸留言,迪拉找來了以前一起玩過團的貝士手阿達,想替蛋堡打造一場爵士風味的演出,當時已經是老師輩的呂聖斐和小董老師都慨然允諾參加這個企劃,那時候從練團到演出都是那麼令人興奮,滿場伍佰個歌迷看得你們兩腳都軟了,迪拉胖也開始了他每次演出的尾聲都會上台好好做一番即興的脫口秀,聽說後來被稱為 “DELA TIME”,還有你們可能覺得我在唬爛,但是 2014 的我們已經在籌備小巨蛋的演唱會。 </p> <p> 2014 的今天,你們已經攜手發行了五張專輯,而且第五張專輯蛋堡用了本名發片,是一張你們沒辦法想像的雙碟鉅作,然後『杜振熙』一口氣入圍了三項金曲獎,其中有你們當年聊過,饒舌歌手絕對不可能入圍的金曲歌王,但是一切已經不再遙不可及,幾年後你們會搬到一個新的落腳處,裡面有迪拉一直想要漂亮的廚房,錄音室,甚至迪拉的辦公室裡面已經擺滿了獎盃,包括一個黃澄澄金曲獎的獎座。還記得以前黃金年代那張 EP 裡面有首歌叫做十年嗎? 2019 的迪拉胖和蛋堡,已經是接近四十的兩個中年大叔,而你們攜手打造的這個廠牌:<a href="https://zh.wikipedia.org/zh-tw/%E9%A1%8F%E7%A4%BE%E4%BC%81%E6%A5%AD">顏社</a> 會變成什麼樣子呢?希望我們都還像 2009 的時候一樣單純,在完成每一張新的專輯的時候滿足的想笑,在每一次演唱會完去牛老大吃慶功宴的時候,還是餓的像少年一樣。希望我們還都好喜歡 hip hop。 </p> <p> 迪拉胖 — 2014.6.10 富錦街 </p> </details> <div id="outline-container-46842821-F0CB-493C-BCA2-B567134BAA40" class="outline-2"> <h2 id="46842821-F0CB-493C-BCA2-B567134BAA40"><a href="#46842821-F0CB-493C-BCA2-B567134BAA40">TRACKLIST</a></h2> <div class="outline-text-2" id="text-46842821-F0CB-493C-BCA2-B567134BAA40"><div id="text-table-of-contents" role="doc-toc"> <ul> <li><a href="#39FBA6E1-39CA-4372-A5BF-7AFD5F1D1BA4">關鍵字 (Intro)</a></li> <li><a href="#E5EC5C4C-6208-4B72-BCD7-5DEF7951F50A">Hit The Rhyme</a></li> <li><a href="#3D21093E-4580-4F7E-BAD8-B2F7EE8A7676">嘶! Bamboo Holla</a></li> <li><a href="#ABF53FB7-4481-48CA-B8DF-4CF11F12EDC2">鄉愁</a></li> <li><a href="#11DDDD10-E8A4-4E47-A376-29AC1C33DF16">關於小熊</a></li> <li><a href="#4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA">給你一個吻</a></li> <li><a href="#8D73441B-B632-4C01-B336-CFC79F806ACE">遇見</a></li> <li><a href="#3F854CAF-7D21-406C-877A-2BC3C07DF8D0">Start It Underground</a></li> <li><a href="#A204781F-7166-4FDC-94F6-D543ECED4961">金賭蘭</a></li> <li><a href="#5B9C6549-2009-47FE-B44F-734FF3F5C27E">煙霧瀰漫 - 軟嘴唇 Remix</a></li> <li><a href="#1012B543-A33D-4637-95DB-B5F56386F2D4">熱水澡</a></li> <li><a href="#66B839EA-9792-4233-9037-2A156B1C0241">收斂水</a></li> <li><a href="#64EDB06B-6FAE-43D6-BA0F-FA1B578A54CF">SL Beat-137 (Outro)</a></li> </ul> </div> </div> <div id="outline-container-39FBA6E1-39CA-4372-A5BF-7AFD5F1D1BA4" class="outline-3"> <h3 id="39FBA6E1-39CA-4372-A5BF-7AFD5F1D1BA4"><a href="#39FBA6E1-39CA-4372-A5BF-7AFD5F1D1BA4">關鍵字 (Intro)</a></h3> <div class="outline-text-3" id="text-39FBA6E1-39CA-4372-A5BF-7AFD5F1D1BA4"><p> 在优美的鋼琴旋律中,先做個自我介紹。 </p> </div> </div> <div id="outline-container-E5EC5C4C-6208-4B72-BCD7-5DEF7951F50A" class="outline-3"> <h3 id="E5EC5C4C-6208-4B72-BCD7-5DEF7951F50A"><a href="#E5EC5C4C-6208-4B72-BCD7-5DEF7951F50A">Hit The Rhyme</a></h3> <div class="outline-text-3" id="text-E5EC5C4C-6208-4B72-BCD7-5DEF7951F50A"><p class="verse"> [Intro]<br> Ah (Ah, ah, ah, ah)<br> Yeah, Soft Lipa, Uh-ha<br> 哒哒啦哒哒哒啦哒<br> Yeah-eah<br> 为各位带来这首 Hit The Rhyme (Hit The Rhyme)<sup><a id="fnr.2" class="footref" href="#fn.2" role="doc-backlink">2</a></sup><br> Uh, yeah!<br> <br> [Verse 1]<br> <span class="underline">在我開始押韻之前</span><br> <span class="underline">我從節拍裡偷閒</span><br> <span class="underline">撇開了輕鬆的旋律和舒服的聲線</span><br> <span class="underline">我先聲明一點</span><br> <span class="underline">不用艱深的字眼</span><br> <span class="underline">文字一樣源源不絕彷彿天生活字典</span><br> <span class="underline">這是我目標 我想要走的路 and</span><br> <span class="underline">押韻能打開想像力的窗戶</span><br> <span class="underline">可以談天說地像一群朋友睡在通舖</span><br> <span class="underline">可以單刀直入 無拘束</span><br> <span class="underline">用最通俗的講法表達豐富的想法</span><br> <span class="underline">所有痛苦和快樂都讓你像親身經歷</span><br> <span class="underline">我收服人心的方法 so cool</span><br> <span class="underline">用旋律節拍征服</span><br> <span class="underline">聽到這裡你 就這樣被我征服</span><br> <span class="underline">It's old school 但人是念舊的動物</span><br> <span class="underline">看 我是這樣烹煮我的 soul food</span><br> <span class="underline">旋律大鼓和小鼓</span><br> <span class="underline">And I hit the rhyme too</span><br> <br> [Chorus]<br> I hit the rhyme<br> 找出最簡單的方法<br> Hit the rhyme<br> 似乎是最好的回答<br> Don't ask me why<br> 怎麼說呢 怎麼說呢 總之我<br> Hit the rhyme<br> Like this&hellip;&hellip;<br> <br> [Verse 2]<br> 你期待我給你什麼 為什麼<br> 要怎麼 才能讓你快樂 而沒有負擔<br> <span class="underline">於是我選擇 顯得像普通人一般</span><br> <span class="underline">有料卻簡單 人人買得起的孔雀餅乾</span><br> <span class="underline">我喜歡 認真而不要太嚴肅</span><br> <span class="underline">偶爾主觀 但大家都接受的程度</span><br> <span class="underline">不用講得太深 想像空間卻自然延伸</span><br> <span class="underline">我講得太真 你嘆了嘆說"幹!真的!"</span><br> <span class="underline">也許你說我普普通通</span><br> <span class="underline">太軟的 flow 沒法讓人虎虎生風 但是</span><br> <span class="underline">輕飄飄的才能升空</span><br> 我靜悄悄地不消太嘮叨會讓你亂糟糟呢<br> 我招了 從我腦海撈的 想法不特別<br> <span class="underline">但 最重要是感覺</span><br> <span class="underline">看 我是這樣押韻不斷</span><br> <span class="underline">其他先不管</span><br> <span class="underline">在我的 show time</span><br> <span class="underline">Just hit the rhyme</span><br> <br> [Chorus]<br> I hit the rhyme<br> 找出最簡單的方法<br> Hit the rhyme<br> 似乎是最好的回答<br> Don't ask me why<br> 怎麼說呢 怎麼說呢 總之我<br> Hit the rhyme<br> Like this&hellip;&hellip;<br> <br> [Verse 3]<br> <span class="underline">如果每首歌都是我的孩子</span><br> <span class="underline">嗯&hellip;我想大部分是女孩子</span><br> <span class="underline">像是鄰家女孩 是那樣可愛</span><br> <span class="underline">有輕微近視 戴上眼鏡又變女教師</span><br> <span class="underline">讓你不斷點頭稱是 但連紳士</span><br> <span class="underline">也幻想是學生兼職</span><br> <span class="underline">是的我堅持 獻上她們是我天職</span><br> <span class="underline">誰能拋開偏執 就能先馳得點</span><br> <span class="underline">她們比較溫柔也比較文靜</span><br> <span class="underline">和我一樣熱愛自由 so 沒有門禁</span><br> <span class="underline">隨便 你帶她 去哪裡 都可以</span><br> <span class="underline">出現 在 CD 隨身聽 maybe TV</span><br> <span class="underline">出現在你們想去的每個地方</span><br> <span class="underline">出現在每個夜晚 陪你進入夢鄉 (night)</span><br> <span class="underline">當她們陪我出現 請歡呼鼓掌</span><br> <span class="underline">能得獎的押韻 讓我 keep it on</span><br> <br> [Chorus]<br> I hit the rhyme<br> 找出最簡單的方法<br> Hit the rhyme<br> 似乎是最好的回答<br> Don't ask me why<br> 怎麼說呢 怎麼說呢 總之我<br> Hit the rhyme<br> Like this&hellip;&hellip;<br> <br> I hit the rhyme<br> 找出最簡單的方法<br> Hit the rhyme<br> 似乎是最好的回答<br> Don't ask me why<br> 怎麼說呢 怎麼說呢 總之我<br> Hit the rhyme<br> Like this&hellip;&hellip;<br> </p> <p> 好聴,蛋堡通過這首歌表達了他喜歡的 HipHop 是怎樣的,她「不用艱深的字眼」、「用最通俗的講法表達豐富的想法」、「用旋律節拍征服」、「找出最簡單的方法 / Hit the rhyme」,她像一個可愛的鄰家女孩一樣,溫柔也陪伴著你,讓人怎能不喜歡呢。 </p> </div> </div> <div id="outline-container-3D21093E-4580-4F7E-BAD8-B2F7EE8A7676" class="outline-3"> <h3 id="3D21093E-4580-4F7E-BAD8-B2F7EE8A7676"><a href="#3D21093E-4580-4F7E-BAD8-B2F7EE8A7676">嘶! Bamboo Holla</a></h3> <div class="outline-text-3" id="text-3D21093E-4580-4F7E-BAD8-B2F7EE8A7676"><p class="verse"> [Intro]<br> 「嘶」is called Bamboo Holla<br> For my brother from different mother<br> 「這什麼道理 這舒服 也是可以」<br> Yeah This is how we talk<br> <br> [Verse 1]<br> 這首歌獻給小少年<br> Bamboo Gang 陳志 黃播 and 叮噹<br> 每一個曾經 使用相同語法<br> 或學我們說話並樂在其中的人<br> 這樣的用法由我們研發<br> 不是語言學家但發展新的可能<br> 由我本人介紹這故事<br> 就要回到高中那學校的生活<br> 現在跟我來 School Life 是一切起源<br> 認識那時甚至還沒千禧年<br> 加入社團的意願想來值得紀念<br> 瞬間像坐在播放回憶的戲院<br> 一群人跳舞 一起聽著音樂<br> 像 <a href="https://zh.wikipedia.org/wiki/%E9%A1%8F%E6%AD%A3%E5%9C%8B">嚴正國</a> <a href="https://zh.wikipedia.org/zh-hans/%E5%B7%A6%E5%AD%9D%E8%99%8E">左孝虎</a> 的特技跟著音樂<br> 也像流行教主創造用語詞彙<br> 想要打招乎的時候 just say<br> <br> [Chorus]<br> <span class="underline">「嘶」is called Bamboo Holla</span><br> <span class="underline">For my brother from different mother</span><br> <span class="underline">「這什麼道理 這舒服 也是可以」</span><br> <span class="underline">Yeah This is how we talk</span><br> 「嘶」is called Bamboo Holla<br> For my brother from different mother<br> 「這什麼道理 這舒服 也是可以」<br> Yeah This is how we talk<br> <br> [Verse 2]<br> <span class="underline">當我們同意就說「can」或「也是可以」</span><br> <span class="underline">如果不同意就說「這沒道理」</span><br> <span class="underline">對方不同意 我回他「否定這樣」</span><br> <span class="underline">沒那麼容易 還有其他就像</span><br> <span class="underline">要形容很屌「這好」「這個舒服」</span><br> <span class="underline">如果是很鳥或沒搞頭「結束了」</span><br> <span class="underline">要知道你在幹嘛「勒寵那」</span><br> <span class="underline">沒事做你就回答「摩聊ㄉ」</span><br> <span class="underline">「來造」「掰ㄉ」就是再見</span><br> <span class="underline">融合新的音律也讓古早風味再現</span><br> <span class="underline">「種幾壘」是想要大便</span><br> <span class="underline">「開槓幾壘」就是要找你聊天</span><br> <span class="underline">再舉個例 想追的女生叫做「妙計」</span><br> <span class="underline">用法規則很多但不需要記</span><br> <span class="underline">因為我們總會聚在一起</span><br> <span class="underline">在一起也不會忘記 見面第一句</span><br> <br> [Chorus]<br> 「嘶」is called Bamboo Holla<br> For my brother from different mother<br> 「這什麼道理 這舒服 也是可以」<br> Yeah This is how we talk<br> 「嘶」is called Bamboo Holla<br> For my brother from different mother<br> 「這什麼道理 這舒服 也是可以」<br> Yeah This is how we talk<br> <br> [Verse 3]<br> 時間過去 在多年後的現在<br> 科技的發展從來沒有懈怠<br> <span class="underline">這世界溝通的方式不斷更新</span><br> <span class="underline">越來越好 但真心越來越少</span><br> <span class="underline">雖然我們顯得越來越老</span><br> <span class="underline">但越早向青春借貸快樂越能輕鬆作保</span><br> <span class="underline">現在坐好 這紀錄片錄記了回憶</span><br> <span class="underline">沒有字幕 因為 友情不用翻譯</span><br> <span class="underline">友情不用翻譯</span><br> <span class="underline">不用翻譯 (for my homies)</span><br> </p> <p> 大概是對過去某段友情的怀念,「友情不用翻譯」。 </p> </div> </div> <div id="outline-container-ABF53FB7-4481-48CA-B8DF-4CF11F12EDC2" class="outline-3"> <h3 id="ABF53FB7-4481-48CA-B8DF-4CF11F12EDC2"><a href="#ABF53FB7-4481-48CA-B8DF-4CF11F12EDC2">鄉愁</a></h3> <div class="outline-text-3" id="text-ABF53FB7-4481-48CA-B8DF-4CF11F12EDC2"><p class="verse"> [Intro]<br> Uh, Soft Lipa 来自颜社<sup><a id="fnr.3" class="footref" href="#fn.3" role="doc-backlink">3</a></sup><br> 这首歌献给所有想家的朋友<br> <br> [Verse 1]<br> <span class="underline">而對於每種背景離鄉的鄉愁</span><br> <span class="underline">都大致相同</span><br> <span class="underline">我將從你的回憶裡面找出其中一種</span><br> 會讓你想哭的人不只講故事<br> 也曾經照顧著你像是小護士<br> 他看著網路的相簿 打開了窗戶<br> 他吸吐 想 be cool 空氣裡散佈著<br> 淡淡的哀愁 像老歌一首<br> <span class="underline">緊接著他眉頭一皺 又往回憶走</span><br> <span class="underline">那裡的家鄉 那景象</span><br> <span class="underline">海邊的夕陽 學校的磚牆</span><br> <span class="underline">讓人興奮的漆黑的停車場</span><br> <span class="underline">老字號的想吃到的小吃</span><br> <span class="underline">靠著排隊才買到的情景</span><br> <span class="underline">牽手的情侶 開心地淋雨</span><br> <span class="underline">而那先走的朋友成為異鄉的行旅</span><br> <span class="underline">最後 上車前那車錢握在手裡</span><br> <span class="underline">背著勉勵和期許 是卸不下的行李</span><br> <br> [Chorus]<br> <span class="underline">不斷地走 他不斷地找</span><br> <span class="underline">印象中的路口 車不那麼吵</span><br> <span class="underline">他離開的戶口 父母不斷地老</span><br> <span class="underline">他不斷地走 他不斷地找</span><br> <span class="underline">尋找令人懷念的飯菜</span><br> <span class="underline">尋找令人平靜的狀態</span><br> <span class="underline">他的路 等待超越的障礙</span><br> <span class="underline">家的方向模糊了 放在心裡</span><br> <br> [Verse 2]<br> <span class="underline">當他來到 big city 來到這 big city</span><br> <span class="underline">他背著太多期待 他不許失敗</span><br> <span class="underline">除非成功否則回不去了</span><br> <span class="underline">他知道自己不錯 他可以 不過</span><br> <span class="underline">得先習慣這城市中的冷漠</span><br> <span class="underline">得先習慣高樓大廈的輪廓</span><br> <span class="underline">得先習慣空氣髒亂 and 氣候變換</span><br> <span class="underline">習慣這瀰漫著糜爛的夜晚生活</span><br> <span class="underline">看著他們 change J.O.B</span><br> <span class="underline">買 I P.O.D 流行 O.R.Z 他呢</span><br> <span class="underline">踏步在原地 像絕地武士運用原力</span><br> 抓住發光的夢想在揮舞著<br> 當他又邁開腳步 穿梭在高樓間的小路<br> 或往返不同顏色的車廂<br> 他看著他們走得匆忙甚至跑得倉皇<br> 那步調不是他所嚮往<br> <br> [Chorus]<br> 不斷地走 他不斷地找<br> 印象中的路口 車不那麼吵<br> 他離開的戶口 父母不斷地老<br> 他不斷地走 他不斷地找<br> 尋找令人懷念的飯菜<br> 尋找令人平靜的狀態<br> 他的路 等待超越的障礙<br> 家的方向模糊了 放在心裡<br> <br> [Verse 3]<br> 這裡很方便其實 每方面<br> 衣食住行 and 育樂 絲毫不遜色<br> 除了雲的顏色比較常是黑的<br> 還有那些圈子比較多的 hater<br> 習慣了咖啡的味道 早上才睡覺<br> 新朋友的圍繞 新的生活<br> 但他依舊喜歡古早味的香料<br> 沒捲舌的腔調 他們笑他 叫他講繞口令<br> <span class="underline">他想要 回到令他懷念的地方</span><br> <span class="underline">他想要重溫那些人事物的出現</span><br> <span class="underline">但他不知道 他將要或將會面對</span><br> <span class="underline">熟悉或改變 儘管適應能力老練</span><br> <span class="underline">那心情 那心情 沒法像是點水蜻蜓</span><br> <span class="underline">他發現 那精靈 在每個人的心靈</span><br> <span class="underline">都藏了一份沒改版的地圖</span><br> <span class="underline">經過鹿港小鎮<sup><a id="fnr.4" class="footref" href="#fn.4" role="doc-backlink">4</a></sup> 通往當年的幸福</span><br> <br> [Chorus]<br> 不斷地走 他不斷地找<br> 印象中的路口 車不那麼吵<br> 他離開的戶口 父母不斷地老<br> 他不斷地走 他不斷地找<br> 尋找令人懷念的飯菜<br> 尋找令人平靜的狀態<br> 他的路 等待超越的障礙<br> 家的方向模糊了 放在心裡<br> <span class="underline">不斷地走 他不斷地找</span><br> <span class="underline">沒回家的藉口 聽來沒那麼好</span><br> <span class="underline">他的心裡怒吼 音訊不斷地少</span><br> <span class="underline">他不斷地走 他不斷地 不斷地</span><br> <span class="underline">等待讓人溫暖的灌溉</span><br> <span class="underline">抵抗讓人心寒的挫敗</span><br> <span class="underline">他的路 等待超越的障礙</span><br> <span class="underline">家的方向模糊了 忘在心裡&hellip;</span><br> </p> <p> 前奏很有辯識度,我很喜歡的一首。對家鄉的思念,也許是空間上遙遠的家鄉,也許是時間上遙遠的家鄉。 </p> <p> 關於思鄉,之前分享的專輯裡也有一些類似的歌: </p> <ul class="org-ul"> <li><a href="album-11.html#6DA00CB4-3DDA-4F5E-830F-6898E926573D">Album#11 - 錯誤::边界酒店</a></li> <li><a href="album-17.html#FF66D67F-4CD5-4FE3-874F-9E6B7E90E5BB">Album#17 - 哈雷妈妈::想欲返去</a></li> <li><a href="album-17.html#FC093250-BE2C-497B-A0CE-49E79D6C693B">Album#17 - 哈雷妈妈::陌生小镇</a></li> <li><a href="album-40.html#5786D9CE-857B-4900-988C-7FC45C293E68">Album#40 - 大城•小事::梦奇地</a></li> <li><a href="album-46.html#F938D4D2-D54E-40DD-99AA-D7741FCA1820">Album#46 - High Violet::Bloodbuzz Ohio</a></li> </ul> </div> </div> <div id="outline-container-11DDDD10-E8A4-4E47-A376-29AC1C33DF16" class="outline-3"> <h3 id="11DDDD10-E8A4-4E47-A376-29AC1C33DF16"><a href="#11DDDD10-E8A4-4E47-A376-29AC1C33DF16">關於小熊</a></h3> <div class="outline-text-3" id="text-11DDDD10-E8A4-4E47-A376-29AC1C33DF16"><p class="verse"> [Verse 1]<br> 他是 一隻絨毛玩偶他是綠色的<br> 樣子 是北極熊應該是怕熱的<br> 但是他是 那年春吶男孩帶著女孩<br> 在熱鬧 的墾丁街用飛鏢射到的<br> 他們合照了幾張 在星巴克<br> 身上穿著鮮艷的 扶桑花色<br> 那時 小熊的表情還有些生澀<br> 從此 他們的生活都有他跟著<br> 有他跟著的時候 他們大致都快樂<br> 他睡女孩枕頭旁 男孩睡外側<br> <span class="underline">他是 當他們吵架又合好的藥</span><br> <span class="underline">他們拿他逗對方發自內心的笑</span><br> 他看著他們打鬧 有時被丟來丟去<br> 看過他們打砲 看過女孩抽搐<br> <span class="underline">他有時夜晚禱告 能一直跟著他們沒有憂慮</span><br> <span class="underline">不管哪裡都去</span><br> <br> [Chorus]<br> <span class="underline">關於小熊的事 也關於你關於我</span><br> <span class="underline">關於留關於走 關於喜歡與否</span><br> <span class="underline">關於小熊的事 也關於你關於我</span><br> <span class="underline">關於留關於走 關於喜歡與否</span><br> <br> [Verse 2]<br> Uh 他不知道人會變 不知道<br> 男孩女孩之間為什麼沉默 他不知道<br> 為什麼枕頭會溼掉 為什麼施暴<br> 分開是遲早 但他不知道<br> 是哪裡出了問題 改變他們<br> <span class="underline">他以為他可以 他想問得得體</span><br> <span class="underline">想懂一些哲理 但沒來得及</span><br> <span class="underline">就被 放進鞋盒裡</span><br> 在那裡面有他們寫的信<br> 他們的相片 電影的票根<br> 之類的紀念 男孩 曾帶她去旅行<br> 帶給女孩的禮物 也問過他的意見<br> <span class="underline">他們的信每一字一句都甜</span><br> <span class="underline">提到每段心情還有 常去的公園</span><br> <span class="underline">看累了 小熊打了呵欠</span><br> <span class="underline">沉睡在那小空間 那是個冬天</span><br> <br> [Chorus]<br> 關於小熊的故事 也關於你關於我<br> 關於留 關於走 關於喜歡與否<br> 關於小熊的事 也關於你關於我<br> 關於留關於走 關於喜歡與否<br> <br> [Post-Chorus]<br> <span class="underline">當畫面停在 old days 抱在一起 男孩回答 Always</span><sup><a id="fnr.5" class="footref" href="#fn.5" role="doc-backlink">5</a></sup><br> 當畫面停在 old days 抱在一起 男孩回答 Always<br> <br> [Verse 3]<br> 小熊沒再醒來<br> 沒再 被提起過 沒再 等到男孩陪著他們一起過<br> <span class="underline">隨著太陽 起落了許多次</span><br> <span class="underline">直到女孩自己 做了許多事</span><br> <span class="underline">直到女孩成為女人 經歷更長的旅程</span><br> <span class="underline">更溫柔的眼神 那鞋盒 偶爾又被打開</span><br> <span class="underline">往事不斷蒙太奇 小熊卻仍舊靜止在那裡</span><br> <span class="underline">他早被哭髒了 他從沒洗過澡</span><br> <span class="underline">墾丁的熱鬧 從沒再看到</span><br> 從沒 跟著他們一起去遠方<br> <span class="underline">他的填充物是遺憾 笑臉是假裝</span><br> <span class="underline">但他代表那一段 他是那證明</span><br> <span class="underline">他的故事只到一半 愛情還盛行</span><br> <span class="underline">在這世界上 儘管情書上的愛 只剩字面上</span><br> <span class="underline">卻是他不變的願望</span><br> <br> [Chorus]<br> 關於小熊的事 也關於你關於我<br> 關於留關於走 關於喜歡與否<br> 關於小熊的事 也關於你關於我<br> 關於留關於走 關於喜歡與否<br> 關於小熊的事 也關於你關於我<br> 關於留關於走 關於喜歡與否<br> 關於小熊的事 也關於你關於我<br> 關於留關於走 關於喜歡與否<br> <br> [Post-Chorus]<br> 當畫面停在 old days 抱在一起 男孩回答 Always<br> 當畫面停在 old days 抱在一起 男孩回答 Always<br> </p> <p> 從一隻玩偶小熊的視角,講了一段遺憾的愛情 <small>(類似 <a href="https://zh.wikipedia.org/zh-tw/%E5%A5%B9%E5%92%8C%E4%BB%96%E7%9A%84%E6%88%80%E6%84%9B%E8%8A%B1%E6%9C%9F">花束般的戀愛</a> 的那種)</small> ,聴了讓我有些難過,既因為這對情侣,也因為小熊。小熊看著曾經幸福快樂的主人關係逐漸破裂,但他什麼也說不出口,什麼也做不了,我想他應該也很難過。 </p> <p> ☞ <a href="https://www.youtube.com/watch?v=7gCtkT1A1tA">MV</a> </p> </div> </div> <div id="outline-container-4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA" class="outline-3"> <h3 id="4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA"><a href="#4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA">給你一個吻</a></h3> <div class="outline-text-3" id="text-4C663CFB-CBEC-4B56-BBF7-9A149F8A95BA"><p class="verse"> 給我一個吻可以不可以 (請你放尊重點)<br> 飛吻也沒關係 (ㄟ!我可是正人君子啊!)<br> 給我一個&hellip;給我!給我一個&hellip;給&hellip;給我!<br> 給我一個&hellip;給我&hellip;給我&hellip;給我 (發浪了!!)<br> 給我一個&hellip;給我! 給我一個&hellip;給&hellip;給我!<br> 給我一個&hellip;給我&hellip;給我&hellip;給我 (發浪了!!)<br> 給我一個吻~可以不可以 (好啦!給你給你)<br> 飛吻也沒關係 我一樣心感激 (好啦!給你給你)<br> 給我一個吻~敷衍也可以 (好啦!給你給你)<br> 飛吻表示甜蜜 我一樣感謝你 (PARTY TIME!)<br> 你眼睛 你不答應 (請你注意我是軟嘴唇<sup><a id="fnr.6" class="footref" href="#fn.6" role="doc-backlink">6</a></sup>)<br> 我也要向你請求決不灰心 (親一個就要傳緋聞 muah)<br> 你嘴唇 你沒回音 (請你注意我是軟嘴唇)<br> 我也要向你懇求決不傷心 (親一個就要傳緋聞 muah)<br> 你眼睛 你不答應 (請你注意我是軟嘴唇)<br> 我也要向你請求決不灰心 (親一個就要傳緋聞 muah)<br> 你嘴唇 你沒回音 (請你注意我是軟嘴唇)<br> 我也要向你懇求決不傷心 (親一個就要傳緋聞 muah)<br> </p> <p> 采樣了「給我一個吻」<small>(應讓是張露的版本,原曲我就很喜歡)</small>,蛋堡把它做成了對話,歌裡唱到「給我一個吻」,他就唱「給你給你」,很好玩。 </p> </div> </div> <div id="outline-container-8D73441B-B632-4C01-B336-CFC79F806ACE" class="outline-3"> <h3 id="8D73441B-B632-4C01-B336-CFC79F806ACE"><a href="#8D73441B-B632-4C01-B336-CFC79F806ACE">遇見</a></h3> <div class="outline-text-3" id="text-8D73441B-B632-4C01-B336-CFC79F806ACE"><p class="verse"> [Intro]<br> Uh, That's right<br> <br> [Verse 1]<br> 氣氛特別好的今夜 遇見好的音樂<br> <span class="underline">微醺的人 散發好多的親切</span><br> 期待好的經驗 那我該怎麼做<br> 我先嚼個青箭 如果會遇見 pretty girls<br> 我會遇見誰 在這個 crazy world<br> 如果有誰也這麼想 那誰會遇見我<br> 也許是舊情人 也或許老朋友<br> 也或許生面孔 也或許只是走過去<br> <span class="underline">上次那個 想遇到第二次</span><br> <span class="underline">不只是有點 甚至沒法去克制</span><br> <span class="underline">如果她冷淡 會不會是測試</span><br> 會不會我們根本還不算認識<br> 這裡不辦正事 在這個空間<br> 來這不只為了 跳舞喝酒抽煙<br> <span class="underline">有時處在放鬆和放蕩的中間</span><br> <span class="underline">有時 為了和誰遇見</span><br> <br> [Chorus]<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> <br> [Verse 2]<br> 什麼地方 期待遇見什麼事<br> <span class="underline">一個眼神交會 還是她臉上的痣</span><br> <span class="underline">一次交談機會 來自心裡的衝動</span><br> <span class="underline">在最合適的時段 排斥討人厭的事</span><br> 過了時的說法或許比較老套<br> 說著 茫茫人海之中我們找到<br> 或者 打從一見面就開始搞笑<br> 或者 抓住感覺或者讓它跑掉<br> 也或者 遇到好多次才開始打招呼<br> 習慣了 對緣份我們太高估<br> 不同的人物時間地點<br> 不經意的碰面 有時無法避免<br> 不辦正事 在這個空間<br> <span class="underline">早起不是為了太陽出現東邊</span><br> <span class="underline">有時處在放假和放逐的中間</span><br> <span class="underline">有時 為了和誰遇見 遇見</span><br> <br> [Chorus]<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> <br> [Verse 3]<br> <span class="underline">如果巧合需要時間來蓄電</span><br> <span class="underline">多久之後誰跟誰才會又遇見</span><br> 當我在走 路上誰跟我擦肩<br> 當我坐下 座位誰在我對面<br> 這個城市 怎麼樣都不意外<br> <span class="underline">如果我是主角 能在轉角遇到愛</span><br> <span class="underline">遇到一切都是命運介紹</span><br> <span class="underline">那不會有預兆 那不會有句號</span><br> 在哪裡遇見 凌晨五點的涼麵<br> 在哪裡遇見 放著爵士樂的咖啡店<br> 在哪裡遇見 擁擠的藍線<br> 在哪裡遇見 人來人往的路邊<br> 在哪裡遇見 遇見故事的入口<br> 在哪裡遇見 遇見靈感的助手<br> <span class="underline">在哪裡遇見 我們是過客 是暫留</span><br> <span class="underline">在城市中漫遊 在這都會中漂流</span><br> <br> [Chorus]<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見<br> (每一次 當我一轉頭)<br> 在哪裡遇見 在哪裡遇見<br> 在哪裡遇見 在哪裡遇見<br> ㄟ? 怎麼那麼巧!<br> <br> 在哪裡遇見&hellip;&hellip;<br> </p> <p> 貝斯、薩克斯、合成器組成的編曲蠻好聴。 </p> <p> 每天在人來人往的人潮中穿梭,也遇見了很多人,只是大多都沒什麼交匯。想起一句 <a href="https://zh.wikipedia.org/zh-tw/%E9%87%8D%E5%BA%86%E6%A3%AE%E6%9E%97">重慶森林</a> 裡的臺詞 ⸺ 「每天你都有机会和很多人擦身而过,而你或者对他们一无所知,不过也许有一天他会变成你的朋友或是知己,我是一个警察,我的名字叫何志武,编号 223」、「我们最接近的时候,我跟她之间的距离只有 0.01 公分,57 个小时之后,我爱上了这个女人。」 </p> </div> </div> <div id="outline-container-3F854CAF-7D21-406C-877A-2BC3C07DF8D0" class="outline-3"> <h3 id="3F854CAF-7D21-406C-877A-2BC3C07DF8D0"><a href="#3F854CAF-7D21-406C-877A-2BC3C07DF8D0">Start It Underground</a></h3> <div class="outline-text-3" id="text-3F854CAF-7D21-406C-877A-2BC3C07DF8D0"><p class="verse"> [Verse 1]<br> 他們是學生 不停地學習<br> 孩子的成長要經過很多個學期<br> 不分年紀 不分能力<br> 每個科目都沒有捷徑<br> 他們要算數學 數拍子數著一個兩個八<br> 讀中文了解起承轉合 學譬喻法<br> 念歷史 讓他們認識 2Pac 和 Biggie<br> 看地理 帶他們走訪東西南岸<br> 從英文中正確學習「Yo!check it out!」<br> 上電腦 怎麼錄音 什麼軟體最好<br> 練好書法 拿別人帖子臨摹寫詞<br> 體育 要練好肺活量還要穿全白鞋子<br> 漸漸地他們摸透寫作的訣竅<br> 現在他們畢業於押韻的學校<br> 學費絕對沒有白費 自信以足夠<br> 對別人的 Flow 他們不再學<br> 韻腳不再瘸 不再覺得自己屌卻爛而不自覺<br> 不是學生之後 他們路途是截然不同<br> 重複同樣的夢沒管紅不紅<br> <br> [Chorus]<br> Start It Underground!<br> 不只 Hot Shit 冷盤也做<br> Start It Underground!<br> 不斷進步從不得過且過<br> Start It Underground!<br> 得要面對很多起落<br> Start It Underground!<br> 我們 Start It Underground 我們<br> Start It Underground!<br> 不代表我們陰暗<br> Start It Underground!<br> 不代表我們清算<br> Start It Underground!<br> 代表著向下紮根再向上發展 正統性不容侵犯<br> <br> [Verse 2]<br> 他們的工作通常不高薪,而執著的程度常讓父母操心<br> 有人試過自己開店賣舶來品,但連識貨的都在等待降價出清<br> 有烹煮靈魂卻不得志的廚師;有不合適的 Gangsta 想讓人變成浮屍<br> 有人想震撼夜店失敗了數次,前途看似充滿失敗的故事<br> 時間好快他們老邁,像被歲月倒債,對走來的路已經分不清好壞<br> <span class="underline">他們早在幾年前就有過類似焦躁:有時會懷疑有些部分老師沒有教到</span><br> 儘管如此,他們一樣有著賽亞人的驕傲;他們交到的朋友還是一起笑鬧<br> 留了鬍子,夢想卻沒被阻止,一樣 Shout out for hip-hop,靈魂沒被現實處死<br> <br> [Chorus]<br> Start It Underground!<br> 不只 Hot Shit 冷盤也做<br> Start It Underground!<br> 不斷進步從不得過且過<br> Start It Underground!<br> 得要面對很多起落<br> Start It Underground!<br> 我們 Start It Underground 我們<br> Start It Underground!<br> 不代表我們陰暗<br> Start It Underground!<br> 不代表我們清算<br> Start It Underground!<br> 代表著向下紮根再向上發展 正統性不容侵犯<br> <br> [Bridge]<br> <span class="underline">總是有想法在腦中醞釀</span><br> <span class="underline">只要有時間 創作總是盡量</span><br> <span class="underline">有時在唱片行找到他們行蹤</span><br> <span class="underline">想法天馬行空 這是他們給人的印象</span><br> 當他們回想這過去的自己<br> 那過去的事也或許唾棄了自己<br> 有時沒法放手 讓過去都過去了<br> 跟現在沒默契了的是過氣的自己<br> 那時 他們的名聲靠著自己建立<br> 他們的成長靠著朋友建議<br> 不管他們的偶像會是 Common 或 Warren G<br> 他們開墾著熱也沒有開冷氣<br> <br> [Chorus]<br> Start It Underground<br> 現在他們依舊是<br> Start It Underground<br> 聽在耳裡他就刺<br> Start It Underground<br> 他們還是居陋室,他們還是驕傲於-<br> Start It Underground<br> 你問有什麼不同呢<br> Start It Underground<br> 你問為什麼不紅呢<br> 於是出名的 不能再一意孤行了<br> 太聰明的 反而被阻止通行了<br> Start It Underground!<br> 不只 Hot Shit 冷盤也做<br> Start It Underground!<br> 不斷進步從不得過且過<br> Start It Underground!<br> 得要面對很多起落<br> Start It Underground!<br> 我們 Start It Underground 我們<br> Start It Underground!<br> 不代表我們陰暗<br> Start It Underground!<br> 不代表我們清算<br> <span class="underline">Start It Underground!</span><br> <span class="underline">代表著向下紮根再向上發展 正統性不容侵犯</span><br> </p> <p> 這首應該是關於說唱歌手的,成為厲害的說唱歌手要學習很多,打好基本功,「Start It Underground」,「向下紮根再向上發展」。 </p> </div> </div> <div id="outline-container-A204781F-7166-4FDC-94F6-D543ECED4961" class="outline-3"> <h3 id="A204781F-7166-4FDC-94F6-D543ECED4961"><a href="#A204781F-7166-4FDC-94F6-D543ECED4961">金賭蘭</a></h3> <div class="outline-text-3" id="text-A204781F-7166-4FDC-94F6-D543ECED4961"><p class="verse"> [Verse 1]<br> 我討厭每次才睡覺 又起床尿尿<br> 討厭被吵醒了臉上還要笑笑<br> 我討厭漢堡沒有美式的配料<br> 討厭在脹氣時候 找不到胃藥<br> 我討厭老師說你們兩個對調<br> 我討厭同學拿鞋子來跟我炫耀<br> 我新買的衣服沾到油漬都洗不掉<br> 我粉刺都擠不掉 用什麼都沒效<br> 討厭吃飯時候有人跟我分<br> 還有東西在嘴裡嚼 就對我噴<br> 討厭那種明明不懂的還愛跟我爭<br> 討厭室友一直在那邊 登登登 登登登<br> 我討厭下雨天 我討厭淋溼<br> 我討厭故意的感覺 我討厭形式<br> 討厭 有好多討厭的事都說不完<br> 討厭每次一想到這些事 挖丟賭蘭<br> <br> [Chorus]<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> <br> [Verse 2]<br> 討厭電話打來響一聲就給我掛掉<br> 討厭轉寄信說我不轉寄就會掛掉<br> 討厭打球遇到 那種硬要跟你講規則<br> 討厭每次騎車都要閃 靠站的公車<br> 討厭計程車司機跟我聊政治<br> 討厭想要一個人的時候遇到認識<br> 有的小孩叫得超大聲 大人也不管<br> 看電影的時候總是有人手機不關<br> 我討厭碎碎念 我討厭計畫<br> 我討厭每次吵架都要說分手的氣話<br> 我討厭每看一篇網誌就要關一次音樂<br> 討厭每次換季就被感冒病毒侵略<br> 討厭累了一天 洗澡卻沒有熱水<br> 看著變粗的小腿 討厭身材改變<br> 討厭 有好多討厭的事都說不完<br> 討厭每次一想到這些事 挖丟賭蘭<br> <br> [Chorus]<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> <br> [Verse 3]<br> <span class="underline">真討厭 得跟討厭的人見面</span><br> <span class="underline">我更討厭 在他們面前不能擺臭臉</span><br> <span class="underline">最討厭人家喜歡做我討厭的事</span><br> <span class="underline">但就算喜歡的人還是會做討厭的事</span><br> <span class="underline">我又不喜歡人家討厭我 喜歡人家喜歡我</span><br> <span class="underline">所以搞到最後我最討厭我</span><br> <span class="underline">討厭的事情那麼多 每件事都考驗我</span><br> <span class="underline">我該怎麼做 我該怎麼做</span><br> <span class="underline">生活不好混 我討厭這些矛盾</span><br> 睡得很飽上班時間還是覺得好睏<br> 而我該怎麼辦 我該怎麼辦<br> 不知道怎麼辦 不知道該怎麼辦<br> 挖丟金賭蘭 我金賭蘭<br> 挖丟金賭蘭 金賭蘭<br> 挖丟金賭蘭 金賭蘭<br> 挖丟金賭蘭 你娘勒金賭蘭<br> <br> (在這裡奉劝各位,千萬不要做我討厭的事情,要不然,我賭蘭)<br> <br> [Chorus]<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> 我金賭蘭 我金賭蘭<br> 我金賭蘭 我真正蓋賭蘭<br> <br> [Outro]<br> 我還是喜歡這樣 慵懶<br> 我還是喜歡這樣 鬆散<br> 我還是喜歡這樣 空轉<br> 我還是喜歡這樣 慵懶<br> 我還是喜歡這樣 鬆散<br> 我還是喜歡這樣 空轉<br> 我還是喜歡這樣 慵懶<br> 我還是喜歡這樣 鬆散<br> 我還是喜歡這樣 空轉<br> </p> <p> 如果你有很多討厭的事,這首就是你的嘴替。 </p> <p> 「金賭蘭」表達了一種非常不爽、極度厭煩、氣憤的心情。 </p> <p> 「金」是副詞,相當於「很、非常、真正」;「賭蘭」的本字是「揬𡳞」,「揬」是戳、刺的意思,「𡳞」指陰莖或陰囊,字面意思就是「陰莖或陰囊被戳被刺」。而這個動作勢必引起極度不適,所以「揬𡳞」用來形容心情極度氣憤與不爽。<sup><a id="fnr.7" class="footref" href="#fn.7" role="doc-backlink">7</a></sup> </p> <p> 如果你還需要一首發泄不爽的歌,可以聴聴陶喆的 <i>王八蛋</i> 。 </p> </div> </div> <div id="outline-container-5B9C6549-2009-47FE-B44F-734FF3F5C27E" class="outline-3"> <h3 id="5B9C6549-2009-47FE-B44F-734FF3F5C27E"><a href="#5B9C6549-2009-47FE-B44F-734FF3F5C27E">煙霧瀰漫 - 軟嘴唇 Remix</a></h3> <div class="outline-text-3" id="text-5B9C6549-2009-47FE-B44F-734FF3F5C27E"><p class="verse"> [Chorus]<br> <span class="underline">煙霧瀰漫 我們開始 fun</span><br> <span class="underline">有抽就有抽 從來沒有煙霧淡</span><br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了期待著&hellip;<br> <br> [Verse 1]<br> 好像有點不對 everybody knows<br> 但這種感覺你不想 let it go<br> 儘管你不知道要向誰或怎麼 order<br> 或桌上那張紙要怎麼 roll 呢<br> 阿~那是最棒的香味<br> 那是好事或壞事只是相對比較<br> 規則裡禁止的將會<br> 讓喜歡邪惡的人絕對想要<br> 這罪狀不及 red rum<br> 試著解釋只是為了解放<br> 就像那魔鬼在你身邊演唱的<br> More than drunk<br> 也有多一點的 vapors<br> 所以我們為了 燃燒準備 lighter<br> 以免不抽煙的 也終於都想開了<br> 那些最普通的人都不再乖了<br> 說 bye bye 跟媽咪說 bye bye&hellip;<br> <br> [Chorus]<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了期待著&hellip;<br> <br> [Verse 2]<br> <span class="underline">Wanna chill 你說你 wanna chill</span><br> <span class="underline">太多人太多壓力你 wanna kill</span><br> <span class="underline">拜託又拜託我 tell you how I feel</span><br> <span class="underline">說請你救救我 請你請你救救我</span><br> <span class="underline">就我所知 那像腦中所思考的</span><br> <span class="underline">所有瑣事 都變的有趣</span><br> <span class="underline">喝水像喝果汁 東西變得好吃</span><br> <span class="underline">說了十句話裡廢話有九句</span><br> <span class="underline">每一秒你從下一秒裡醒來</span><br> <span class="underline">要說時間多慢都可以</span><br> <span class="underline">然後再次沉入那流裡</span><br> <span class="underline">不斷前進 在滾動的球裡</span><br> <br> [Bridge]<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了&hellip;<br> <br> [Chorus]<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了期待著&hellip;<br> <br> [Verse 3]<br> 大家都亂鬧 新聞都亂報<br> 豪宅被ㄘㄨㄥˋ康 委屈中恆庹宗康<br> 從節目中被 strike out<br> 從這社會外貌<br> 你猜不出這 right now<br> 在台灣 多少人正點燃<br> <span class="underline">抓包了沒有誰敢一人承擔</span><br> <span class="underline">所有壓力最後留給藝人承擔</span><br> 多少人嚇得尿濕床單 全台灣<br> 看著新聞 多少人正點燃&hellip;<br> <br> [Chorus]<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了<br> 煙霧瀰漫 我們開始 fun<br> 有抽就有抽 從來沒有煙霧淡<br> 押韻不斷 讓你不斷拍案著說"喔幹!"<br> 你會胡亂的迷幻著習慣了期待著&hellip;<br> </p> <p> 似乎是在諷刺抽大麻 (或某種毒品) 的人。 </p> <p> 這首 Remix 聴起來比較輕鬆,最後 Bonus Track 裡的版本則更有一種抽嗨了的迷幻感。 </p> <p> ☞ <a href="https://www.youtube.com/watch?v=75Cqpl3UPMc">MV</a> </p> </div> </div> <div id="outline-container-1012B543-A33D-4637-95DB-B5F56386F2D4" class="outline-3"> <h3 id="1012B543-A33D-4637-95DB-B5F56386F2D4"><a href="#1012B543-A33D-4637-95DB-B5F56386F2D4">熱水澡</a></h3> <div class="outline-text-3" id="text-1012B543-A33D-4637-95DB-B5F56386F2D4"><p class="verse"> [verse 1]<br> <span class="underline">如果你問我 洗澡用冷水還熱水好</span><br> <span class="underline">不用考慮 當然是熱水澡</span><br> <span class="underline">關進浴室被霧氣圍繞</span><br> <span class="underline">辛苦了一天 給自己點回報</span><br> <span class="underline">開始的幾分鐘先不抹肥皂</span><br> <span class="underline">就這樣一直沖</span><br> <span class="underline">能享受是最好 才能舒服睡飽</span><br> 管他遲到至少 開心比較不會老<br> 我沒法忍受水忽冷忽熱<br> 熱水器…哪個牌子最出色<br> 有這樣的論壇我馬上去註冊<br> 找最好的品牌成為忠實的顧客<br> <span class="underline">沒法用目測水溫是幾度</span><br> <span class="underline">用皮膚享受溫暖的感觸</span><br> 水煙霧 瀰漫 in the air<br> 水費比別人貴 I just don’t care!<br> <br> [verse 2]<br> <span class="underline">泡進浴缸 好像時間都暫停了</span><br> <span class="underline">水是黃的 加了巴斯克林了</span><br> <span class="underline">小鴨子也是黃的 在那裡浮著</span><br> <span class="underline">我思想也是黃的 想些色情的</span><br> <span class="underline">畫面裡 泡泡在天上飛</span><br> <span class="underline">裸體的男女在地上追 眼睛閉上</span><br> <span class="underline">推演著把她推倒想到睡著</span><br> <span class="underline">醒來是隔天清早</span><br> <span class="underline">洗澡是一天的精神寄託</span><br> <span class="underline">分析師說這絕對是利多</span><br> <span class="underline">連蓬頭吐出靈感給我</span><br> <span class="underline">把所有的煩惱吸進排水孔</span><br> <span class="underline">每次衣服一脫 剩鳥毛一撮</span><br> <span class="underline">聽著水聲看著那漩渦</span><br> <span class="underline">只管唱我的歌吹我的口哨</span><br> <span class="underline">神奇的功效 爽死我都要!</span><br> <br> (媽!沒有熱水啦!!!我在洗澡,不要用水啦!)<sup><a id="fnr.8" class="footref" href="#fn.8" role="doc-backlink">8</a></sup><br> <br> [chorus]<br> <span class="underline">左邊是熱水 右邊是冷</span><br> <span class="underline">冷天的時候 熱水要等</span><br> <span class="underline">等待的時間 暫時要忍</span><br> <span class="underline">忍耐著低溫 忍耐著冷</span><br> <span class="underline">爸媽帶小孩或情侶一起</span><br> <span class="underline">背有人洗或是靠自己</span><br> <span class="underline">不管怎樣都好 從頭到腳</span><br> <span class="underline">我們都期待一場熱水澡</span><br> <br> [chorus]<br> <span class="underline">左邊是熱水 右邊是冷</span><br> <span class="underline">冷天的時候 熱水要等</span><br> <span class="underline">等待的時間 暫時要忍</span><br> <span class="underline">忍耐著低溫 忍耐著冷</span><br> <span class="underline">檀香的肥皂或美體小舖</span><br> <span class="underline">脫的是四角或三角褲</span><br> <span class="underline">不管怎樣都好 從頭到腳</span><br> <span class="underline">我們都期待一場熱水澡</span><br> </p> <p> 辛苦了一天,你會不會也期待一埸可以放鬆的熱水澡? </p> <p class="verse"> 冷天的時候 熱水要等<br> 等待的時間 暫時要忍<br> 忍耐著低溫 忍耐著冷<br> </p> <p> 冬天時真是深有體會,不過装個浴霸就能解决了。 </p> </div> </div> <div id="outline-container-66B839EA-9792-4233-9037-2A156B1C0241" class="outline-3"> <h3 id="66B839EA-9792-4233-9037-2A156B1C0241"><a href="#66B839EA-9792-4233-9037-2A156B1C0241">收斂水</a></h3> <div class="outline-text-3" id="text-66B839EA-9792-4233-9037-2A156B1C0241"><p class="verse"> [Intro]<br> <span class="underline">收斂太多吵鬧的節拍</span><br> <span class="underline">收斂太過油膩的題材</span><br> <span class="underline">它是甜點或當作前菜</span><br> <span class="underline">放在難得清爽的年代</span><br> <span class="underline">一首歌的時間讓你收斂</span><br> <span class="underline">流失的單純慢慢充電</span><br> <span class="underline">鬆懈緊繃的精神方面</span><br> <span class="underline">Pure Hip-Hop 透著漂亮的光線</span><br> <br> [Chorus]<br> 需要放鬆 Play this song<sup><a id="fnr.9" class="footref" href="#fn.9" role="doc-backlink">9</a></sup><br> 去完夜店 Play this song<br> 洗完澡後<sup><a id="fnr.10" class="footref" href="#fn.10" role="doc-backlink">10</a></sup> Play this song<br> 悠閒的下午也 Play this song<br> <br> [Verse 1]<br> <span class="underline">我們身處在吵雜的環境裡</span><br> <span class="underline">小聲說話沒有人會回應你</span><br> <span class="underline">對照回憶起</span><br> <span class="underline">現在已經不比過去 輕鬆隨意</span><br> <span class="underline">拿歌曲來舉例</span><br> <span class="underline">太多兇悍的攤販</span><br> <span class="underline">佔據耳道卻沒有人取締</span><br> <span class="underline">你除了需要保養的乳液</span><br> <span class="underline">我好想推薦你靈魂的收斂水</span><br> <span class="underline">用我採集的旋律來調配</span><br> <span class="underline">它把煩悶給銷毀</span><br> <span class="underline">清潔 保水 鎮定 舒緩</span><br> <span class="underline">不含酒精也和化學無關</span><br> <span class="underline">原料用的簡單</span><br> <span class="underline">香味是天然的恬淡 你會喜歡</span><br> <span class="underline">裝在透明噴砂的玻璃罐</span><br> <span class="underline">細看這牌子寫著 Soft Lipa</span><br> <br> [Chorus]<br> 需要放鬆 Play this song<br> 去完夜店 Play this song<br> 洗完澡後 Play this song<br> 悠閒的下午也 Play this song<br> <br> [Verse 2]<br> <span class="underline">我喜歡留白</span><br> <span class="underline">簡單的力量讓人對你的尊敬像是挪抬</span><br> <span class="underline">我從來不愛華麗的編曲</span><br> <span class="underline">我拉開音符節拍的間距 填了文字進去</span><br> <span class="underline">用我獨特的韻律 製造輕鬆是我的興趣</span><br> <span class="underline">一字一句慢慢的粹取</span><br> <span class="underline">一點一滴慢慢的過濾</span><br> <span class="underline">偶爾你會想要濃妝艷抹</span><br> <span class="underline">但想回到單純 這是唯一的線索</span><br> <span class="underline">多麽乾淨 多麼好懂</span><br> <span class="underline">它讓你安定 也縮小你的毛孔</span><br> <span class="underline">輕拍 就清爽是應該</span><br> <span class="underline">內行人都信賴這品牌</span><br> <span class="underline">對 這感覺就是 Soft Lipa</span><br> <br> [Chorus]<br> 需要放鬆 Play this song<br> 去完夜店 Play this song<br> 洗完澡後 Play this song<br> 悠閒的下午也 Play this song<br> <br> [Outro]<br> 收斂太多吵鬧的節拍<br> 收斂太過油膩的題材<br> 它是甜點或當作前菜<br> 放在難得清爽的年代<br> 一首歌的時間讓你收斂<br> 流失的單純慢慢充電<br> 鬆懈緊繃的精神方面<br> Pure Hip-Hop 透著漂亮的光線<br> </p> <p> 什麼是收斂水? </p> <p class="verse"> 我好想推薦你靈魂的收斂水<br> 用我採集的旋律來調配<br> 它把煩悶給銷毀<br> </p> <p> 我想這張專輯做到了,我聴著挺開心的。 </p> <p> 心情不好時,打開一首,跟著節拍去散散步或跑步 <small>(每个人都有失恋的时候,而每一次我失恋,我都会去跑步,因为跑步可以将你身体里的水分蒸发掉,而让我不那么容易流泪,我怎么可以流泪呢?)</small>,我想心情會好一些的。 </p> </div> </div> <div id="outline-container-64EDB06B-6FAE-43D6-BA0F-FA1B578A54CF" class="outline-3"> <h3 id="64EDB06B-6FAE-43D6-BA0F-FA1B578A54CF"><a href="#64EDB06B-6FAE-43D6-BA0F-FA1B578A54CF">SL Beat-137 (Outro)</a></h3> <div class="outline-text-3" id="text-64EDB06B-6FAE-43D6-BA0F-FA1B578A54CF"><p> Outro 也好聴。 </p> </div> </div> </div> <div id="footnotes"> <h2 class="footnotes">&#33050;&#27880;: </h2> <div id="text-footnotes"> <div class="footdef"><sup><a id="fn.1" class="footnum" href="#fnr.1" role="doc-backlink">1</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 迪拉胖(本名張逸聖)是顏社企業(一家嘻哈獨立唱片廠牌)的創立人。 </p></div></div> <div class="footdef"><sup><a id="fn.2" class="footnum" href="#fnr.2" role="doc-backlink">2</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 想到了 Fishmans 的 <i>WALKING IN THE RHYTHM</i> 。 </p></div></div> <div class="footdef"><sup><a id="fn.3" class="footnum" href="#fnr.3" role="doc-backlink">3</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> <a href="https://zh.wikipedia.org/wiki/%E9%A1%8F%E7%A4%BE%E4%BC%81%E6%A5%AD">顏社</a> 是位於台灣台北的一家嘻哈獨立唱片廠牌。 </p></div></div> <div class="footdef"><sup><a id="fn.4" class="footnum" href="#fnr.4" role="doc-backlink">4</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 大概是致敬了羅大佑的《鹿港小鎮》,也是一首關於家鄉的經曲歌曲。 </p> <p class="verse"> 假如你先生回到鹿港小鎮<br> 請問你是否告訴我的爹娘<br> 臺北不是我想像的黃金天堂<br> 都市裡沒有當初我的夢想<br> 在夢裡我再度回到鹿港小鎮<br> 廟裡膜拜的人們依然虔誠<br> 歲月掩不住爹娘淳樸的笑容<br> 夢中的姑娘依然長髮盈空<br> 臺北不是我的家<br> 我的家鄉沒有霓虹燈<br> 鹿港的街道 鹿港的漁村<br> 媽祖廟裡燒香的人們<br> 臺北不是我的家<br> 我的家鄉沒有霓虹燈<br> 鹿港的清晨 鹿港的黃昏<br> 徘徊在文明裡的人們<br> 再度我唱起這首歌<br> 我的歌中和有風雨聲<br> 歸不到的家園 鹿港的小鎮<br> 當年離家的年輕人<br> </p></div></div> <div class="footdef"><sup><a id="fn.5" class="footnum" href="#fnr.5" role="doc-backlink">5</a></sup> <div class="footpara" role="doc-footnote"><p class="verse"> 你曾經對我說 你永遠愛著我<br> 愛情這東西我明白 但永遠是什麼<br> </p> <p class="footpara"> 戀曲 1980 by 羅大佑 </p></div></div> <div class="footdef"><sup><a id="fn.6" class="footnum" href="#fnr.6" role="doc-backlink">6</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 既指嘴唇,也指蛋堡 (Soft Lipa)。 </p></div></div> <div class="footdef"><sup><a id="fn.7" class="footnum" href="#fnr.7" role="doc-backlink">7</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> <a href="https://zh.wikipedia.org/zh-hant/%E8%87%BA%E7%81%A3%E9%96%A9%E5%8D%97%E8%AA%9E%E9%AB%92%E8%A9%B1#:~:text=%E6%8F%AC,%F0%A1%B3%9E%E3%80%8D%E7%94%A8%E4%BE%86%E5%BD%A2%E5%AE%B9%E5%BF%83%E6%83%85%E6%A5%B5%E5%BA%A6%E6%B0%A3%E6%86%A4%E8%88%87%E4%B8%8D%E7%88%BD%E3%80%82%E7%82%BA%E8%BC%83%E7%B2%97%E9%84%99%E7%9A%84%E7%94%A8%E8%A9%9E%E3%80%82%E3%80%8A%E8%87%BA%E6%97%A5%E5%A4%A7%E8%BE%AD%E5%85%B8%E3%80%8B%E4%B8%AD%E5%AF%AB%E5%81%9A%E3%80%8C%E7%AA%81%E7%8E%8D%E3%80%8D%EF%BC%88%E3%83%84%E3%82%A5%E3%83%A9%E3%83%8C%EF%BC%8Ctu%CC%8Dh%2Dl%C4%81n%EF%BC%89%EF%BC%8C%E4%BB%8A%E5%B8%B8%E4%BF%97%E5%AF%AB%E7%82%BA%E3%80%8C%E8%B3%AD%E7%88%9B%E3%80%8D%E3%80%82">臺灣閩南語髒話</a> </p></div></div> <div class="footdef"><sup><a id="fn.8" class="footnum" href="#fnr.8" role="doc-backlink">8</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 想到了 <a href="https://zh.wikipedia.org/wiki/%E5%8A%9F%E5%A4%AB_(2004%E5%B9%B4%E9%9B%BB%E5%BD%B1)">功夫</a> 裡醬爆洗澡的場面:「包租婆,包租婆!點解刹時間會無水叻?」 </p></div></div> <div class="footdef"><sup><a id="fn.9" class="footnum" href="#fnr.9" role="doc-backlink">9</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 我聴著像是 play with music </p></div></div> <div class="footdef"><sup><a id="fn.10" class="footnum" href="#fnr.10" role="doc-backlink">10</a></sup> <div class="footpara" role="doc-footnote"><p class="footpara"> 這首曲子正是在「熱水澡」這首之後。 </p></div></div> </div> </div></div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/album-47.txt">純文本版本</a> <a href="https://taxodium.ink/album-47.org">原始 org 文件</a>

2026/8/10
阅读更多

Re: Bloggers, can we make better titles for our posts?

<div id="content" class="content e-content"> <header> <h1 class="title p-name">Re: Bloggers, can we make better titles for our posts?</h1> </header><p> Michael Harley 寫了篇 <a href="https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/">Bloggers, can we make better titles for our posts?</a>,請你先去讀一遍原文吧,在這裡等你,几分鐘後再見 :) </p> <hr> <p> 歡迎回來!接下來我想分享一些我的感受。 </p> <p> Michael Harley 說博客文章應該用描述性標題,讓人一眼就知道是關於什麼的,而不是一些不明所以的標題,例如 「最近的想法&hellip;」,是關於的什麼想法,看不出來;以及他討厭標題黨,例如「他這樣做減掉了這麼多體重&hellip;」之類的標題。 </p> <p> 這我認同,通過標題能大致知道是關於什麼,如果感興趣就點進去看,不感興趣就可以略過。如果標題不明所以,但我又有點好奇,就會糾結要不要點進去看,而當我點進去看了,發現也沒寫什麼嘛,就會有些失望,甚至是生氣。當一個博客的文章大多是這樣的,還大量更新,我就會取消訂閱了。標題黨則是會有一種被欺騙的感覺,標題誘导你點擊,但裡面的內容會讓你後悔花了時間去讀,我也很討厭。 </p> <p> 如果標題是描述性的,但點進去却發現和標題描述的不一樣,也會感到不爽吧;而標題看起來奇奇怪怪,但內容讀著意外的有趣,會不會覺得這樣的標題也还不赖呢?所以我想更重要的是內容,當內容一般,標題也不明所以,才會讓人恼火。我不反對非描述性的標題,如果所有文章的標題都是描述性的,那也太無聊了,類比書名,如果全都是實用類書籍的名字,不會太無趣了嗎? </p> <p> 不過大多時候,描述性的標題是不錯的選擇。以我自己為例,我之前寫 Zine,標題是 Zine#XX,看名字確實不知道裡面會有什麼。一個原因是裡面包含的東西太多了,讓我怎麼在標題裡寫完 <span style="white-space: nowrap">_​(:3 」∠)_​</span>。後來我開始嘗試把其中我印象深的,或者希望讀者去看的部分寫在子標題,這方便了我自己回忆每期 Zine 裡都大概寫了些什麼,也可以讓讀者對內容有一個模糊的預期 <small>(也許也能讓讀者更願意點進來看看)</small>。 </p> <p> 說到底,作為作者,博客是你的,你愛怎麼寫就怎麼寫,<a href="https://danq.me/2026/07/02/you-dont-have-to-blog-like-me/">你不必像別人一樣</a>,儘管去寫就好了,寫出你自己的聲音,<a href="https://ratfactor.com/cards/personal-website#:~:text=There%20is,saying">這裡沒有錯誤答案</a>。而作為讀者,如果某些內容或某個作者你不喜歡,你可以不去訂閱或者取消訂閱,看到了也可以忽略掉。 </p> <p> Michael Harley 的問題在於, Bubbles 這個博客聚合平台不是他能控制的,會有什麼內容也不是他說了算,我想如果 Bubbles 上能加一個過濾功能,就能解决他的問題了,不想看的博客就過濾掉,也就不會看著心煩。就算 Bubbles 不加這個功能,他也可以用 <a href="https://github.com/openstyles/stylus">openstyles/stylus</a> 或 <a href="https://www.tampermonkey.net/">Tampermonkey</a> 自己實現過濾<small> (如果想在 iOS 上也隱藏,可以用 <i>Custom JS &amp; CSS for Safari</i> 插件)</small>。例如,在 stylus 裡,加上這段樣式就可以隱藏 Bubbles 中的某些博客: </p> <div class="org-src-container"> <pre class="src src-css"><code><span class="org-css-selector">.entry:has(</span> <span class="org-css-selector"> a[title=</span><span class="org-string">"some.blog.com"</span><span class="org-css-selector">],</span> <span class="org-css-selector"> a[title=</span><span class="org-string">"some.blog.com"</span><span class="org-css-selector">],</span> <span class="org-css-selector"> a[title=</span><span class="org-string">"some.blog.com"</span><span class="org-css-selector">],</span> <span class="org-css-selector"> a[title=</span><span class="org-string">"some.blog.com"</span><span class="org-css-selector">]</span> <span class="org-css-selector">)</span> { <span class="org-css-property">display</span>: none; } </code></pre> </div> <p> Michael Harley 把問題寫出來是件好事,毕竟 <a href="https://blog.jim-nielsen.com/2026/blogging-stating-the-obvious/">對你而言顯而易見的事,對別人來說則未必,所以有人陳述出來也很好</a>。但不要用自己的標準去要求別人,文末中 Bri 的留言我很認同: </p> <blockquote> <p> 作为博主,你应该鼓励人们创作。而不是通过说 “你应该写更好的文章” 并指出你不喜欢某些类型的文章来打击他们的积极性。如果你不喜欢读,不读就是了。你不喜欢某种类型的文章也没关系。 </p> <p> <a href="https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/#:~:text=post%2E-,As,post,-%2E">Source</a> </p> </blockquote> <hr> <p> Michael Harley 對「每週筆記」、「本週回顧」、「每週連結」類的文章也不喜歡,他的建議是: </p> <blockquote> <p> 這一點與其說是寫更好的標題,不如說是寫更好的文章。我想很多人把這些文章當作鍛鍊寫作能力的工具。我建議一個更好的工具是那個老掉牙的最愛:寫關於部落格經營的文章,就像我現在正在做的一樣。 </p> <p> <a href="https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/#:~:text=them%2E-,This,here">Source</a> </p> </blockquote> <blockquote> <p> 如果你想鍛鍊寫作能力並養成習慣,另一個尋找寫作題材的好方法就是回應別人的文章。 </p> <p> 這類型的文章比大雜燴式的文章好得多。 </p> <p> <a href="https://michaelharley.net/posts/2026/06/15/bloggers-can-we-make-better-titles-for-our-posts/#:~:text=%23-,If,posts,-%2E">Source</a> </p> </blockquote> <p> 大雜燴式的文章我自己也寫了不少,Zine 系列,日常系列都是如此,我訂閱的博客裡也有大量這類文章。這種文章可以大致分成兩類,一類是記录󠄃作者生活的,最近做了什麼、看了什麼、玩了什麼,像是公開的周記;一類是收集連結的,罗列作者最近看到的覺得有趣、有用、有啟發的連結。 </p> <p> 從讀者的角度,這類文章我會快速瀏覧一遍,大部分都是略讀,看到感興趣的我就仔細看看,花不了多少時間。生活類的能讓我看到許多不一樣的生活,讓我感覺作者更像是一個活生生的人,我還挺喜歡的,如果我看厭了,我取消訂閱就是了。而我自己的 Zine 就是連結類的,連結類文章是我的信息來源,我也喜歡。 </p> <p> 從作者的角度,生活類是作者用來記录󠄃自己生活的,記录󠄃自己的生活方便以後回頋,或者給熟悉的朋友了解自己的近況,不是挺好的嗎?至於連結類的文章,從我自己的角度來說,我主要是想做一些分享,那麼多的內容也沒有很好的去处,做成一個連結合集是不錯的選擇,因為: </p> <ul class="org-ul"> <li>有的感想很短,不適合獨立成一篇文章。</li> <li>假如我能每個連結寫成一篇「Re:&hellip;」,一天分享 3 ~ 4 篇,你的 RSS 閱讀器裡就會塞滿了我的文章,這你受得了嗎,反正我受不了。這麼看合集是不是還挺好?</li> <li>還有,我也愛寫這樣的連結類文章。</li> </ul> <p> Re 類的文章就比大雜繪文章更好嗎?什麼是更好的,每個人都有自己的評判標準,我就覺得 Re 和大雜繪都很好。如果某類文章你不喜歡,不看就好了,如果你覺得某類文章更好,你也可以多去寫。 </p> <hr> <p> Michael Harley 的這篇文章是從 Cytrogen 的 <a href="https://blog.cytrogen.icu/posts/ea71.html">RE:Bloggers, can we make better titles for our posts?</a> 裡看到的。 </p> <p> 下面我也回應一些 Cytrogen 文章中的內容,所以可以請你先去讀讀嗎?一會儿見! </p> <p> 她說 Michael Harley 的文章是她開始寫很多 Re 的原因。 </p> <p> 我也因為 Jake Archibald 的 <a href="https://jakearchibald.com/2025/give-footnotes-the-boot/">Give footnotes the boot</a> 而大改了脚注,但他不喜歡的旁注我還是保留了 <small>(見 <a href="on-give-footnotes-the-boot.html">关于 "Give footnotes the boot" 的思考</a>)</small>;因為 Chlorine 說 <a href="https://chlo.is/almanach-25/#:~:text=%E9%97%AE%E9%A2%98%EF%BC%9A-,%E8%AE%B8%E5%A4%9A,%E6%9A%B4%E6%94%BF">88x31 可能會引起光敏性癫痫</a>,我改了博客的 88x31 按鈕,在 <a href="https://taxodium.ink/88x31.html">88x31 頁面裡加了提醒</a> <small>(本來還用 JS 去靜止 88x31 的,但禁了之後 88x31 就失去特點了,考慮了讀者,但有點不尊重作者)</small>。因為 Lea Verou 的 <a href="https://lea.verou.me/blog/2026/dark-mode-toggles/">Dark mode toggles: two states are enough</a> 我更新了頁面的明暗切換按鈕。 </p> <p> 最近也看到一這作者避免用破折號,因為怕被誤以為文章是生成的,而不是自己寫的。又看到 unstory 的 <a href="https://unstory.eu/ihp/">They love RSS</a>,作者說,很多人在頁要放一個「我愛 RSS」的徽章,但「那些在頁尾放愛心的人,連親手寫一條項目都撐不下去。」或許有的人真就不會親手寫,看了這篇文章後,悄悄把頁面上的 RSS 徽章移除了 <small>(<a href="https://danq.me/2026/08/08/they-love-rss/">DanQ 回複了這篇文章</a>,感興趣也可以看看)</small>。 </p> <p> 我想我們都很容易因為別人的看法而去做出一些改變,但這其中有的是合理的,有的則未必,例如禁用破折號,何必 <a href="https://psychotechnology.substack.com/p/em-dashes-are-fucking-amazing#:~:text=%E2%80%9CBut,default">為一個除了尋找破折號之外沒別的事可做的網路路人寫作</a> 呢?請不要被別人的看法裹挾,這是你的博客,是你的一個自由的小角落,你喜歡怎麼做就怎麼做,自己開心、自在才是最重要的。 </p> <hr> <p> 「博主们应不应该发表自己讨厌的东西?」 </p> <p> 當然可以寫,博主可以自由表達自己的喜好,只是不要用自己的喜好去要求和干涉別人就好 <small>(我這又何嘗不是一種要求呢)</small>。 </p> <p> Michael 這篇文章如果是指出描述性標題的优點,并以建議的語氣表達,我會更喜歡。但我讀下來,總有一種你應該如何如何的感覺,就會有點反感。 </p> <p> 但還是那句,作者可以自由寫,我不喜歡我不看就是了。 </p> <hr> <p> 「為什麼英文的独立博客经常会出现 Re 类文章,而使用中文的独立博客鲜少看到它们?」 </p> <p> em&hellip;我也不知道,但我可以說說我為什麼很少寫 Re: </p> <ul class="org-ul"> <li>我只有很強烈地想回應一篇文章,并且需要用長篇幅去回應,并且可以公開時,我才會寫 Re,如果只是簡短的想法,就會去留言或者 Email,或者就放到 Zine 裡。像是 <a href="56.html">Zine#56 - 數位園藝</a> 裡我有一些對 <a href="https://e89295.com/blog/">我的部落格</a> 的回應,我覺得就不適合獨立成章,沒必要寫成 Re。</li> <li>Zine 裡有的感想也不短,確實可以獨立出來,但都摘出來的話,Zine 看起來就很單薄了,後面也許會考慮一下。摘出來獨立成 Re 也是有好处的,可以更容易通過標題檢索到。</li> <li>文章裡提到的情绪色彩也會有一些,如果是一篇反駁對方觀點的 Re,也許讓對方覺得有敵意,最後變成争吵,我不想博客裡有太多這種負能量的文章。</li> </ul> <hr> <p> 在 Michael Harley 的文章最後,他還說「閱讀他人的部落格文章時,有哪些令妳/你感到反感的地方?」: </p> <details> <summary>這我可有很多要吐槽的</summary> <p> 🎵 金賭蘭 (Jin Dulan) - 蛋堡 (Soft Lipa) </p> <p> <b>RSS 相關</b> </p> <ul class="org-ul"> <li>RSS 裡的文章標題,有的只有 URL 而沒有標題;有的連 URL 也沒有,是空的。這要點開看才知道是什麼,而大多數內容也讓我失望。</li> <li>RSS 的文章時間問題,有的文章時間寫錯了,寫了一個未來的時間,會出現在所有文章的頂部。</li> <li>RSS 中有的文章是針對別人文章的評論,但在 RSS 中寫的連結不是自己文章,打開原文,就跳到了別人的文章裡去了。</li> </ul> <p> 以上,如果作者自己看看 RSS 應該都能發現問題。如果博客內容不是很吸引我,我就會取消訂閱了。 </p> <ul class="org-ul"> <li><p> 更新太頻䌓的,每天發 3 條以上的博客。 </p> <p> 內容我不是特別感興趣的話,在 <a href="elfeed-4-0-0-usage-sharing.html">Elfeed</a> 裡我可以給這些訂閱流設置上 <code>:no-update t</code> 暂停它們的更新,而不用将它們移除,只有在我想看時才去拉取 <small>(不過很多我都忘了去拉取,久而久之我也會把它們移除)</small>。如果是大多都是信息量很低的,例如就兩三句話、轉發自己 Twitter 等,我會取消訂閱。如果經常發說說類的,笔記類的,可以考慮添加一個獨立的 RSS,将長文和笔記分開,讓讀者有選擇。 </p></li> <li><p> 網站裡找不到 RSS 訂閱連結 </p> <p> 關注你的博客有點廢勁呀。 </p></li> </ul> <p> <b>博客相關</b> </p> <ul class="org-ul"> <li><p> 打開就放歌的 </p> <p> 「Oh my god,你嚇到我啦。」 </p></li> <li><p> 只有暗色主題,對比度太高,顏色刺眼 </p> <p> 看久了眼睛很不舒服,不過我可以開閱讀模式或用 <a href="share-some-zen-browser-useful-features-boost-and-live-folder.html">Zen 瀏覧器的 Boost 功能</a> 應付。 </p></li> <li><p> 字體太小 </p> <p> 我可以調大了看。 </p></li> <li><p> <a href="google-turn-on-javascript-to-keep-searching.html">不開 JS 看不了的</a> </p> <p> 我會打開 JS 看一眼,如果內容我不感興趣,以後我就不會再看了。這類網站往往要加載很多資源,有的打開 Network 一看,都快 10M 了,這大小都够打開的的網站 40 多次了 <small>(我現在的首頁沒緩存也才 252 K 哦)</small>。而且運行大量 JS,我年迈的手機受不了這麼大的刺激,會發燙,為了手機和我的手著想,我只能赶紧把網頁關了。如果你真的要加載很大的資源,例如字體,記得 <a href="blog-static-resource-caching-issues.html">設置好緩存</a>。 </p></li> <li><p> 頁面佈局太雜亂的,內容太䌓雜的 </p> <p> 太多東西會干扰閱讀 <small>(我是不是又要開閱讀模式了?)</small>,有時我都分不清正文了。有的網站內容太䌓雜,我有點不知所措,不知道該看什麼,有點迷失和焦慮,像是打開了一個龐雜的支付應用,我只想點開完成支付,但頁面上元素太多,我要花不少時間才能找到支付功能。 </p></li> <li><p> 用 AI 寫的 </p> <p> 作者不想花時間寫,我也不想花時間看。如果 <a href="about-ai-summary-in-blog.html">开头有 AI 总结</a> 的,AI 總結的挺好的,看完我覺得就不用看正文了。我不反對作者用 AI 輔助寫作,寫得好我還是會看的,但目前看到的大多數都讓人不想讀下去。 </p></li> </ul> </details> <hr> <p> 說到底,作者有寫的自由,按自己喜歡的方式盡情地寫便是,<a href="https://borretti.me/article/i-wish-people-were-more-public">多寫一點</a>,<a href="https://simonwillison.net/2026/Aug/6/simon-willison-on-technical-blogging/#atom-everything:~:text=here%3A-,My,else">就算有些瑕疵也發出來</a>。讀者也有選擇讀什麼的自由,請去看你喜歡的內容,而那些不喜歡的,就忽略它們吧,沒人強迫你去看,也不用為難自己。 </p> <p> 感謝你把這篇長長的文章讀完,祝你寫作順利,閱讀開心,再見! </p> </div> <hr> <p>感谢你的阅读!</p> <p>欢迎 <a href="mailto:l-yanlei@hotmail.com">邮件</a> 跟我分享你的想法 :)</p> <p>你也可以 <a href="https://taxodium.ink/subscribe.html">訂閱</a> 我的博客,保持更新 :P</p> <p>祝好,素未某面的读者。</p> <a href="https://taxodium.ink/re-bloggers-can-we-make-better-titles-for-our-posts.txt">純文本版本</a> <a href="https://taxodium.ink/re-bloggers-can-we-make-better-titles-for-our-posts.org">原始 org 文件</a>

2026/8/8
阅读更多

推荐订阅

Recent content on forecho's Blog

Provides a better reading experience (full articles) over the official ones.