<!DOCTYPE html><html lang="zh" data-theme="dark"><head><meta charset="utf-8"><meta name="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1"><title>想法在乙巳开冬迭代 · Cytrogen 的个人博客</title><meta name="description" content="开冬不愧是开冬,前段时间还觉得有点热,现在每天都是冻醒的。这个月,我在缓慢地调整我的生活 —— 从兼职、工作、学业和自己。我还在摸索「想法迭代」这类文章的架构,所以该文章相较于 上篇文章 会有显著的差异。"><link rel="icon" href="../favicon.png"><link rel="canonical" href="https://cytrogen.icu/posts/ea48.html"><link rel="webmention" href="https://webmention.io/cytrogen.icu/webmention"><link rel="me" href="https://m.otter.homes/@Cytrogen"><link rel="me" href="https://github.com/cytrogen"><meta name="fediverse:creator" content="@Cytrogen@m.otter.homes"><link rel="preload" href="../fonts/opensans-regular-latin.woff2" as="font" type="font/woff2" crossorigin="anonymous"><style>@font-face {
font-family: 'Open Sans';
src: url('../fonts/opensans-regular-latin.woff2') format('woff2');
font-weight: 400;
font-style: normal;
font-display: swap;
unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
size-adjust: 107%;
ascent-override: 97%;
descent-override: 25%;
line-gap-override: 0%;
}
</style><script>(function() {
try {
// 优先级:用户选择 > 系统偏好 > 默认浅色
const saved = localStorage.getItem('theme');
const theme = saved ||
(window.matchMedia && window.matchMedia('(prefers-color-scheme: dark)').matches ? 'dark' : 'light');
document.documentElement.setAttribute('data-theme', theme);
document.documentElement.style.colorScheme = theme;
} catch (error) {
// 失败时使用默认主题,不阻塞渲染
document.documentElement.setAttribute('data-theme', 'light');
}
})();
</script><link rel="stylesheet" href="../css/ares.css"><script data-netlify-skip-bundle="true">(function() {
document.addEventListener('DOMContentLoaded', function() {
const theme = document.documentElement.getAttribute('data-theme');
const pageWrapper = document.getElementById('page-wrapper');
if (pageWrapper && theme) {
pageWrapper.setAttribute('data-theme', theme);
}
});
})();
</script><!-- hexo injector head_end start -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.12.0/dist/katex.min.css">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/hexo-math@4.0.0/dist/style.css">
<!-- hexo injector head_end end --><meta name="generator" content="Hexo 8.1.1"><link rel="alternate" href="atom.xml" title="Cytrogen 的个人博客" type="application/atom+xml">
</head><body><div id="page-wrapper"><a class="skip-link" href="#main-content">跳到主要内容</a><div class="wrap"><header><a class="logo-link" href="../index.html"><img src="../favicon.png" alt="logo"></a><div class="h-card visually-hidden"><img class="u-photo" src="https://cytrogen.icu/favicon.png" alt="Cytrogen"><a class="p-name u-url u-uid" href="https://cytrogen.icu">Cytrogen</a><p class="p-note">Cytrogen 的个人博客,Cytrogen's Blog</p><a class="u-url" rel="me noopener" target="_blank" href="https://m.otter.homes/@Cytrogen">Mastodon</a><a class="u-url" rel="me noopener" target="_blank" href="https://github.com/cytrogen">GitHub</a></div><nav class="site-nav"><div class="nav-main"><div class="nav-primary"><ul class="nav-list hidden-mobile"><li class="nav-item"><a class="nav-link" href="../index.html">首页</a></li></ul><div class="nav-tools"><div class="language-menu"><button class="language-toggle" type="button"><svg class="icon icon-globe" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M0 8a8 8 0 1 1 16 0A8 8 0 0 1 0 8zm7.5-6.923c-.67.204-1.335.82-1.887 1.855A7.97 7.97 0 0 0 5.145 4H7.5V1.077zM4.09 4a9.267 9.267 0 0 1 .64-1.539 6.7 6.7 0 0 1 .597-.933A7.025 7.025 0 0 0 2.255 4H4.09zm-.582 3.5c.03-.877.138-1.718.312-2.5H1.674a6.958 6.958 0 0 0-.656 2.5h2.49zM4.847 5a12.5 12.5 0 0 0-.338 2.5H7.5V5H4.847zM8.5 5v2.5h2.99a12.495 12.495 0 0 0-.337-2.5H8.5zM4.51 8.5a12.5 12.5 0 0 0 .337 2.5H7.5V8.5H4.51zm3.99 0V11h2.653c.187-.765.306-1.608.338-2.5H8.5zM5.145 12c.138.386.295.744.468 1.068.552 1.035 1.218 1.65 1.887 1.855V12H5.145zm.182 2.472a6.696 6.696 0 0 1-.597-.933A9.268 9.268 0 0 1 4.09 12H2.255a7.024 7.024 0 0 0 3.072 2.472zM3.82 11a13.652 13.652 0 0 1-.312-2.5h-2.49c.062.89.291 1.733.656 2.5H3.82zm6.853 3.472A7.024 7.024 0 0 0 13.745 12H11.91a9.27 9.27 0 0 1-.64 1.539 6.688 6.688 0 0 1-.597.933zM8.5 12v2.923c.67-.204 1.335-.82 1.887-1.855A7.97 7.97 0 0 0 10.855 12H8.5zm3.68-1h2.146c.365-.767.594-1.61.656-2.5h-2.49a13.65 13.65 0 0 1-.312 2.5zm2.802-3.5a6.959 6.959 0 0 0-.656-2.5H12.18c.174.782.282 1.623.312 2.5h2.49zM11.27 2.461c.247.464.462.98.64 1.539h1.835a7.024 7.024 0 0 0-3.072-2.472c.218.284.418.598.597.933zM10.855 4a7.966 7.966 0 0 0-.468-1.068C9.835 1.897 9.17 1.282 8.5 1.077V4h2.355z"></path></svg><span>中文</span></button><div class="language-dropdown"></div></div></div><div class="nav-controls"><div class="more-menu hidden-mobile"><button class="more-toggle" type="button"><span>更多</span><svg class="icon icon-chevron-down" width="12" height="12" viewBox="0 0 12 12" fill="currentColor" aria-hidden="true" focusable="false"><path d="M6 8.825c-.2 0-.4-.1-.5-.2l-3.3-3.3c-.3-.3-.3-.8 0-1.1s.8-.3 1.1 0l2.7 2.7 2.7-2.7c.3-.3.8-.3 1.1 0s.3.8 0 1.1l-3.3 3.3c-.1.1-.3.2-.5.2z"></path></svg></button><div class="more-dropdown"><ul class="dropdown-list"><li class="dropdown-item"><a class="nav-link" href="../archives/index.html">归档</a></li><li class="dropdown-item"><a class="nav-link" href="../categories/index.html">分类</a></li><li class="dropdown-item"><a class="nav-link" href="../tags/index.html">标签</a></li><li class="dropdown-item"><a class="nav-link" href="../about/index.html">关于</a></li><li class="dropdown-item"><a class="nav-link" href="../sitemap/index.html">领地地图</a></li></ul></div></div><div class="theme-switcher"><button class="theme-toggle" type="button" role="switch" aria-pressed="false" aria-label="切换主题"><div class="theme-icon moon-icon"><svg class="icon icon-moon" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M6 .278a.768.768 0 0 1 .08.858 7.208 7.208 0 0 0-.878 3.46c0 4.021 3.278 7.277 7.318 7.277.527 0 1.04-.055 1.533-.16a.787.787 0 0 1 .81.316.733.733 0 0 1-.031.893A8.349 8.349 0 0 1 8.344 16C3.734 16 0 12.286 0 7.71 0 4.266 2.114 1.312 5.124.06A.752.752 0 0 1 6 .278z"></path></svg></div><div class="theme-icon sun-icon"><svg class="icon icon-sun" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M8 11a3 3 0 1 1 0-6 3 3 0 0 1 0 6zm0 1a4 4 0 1 0 0-8 4 4 0 0 0 0 8zM8 0a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 0zm0 13a.5.5 0 0 1 .5.5v2a.5.5 0 0 1-1 0v-2A.5.5 0 0 1 8 13zm8-5a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2a.5.5 0 0 1 .5.5zM3 8a.5.5 0 0 1-.5.5h-2a.5.5 0 0 1 0-1h2A.5.5 0 0 1 3 8zm10.657-5.657a.5.5 0 0 1 0 .707l-1.414 1.415a.5.5 0 1 1-.707-.708l1.414-1.414a.5.5 0 0 1 .707 0zm-9.193 9.193a.5.5 0 0 1 0 .707L3.05 13.657a.5.5 0 0 1-.707-.707l1.414-1.414a.5.5 0 0 1 .707 0zm9.193 2.121a.5.5 0 0 1-.707 0l-1.414-1.414a.5.5 0 0 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .707zM4.464 4.465a.5.5 0 0 1-.707 0L2.343 3.05a.5.5 0 1 1 .707-.707l1.414 1.414a.5.5 0 0 1 0 .708z"></path></svg></div></button></div><details class="mobile-menu-details hidden-desktop"><summary class="hamburger-menu" aria-label="nav.menu"><svg class="icon icon-bars" width="16" height="16" viewBox="0 0 16 16" fill="currentColor" aria-hidden="true" focusable="false"><path d="M2.5 12a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5zm0-4a.5.5 0 0 1 .5-.5h10a.5.5 0 0 1 0 1H3a.5.5 0 0 1-.5-.5z"></path></svg><span class="menu-text">nav.menu</span></summary><div class="mobile-menu-dropdown"><ul class="mobile-nav-list"><li class="mobile-nav-item"><a class="mobile-nav-link" href="../index.html">首页</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="../archives/index.html">归档</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="../categories/index.html">分类</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="../tags/index.html">标签</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="../about/index.html">关于</a></li><li class="mobile-nav-item"><a class="mobile-nav-link" href="../sitemap/index.html">领地地图</a></li></ul></div></details></div></div></div></nav></header><main class="container" id="main-content" tabindex="-1"><div class="post"><article class="post-block h-entry"><div class="post-meta p-author h-card visually-hidden"><img class="author-avatar u-photo" src="../favicon.png" alt="Cytrogen"><span class="p-name">Cytrogen</span><a class="u-url" href="https://cytrogen.icu">https://cytrogen.icu</a></div><a class="post-permalink u-url u-uid visually-hidden" href="https://cytrogen.icu/posts/ea48.html">永久链接</a><div class="p-summary visually-hidden"><p>开冬不愧是开冬,前段时间还觉得有点热,现在每天都是冻醒的。这个月,我在缓慢地调整我的生活 —— 从兼职、工作、学业和自己。我还在摸索「想法迭代」这类文章的架构,所以该文章相较于 <a href="/posts/dc84.HTML">上篇文章</a> 会有显著的差异。</p></div><div class="visually-hidden"><a class="p-category" href="../categories/%E6%83%B3%E6%B3%95%E8%BF%AD%E4%BB%A3/">想法迭代</a></div><h1 class="post-title p-name">想法在乙巳开冬迭代</h1><div class="post-info"><time class="post-date dt-published" datetime="2025-11-02T05:34:23.000Z">11/2/2025</time><time class="dt-updated visually-hidden" datetime="2026-02-09T17:16:55.249Z"></time></div><div class="post-content e-content"><html><head></head><body><p>开冬不愧是开冬,前段时间还觉得有点热,现在每天都是冻醒的。这个月,我在缓慢地调整我的生活 —— 从兼职、工作、学业和自己。我还在摸索「想法迭代」这类文章的架构,所以该文章相较于 <a href="/posts/dc84.html">上篇文章</a> 会有显著的差异。</p>
<span id="more"></span>
<h2 id="日记"><a class="markdownIt-Anchor" href="#日记"></a> 日记</h2>
<p>我决定调整一下日记板块的内容。该板块会注重于一些篇幅不长、专注于生活的内容。我希望展开讨论、有一定深度的内容则会在日记板块的后面。不过写太多的内容会被我编辑成独立文章发布,我在这里只会给它们留个标题的位置(或者一丢丢补充说明)。</p>
<h4 id="perplexity-会员体验"><a class="markdownIt-Anchor" href="#perplexity-会员体验"></a> Perplexity 会员体验</h4>
<p>PayPal 的首页上有个领取福利的栏块,我一直都没有去看。一次突发兴起,我领取了 Perplexity 的一年免费会员。因为我还是个学生,还可以用学校的邮箱再领取一年。</p>
<p>Perplexity 是一个基于大语言模型的应用程序,功能比较多,主要是帮助用户更好地搜索、研究。你想要搞清楚的问题,Perplexity 都会帮你「搜索」、「总结」。因为它会搜索网上的资源,因此幻觉不会太严重。就是有时候它会直接略过搜索这一步骤、根据自己的训练数据告诉你答案。</p>
<p>另一个起眼的功能是新闻板块,它会自动抓取线上的新闻、结合成数个文章,并展示给用户。我个人用下来,新闻板块几乎没有主动看过。它每天都会推送给我一些新闻,我也都没有去看。除了个别新闻我有看 —— 例如联邦政府罢工一事 —— 其余的几乎都是「特朗普今天又做了什么」的新闻。</p>
<p>我用的最多的是研究功能,主要是深入某个主题、靠问数个问题来得知客观数据。不过我试了下、使用了 Perplexity 辅助写作,并发现了一个问题:我的想法会被它无比正确的研究和数据左右。我大概写了几篇文章作为比对,其中有几篇我感觉很失望。内容虽然很正确、很对、无法纠错,但看着只让我感觉挫败。还是得要我自己写好文章,然后再去找 Perplexity 查找对应的数据。</p>
<p>自然,这并不是 Perplexity 的问题。无论我用什么 AI 工具,只要在最开始起稿的时候就使用并且依赖它们,都会落得这样的结果。</p>
<h4 id="咪咪"><a class="markdownIt-Anchor" href="#咪咪"></a> 咪咪</h4>
<p>家里人从家附近捡了个小猫回来。刚捡回来的时候,小猫的身上全是跳蚤在爬,我母亲根据养狗的经验,直接用带药的宠物沐浴乳洗了一遍猫。这样做其实很危险,小猫还未打疫苗,洗澡容易导致问题。好在它之后表现得十分健康和好动,没过几天就会用「猫猫拳」打狗的鼻子,吃完猫粮后还会偷偷再吃狗的饭。</p>
<p>我找了一天回父母家、带小猫去医院做检查。我预约的是 Vetco,载着三人一狗一猫开了半小时的路才到。谁曾想 Vetco 这期间给我发了消息,说本次预约不正确、医生不在,需要我回电让他们客服进行人工预约。没办法,我们只是在那附近的零售连锁店买了一些猫玩具和猫抓板回去。</p>
<p><img src="/posts/ea48/mimi.jpg" alt="幼年三色猫盖着被子在狗窝里"></p>
<p>尽管想着之后有空的时候再预约一次,结果到十月底我没有一天是闲着的。我的天啊 ——!</p>
<h4 id="兰州牛肉面"><a class="markdownIt-Anchor" href="#兰州牛肉面"></a> 兰州牛肉面</h4>
<p>小时候住的巷子的路口有一家兰州牛肉面馆,特别好吃。这家店最稀奇的在于,老板是一位犹太人。他不仅管接客收银,面也是他在一个大铁桌上亲手拉的。我记得他会很用力地摔面,发出很响的声音。有时候会看见他的妻子和儿子,长相也是非常接近我们传统印象里的犹太人样貌:金发、黑衣、戴眼镜。</p>
<p>学校附近有两家兰州牛肉面馆。我常去的这家免小费,不过单品价格并不便宜。我点了一份兰州牛肉面和一个肉夹馍。他家的肉夹馍味道很不错,税前 7 美元一个。</p>
<p><img src="/posts/ea48/noodles.jpg" alt="洒满香菜的兰州牛肉面和一个肉夹馍"></p>
<h4 id="中秋游行"><a class="markdownIt-Anchor" href="#中秋游行"></a> 中秋游行</h4>
<p>中秋那天,布鲁克林的日落公园区有中秋游行,据说是 BBA(繁荣布碌仑协会,Better Brooklyn Association;这里的布碌仑是布鲁克林的另一种说法)举办的第二次中秋游行。游行里有数个学校的学生在演奏乐器、表演舞蹈,还有一个环节是一群玩偶服的人在朝街边扔毛绒玩具。神奇的是,游行队伍的最后还有长乐游神。</p>
<h4 id="妹妹的游泳比赛"><a class="markdownIt-Anchor" href="#妹妹的游泳比赛"></a> 妹妹的游泳比赛</h4>
<p>妹妹第三次比赛游泳,也是我第一次开车上高速。没开过那么快的车,脚感很不习惯,不过感觉没什么问题。这次妹妹比赛的场地在新泽西。不知为何,教练给她选了个 100 码的比赛项目。50 码后她明显变得力不从心。</p>
<p>因为家人的影响,妹妹有些「一根筋」,比赛结束后不敢去问教练能否提早离开,导致我们晚了一小时才离开现场。下午饭依然是吃越南面,不过这家餐厅装修更高档、食物味道更好,随之提升的还有价格。好在份量不小,三个人就着俩主餐、一小吃和一碗加的面吃饱了。</p>
<h4 id="e-fika"><a class="markdownIt-Anchor" href="#e-fika"></a> E-Fika</h4>
<p>我的辅修是日语。大学的日语部门要求我这学期参加两期信州大学的英语部门学生们举办的 E-Fika。Fika 是瑞典的一个类似于茶会的活动。你可以带自己的饮品、食物来参加,要做的事情只有两个:休息和聊天。而 E-Fika 就是线上的 Fika,大家用 Zoom 开着摄像头互相认识、聊天。我起先发现的是,信州大学的学生们讲英语明显要比我们讲日语利索许多。</p>
<p>我的日语水平在班上算是偏好的,可以模仿本地人的一些腔调。不过真让我和本地人用日语交流的话,还是算了吧!</p>
<h4 id="语言是死去的诗歌"><a class="markdownIt-Anchor" href="#语言是死去的诗歌"></a> 语言是死去的诗歌</h4>
<p>网上冲浪时,我发现了一个帖子,内容是帖主在一次思索时发现「不如」这个词的意思就是「我的提议更好、你的想法比不上我的」。评论区的人们发表了众多他们发现的一些有趣例子,比方说:</p>
<ul>
<li>「不知道」:「道」是一切的本源、组成万物的基本单位,那「不知道」不就是「什么都不知」的意思吗?(哎哟我才发现除了「不知道」外我都不知道该如何表达「不知道」的意思,像这句话里我又用了一次「不知道」)
<ul>
<li>不过现在「道」已经虚化成补语,表示「知晓」的结果,而非指称哲学意义上的「道」。</li>
</ul>
</li>
<li>「开水」:想象「开花」,「开水」便是「水像花一样盛开」。</li>
<li>「披风」:「披着风」。</li>
<li>「未来」:「还未来到的」。</li>
<li>「故事」:「过去的事情」。</li>
<li>「太空」:这里的「空」是「空间」的意思,「太」则是「大之甚」,放一起便是极大的空间。</li>
</ul>
<p>我觉得很有趣,简单研究了一下,发现这涉及到一个概念 —— <em> 语义透明度</em>。意思是复合词的整体意义能够从构成它的语素意义推知的程度。学者们将复合词分为了不同类型:</p>
<ul>
<li>完全透明的词:词义基本等于语素意义的直接相加,能从语素义直接推求词义</li>
<li>半透明或不透明的词:整词语义与语素意义存在差异,甚至完全不相关</li>
</ul>
<h4 id="新鼠标"><a class="markdownIt-Anchor" href="#新鼠标"></a> 新鼠标</h4>
<p>我换了个新鼠标,因为旧的鼠标按键有点坏了。这次买的是人体工学鼠标,没我家里的那款鼠标「垂直」,不过大小很匹配我的手。室友感觉有点大。</p>
<p><img src="/posts/ea48/anker.jpg" alt="Anker 人体工学鼠标"></p>
<h4 id="外卖和小费"><a class="markdownIt-Anchor" href="#外卖和小费"></a> 外卖和小费</h4>
<p>十月中旬,天气开始变冷了,我也比以往晚醒了一小时半的时间。有一天打工,我忘了带下午饭,所以点了个预订送达的外卖。我用的平台是饭团外卖,说是有活动,肉夹馍 0 元。自然这个便宜在北美的外卖平台里是占不到的,平台费小费等东西加起来,变成了比肉夹馍原价还要贵一点的价钱。如果没有这个活动,一个肉夹馍说不定就要 12 美元呢!更可恶的是,这个肉夹馍没有青椒就算了,里面放的还是青葱和洋葱。整体也就比我的手大一点,几口就被我吃干净了。</p>
<p>大一的时候我很喜欢用熊猫外卖,当时的一个十元吃饱活动,一碗土豆粉真的就是十元多。后来纽约市要求顾客必须至少给外卖员固定比例的小费。小费文化真是个糟蹋,我也不理解为什么有人会喜欢这东西。一次网上冲浪,我表达了对小费文化的厌恶,还有个人阴阳怪气地回复我,说我在这里说没用、要去申报才行。</p>
<p>这样说的话,是不是送外卖也很赚钱呢?我要不要也去送外卖看看?</p>
<p>不过几天后老板告诉我熊猫外卖多了个「0 服 0 运」,说是服务费和运费都不收。我试着点了一份米线外卖,9.99 美元加 3.8 美元的额外米线,再加上 1.22 美元的消费税,实际支出 15.01 美元,连小费都不需要给。这让我好奇商家、平台和外卖员都是如何靠此盈利的。</p>
<h4 id="越南春卷"><a class="markdownIt-Anchor" href="#越南春卷"></a> 越南春卷</h4>
<p>室友买了一堆原材料,包了个越南的 summer roll(脍卷、夏卷,或者直接说越南春卷)给我吃。</p>
<p>做法很简单:首先是煮越南的一种粉,然后煮虾剥虾、切黄瓜丝萝卜丝等。米纸沾水拿来包这些材料。为了不破掉,要在米纸还有点硬的时候就开始包。酱料则是花生酱、番茄酱、耗油和热水搅拌而成。</p>
<p>她的师傅是十几家餐厅的老板,其中一家餐厅便是专门做越南菜的。他家的脍卷酱料非常好吃,我跟她经常会抢着要。现在我和室友还没有搞懂里面究竟放了什么,只知道有猪肝在内。</p>
<p>学会做了脍卷后,室友很贴心地为我包了一些带去工作吃。因为没有小盒子装酱料,她故作聪明地把酱料包在了米纸内。结果就是,等我要吃饭的时候才发现皮全部破了、酱料也都流得到处都是。</p>
<p>后面我们太懒了,直接省去「包」这个步骤,将米纸沾水揉成一团,然后切成数个小条条、直接蘸酱吃。口感很像更硬一些的肠粉。而整道佳肴则变得更像是一种拌面:</p>
<p><img src="/posts/ea48/summer.jpg" alt="没有卷起来的脍卷,放了水煮蛋、黄瓜片、虾和越南粉"></p>
<h4 id="玩桌游"><a class="markdownIt-Anchor" href="#玩桌游"></a> 玩桌游</h4>
<p>一天周日,我和室友以及她的一个朋友来办公室玩 <em>茂林源记</em>。我先前就玩过这游戏,刚开始玩的时候很上头。这游戏的美术风格我很喜欢,最初我是在一个桌游吧看到的,但是因为它的规则书而被劝退(当时我还只会玩 <em>炸弹猫</em> 等较悠闲的桌游)。之后我看到了 <a target="_blank" rel="noopener" href="https://store.steampowered.com/app/965580/Root/">Steam 版本的 <em>茂林源记</em></a>,实在是太想入手,便买了个玩。入门期间我发现它的规则其实并不难接受,遂推荐给室友玩,没想到她比我还上头,直接买了实体的桌游和扩展。</p>
<p><em>茂林源记</em> 的故事设计我认为很有创意:一个森林原本被 <em>飞鹰王朝</em> 控制。他们有规律地生活、完全遵循于法条。结果主张工业发展的 <em>猫咪贵族</em> 侵入森林,将飞鹰们打跑,并希望统治森林。飞鹰不甘心,想打败猫咪、重新夺回森林。森林里的其他阵营也想要达成自己的目的:想要和平、由百姓组成的 <em>森林联盟</em>;只为自己出名声的 <em>神秘游侠</em>;渴望从战争中谋取财利的 <em>河岸商会</em>……</p>
<p>游戏阵营很多,规则也各不相同,因此这游戏入门比较困难。你不只是需要搞明白自己在做什么,也得明白其他人如何计分,以及如何阻碍他们计分。但又因为规则各不相同,阵营之间也是有着克制关系和不平等的强度:有些阵营遇到特定阵营玩起来就是很难受;有些阵营强度就是高到离谱;有些阵营玩起来就是异常艰辛。尽管它的美术风格十分可爱,但认真玩起来就能感受到其中的竞争元素,也就是要杀个 <strong>你死我活、不留情面</strong>。尽管有些阵营一旦玩起来,几乎就赢不了,但可以想尽办法让原本要赢的人没法赢,简称搅屎棍。这一刻,游戏又变回了 <strong>人情世故</strong> 的样子。</p>
<p>那我推荐这款桌游吗?如果你喜欢玩德式桌游,也有乐意玩德式桌游的伙伴们,那可以尝试一下这款游戏。我认为玩这款游戏比较重要的是 <strong>是否在意刻意对抗</strong>,因为这款游戏有许多要求玩家们刻意攻击彼此的设计,不像部分德式桌游竞争意识没那么激烈。这游戏几乎很难和平地玩下去。</p>
<p>如果你是一个不喜欢和真人起冲突的玩家,我不是很推荐,只能说可以试试。因为 Steam 版本的 <em>茂林源记</em> 有人机模式,实体版则有机器人扩展(就是要花更多的钱)。</p>
<p>我还为这款游戏写过一个 Steam 评测:</p>
<blockquote>
<h4 id="优点"><a class="markdownIt-Anchor" href="#优点"></a> 优点</h4>
<ul>
<li>给没玩过 <em>茂林源记</em> 的玩家:这款游戏的原身是 <strong>非对称战争桌游</strong>,特色是每个阵营的玩法都很不一样。</li>
<li>给玩过一点线下桌游的玩家:相比起游戏线下那一大本规则书,数字版有个好处是它自己会帮你算规则。萌新想入坑的话从数字版开始会轻松很多,并且数字版有教程关。只是数字版玩多了再去玩线下桌游容易出现村规的问题。</li>
<li>美术风格很香:画面看着挺舒服的,3D 小动物模型也挺有特色。不过某些 DLC 里的模型很敷衍。</li>
<li>BGM 很赞,我线下玩桌游的时候都时不时拿出来当背景音。</li>
<li>单机玩的情况下数字版提供了挑战关和人机局。就是人机实力很不稳定,尤其是人机飞鹰,你赢了的时候它可能都已经把所有的领袖动乱了一遍、10 分都没有。</li>
</ul>
<h4 id="缺点"><a class="markdownIt-Anchor" href="#缺点"></a> 缺点</h4>
<ul>
<li>给没玩过 <em>茂林源记</em> 的玩家:这游戏本身是 <strong>King Maker 类游戏</strong>,也就是分少的人可以因为「<em>反正自己也赢不了,但又不想让你赢,还不如让另一个人赢</em>」的想法,而完全投入在帮助其他阵营导致原本可以赢的你大输特输的游戏。游戏的阵营强度是不一致的,有些阵营只要你选择去玩、你之后就一定要坐牢。</li>
<li>游戏大厅设计简直是上古世纪的产物,社交功能除了一个加好友,就只有屏蔽别人以及在大厅里喊话摇人。有时候玩线上还会碰到开局就跑的奇葩,在同步局里你要白白等六分钟才能等到这个人被机器人托管。</li>
<li>汉化做的特别特别烂,尤其是越来越新的 DLC。二扩 2023 年出的,游戏规则里干脆显示的英文;三扩 2025 年年初出的,你能看到老鼠的翻译一会儿是百人团一会儿是群鼠。</li>
<li>又是三扩,模型和动作肉眼可见的敷衍。谁小动物晕倒是睁着眼睛盯着前方好似要入党一样晕啊。真就是随便糊弄一下,影响了整体的游戏品质。</li>
</ul>
<h4 id="给萌新的建议"><a class="markdownIt-Anchor" href="#给萌新的建议"></a> 给萌新的建议</h4>
<ul>
<li>先学会怎么玩猫,之后再慢慢学习游玩其他阵营。猫猫是最适合新人学习这款游戏的基础规则的阵营,不要因为听说猫猫弱就嫌弃猫猫。当你觉得初始四个阵营都多多少少玩明白了再考虑是否要购入 DLC。</li>
<li>线上开房间要选「同步」(SYNC),加别人房间时也要认准同步。同步模式下你一个回合是三分钟,三分钟过了机器人会暂时托管你。如果机器人已经托管了你一次,第二次托管就是永久托管;非同步模式是一个回合三天。</li>
<li>这款游戏的目的永远都是得分。要保证自己能得分的情况下再去阻碍别人得分,除非比分差太大了。</li>
</ul>
</blockquote>
<p>我个人不是一位那么喜欢对抗的玩家,尤其是会和其他人产生冲突的游戏我都不是很爱玩。比如 MOBA 类我都不爱玩,因为我觉得我会和队友起矛盾(毕竟游戏里也就 10 个人,五五分组大家分工都明确),再就是我技术很差;吃鸡类则还好,我只跟朋友联机玩,并且几乎不会和敌人有任何互动,击败敌人或者被敌人击败都没有什么怨言。我后面开始慢慢放弃 <em>茂林源记</em> 就是因为这个:有时会遇到莫名其妙的玩家、在聊天室内散发恶意,十分毁体验。</p>
<h4 id="演讲"><a class="markdownIt-Anchor" href="#演讲"></a> 演讲</h4>
<p>我这个学期有节公开演讲课,竟然是我这个专业的必修课,很是无语。第二场演讲是关于 <em>信息性演讲</em>,也就是向听众传达特定信息或者知识。演讲结束回家后和室友吵了一架,一肚子的事情无法分享出来,只好一边淋浴一边对着手机录音。我用的是摩托罗拉手机自带的 Moto Note,貌似这也可以被称之为「说客」?结果期间我发现,我用「说」来表达想法很吃力,会迟钝和卡壳。看来我还是需要培养「说」的能力。洗完后才发现手机录到一分钟便自动熄屏了,连带着 Moto Note 一起被关闭。也就是说,我一个人在卫浴里自言自语了不知道多久!</p>
<p>室友在卫浴间旁边的厨房做饭,也听到了我的自言自语。她说让她想起了 <em>模拟人生 4</em> 里她捏的一个带有「古怪」特征的角色:平日也会自言自语,但是游戏会贴心地标记成「在和朋友聊天」。</p>
<p>说回那天的演讲,我本来是非常焦虑的,以至于一周前我一直处于「脑子无法静下来」的状态。之后看到了同学们带的笔记卡比我的还厚,我便慢慢冷静了下来。过去我从订阅的博客那边看到了一个句子,让我很喜欢:<em>比较是偷走幸福的小偷</em>(后面得知是西奥多・罗斯福说的);现在我要加一句:<em>当它往下比的时候,就成了幸福的快递员</em>,哈哈。</p>
<p>部分同学们想了些我觉得很有意思的主题,例如会发光的生物、创伤对人类大脑的影响、政治娱乐化等。但有一部分主题就让我感觉很无聊了:这里的大家都在说,好似不说就是一种「不正确」。至于是什么主题,我或许会在未来扩展说说吧。</p>
<p>总之,我的演讲是关于「离开家庭对成年子女的影响」。具体的演讲内容我会在未来以文章的形式发布出来~ 现在专心于「我在演讲」这件事:因为太过于焦虑「演讲」这件事本身,在实际的演讲中我完全没有关心台下观众可能对我投来的眼光或者持有的想法,反而很快速和流畅地讲完了。做这类我不擅长的事情,我会倾向于玩起「角色扮演」,也就是想象别人会怎么做、自己跟着效仿。这应该是 <em>解离</em> 的一种?可悲的是,我在「扮演」一个我行我素、能够活跃气氛的角色时,我对着教授做了个鬼脸,对方没能瞬间 get 到,我也没能化解接下来的尴尬气氛。我都不知道我在做什么!</p>
<h4 id="朋友的信用卡被盗刷"><a class="markdownIt-Anchor" href="#朋友的信用卡被盗刷"></a> 朋友的信用卡被盗刷</h4>
<p>我的一位朋友的信用卡不知为何被盗刷了,她立即找了银行换了新卡、寄回自己在纽约市的家。结果这张新卡还没到家的信箱里就被偷了,被盗窃者在当地的某个工厂里刷走了六千美元。当时朋友还在很远的大学里上课,突然看到银行给自己发短信、询问这笔交易是不是她弄的,整个人都不好了。更悲剧的是,她明明回复了「NO」,钱还是被刷走了。这让我和她都怀疑,这种确认短信的存在意义是什么?</p>
<p>继续说,朋友之后打电话给银行要索赔。银行先是在内部调查了不知道多少天,调查结束后拒绝了她的要求。因为这一阶段的「要索赔」不会提供任何证据,也没有任何声明,银行也不愿意直接给她六千美元。她询问我接下来该怎么办好,我让她先在 FTC(Federal Trade Commission,联邦贸易委员会)网站上报告自己的信息被盗、信用卡也被盗刷。这一步是为了拿到《FTC 身份盗窃宣誓书》,好去警察局报案。有了警方报告的副本后,就可以再去银行上诉了。</p>
<p>这听上去好似是个还可以的计划,但是万万没想到,数周前 Perplexity 给我发送的「联邦政府因没有筹资而罢工」这一新闻,以另一种方式重新回到我的脑内:FTC 的网站也罢工啦!我只能叫朋友直接去找当地警局,但她好像并没有听进去、次日直接跑去了当地银行上诉。这也不是不行,问题是这个环节里银行可能会要很多证据,比如当时不在纽约市的证据。她压根没有做任何准备,只能在那里手写了一个声明,说自己当时不在纽约市、也在短信里回复了「NO」。</p>
<p>让我有些气不过的是,我前一天还跟她解释了一遍她要去找谁、做什么,结果她第二天什么都没有地跑去了银行,在群里哭诉说没有文档。我问她什么文档,她说不知道、是银行职员跟她说的。我问她去警局了吗,她又好像第一次听到我提及警局一样,问我为什么要去警局、去当地的警局吗、要打 311 吗…</p>
<p>整体来说,这里出现这种事情就是很麻烦。很多事情都要求你会,虽然从某个角度来看,也是强迫你独立、是一种好事。但我讨厌这样,很烦哎,有些事情我就不能从最开始就避免发生吗?所以我的态度还是「讨厌」。</p>
<h4 id="有意思的顾客们"><a class="markdownIt-Anchor" href="#有意思的顾客们"></a> 有意思的顾客们</h4>
<p>做服务业很容易碰到有意思的顾客,这个月一些我印象深刻的:</p>
<ul>
<li>
<p>两个学生,买一个东西 6.26 美元,甲求着乙帮她付。乙起先说可以付 6 块,在甲的万般请求下帮付了 6.20 美元,甲则刷卡支付了剩余的 6 美分。后面甲还想买东西,老板看她没零钱,给她抹了零。</p>
</li>
<li>
<p>有一位看上去就有点问题的男孩。他作为孩子脸、长得很高,不停地走来走去,还询问了我数个问题:「要多久啊?这么多单的话,我可以跟后面的人说他们要等一会儿吗?」</p>
</li>
<li>
<p>万圣节的那天,店里直接走进来一个黑人把小费罐里的硬币拿走了。虽然也不算「顾客」啦……</p>
<p>我当时看着他一直伸手掏,脑海里想着:</p>
<ul>
<li>「罐里都是硬币,没多少钱,罐子本身还很深,他这样一直掏是因为『已经走进来了,必须得拿一把走,否则会很尴尬』吗」</li>
<li>「这个社会好野蛮,有人光明正大拿东西都没有人会阻止。就算我要阻止,他也会一拳打爆我的鼻梁,然后逃之夭夭、就算被抓了也没有钱赔我吧。这个社会就是因为最开始有人放纵了恶人,才会慢慢发展成这样的」。</li>
</ul>
</li>
<li>
<p>同样是万圣节,一个钉子头凶狠地走了进来,给我展示了一张纸,上面写着他已经过了要糖的年纪,但他可以为了自己的弟弟妹妹要糖。我可以选择给他糖,或者让他去做恶作剧。值得难过的是,他来的太晚了,糖果早在下午就被小孩子们拿光了。</p>
</li>
</ul>
<h4 id="楼下老头"><a class="markdownIt-Anchor" href="#楼下老头"></a> 楼下老头</h4>
<p>一天晚上我在玩 <em>模拟人生 4</em>,室友在一边逗猫。不知道是猫的跳跃声太大还是什么,触动了楼下老头的神经,他朝着天花板捶了数下。因为之前物管找我们打过招呼,说这个人很奇怪,是整栋楼里唯一一个会频繁举报楼上声音吵的人,并且态度奇差无比、很凶很急躁。我们搬进来后一直都是小心翼翼的,后面住久了差不多知道了他的愤怒阈值,例如猫的跳跃声就不会吵到他。这次反而吵到了、让我很意外。</p>
<p>之后室友去把吸尘器从我的桌子旁挪动到厨房,却没有料到插头一直插在插排上,导致电线绊倒了桌子上的书、连带着吸尘器一起倒了下去。楼下老头先是对天花板砸了十几下,接着打开自己的门跑了出来,对着走廊的墙还是门砸了几下,然后摔门回屋去了。</p>
<p>我只能说,虽然大晚上我们还在活跃并且导致这些声音都是我们的不对,但是他的处理方式很糟糕,只能让我们感到非常害怕,生怕他接下来跑上楼砸我们的门(他过去确实对着上一家住户做过)。</p>
<h4 id="去香港交换的校友"><a class="markdownIt-Anchor" href="#去香港交换的校友"></a> 去香港交换的校友</h4>
<p>我去见了一位去香港做了一年交换生的校友。他这一年在亚洲的各个国家旅游玩耍。虽然只有一年,但觉得他离开了很久。不过不得不提,他的生活习惯实在是糟糕。作为一个刻板印象里的美国青年,他有喝酒、抽「叶子」、玩女人的习惯,在香港没少去夜店喝个烂醉、跟很多女人有过一夜情。</p>
<p>校友告诉我,这期间他喝酒还被下过药,一觉醒来发现自己赤身裸体在一个陌生女人的房间里。对方直接坐到他身上,要求他支付自己一千美元。他虽然看起来傻傻的,但还是跑了,一千美元也没到对方手里。回到美国后他发现对方还给自己发过邮件,威胁说如果不交就找黑帮弄他。</p>
<p>我对这个人的看法只能说很复杂……</p>
<h2 id="书影音"><a class="markdownIt-Anchor" href="#书影音"></a> 书影音</h2>
<h4 id="书籍"><a class="markdownIt-Anchor" href="#书籍"></a> 书籍</h4>
<p>我这个月没有怎么阅读书籍。惭愧。不过我可以简单说说我现在持有的书籍。</p>
<p>我两三四年前(实在是忘了具体时间)买了《阿特拉斯耸耸肩》这套书,包含了它的三部曲。不得不说,这一整套书真的很厚,我觉得只需要拿着一本就可以到处抡人脑袋。内容所提供的信息量也很大,以至于我后悔刚开始阅读的时候没能记笔记:里面的人物实在是太多啦!我现在零零散散地读到了第三部曲。</p>
<p>和室友同居后我们的书架也合并了,她的纸质书要比我的多得多。像余华的《活着》也是我从她那边读来的。</p>
<h4 id="影视"><a class="markdownIt-Anchor" href="#影视"></a> 影视</h4>
<p>这个月和室友重温了《Happy Sugar Life》。动画在播出时我还是个初中生,因为对题材比较感兴趣,期间还追了漫画连载。现在再来看这个动画,感觉节奏很不错、不拖沓。我在漫画完结后就再也没有关注过该作品,没想到作者之后还出了第 11 卷,其中最重要的是讲到了女主之一盐长大后的样子。</p>
<h4 id="音乐"><a class="markdownIt-Anchor" href="#音乐"></a> 音乐</h4>
<p>这个月初我没有继续听 YouTube Music 为我在年初时创建的 Recap 播放列表,而是按照它的推荐算法、听了一些它推荐给我的专辑和单曲。其中最让我印象深刻的便是 <em>温室杂草</em> 这支乐队。他们 2021 年发布的单曲《春天有脚》非常好听,很赞。</p>
<blockquote>
<p><em>一起离开吧~ 一起离开吧~</em></p>
</blockquote>
<p>另一首我比较喜欢的单曲是《快乐的形状》。我很喜欢主唱呼出「快乐」的时候。</p>
<p><em>傻子与白痴</em> 这支乐队在 2019 年发布的专辑《夜长梦少》我也因推荐去听了。我认为该乐队的音乐风格不是我喜欢的那种,但是我很喜欢他们在该专辑里的一处设计。第七首《Taxi Radio》仅有一分钟,说是「歌曲」很奇怪,它更像是过渡段:一位出租车司机接了几个客人,问他们是不是玩乐队的。客人好似有些尴尬,一个接一个地说「是啊,算是吧」。背景里的电台主持人介绍着一支正在崛起的乐队 —— 傻子与白痴,并播放了该专辑的第八首《美好前程》。</p>
<p>我还听了 <em>伤心欲绝</em> 的专辑《逊到简直是个艺术品》。不得不说,这些乐队的取名风格实在是艺术,我很喜欢。</p>
<h2 id="博客"><a class="markdownIt-Anchor" href="#博客"></a> 博客</h2>
<h4 id="该文章分类"><a class="markdownIt-Anchor" href="#该文章分类"></a> 该文章分类</h4>
<p>「想法在 YYXX 迭代」可能会类似于月刊,但没有月刊那么正式。为了简单称呼,以下还是称其为月刊。</p>
<p>这里的 YY 指的是年份,不过是用天干地支的写法,例如二〇二五年叫作乙巳;XX 用的也是中国较为传统的写法。例如九月就是菊月,合在一起叫作「想法在乙巳菊月迭代」。</p>
<p>我之前给室友看了一些我的日记,她以为我写的「二〇二五年」是出自于日本的年份书写格式。其实这个〇是小写的「零」。这很有意思,因为我们在日常生活中几乎见不到〇,但是其他数字用的都是小写的(如一二三,大写的话则是壹贰叁)。我想起小学的时候,语文老师教过我们如何写大写的数字,以及如何写支票。</p>
<p>说回月刊,我打算在其中添加我这个月看过的、感受到的、学到的东西。例如我这个月读的书我就可以写在里面,讲讲我的想法;读过的技术文章或者写项目的时候学到的内容也可以写在月刊内;日记片段也可以取一些出来,尤其是那些体量不够我写一篇文章,但是有意思到我想要去分享的片段。我也想要添加我最近听的歌、专辑,应该也会很有意思。</p>
<p>不写周刊的原因是我认为我没有那个精力、时间去每周写个周刊,万一我这周什么都没做怎么办?但是一个月就足够我去分享些内容。我不打算准时发布月刊,但还是尽量在一个月的上旬发布吧。</p>
<h4 id="annie-的博客"><a class="markdownIt-Anchor" href="#annie-的博客"></a> <a target="_blank" rel="noopener" href="https://anniemueller.com/guestbook">Annie 的博客</a></h4>
<p>一次意外,我发现了该博客网站,并让我感觉很有意思。不只是站主写的文章很幽默,她的网站设计也很有趣。博客网站里有个很常见的页面,是「友链」,而 Annie 很机智地将其设计成了 <a target="_blank" rel="noopener" href="https://anniemueller.com/guestbook">Guestbook</a>(访客留言簿)。你可以在里面留下一条留言、画一张画,然后写下你的名字和网站链接。</p>
<p>我仿照她的头像简单画了一只猫,并写上了「BE COOL」。目前这条留言应该是还在审核中。</p>
<p>说回博客文章,我可以看出她是一位很风趣的人。很多文章都采用了夸张、幽默、讽刺的语言。例如十月一日发布的 <a target="_blank" rel="noopener" href="https://anniemueller.com/posts/two-small-ui-things-that-might-not-bother-me-if-i-were-a-completely-different-person"><em>Two small UI things that might not bother me if I were a completely different person</em></a>,就狠狠地批评了她发现的两个微小但令人恼火的用户界面设计问题。不需要会读英语,只需要看她贴上的图片和无处不在的大写单词便能看出她有多么地生气,哈哈!</p>
<h4 id="博客集合平台"><a class="markdownIt-Anchor" href="#博客集合平台"></a> 博客集合平台</h4>
<p>我从一个订阅的博客那儿听说了 <a target="_blank" rel="noopener" href="https://boyouquan.com">博友圈</a>,让我觉得很有意思,可以通过这类平台看到其他博客站主在写什么文章、都是什么样的人在做博客站主。我过去有个刻板印象,觉得博客站主都是程序员。实际上,有许多没有接触过计算机相关工作的人也在做站主。我也看到了 <a target="_blank" rel="noopener" href="https://www.travellings.cn/">开往</a>,让我觉得第一个想到这类东西的人真是个天才:我可以从一个博客网站「开」到另一个博客网站,就像大家的博客网站真的都是一个个独立的小岛一样。就是有时候目的地是有问题的站点,很容易出戏。</p>
<p>我只加入过 <a target="_blank" rel="noopener" href="https://github.com/timqian/chinese-independent-blogs">中国独立博客列表</a>,还是我很久之前加入的。虽然我觉得这些平台都非常有意思,但我暂且应该是不会考虑加入的。主要原因有二:有内容监管,以及让别人在一众文章里看到我的笔记什么的很奇怪哎…… 至于友链接力类的项目,我只是不知道该在首页的哪里添加这些链接和按钮。现在的首页菜单实在是太乱、太杂了。</p>
<h2 id="职场与创业观察"><a class="markdownIt-Anchor" href="#职场与创业观察"></a> 职场与创业观察</h2>
<h4 id="天使-vs-恶魔的管理风格"><a class="markdownIt-Anchor" href="#天使-vs-恶魔的管理风格"></a> 天使 vs 恶魔的管理风格</h4>
<p>兼职的店里有两个「头儿」,一个是「天使」,一个是「恶魔」。前者我会在文章里称呼为「经理」,后者则会称呼为「老板」。但他们是不是真的经理和老板呢?我就不知道了。他俩对员工的要求是一个在天、一个在地。经理总是担心员工做不好,觉得大家都是孩子,基本上不会训斥员工,甚至巴不得员工不去做、他来做。老板则希望员工什么都能做、都得做好,必要的时候会训斥员工。如果要培训出一个能用的员工,自然是交给老板培训最好。但老板也不是什么时候都有空,就会把包袱丢给经理。结果便是经理培训过后的员工,没有几个是可以入老板眼的。</p>
<h4 id="事精的定义"><a class="markdownIt-Anchor" href="#事精的定义"></a>「事精」的定义</h4>
<p>这个月有两位新人来培训,其中有一位没想到竟是过去一次兼职的同事。因为本身就有奶茶店工作的经验,她学起来很快,不过老板的要求「道高一尺」。另一位则是由经理培训,培训结束后跟着老板做了两天就差点被炒鱿鱼。你们可以猜猜看,最终谁留了下来?</p>
<p>两个都被炒掉了!</p>
<p>前者被炒的理由较有意思:老板认为她是个「事精」。又或者说,不符合店铺氛围。</p>
<p>对于这类小型服务业而言,店铺氛围是老板权威和管理风格的直接体现。员工无论主观是否愿意,都会受到这种氛围的影响而自动调整行为。在 10 人以下的小团队里,单个成员的态度和行为方式对整体氛围影响极大。一个「会搞事」的员工就足以改变整个团队的互动模式。</p>
<p>不过我还是很好奇,对方到底「事精」在哪儿?</p>
<h4 id="创业宣传策略"><a class="markdownIt-Anchor" href="#创业宣传策略"></a> <a href="/posts/c3f9.html">创业宣传策略</a></h4>
<p>在营销至上的氛围中,我的一位创业者朋友也陷入了资源错配的怪圈。他的项目还未正式启动,但团队的所有人都开通了企业邮箱,一个月就要花掉不少钱。</p>
<p>他认为团队里的多数人是做营销的,需要出头露面,企业邮箱因此是必需的。但是开支对于初创公司而言很大是真的,为此他想要削减技术人员的工具预算。</p>
<p>我的第一反应是比较生气。同样作为技术人员,为什么这些人就要因为待在后面、不被人看到,就要把预算让给一些实际产出都不理想的人呢?</p>
<p>我不是觉得营销没必要,事实上,我认为营销很有必要,因为没有什么产品是可以自销的。但是营销得有效,预算也得用在对的地方上。将「看起来像是在创业」的活动误认为是创业本身,可是毁灭性的想法!</p>
<h2 id="技术学习与实践"><a class="markdownIt-Anchor" href="#技术学习与实践"></a> 技术学习与实践</h2>
<h4 id="webmention"><a class="markdownIt-Anchor" href="#webmention"></a> Webmention</h4>
<p>是的,现在这个博客网站支持 Webmention 了!这是 IndieWeb 的核心协议之一,想要详细了解我是如何做到的,可以看 <a href="/posts/1de.html">这篇文章</a>。目前我还在缓慢改进 Webmention 的显示方式,十分感谢 <a target="_blank" rel="noopener" href="https://taxodium.ink/">Spike</a> 在这期间主动联系我、帮助了我许多~</p>
<p>然后我发现,开发 Hexo 的插件的话一定要在文件顶部写上:</p>
<figure class="highlight javascript"><table><tbody><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">/* global hexo */</span></span><br></pre></td></tr></tbody></table></figure>
<p>测试期间发现了 Hexo 实例未定义的错误。找了很久才发现是这行忘记加。</p>
<h4 id="去中心化"><a class="markdownIt-Anchor" href="#去中心化"></a> 去中心化</h4>
<p>阅读博客时我学到了一个新东西:ActivityPub。我觉得去中心化社交平台是一个很有意思的概念,不过我现在依然没有搞明白其中的原理。到底是怎么做到的?只用客户端、不用服务端就可以互相发送数据、存储数据?后面了解了一下得知,并不是完全的没有服务器,而是没有了中间的服务器。比方说 Instagram,用户上传的内容都是从客户端传输到 Instagram 自己的服务器,而去中心化是去掉了这个中间的封闭服务器,改用用户自己搭建的服务器,通信则需要依靠特定的协议。ActivityPub 便是这样的一个协议。</p>
<p>我想到过去我捣鼓过的 Nostr 也是这样吧,用户可以在一种叫做 Relay 的服务器上上传内容。去中心化的好处是我们上传的内容不会被这些封闭的公司管控,坏处则是展示上传的内容时不一定齐全,并且要特意折腾一番、迁移时也麻烦。如果是完全的纯客户端,那就是 P2P 了,我还没折腾过。</p>
<p>我认为很多时候人际关系在社交平台上的分布就会决定我们使用什么平台。我还在使用 Instagram、推特(我还是抗拒叫它 X……)、Threads 和脸书等平台,主要还是因为我的朋友都在上面、我要分享我的生活给他们,绝对不是因为我有多么喜欢这些平台给我带来的流量。我的账户几乎都是私密的,流量什么的都无所谓,我乱发我开心就好,我在 Instagram 上还有个专门的分类存放我收藏的钢笔美照~ 我写博客也是这样的心态。我虽然会把它的链接放在我社交平台账户的个人资料上,但我肯定不会期待我的校友们会点进去、看到全都是中文的文章然后特意每一篇都用翻译工具读过去。很多人对于博客的想法还是,<em>哇哦酷</em>,然后再也不会打开。唉…</p>
<h4 id="10x-工程师-vs-10x-工程师"><a class="markdownIt-Anchor" href="#10x-工程师-vs-10x-工程师"></a> 10x 工程师 vs -10x 工程师</h4>
<p>在团队中,「10x 工程师」代表极高产能和影响力的人才;相对地,「-10x 工程师」则是以拖慢团队效率、增加内耗为特征的反面角色。他们的典型特征是:</p>
<ul>
<li>制造大量无效产出:例如幻灯片、图表、报告等形式主义成果,却无法交付可运行的产品。</li>
<li>追求优雅胜过实用:花费大量时间在架构设计或代码风格打磨上,却忽视最终交付或快速迭代的需求。</li>
<li>阻塞决策流程:反对「一锤定音」的决策方式,通过反复讨论、持续征求意见拖延进度。</li>
<li>冗长且泛滥的沟通:在群组或邮件中发送长消息,要求团队成员广泛参与无意义的讨论。</li>
<li>代码与脚本难以维护:编写晦涩难懂、仅自己能看懂的脚本或程序,没有文档;构建和测试流程非常缓慢。</li>
<li>滥用测试与依赖:写大量毫无意义的测试用例;引入需要单独学习且维护成本高的第三方库。</li>
<li>浪费团队智力:将团队困在复杂而收益不明的项目上,让其他工程师也陷入无产出的深坑。</li>
<li>误导管理层:低估项目难度,夸大可行性,最终导致进度大幅延迟或彻底失败。</li>
<li>复制「负能量」人才:倾向招募同样低效的工程师,进一步拖累团队。</li>
</ul>
<h4 id="把脚注踢出文章吧"><a class="markdownIt-Anchor" href="#把脚注踢出文章吧"></a> 《把脚注踢出文章吧!》</h4>
<p>我有订阅一个英文的 Feed,里面收录了一些 JavaScript 相关的技术文章,例如这次我翻到的 <a target="_blank" rel="noopener" href="https://jakearchibald.com/2025/importing-vs-fetching-json/"><em>Importing vs fetching JSON</em></a>。不过让我引起兴趣的不是这篇文章,而是文章作者 Jake Archibald 在七月份写的 <a target="_blank" rel="noopener" href="https://jakearchibald.com/2025/give-footnotes-the-boot/"><em>Give footnotes the boot</em></a>。</p>
<p>在许多文章里,当作者想要对一个话题或者术语进行补充的话,都会在对应的词汇旁添加一个小数字,然后将补充说明放在页面的最底部。Jake 认为这样的设计很糟糕,因为它会迫使读者做出选择:要不然跳过脚注保持阅读流畅,或者中断主线去探索「支线」。这种体验被他描述成是一种「死胡同式的冒险书」,读者最终还是得回到主线来。同时他提到,脚注字体通常被设计的很小,阅读体验很差,而这样的做法竟是写作界的传统。</p>
<p>而网页没有「页面」这个概念,脚注通常被放在文末,需要读者滚动查找。如果页面有长评论区或者页脚,脚注会更难被定位。虽然可以用超链接跳转,但读者依然需要手动寻找对应的内容;返回主文后,读者又会迷失在文字中。Jake 就此提出了多个解决方案:</p>
<ol>
<li>使用 <code><popover></code> 和 CSS anchor 实现无 JS 的脚注弹窗。虽然技术上可行,但他依然认为这是糟糕的体验,原因有二:
<ol>
<li>链接文本如 <code>1</code>、<code>7</code> 等毫无语义,点击区域又极小。</li>
<li>superscript 存在可访问性问题。</li>
</ol>
</li>
<li>放弃脚注,直接使用括号吧!毕竟「脚注是印刷时代的残留 hack,在网页平台上继续使用脚注是『愚蠢的延续』」(这句话不是我说的)。不过仅适用于简短的补充内容,需要避免使用嵌套括号。</li>
<li>使用 <code><section role="note"></code>,语义明确,视觉独立,适合中等长度补充内容。</li>
<li>使用 <code><details><summary></code> 折叠内容,读者可选择展开,适合较长补充信息。</li>
</ol>
<p>Jake 也强调,如果内容真的不重要,就别写;如何值得一读,就放在上下文中。</p>
<p>该文章的评论区内也有人认为,Jake 提出的替代方案「太打断阅读」。Jake 反驳:<em>阅读本就包含跳过不相关内容的行为。与其优化给「不感兴趣的读者」,不如提升整体语义与可读性</em>。</p>
<p>自然也有一些特殊情况:</p>
<ul>
<li>
<p>Wikipedia 的脚注就是仅用于引用的,并且用户的习惯早已建立,属于例外。</p>
</li>
<li>
<p>如果内容需要打印,可以用媒体查询优化打印体验。</p>
<p>媒体查询是一种 CSS 技术,可以根据不同的设备类型或输出方式(例如屏幕、打印机)应用不同的样式。当用户选择打印网页时,浏览器会使用 <code>@media print</code> 规则下的样式,而不是屏幕显示的样式。</p>
<p>你可以在 <code>@media print</code> 中:</p>
<ul>
<li>隐藏不必要的元素(如导航栏、评论区)</li>
<li>调整字体大小、行距、颜色(通常改为黑白)</li>
<li>展开折叠内容(如 <code><details></code> 标签)</li>
<li>将脚注或引用内容重新排版为适合纸质阅读的格式</li>
</ul>
</li>
</ul>
<p>我个人没有写脚注的习惯,不过我过去会用 Markdown 的引用块来补充内容。这种行为不依赖编号或者跳转,因为内容直接可见,更像是「作者旁注」而非「脚注」。引用块通常也是缩进或变色的(在我的博客主题里,它两者皆是),会在视觉上形成轻微分割,便于读者跳过。根据 Jake 的说法,应该是类似于 <code><section role="note"></code> 的做法。</p>
<p>但是直接使用引用块,在语义上还是偏了,只能说可以接受。因为引用块的用途终究还是「引述他人观点、文献或外部内容」。最好还是自定义语法标记,然后让 Hexo 转换成 <code><section role="note"></code> 或者 <code><aside></code>。</p>
<p>翻阅一些订阅的博客网站时,我也发现有站主实现了全屏旁注。我个人比较好奇,这类旁注对于部分较为特殊的设备来看是什么样的?</p>
<h4 id="nan那个不是数字的数字"><a class="markdownIt-Anchor" href="#nan那个不是数字的数字"></a> 《 <code>NaN</code>:那个不是数字的「数字」》</h4>
<p>我在 Hacker News 上找到了这篇文章:<a target="_blank" rel="noopener" href="https://piccalil.li/blog/nan-the-not-a-number-number-that-isnt-nan/"><em>NaN, the not-a-number number that isn't NaN - Piccalilli</em></a>。作者 Mat "Wilto" Marquis 指出 <code>NaN</code> 只要出现在算术表达式中,结果永远都会是 <code>NaN</code>;任何使用 <code>NaN</code> 作为操作数的比较也都会返回 <code>false</code>。奇怪的是,当你写 <code>NaN == NaN</code> 或者 <code>NaN === NaN</code> 时,结果却是 <code>false</code>。Mat 解释,这是因为 <code>NaN</code> 是一个数字,尽管它的全称是 <em>Not-a-Number</em>。这听上去像是自相矛盾,但其实背后的设计逻辑很合理:</p>
<ol>
<li>
<p>JavaScript 使用 IEEE 754 标准来表示数字,包括整数和浮点数。在这个标准里,<code>NaN</code> 是一种合法的数值类型,用于表示「无法表示的数值结果」,比如:</p>
<ul>
<li>0 除以 0</li>
<li>数字与非数字相乘</li>
<li>对负数开平方(在部分语言中)</li>
</ul>
<p>因此 <code>NaN</code> 是一种「数值错误状态」,而不是一个非数值类型。</p>
</li>
<li>
<p>为了让错误状态在数值计算中传播,<code>NaN</code> 必须表现得像一个数字。如果 <code>NaN</code> 不是数字类型,它就无法参与算术运算,也无法在表达式中自然传播错误。</p>
</li>
<li>
<p><code>NaN</code> 的设计目的是在数值计算中标记错误,而不是抛出异常。它是一种「哨兵值」,表示「这里出了问题,但是程序可以继续运行」。这比抛出错误更灵活,尤其是在数据处理、科学计算或者图形编程里。</p>
</li>
<li>
<p>为了防止错误值被误认为是有效数值,<code>NaN</code> 是 JavaScript 中唯一一个不等于自身的值。你必须使用 <code>Number.isNaN()</code> 或 <code>isNaN()</code> 来检测它,而不是用等号比较。</p>
</li>
</ol>
<h2 id="社交与人际关系思考"><a class="markdownIt-Anchor" href="#社交与人际关系思考"></a> 社交与人际关系思考</h2>
<h4 id="吃免费的饭骂做饭的厨子"><a class="markdownIt-Anchor" href="#吃免费的饭骂做饭的厨子"></a> <a href="/posts/a2a2.html">吃免费的饭,骂做饭的厨子</a></h4>
<p>对于「为什么人们更倾向于攻击贡献者」这一问题的思考。</p>
<h4 id="阶段性朋友"><a class="markdownIt-Anchor" href="#阶段性朋友"></a> 阶段性朋友</h4>
<p>人与人之间的关系,远没有想象中那般永恒,而是会随着个人成长、环境变迁逐渐发生裂变与疏离。所谓「阶段性朋友」,指的是那些在生命某个阶段因为特定经历或背景走到一起、彼此陪伴、共享过一段时光的朋友。但随着时间推移,彼此的世界观、生活轨迹乃至性格边界产生变化,这段关系逐渐失去了原有的连结,甚至在某个节点彻底失效。</p>
<p>认识的年头再长,曾经再亲密都不能保证关系始终如一。人会成长,也会走散,有的人是陪你一阵子的,有的人才能陪你一辈子。</p>
<p>我认为这并不等同于背叛或者消耗,这是一场彼此陪伴和成长的必经过程。感谢那段时光的相遇和陪伴,也坦然面对最终的分离。接受关系的自然流转,顺势而为。成长本就是一场不断筛选、不断更新关系的过程。</p>
<h4 id="你只是在怪她没有选你"><a class="markdownIt-Anchor" href="#你只是在怪她没有选你"></a> <a href="/posts/e0dc.html">你只是在怪她没有选你</a></h4>
<p>近日,一位朋友提起了自己的情感问题。不过我没有很深入去写到底发生了什么,毕竟把别人的隐私拿出来写还是很不好的。这篇文章里我更多是借用了他的一些故事,去写我对「你只是在怪她没有选你」的部分看法。</p>
<h4 id="性暴力的苗头是加害者"><a class="markdownIt-Anchor" href="#性暴力的苗头是加害者"></a> <a href="/posts/5c85.html">性暴力的苗头是加害者</a></h4>
<p>原本是公开演讲课的作业,但因为感觉很有缘,所以深入思考后的产物。</p>
<h2 id="教育与学习"><a class="markdownIt-Anchor" href="#教育与学习"></a> 教育与学习</h2>
<h4 id="番茄钟的个人想法"><a class="markdownIt-Anchor" href="#番茄钟的个人想法"></a> 番茄钟的个人想法</h4>
<p>一次,一位校友询问我平日都是如何学习的。我说我会学到累为止。他立马开始批评我,并提到了他的一位朋友的学习方式,认为我应该向他学习。而那位朋友的学习方式,则是番茄钟学习法。</p>
<p>我觉得这位校友人很烦。这已经不是第一次 <em>他因为一件自己完全不熟悉的事情而「说教」我</em> 了。我也不喜欢番茄钟,但我也不否认它的可用性,只是它强制的时间切割方式会和我的思考节奏产生冲突。</p>
<blockquote>
<p>番茄钟学习法:要求你每完成一个 25 分钟的专注周期,就必须暂停 5 分钟。</p>
</blockquote>
<p>我习惯深度沉浸地做事。如果在我思路连贯的时候突然中断我,我会十分愤怒,并且之后也很难迅速回到同样的专注状态。</p>
<p>番茄钟本身是一套高度结构化、外在强制的时间管理体系。它规定了固定的工作与休息节奏。对于依赖自我判断来安排学习节奏的人来说,使用番茄钟容易产生被工具主导的无力感。并且对于需要更长的连续思考才能进入心流状态的人来说,当休息周期早于心流完成点时,反而会打乱最佳效率,还不如自然而然地寻找暂停时机。</p>
<h4 id="孩童和恐怖游戏"><a class="markdownIt-Anchor" href="#孩童和恐怖游戏"></a> <a href="/posts/e068.html">孩童和恐怖游戏</a></h4>
<p>和妹妹玩多人恐怖游戏的时候一直在脑海里盘踞着的想法。在我和妹妹一样大的年纪,如果有成年人这么想,我绝对会觉得他们很烦吧…… 最近我在网上经常看到一类言论,觉得很贴切我现在的状态:<em>到了两边(长辈和孩子)都能理解的年纪</em>。</p>
<h2 id="日记片段"><a class="markdownIt-Anchor" href="#日记片段"></a> 日记片段</h2>
<p>该栏块专门放置一些日记片段…… 它们是我的一些还未被深入探索的小想法,一些我觉得有意思的日常…… 或许在未来的哪一天,我会捡起一些详细说说?你感兴趣的话,也可以拿走~</p>
<blockquote>
<p>我要发表我对领英这个 app 的想法:无聊透顶。</p>
<p>每次刷都是看高中生进了什么名校、大学生找到了什么实习、应届生找了什么工作。</p>
<p>也没什么办法,这是一个报喜不报忧的平台。</p>
</blockquote>
<blockquote>
<p>我发现移动端的 Fluent Reader Lite 和桌面端的 Fluent Reader 的区别还挺大:</p>
<ol>
<li>不能改字体</li>
<li>会自动删除 7-28 天之内的文章</li>
</ol>
<p>导致我去床上躺着还不能愉快阅读 RSS Feed。我订阅的很多博客都不是一个月一更的。像我自己都可能不会几个月更一次。</p>
</blockquote>
<blockquote>
<p>我感觉我的生活已经没有了自己的时间了。一段不会被别人打扰的、自己想事情自己可以写下来的时间。我写日记都是选在较特别的时间段:坐车通勤、打工空闲… 就算是在家里,我也要赶项目的进度,更别提很多时候都有学校的作业要写。</p>
</blockquote>
<blockquote>
<p>我梦到我和家人翻山越岭来到大陆的一个角落,在海里放了个 Hello Kitty 大脸气球,坐在上面想慢慢地飘到北极……</p>
</blockquote>
<blockquote>
<p>你的大脑只能理解它已知的信息,所以当你选择你想要的未来时,你实际上只是基于过去创造了一个理想化的方案。</p>
<p>如果事情没有按照你希望的方式发展,你就会认为自己失败了,因为你没有创造出你想要的东西。</p>
<p>而实际上,你创造了更好的东西,但它对你的大脑而言是陌生的,所以大脑将其错误地理解为「不好的」。</p>
</blockquote>
<blockquote>
<p>一个过于在意他人感受和看法的人,是否也是一个极度以自我为中心的人呢?</p>
<p>拼命寻求认可是一种以自我为中心的表现。</p>
<p>之所以在意他人的看法,是因为希望世界以自己想要的方式运行。</p>
<p>课题分离:</p>
<p>没有比主观感受更大的事情。</p>
<p>课题 = 个体的主观感受 + 选择</p>
<p>人际关系的烦恼:</p>
<ol>
<li>心甘情愿让他人干涉自己的课题</li>
<li>企图强行干涉他人的课题</li>
</ol>
</blockquote>
<blockquote>
<p>反叛精神不等于叛逆。</p>
<p>叛逆青年无法跳脱出赏罚机制,只是因为无法因赞赏而得到他人的关注,因此走向极端,做叛逆的行为来获得关注。</p>
<p>反叛精神则是跳脱出赏罚机制,不做会得到他人表扬的事,而是做自己想做的事。</p>
</blockquote>
<blockquote>
<p>我今天 ゴロゴロ(<em>gorogoro</em>,无所事事的意思)了一整天。晚上出去吃了快乐小羊,不是很惊艳。我感觉现在的火锅都不惊艳。</p>
</blockquote>
<blockquote>
<p>我有一个想要订阅的博客网站,但是不知道为什么,FreshRSS 无法和它成功进行 SSL 握手,说是版本不对。我在容器内改了许多 TLS 版本来 curl,但都不行,只好收藏在我的标签页里时不时看一眼。</p>
</blockquote>
<blockquote>
<p>我在学习双拼。我用的是 Gboard 里的小鹤双拼。</p>
</blockquote>
<blockquote>
<p>双拼好难,暂且搁置。</p>
</blockquote>
<blockquote>
<p>我放弃了我的鱼缸,里面死掉了太多的虾和螺,我都不知道是怎么做到的,一向杀不干净的羊角螺在里面全部死光。</p>
</blockquote>
</body></html></div></article></div></main><footer><div class="paginator"><a class="prev" href="96d1.html">上一篇</a><a class="next" href="e068.html">下一篇</a></div><!-- Webmention 显示区域--><div class="webmention-section" data-page-url="posts/ea48.html" data-full-url="https://cytrogen.icu/posts/ea48.html" data-mode="static">
<h3 class="webmention-title">Webmentions (<span class="webmention-count">1</span>)</h3><div class="webmention-group webmention-group-mentions"><h4 class="webmention-group-title">提及 (1)</h4><div class="webmention-list">
<div class="webmention-item" id="webmention-1951633" data-webmention-id="1951633">
<div class="webmention-author">
<img class="webmention-author-photo" src="https://avatars.webmention.io/taxodium.ink/2b954e9d7ff8da1cb55e49fc098ea06f464c9ffd1872e1f92cc2ac1bb10ad7c4.png" alt="Spike Leung" loading="lazy">
<a class="webmention-author-name" href="https://taxodium.ink" target="_blank" rel="noopener ugc">Spike Leung</a>
<span class="webmention-date">2025/11/2</span>
</div>
<div class="webmention-content">
关于 "Give footnotes the boot" 的思考 在看 Cytrogen 的 <a href="https://cytrogen.icu/posts/ea48">想法在乙巳开冬迭代</a> 时(文章推荐一看),看到了 Jake Archibald 的 Give footnotes the boot 。 Jake 的看法是别用脚注,原因是: 它干扰读者的阅读,当碰到脚注的时候,就需要做选择,是分心看看脚注?还是继续阅读? 脚注的默认交互不好,一般脚注都在页面底部,阅读脚注会…
</div>
<div class="webmention-meta">
<a class="webmention-source" href="https://taxodium.ink/on-give-footnotes-the-boot.html" target="_blank" rel="noopener ugc">查看原文</a>
</div>
</div></div></div></div><div class="copyright"><p class="footer-links"><a href="../friends/index.html">友链</a><span class="footer-separator"> ·</span><a href="../links/index.html">邻邦</a><span class="footer-separator"> ·</span><a href="../contact/index.html">联络</a><span class="footer-separator"> ·</span><a href="../colophon/index.html">营造记</a><span class="footer-separator"> ·</span><a href="../atom.xml">RSS订阅</a></p><p>© 2025 - 2026 <a href="https://cytrogen.icu">Cytrogen</a>, powered by <a href="https://hexo.io/" target="_blank">Hexo</a> and <a href="https://github.com/cytrogen/hexo-theme-ares" target="_blank">hexo-theme-ares</a>.</p><p><a href="https://blogscn.fun" target="_blank" rel="noopener">BLOGS·CN</a></p></div></footer></div></div><a class="back-to-top" href="#top" aria-label="返回顶部"><svg width="20" height="20" viewBox="0 0 20 20" fill="currentColor" aria-hidden="true"><path d="M3.293 9.707a1 1 0 010-1.414L9.586 2a2 2 0 012.828 0l6.293 6.293a1 1 0 01-1.414 1.414L11 3.414V17a1 1 0 11-2 0V3.414L2.707 9.707a1 1 0 01-1.414 0z"></path></svg></a><script>document.addEventListener('DOMContentLoaded', function() {
const codeBlocks = document.querySelectorAll('figure.highlight');
codeBlocks.forEach(block => {
let caption = block.querySelector('figcaption');
if (!caption) {
caption = document.createElement('figcaption');
block.insertBefore(caption, block.firstChild);
}
const info = document.createElement('div');
info.className = 'info';
const filename = caption.querySelector('span');
if (filename) {
filename.className = 'filename';
info.appendChild(filename);
}
const lang = block.className.split(' ')[1];
if (lang) {
const langSpan = document.createElement('span');
langSpan.className = 'lang-name';
langSpan.textContent = lang;
info.appendChild(langSpan);
}
const sourceLink = caption.querySelector('a');
if (sourceLink) {
sourceLink.className = 'source-link';
info.appendChild(sourceLink);
}
const actions = document.createElement('div');
actions.className = 'actions';
const codeHeight = block.scrollHeight;
const threshold = 300;
if (codeHeight > threshold) {
block.classList.add('folded');
const toggleBtn = document.createElement('button');
toggleBtn.textContent = '展开';
toggleBtn.addEventListener('click', () => {
block.classList.toggle('folded');
toggleBtn.textContent = block.classList.contains('folded') ? '展开' : '折叠';
});
actions.appendChild(toggleBtn);
}
const copyBtn = document.createElement('button');
copyBtn.textContent = '复制';
copyBtn.addEventListener('click', async () => {
const codeLines = block.querySelectorAll('.code .line');
const code = Array.from(codeLines)
.map(line => line.textContent)
.join('\n')
.replace(/\n\n/g, '\n');
try {
await navigator.clipboard.writeText(code);
copyBtn.textContent = '已复制';
copyBtn.classList.add('copied');
setTimeout(() => {
copyBtn.textContent = '复制';
copyBtn.classList.remove('copied');
}, 3000);
} catch (err) {
console.error('复制失败:', err);
copyBtn.textContent = '复制失败';
setTimeout(() => {
copyBtn.textContent = '复制';
}, 3000);
}
});
actions.appendChild(copyBtn);
caption.innerHTML = '';
caption.appendChild(info);
caption.appendChild(actions);
const markedLines = block.getAttribute('data-marked-lines');
if (markedLines) {
const lines = markedLines.split(',');
lines.forEach(range => {
if (range.includes('-')) {
const [start, end] = range.split('-').map(Number);
for (let i = start; i <= end; i++) {
const line = block.querySelector(`.line-${i}`);
if (line) line.classList.add('marked');
}
} else {
const line = block.querySelector(`.line-${range}`);
if (line) line.classList.add('marked');
}
});
}
});
});</script><script async src="https://cdn.jsdelivr.net/npm/mathjax@3/es5/tex-mml-chtml.js" id="MathJax-script"></script><script>(function() {
document.addEventListener('DOMContentLoaded', function() {
const themeToggle = document.querySelector('.theme-toggle');
if (!themeToggle) return;
const getCurrentTheme = () => {
return document.documentElement.getAttribute('data-theme') || 'light';
};
const updateUI = (theme) => {
const isDark = theme === 'dark';
themeToggle.setAttribute('aria-pressed', isDark.toString());
};
const setTheme = (theme) => {
document.documentElement.setAttribute('data-theme', theme);
document.documentElement.style.colorScheme = theme;
const pageWrapper = document.getElementById('page-wrapper');
if (pageWrapper) {
pageWrapper.setAttribute('data-theme', theme);
}
// Find and remove the temporary anti-flicker style tag if it exists.
// This ensures the main stylesheet takes full control after the initial load.
const antiFlickerStyle = document.getElementById('anti-flicker-style');
if (antiFlickerStyle) {
antiFlickerStyle.remove();
}
localStorage.setItem('theme', theme);
updateUI(theme);
};
const toggleTheme = () => {
const current = getCurrentTheme();
const newTheme = current === 'light' ? 'dark' : 'light';
setTheme(newTheme);
};
updateUI(getCurrentTheme());
themeToggle.addEventListener('click', toggleTheme);
if (window.matchMedia) {
const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');
mediaQuery.addEventListener('change', function(e) {
if (!localStorage.getItem('theme')) {
const theme = e.matches ? 'dark' : 'light';
setTheme(theme);
}
});
}
});
})();
</script><script src="../js/details-toggle.js" defer></script><script>(function() {
document.addEventListener('DOMContentLoaded', function() {
const backToTopBtn = document.querySelector('.back-to-top');
if (!backToTopBtn) return;
const toggleButtonVisibility = () => {
const scrollTop = window.pageYOffset || document.documentElement.scrollTop;
const shouldShow = scrollTop > 200;
if (shouldShow) {
backToTopBtn.classList.add('is-visible');
} else {
backToTopBtn.classList.remove('is-visible');
}
};
let ticking = false;
const handleScroll = () => {
if (!ticking) {
requestAnimationFrame(() => {
toggleButtonVisibility();
ticking = false;
});
ticking = true;
}
};
const scrollToTop = (event) => {
event.preventDefault();
window.scrollTo({
top: 0,
behavior: 'smooth'
});
};
window.addEventListener('scroll', handleScroll);
backToTopBtn.addEventListener('click', scrollToTop);
toggleButtonVisibility();
});
})();</script></body></html>