<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Kuqilin&#39;s Blog</title>
    <link>https://www.kuqilin.top/yue/</link>
    <description>Recent content from Kuqilin&#39;s Blog</description>
    <generator>Hugo</generator>
    <language>yue</language>
    
    <managingEditor>kuqilin@outlook.com (Kuqilin)</managingEditor>
    <webMaster>kuqilin@outlook.com (Kuqilin)</webMaster>
    
    <copyright>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</copyright>
    
    <lastBuildDate>Sat, 26 Sep 2026 14:12:45 +0800</lastBuildDate>
    
    
    <atom:link href="https://www.kuqilin.top/yue/index.xml" rel="self" type="application/rss&#43;xml" />
    

    
      
    

    <item>
      <title>有效学习：如何利用碎片时间</title>
      <link>https://www.kuqilin.top/yue/post/q-s-speech/</link>
      <pubDate>Sat, 26 Sep 2026 14:12:45 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/q-s-speech/</guid>
      <description>
        <![CDATA[<h1>有效学习：如何利用碎片时间</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <h2 id="开场">
<a class="header-anchor" href="#%e5%bc%80%e5%9c%ba"></a>
开场
</h2><p>好，我们现在开始。我昨天晚上做了一个非常深刻、非常真实的梦。梦到我要给大家展示这个内容，当时整个班都乱套了，当然，不是我们这个班，完全不认识的。然后我当时也不知道在讲什么。完了之后发现回到了真实的世界。</p>
<p>今天来给大家分享和探讨这个<strong>有效学习</strong>，希望这个东西能给大家带来一些帮助。</p>
<p>在不断的对这个东西认识深刻的过程中，我对它的理解不断深入，我也受到了很多启发。</p>
<h2 id="碎片时间理论上的-2h25m">
<a class="header-anchor" href="#%e7%a2%8e%e7%89%87%e6%97%b6%e9%97%b4%e7%90%86%e8%ae%ba%e4%b8%8a%e7%9a%84-2h25m"></a>
碎片时间：理论上的 2h25m
</h2><p>首先我们来看<strong>碎片时间</strong>。碎片时间就是字面意义上的碎片的时间。然后呢就像我们之前的年级大会，我们各位同学都看到一些非常厉害的学霸，在早上起来的时候就会把非常细碎的时间都用上，而且他们已经做好了计划。</p>
<p>但是我们不需要这样做的这么离谱，而且确实，他这个是常年积累下来的习惯，我们难以触及他们这些高度。</p>
<p>我们先从最开始的开始。我们可能需要先理清一下我们一天的一个行程，这个大概是按照我的习惯来的，然后是以一个比较积极的心态去利用时间的可利用的最少的时间。也就是说有很大的提升空间，因为这个是最少的。</p>
$$
25 + 5 + 5 + 15 + 30 + 5 + 10 + 5 + 5 + 15 + 25 = \text{2h25m}
$$<p>跟大家讲啊，从早上六点半起床，或六点四十起床，如果你动作很快、比较积极，在七点前到班，你可以在早读前获得二十到二十五分钟的碎片时间。接下来两个课间，你可以有五分钟的碎片时间。然后大课间自由活动的时候，你下去自由活动五分钟，那么你回班可以获得二十分钟的时间。然后这个三十分钟是你中午回班这个星光计划的时间。下午的话这个五分钟是你提前到班可以去收拾东西或者梳理接下来的计划之类的。然后这个十分钟是眼保健操加上课间。这个五分钟是剩下两个课间。这个十五分钟是你晚修提前十五分钟到班上。然后晚上如果你提前回宿舍的自习室，最少也能获得二十分钟。</p>
<p>也就是说我们现在已经大概获得了两个半小时的碎片时间了，而且这个时间已经是算少的，减去了挺多时间。如果你的通勤，甚至上洗手间你都能利用上，这其实是大于三个小时的。是不是非常神奇？</p>
<p>碎片时间就是要大家把小的时间积累成大的时间，把它变得非常 massive，这样就会似乎拥有了三个小时的时间。然后这个时间好像就可以拿来做主三科的一套卷子，并深刻地进行理解；或者两套四选二的卷子，并进行充分的订正。</p>
<p>但是这样肯定就不是我们要探讨的东西了。因为碎片时间这个东西，我们肯定要把握它的最大的特征，就是<strong>碎片</strong>。我们肯定是不能这样子去利用它的，即我们无法这样利用，因为它太碎片了。当你以为你从你的时间表里头空出了这么大一片时间的时候，你就会发现你每天根本无法正常地利用。</p>
<p>第一个，它的时间是碎片的；第二个，每天你不可能拥有这么多个五分钟，最显著的就是平时上下课老师会拖堂，个人原因比如你上完一节课已经力竭了，你已经认真地听课了，你需要休息一下。这些是最基础的时间，它都有可能把你的时间进行压缩。所以呢我们现在把这个东西全部忘掉（笑）。这个东西是<em>理论上的</em>，我们需要回到最开始我们理解的有效学习。</p>
<blockquote>
<p>理论不等于日常。</p>
</blockquote>
<h2 id="有效学习时间--效率">
<a class="header-anchor" href="#%e6%9c%89%e6%95%88%e5%ad%a6%e4%b9%a0%e6%97%b6%e9%97%b4--%e6%95%88%e7%8e%87"></a>
有效学习：时间 × 效率
</h2><p>有效学习这里针对碎片时间，不过其实针对其他内容也是一样的。就是说你这个乘积啊：</p>
$$
\text{有效学习（碎片时间）} = \text{已利用时间} \times \text{利用效率，}
$$<p>可以理解为我们地理曾经学习的这个粮食总产量，等于我们的粮食总面积以及这个单产相乘。不过这是我瞎编的，我来一个个解释一下。</p>
<p>已利用时间是什么？就是我刚刚讲的这些东西，它是不可避免的会被压缩，正如我刚刚阐述的那些原因一样。所以我们同时也要在利用效率上去下功夫。</p>
<p>利用效率是什么呢？就想象你这个时间是你某个技能的一个空位，你需要往里头填充一些其他的东西，才能让这个东西变得有意义起来。</p>
<p>我给这三个内容总结了这三个东西，就是“<strong>身体</strong>”“<strong>答疑</strong>”还有“<strong>练习</strong>”。</p>
$$
\begin{array}{|c|c|c|c|c|}
\hline
    & \textbf{<5} & \textbf{5~15} & \textbf{15~30} & \textbf{>30} \\ \hline
    身体 & \checkmark & - & - & - \\ \hline
    答疑 & \checkmark {\small 小} & \checkmark {\small 一串} & \checkmark & \checkmark \\ \hline
    练习 & - & 化/地 & 相应时间 & 相应时间 \\ \hline
\end{array}
$$<h3 id="身体">
<a class="header-anchor" href="#%e8%ba%ab%e4%bd%93"></a>
身体
</h3><p>“身体”就是你每天必要的一些目的，你需要去装水、上洗手间之类的，以及你需要休息。这个东西你在五分钟内都是可以完成的，它也是必要不可缺少的，特别在课间，这个就不再啰嗦。对于大于的这些时间我就不再多说，可能是体育运动之类的。
对于身体还有一个要将的是，每天上午大家都会非常困倦，这个时候你就可以选择在课间什么都不用管，盖上衣服好好充分地睡上一觉，可以保证上课的高效集中注意力。</p>
<p>这里另外讲一个内容啊，大家早上困倦其实是非常正常的。研究显示，进入青春期后，人的睡眠相位通常会往后移，大致在 1—2 小时左右。比如成年人习惯晚上十点钟睡觉、早上六点钟起床；青少年相当于整体往后推约两个小时，所以早上六点钟起床，对他们来说类似成年人在早上四五点被叫醒。这个现象很常见，也很难单靠意志力改变。至于早上困倦怎么解决，第一个手段就是课间使劲睡；如果你实在很困，需要上课睡眠，那不在我们今天讨论范围内。如果未来有机会，我也会和大家分享一下。</p>
<h3 id="答疑">
<a class="header-anchor" href="#%e7%ad%94%e7%96%91"></a>
答疑
</h3><p>我们接着回来看一下这个“<strong>答疑</strong>”，就是解答一些你积累的疑惑。对于小的问题，上课就可以解决，这是用小于五分钟的时间完成的。然后五到十五分钟，就像邝老师之前说的，你可能准备了一堆问题，这个时候你就可以去问，这是属于“一串问题”的。这两个呢，是大家可以利用上的。十五到三十分钟还有大于三十分钟，这是你的某个知识点没有掌握，你需要找老师系统地把它攻克掉，或者作文需要找老师修改之类的。这是对于“答疑”的碎片时间。</p>
<blockquote>
<p>你可能准备了一堆问题，这个时候你就可以去问。</p>
</blockquote>
<h3 id="练习">
<a class="header-anchor" href="#%e7%bb%83%e4%b9%a0"></a>
练习
</h3><p>接下来是“<strong>练习</strong>”。“练习”呢我们遵从一个原则，就是在相应的、正确的时间内做正确的事情。什么意思呢？就是这个小于五分钟，不推荐，因为比较短。你可能也就是做一道或者两到选择题的样子，这个时间你最好就是答疑。五到十五分钟，我个人建议做这个四选二的科目，因为这段时间比较短，正好四选二不是最重要的科目，所以你的选择题就可以花在这个五到十五分钟内。如果你的一个课间可以做三道选择题的话，你一天的课间就可以算三个，就可以九或十道题，一周就可以做很多，非常有效。除此之外还可以去复盘一些基本的内容，比如你对四选二一些总结之类的。十五到三十分钟的话你就可以做一个专项的练习，比如说两三篇英语阅读、列一个作文提纲，甚至一两篇文言文阅读、文学性/议论性文本阅读等等。重点就是要找<em>相应的时间</em>。大于三十分钟都快到整块的时间了，那就根据自己的情况来选择。</p>
<p>有些人就说了：“我一天也不可能利用这么多啊？我一天又要做化学又要做地理，那咋办呢？”其实你只要保住一个方面就行了，你可以把你的战线拉到一周。比如说周一到周五，你可以这个做化学，这个做地理等等，利用好你的碎片时间即可。</p>
$$
\begin{array}{|l|l|l|l|l|}
\hline
    一 & 二 & 三 & 四 & 五 \\ \hline
    化 & 地 & 化 & 地 & 化 \\ \hline
\end{array}
$$<p>以上就是这个利用效率方面的讨论。我们接下来到最后一个也是最重要的，<strong>有效学习</strong>。</p>
<h2 id="有效学习的三个本质">
<a class="header-anchor" href="#%e6%9c%89%e6%95%88%e5%ad%a6%e4%b9%a0%e7%9a%84%e4%b8%89%e4%b8%aa%e6%9c%ac%e8%b4%a8"></a>
有效学习的三个本质
</h2><p>我们不要关心碎片时间本身，重要的是背后学习的本质。它包括三个方面。</p>
$$
\left.
\begin{aligned}
\text{（一）做好计划（目标）} \\
\text{（二）认真积极的态度} \\
\text{（三）执行}
\end{aligned}
\right\} \text{有效学习}
$$<p>第一个就是我刚刚所说的，做好计划。你要先把你一天的时间表给拉出来，定好每天要干的东西是什么。当你有一个目标的时候，它就会非常地有效果。因为你每天的计划绝对是赶不上变化的，所以你有一个目标之后无论发生什么改变，你都可以去趋向你的目标。可能今天我迟到了、可能今天我抢不了饭堂，但只要我有计划好的计划，那我就拿出来做，全心地投入而不用想自己做得对不对。</p>
<p>下一个，就是保持一个积极的、认真的态度。这对于利用时间是最重要的，我们不用一味地想着要利用多少时间、炸出多少时间，要想的是：</p>
<blockquote>
<p>时间本来就是一个好伙伴。</p>
</blockquote>
<p>如果你有一个认真积极的、向着有效学习的态度，你的时间自然而然地会被利用起来。</p>
<p>第三个是<strong>执行</strong>。因为你最后干了这么多写出来安慰自己非常高兴，但你不付诸实践是不行的。你可以先从最简单的——课间的化学地理——开始，至于后面的大堆碎片时间，由你自己开发。</p>
$$
\text{方案}
\begin{cases}
\text{1. 梳理个人时间}\\
\text{2. 明确利用时间}\\
\text{3. 明确补足内容}
\end{cases}
$$<h2 id="行动方案">
<a class="header-anchor" href="#%e8%a1%8c%e5%8a%a8%e6%96%b9%e6%a1%88"></a>
行动方案
</h2><p>以下就是最后的 plan，可以给大家去想一想。梳理个人时间就是把你个人的时间列出来。跟前面不一样的是我是按照我自己的时间来的，你们可能有自己的一些耍起，或者每个人安排的不一样，所以要自己去安排。第二就是明确利用时间，明确你可以利用的，不要有你有一大堆时间却什么要干不了这种事情。然后是明确你要补足的内容。就是我前面所说的，安放你的学习内容到碎片时间要有你的目标。</p>
<p>现在你就可以拿出一张纸来写一写，或者心里想一想。只要你做出来了，每天去执行它变成一种习惯，那不管碎片时间你用得多不多——即使只用了一个小时——<strong>你也是个很不错的人了！</strong></p>
<h2 id="结语">
<a class="header-anchor" href="#%e7%bb%93%e8%af%ad"></a>
结语
</h2><p>大概就是这么多，谢谢大家！</p>

        
        <hr><p>本文2026-09-26首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-09-26</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>演讲稿</category><category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>2026年记</title>
      <link>https://www.kuqilin.top/yue/post/2026-nian-ji/</link>
      <pubDate>Sun, 13 Sep 2026 08:00:00 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/2026-nian-ji/</guid>
      <description>
        <![CDATA[<h1>2026年记</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          
  <blockquote class="alert-blockquote tips">
    <p class="alert-heading">
      Tips
    </p>
    <p><p>本文中，看到字体颜色为蓝色且带有类似“🔗”图标的为跳转链接，可以点开<br>
看到一段话右上角（就像幂次一样）带有一个蓝色数字且有类似“🔗”图标的是注解，点它可以跳转到文末看注解。注解最后面类似“↩️🔗”图标的是返回原文<br>
这是第二版了，第一版在「归档」里面</p></p>
  </blockquote>

<p>其实挺早就有写年记的想法了，忘记是从谁的 Blog 看到的了，想着既然我不写日记、不写周记，也没有月记，那还是写个年记吧。没想到由于各种各样 <del>不可抗力</del> 的原因，比如「不知道是每年元旦发、还是除夕发，抑或是生日发」这些问题 <del>（其实是超级无敌拖延症犯了）</del> 导致一直没写成。至于为什么突然写了，我也不知道。所以，这是我第一篇「年记」 <del>谁知道会不会是最后一篇呢</del><br>
既然是每年生日发出来（如你所见） <del>并非如此，当时还在想要不要发出来</del> ，那么整个年记肯定就要从 2025 年 09 月开始呗。<br>
诶，话说这样还挺好，正好是一学年，所以这个「2026 年记」其实是「2025 学年记」来的。</p>
<p>这么一想，这年还是做了挺多东西的呢。</p>
<p>去年生日当天，又去了一次二中，参加广州市的数学与科学联赛（信息学），被人完虐。不过也是吃上二中的饭菜了（喜）。没过几天，又去了趟铁一，打 CSP<sup id="fnref:1"><a href="#fn:1" class="footnote-ref" role="doc-noteref">1</a></sup> 的去了。第一轮还好，还算简单，结果第二轮，去到六中参加， <del>相比于市联赛，还是复赛对我好点</del> 那时年少轻狂，结果 T3 忘记取消文件输出的注释，导致这题没输出答案，我的二等奖啊😭<br>
那天，下着雨…… <del>编不下去了</del><br>
然后，台风桦加沙🌀来了，把我们的学农挤走了，比较可惜的就是没有 <del>挑粪</del> 野炊。</p>
<p>这一年里，也是在 Google Play<sup id="fnref:2"><a href="#fn:2" class="footnote-ref" role="doc-noteref">2</a></sup> 里把 Minecraft 以极低的价格拿下了，至此，PC 端的 Bedrock+Java 和移动端的 Bedrock 已经全部拿下<sup id="fnref:3"><a href="#fn:3" class="footnote-ref" role="doc-noteref">3</a></sup>。</p>
<p>这年，还参加了北师大的数学建模比赛，在拖延症的统治下，成功地把实验 &amp; 写作时间挤压到一个月内。 <del>我失去的一个寒假机会谁给我补啊</del> 在这里，要特别感谢为我论文实验提供大力支持的<a href="https://b23.tv/gp6R1nw"><strong>呆萌der杜小杜</strong></a>，为我们提供实验场地和实验器材。以及我们小组的同学，<code>Kimi Agent</code><sup id="fnref:4"><a href="#fn:4" class="footnote-ref" role="doc-noteref">4</a></sup>真香，$\mathrm{\TeX}$<sup id="fnref:5"><a href="#fn:5" class="footnote-ref" role="doc-noteref">5</a></sup>轻而易举啊。最后也是成功拿下省一等奖。 <del>怎么我们学校一个进决赛都没有啊😭</del> 关于这篇论文的小故事，也许会再写一篇，但也大概率被我拖到猴年马月。一开始，小组选题其实是绿化对城市热岛效应的影响，毕竟都是地理班的学生，结果发现，这玩意光收集数据就太麻烦了，这还只是从各种网站下载遥测数据的情况去，更别提自己做实验了。后来不知哪根筋抽了，看到人大附中那篇怎么开碳酸饮料能不溢出的论文，就想着做一个碳酸饮料清洁厕所🚽，当时还是太天真了，以至于被豆包骗，斥巨资买了一斤的磷酸三钠($\ce{Na3PO4}$)，结果制造污渍需要的是小苏打和氯化钙混合得到碳酸钠（骗你的，其实还要加热）。后来为了数据，连续三周去了杜小杜的实验室，每周日都去，一去一上午。后来还要 vibe code<sup id="fnref:6"><a href="#fn:6" class="footnote-ref" role="doc-noteref">6</a></sup> 一个提取陶瓷片灰度值的程序，总算是把数据什么的搞定。不容易啊！</p>
<blockquote>
<p>论文下载<br>
<a href="https://kuqilin.github.io/uploads/mathEssay.pdf">可乐能清洁厕所吗？ ——碳酸饮料清洁厕所效果的影响因素分析与数学建模</a></p>
</blockquote>
<p>这年，玩了好几个解密类游戏，「机械迷城」、「纪念碑谷」、「纪念碑谷 II」、「纪念碑谷 III」全都玩了，只能说挺不错的。<br>
<img src="https://i0.hdslb.com/bfs/openplatform/a86ebefe80ed5c510dd5f449c46844f7b6e875ba.jpg" 
     alt="游戏时长截图" 
     referrerpolicy="no-referrer" 
     loading="lazy" /><br>
这年，去了「琶洲实验室」，体验了一些全运会所使用的高科技，比如人工智能手语翻译、非侵入式脑机接口操控轮椅等，挺不错的。<br>
<img src="https://i0.hdslb.com/bfs/openplatform/501c4d32dfacf0b9f09570389429a646f20613ad.jpg" 
     alt="琶洲实验室" 
     referrerpolicy="no-referrer" 
     loading="lazy" /><br>
这年，参加了学校艺术节，虽然在幕后基本没干什么，但是<span class="spoiler">编不下去了</span><link rel="preload" as="style" href="/css/spoiler.min.2114e8f1feca8cfcd2c014ff74616d2253d3e314768484e18755f03c496fbb05.css" onload="this.onload=null;this.rel='stylesheet'" />我们班的节目也是拿下一等奖了呢🤣<br>
<img src="https://i0.hdslb.com/bfs/openplatform/cbfb6c72fb9495f89cc434f14b5d1661ddba2a4e.jpg" 
     alt="艺术节奖杯" 
     referrerpolicy="no-referrer" 
     loading="lazy" /><br>
这年，顺手给电脑分了个 128GB 出来装 Cachy OS<sup id="fnref:7"><a href="#fn:7" class="footnote-ref" role="doc-noteref">7</a></sup>，没想到给数学论文写作提供了极大的便利 <del>指还得从 Win 里面把字体拷过来、自己写 TeX 配置文件、编译一次 PDF 花我一分钟</del> 不得不说$\mathrm{\LaTeX}$是真香啊，极致优美的排版、 <del>极其臃肿的编译</del> ，以及一眼过去全是反斜杠<code>\</code>的「宏地狱」<sup id="fnref:8"><a href="#fn:8" class="footnote-ref" role="doc-noteref">8</a></sup>。</p>
<p>这年，成功地埋下了 5 年后的时空胶囊，必须吐槽的是学校机房的光驱真是一坨，吞了我两块档案级光盘（我的钱…）和好几块普通光盘，不过也是成功刻录好了。等到 2031 年再搞台光驱读取，但愿我不要忘了密码…</p>

  <blockquote class="alert-blockquote important">
    <p class="alert-heading">
      Important
    </p>
    <p><p>别问为什么不用 U 盘、移动硬盘，这些太久不通电得话电荷会逸散，导致数据丢失，而光盘是用物理方式记录数据的，能保存挺久</p></p>
  </blockquote>

<p>今年，收到了来自中国东极的第一缕阳光的祝福，黑龙江省佳木斯市抚远。</p>
<p>今年，有幸在班上晚修看了「元宵+月食」的直播 <del>那天广州的天气太差了😭</del> 一生只有这一次！<br>
<img src="https://i0.hdslb.com/bfs/openplatform/b956aa918093bf82d846ff4cb7fec1212849d29b.jpg" 
     alt="第一缕阳光" 
     referrerpolicy="no-referrer" 
     loading="lazy" /><img src="https://i0.hdslb.com/bfs/openplatform/5f99ba7c74fa626ef3204600284d6c1f08461ea2.jpg" 
     alt="月食直播" 
     referrerpolicy="no-referrer" 
     loading="lazy" /><br>
其实，9 月份的时候，貌似还有过一场月食，我们宿舍恰好能从阳台看到，那周便带了一个望远镜，半夜时分起来看月食。不过，天公依旧不作美，☁☁☁，时不时地挡一下。这年，一次完整月食都没看过啊。</p>
<p>这年，又拉了好几个人入坑 PGP<sup id="fnref:9"><a href="#fn:9" class="footnote-ref" role="doc-noteref">9</a></sup>。这年又有许许多多的期望与失望，本以为无希望的事却又突然成功、本以为成功的事却无望，就这样起起落落、浮浮沉沉。不久前，想到了一个题目「雅园的最后一个冬天」，想写点什么，却又什么也写不出来。没有什么题材，全部都藏在每一天的学习与生活中。读到这篇年记的同学有能力的可以写一写，顺便发给我看看(嘻嘻)。</p>
<p>这年，退出了信竞，正因如此，开始读书了。这 5 年来，看似学了很多，真正有用的又有多少呢？真正带来的，是不断的学习的习惯吧。多少是有点不甘的，不过这又有什么用呢，也只是日后一个谈资罢了。不过阅读确实可以开拓视野、增长见识。先是 $\textit{Just}$ $\textit{for}$ $\textit{Fun:}$ $\textit{The}$ $\textit{Story}$ $\textit{of}$ $\textit{an}$ $\textit{Accidental}$ $\textit{Revolutionary}$ 再到《化学之书》、《世界神话二十五讲》、《太空漫游：2010》、《太空漫游：2061》、《美丽新世界》等等的书籍，不能说大大拓展我的视野和知识面 <del>broaden my horizons乱入</del> ，但是除了消遣之外，还是让我了解不少内容。接下来应该还会把《夜色温柔》、《瓦尔登湖》这些书看一看（确信）。</p>
<p>这年，终于想起来自己还有个 Blog 闲置很久，于是暑假简单用 Hugo<sup id="fnref:10"><a href="#fn:10" class="footnote-ref" role="doc-noteref">10</a></sup> 搭了一个，不过这个主题嘛，本身是博丽灵梦<sup id="fnref:11"><a href="#fn:11" class="footnote-ref" role="doc-noteref">11</a></sup>的，装主题简单啊，改主题要累死。这张照片、那张照片，这个配置、那个配置，不过还好，deepseek-v4-pro 确实好用，挂上 Kimi Code<sup id="fnref:12"><a href="#fn:12" class="footnote-ref" role="doc-noteref">12</a></sup> 之后直接<code>完全自主</code> <del>覆盖掉我 5 个视频文件不嘻嘻</del> 修了好几个主题的问题，顺手加了一个 Shortcode<sup id="fnref:13"><a href="#fn:13" class="footnote-ref" role="doc-noteref">13</a></sup> 功能<code>spoiler</code>来实现文本的遮罩效果，<span class="spoiler">就像这样子，显然你前面已经见过了</span><link rel="preload" as="style" href="/css/spoiler.min.2114e8f1feca8cfcd2c014ff74616d2253d3e314768484e18755f03c496fbb05.css" onload="this.onload=null;this.rel='stylesheet'" />。搭好 Blog 之后把一些古早的<code>.md</code><sup id="fnref:14"><a href="#fn:14" class="footnote-ref" role="doc-noteref">14</a></sup>文件也传了上来，所以……。今年 Deepseek 的 token<sup id="fnref:15"><a href="#fn:15" class="footnote-ref" role="doc-noteref">15</a></sup> 消耗大概有 1B(illion) 了，虽然听起来很多，实则并不少。</p>
<p>今年，高三了，嗯，高三了。也就高三了。没什么宏大的叙事，没什么激情的话语，也没有什么特别的感悟。很普通，和初三没什差别，初三那时也只是在 $24$ 年 $3$ 月份从楼梯间的窗户看到异木棉又开了，才发觉自己初三，在广雅又有什么标志物呢？昭明楼的玉兰花已经开过两次了……那个香气甚至在三楼都能闻到，不知四楼如何。<br>
<details class="details custom-block">
  <summary>小问题</summary>
  <div class="details-content"><p>话说孙悟空拜师学习时桃子熟了几回来着🐒🍑？</p>
</div>
</details><br>
Btw，$2026$年$02$月$16$日，是本世纪第$9178$天😆</p>
<p>今年健康状况有些许下降，最直观的感受是请了两天病假。</p>
<p>四月底学校组织去“研学”，也是好好地玩了一趟，也还算可以吧。</p>
<p>今年，大抵还做了几个小玩意，一个是用 Python 重写了网易云音乐的<code>.ncm</code>格式转<code>.mp3/.flac</code>工具<a href="https://github.com/taurusxin/ncmdump">ncmdump</a>的<a href="https://github.com/kuqilin/ncmdumpPy">ncmdumpPy</a>，能够保留歌曲元数据，即图片、作者信息等；一个是烂尾的切换广雅一体机壁纸的程序<a href="https://github.com/kuqilin/HuaDuXiaoQuDingZhiBiZhiQieHuan">花都校区定制壁纸切换</a>，结果出了一个可用版本之后就烂尾了，现在高二（9）班的畅言依旧装着［当然，高三（9）班也有］。<span class="spoiler">还有一个要在这里跟大家坦白的，就是<a href="https://github.com/kuqilin/classNightLapse">classNightLapse</a>，即晚修延时摄影程序，有时候晚修会提前打开来拍摄第一节晚修的延时摄影🥺，放心，所有视频文件均没有外传，并且已经删除。当初做这个的目的其实是想要看看自己上晚修是一个什么状态，所以还请各位轻喷。毕竟开着这个程序拍延时摄影，会占用摄像头，导致希沃云班无法看到我们的晚修🥰。不过现在，“金盆洗手”了，以后不再录这个延时摄影了，不过高考前的晚修倒是可以考虑一下（嘻嘻</span><link rel="preload" as="style" href="/css/spoiler.min.2114e8f1feca8cfcd2c014ff74616d2253d3e314768484e18755f03c496fbb05.css" onload="this.onload=null;this.rel='stylesheet'" /><sup id="fnref:16"><a href="#fn:16" class="footnote-ref" role="doc-noteref">16</a></sup><br>
欸，看来写的这个遮罩效果还有待加强啊，Emoji 都遮不住😭，有色字体也没遮住😭😭</p>
<p>这年，听得多的还是$\textit{Secret}\ \textit{Garden}$的<a href="https://music.163.com/#/song?id=4278218">$\textit{Anticipation}$</a>这首歌，不多说，你们自己听。</p>
<p>今年跟初中部分同学们小聚了两次，吃了一顿饭和一顿烧烤，也还不错。不过今年没回初中看看，<span class="spoiler">挂了那个私人牌子我还哪敢回去啊😭😭😭是谁干的!!!</span><link rel="preload" as="style" href="/css/spoiler.min.2114e8f1feca8cfcd2c014ff74616d2253d3e314768484e18755f03c496fbb05.css" onload="this.onload=null;this.rel='stylesheet'" /></p>
<p>这年初时，貌似还挺常冲固体饮料喝的，想什么阿华田、立顿的奶茶、牛乳茶等，不知为什么高二下又没怎么喝，不过，这学期倒是又补充了挺多的，大抵是因为夏天太热了，冬天的时候，北风经过十班旁边的那一段“狭管”，这时候在那里冲上一杯确实是个享受。</p>
<p>这年，买了个 16V 1A 的 DC 5.5×2.5 电源适配器，又买了个 USB-B 的线，往虚拟机里装了个 Windows XP 又下了个古老驱动，总算是把那台 09 年的扫描仪给复活了。尽管扫描版上有些发霉，但丝毫不影响，最高 1200 DPI 和 48 位彩色<sup id="fnref:17"><a href="#fn:17" class="footnote-ref" role="doc-noteref">17</a></sup>吓死个人，扫一张不下 5 分钟，并且文件大小大概到了 600 MB 的样子。这我可无福消受，只好开 600 DPI 来扫 9 班同学的签名，就算这样，也是到了 1 分钟左右，每张 100 MB 左右了（也许就发过给你呢？）。所有的扫描出来，也才 4 GiB 左右，刻进一个普通 DVD 刚好:)</p>
<p><img src="https://i0.hdslb.com/bfs/openplatform/b8681f0c51fdeb2963d3ca8f63421e278a9028d7.jpg" 
     alt="扫描仪" 
     referrerpolicy="no-referrer" 
     loading="lazy" /></p>
<p>噢，本来想着上 XP 截个图放过来的，结果发现没激活的 30 天使用早过了，网络机会也莫名其妙不可用，于是想着试试电话激活，输入了激活码后，打电话<sup id="fnref:18"><a href="#fn:18" class="footnote-ref" role="doc-noteref">18</a></sup>。想起了每年都有人做的“打电话给微软激活 Windows”，结果发现电话激活门户已经迁移到网络上，本来还想试试在手机上输那 14 组 6 位数字是什么感觉，可惜了。<br>
激活完才发现虚拟机里面的文件早删了，所以这里没截图😁</p>
<p>这年的课堂，文科没什么好说的。数学可谓是不断付出，结果却一直不尽人意的科目了。上课认真做到了，课后作业认真做了，不过化用一下泰戈尔的诗句：“数学以痛吻我，我报之以歌。”物理算是给我倒一盆冷水，这年的成绩曲线可谓是一个$\forall x_1, x_2 \in \text{今年的考试}\ (x_1 < x_2),$ $\dfrac{f(x_1) - f(x_2)}{x_1 - x_2} < 0$。化学一如既往，无需赘述，不过赋分是真吃大亏了。</p>
<p>这年，把哔哩哔哩的个性化推荐关了（详情可见<a href="https://kuqilin.github.io/post/20260517/">20260517</a>），本想着离开短视频，结果变成了一直在刷 TG<sup id="fnref:19"><a href="#fn:19" class="footnote-ref" role="doc-noteref">19</a></sup> 频道里的各种 meme<sup id="fnref:20"><a href="#fn:20" class="footnote-ref" role="doc-noteref">20</a></sup>，感觉也没比刷短视频好多少。不过至少离开了那些引战、“愤怒诱饵”等的东西，终究是向好的。今年也开始看点电影了，看了个《王牌特工：特工学院》，又看了 007 系列的前 3 部。</p>
<p>今年，也是当上半个“植物人”了，参加读后续写得到的一罐“驱蚊草”被种下。然后又掰了一截高一研学时得到的“碰碰香”回去种。
至于驱蚊草到底能否驱蚊，有待考证。</p>
<p><img src="https://i0.hdslb.com/bfs/openplatform/ce0cd28575350de0574b45e7f059773a34379d33.jpg" 
     alt="驱蚊草" 
     referrerpolicy="no-referrer" 
     loading="lazy" /></p>
<p>要问为什么土这么满，被某人填的。</p>
<p>八月底的时候，<em>DeepSeek Harness</em>发布，装来玩了一下，这种搭乐高一样的插件模式可操作性非常强，也是给我帮了不少忙（比如那个 315 成语用法辨析小测）。</p>
<p>这里删掉了两段话，放出来不太合适。放心，查 Git 提交记录也找不到的<code>^_^</code></p>
<p>游戏方面，这年一如既往，还是打 9 和荒野乱斗。Minecraft 因为时间原因要先放一段时间了。9 应该还会一直玩下去，不过荒野乱斗可能不定时退坑。</p>
<p>还有什么可写的呢？扔给了 LobeHub 上的一个 agent，让我写对未来的展望或者目标，这里贴一个 meme：</p>
<p><img src="" 
     alt="服了，找不到了" 
     referrerpolicy="no-referrer" 
     loading="lazy" /></p>
<p>对了，今年参加了“十佳学生”竞选。本来以为那个体测成绩会绊我一脚，结果却给我过了第一轮的“广雅好少年”。广雅真草台，本来说好要假期就给我们制作海报的，结果拖到八月底，29 号才发了方案……怎么说呢？只好斥巨资开了个<em>Canvas可画</em>的会员，耗时两天做出了这个玩意：</p>
<details class="details custom-block">
  <summary>想看就给我乖乖开网页😉</summary>
  <div class="details-content"><p><img src="https://image.kuqilin.eu.org/2026/10GoodStudents.jpg" 
     alt="海报" 
     referrerpolicy="no-referrer" 
     loading="lazy" /></p>
<p>你们月底大概就能看到了…… <del>就当是给你们的提前福利了😠</del> <strong>给我投票！</strong> 祝我好运吧💙</p>
</div>
</details>
<p>这篇年记，虽说是生日发出来，其实基本都是从写于 7 月下旬开始写的。所以多少会缺少一点时效性。并且，这篇年记只是一个记录，大家对事不对人，也别过多讨论🤝🏻🙏🏻。<br>
大致完成这篇年记的草稿时，内心其实是没什么感想的，就是感觉完成了一件事，仅此而已。就这样吧。</p>
<p>在不知不觉中，上了一个半月的学了，八月适应考开了个头，以后如何？不得而知。想起那句话了，“<em>生存是进步的最大动力，我们为此赞美牺牲者，但畏惧和厌恶死亡并不可耻，真正该警惕的是停止前进。</em>”，前进吧，向前看！</p>
<p>接下来一年，<em>十校联考</em>、<em>调研考</em>、<em>一模</em>、<em>听说</em>……不同的事情；下一次年记动工，得是<em>高考</em>后了，那时会有什么感悟呢？恭喜我又活过一年🧡</p>
<p>其实目前还是挺满意自己的：成绩还可以、课外耍耍 AI、写点小东西玩玩，比起只学习没人情味的人还是好很多的（请勿对号入座）。</p>
<p>贴两张照片结尾
<img src="https://i0.hdslb.com/bfs/openplatform/ae353d734d8a635b2975f48e2ddf06a87777ea5b.jpg" 
     alt="" 
     referrerpolicy="no-referrer" 
     loading="lazy" />
<img src="https://i0.hdslb.com/bfs/openplatform/1d2c4c453aa83ece6f6a1d65a64a8a890776e6fa.png" 
     alt="" 
     referrerpolicy="no-referrer" 
     loading="lazy" /></p>
<blockquote>
<p>时代的潮水不断起落，正如日夜更迭流转，一晦一明，永无止境。尽情向后展望吧，我们有取之不尽的未来。<br>
Tides of time rise and fall. Days and nights switch and whirl. The infinite loop will never come to an end. Go ahead, look as much as you want. We have an endless supply of the future.</p>
</blockquote>
$$
\Large\text{致}\hspace{1cm}\text{谢}
$$<p>
</p>
$$
\text{写作的 我}
$$<p>
</p>
$$
\text{看完的 你}
$$<p>声明：本文不遵从 CC BY-NC-SA 许可协议，不允许转载。</p>
<div class="footnotes" role="doc-endnotes">
<hr>
<ol>
<li id="fn:1">
<p>信息学竞赛非专业级认证&#160;<a href="#fnref:1" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:2">
<p>谷歌应用商店&#160;<a href="#fnref:2" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:3">
<p>Minecraft 分不同平台版本，要分开购买&#160;<a href="#fnref:3" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:4">
<p>Kimi 的自动化 AI 助手&#160;<a href="#fnref:4" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:5">
<p>一个开源的排版软件，不像 Word 那样所见即所得，而是要像写代码一样写，然后编译成为 PDF 文件&#160;<a href="#fnref:5" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:6">
<p>直译为“氛围编程”，其实是 AI 编程来的。意思就是直接把需求告诉 AI 让它给你写代码，自己只管“感觉(vibe)对不对”&#160;<a href="#fnref:6" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:7">
<p>一个 Linux 操作系统（和 Windows、macOS 是同类东西，只是免费开源、高度可定制）。Cachy OS 是其中比较适合日常使用的一个版本&#160;<a href="#fnref:7" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:8">
<p>反斜杠<code>\</code>是$\mathrm{\TeX}$中用于控制格式的命令，如果要排比较多的内容，则会用到很多反斜杠，跟个地狱一样&#160;<a href="#fnref:8" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:9">
<p>一个加密/解密软件，可以理解为你给别人开着的锁，让别人合上锁来加密，只有你自己有钥匙能打开这把锁看到内容&#160;<a href="#fnref:9" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:10">
<p>一个网页生成软件，只用编写 Markdown 文章就能搭建博客&#160;<a href="#fnref:10" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:11">
<p>游戏《东方 Project》里面的一个角色&#160;<a href="#fnref:11" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:12">
<p>Kimi 推出的 AI 编程助手，能直接读取和修改项目代码、帮你改 bug、加功能，类似在编辑器里内置了一个程序员 AI&#160;<a href="#fnref:12" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:13">
<p>Hugo 里的短代码，能够插入一些功能&#160;<a href="#fnref:13" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:14">
<p>即 Markdown 文件，一种文档格式，能够很轻易地写出有各种格式的文本来，比如加粗、斜体等&#160;<a href="#fnref:14" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:15">
<p>AI 里面用来处理文本的计量单位，或者称「词元」，可以是一个字也可以是一个词&#160;<a href="#fnref:15" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:16">
<p>就是那个班主任可以用一体机摄像头看到班级状态的软件&#160;<a href="#fnref:16" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:17">
<p>懒得解释了，反正质量很高就对了，能扫清楚点阵打印的颜色点，大家可以自行百度&#160;<a href="#fnref:17" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:18">
<p>没见过的可以看看这个<a href="https://b23.tv/eTBKVel">视频</a>&#160;<a href="#fnref:18" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:19">
<p>即 Telegram，一个聊天软件&#160;<a href="#fnref:19" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
<li id="fn:20">
<p>即梗图，或者称「网络迷因」&#160;<a href="#fnref:20" class="footnote-backref" role="doc-backlink">&#x21a9;&#xfe0e;</a></p>
</li>
</ol>
</div>

        
        <hr><p>本文2026-09-13首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-09-13</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>年记</category><category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>高中生排版指北</title>
      <link>https://www.kuqilin.top/yue/post/high-school-typography-guide/</link>
      <pubDate>Sun, 06 Sep 2026 00:00:00 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/high-school-typography-guide/</guid>
      <description>
        <![CDATA[<h1>高中生排版指北</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <h1 id="高中生排版指北">
<a class="header-anchor" href="#%e9%ab%98%e4%b8%ad%e7%94%9f%e6%8e%92%e7%89%88%e6%8c%87%e5%8c%97"></a>
高中生排版指北
</h1><blockquote>
<p>写完发现，这大概是我除了作业和论文之外写过最正经的东西了。但其实也没多正经。暂时全文 AI 生成，有些东西不太符合，我会慢慢改。</p>
</blockquote>
<hr>
<h2 id="-1-前言">
<a class="header-anchor" href="#-1-%e5%89%8d%e8%a8%80"></a>
-1. 前言
</h2><p>本文适合高中生阅读，但其他人也可以阅读。</p>
<h2 id="0-绪论">
<a class="header-anchor" href="#0-%e7%bb%aa%e8%ae%ba"></a>
0. 绪论
</h2><p>先“说文解字”一下，如题，“高中生”说明本文是为高中生排版写的，不是初中生、不是小学生，因此会稍有难度但不会太难。“排版”说明了是教你什么的，“指北”即教程。</p>
<p>为什么我要写这个呢，因为发现身边的同学们貌似对排版一点概念没有，因此决定至少让他们知道一些基本概念，比如不同字体、数学公式之类的。</p>
<p>难度方面本文基本介绍一些概念，部分涉及 Word/WPS 的使用和数学公式的输入，以及少量$\TeX$内容。</p>
<p>其实，排版不是一件那么难的事情，尤其现在的办公软件基本都是所见即所得。当你看着自己完成的一份排版作品，还是很有成就感的。不妨看看我排的那篇<a href="https://kuqilin.eu.org/mathEssay.pdf">数学论文</a>。</p>
<h2 id="1-文字排版基础">
<a class="header-anchor" href="#1-%e6%96%87%e5%ad%97%e6%8e%92%e7%89%88%e5%9f%ba%e7%a1%80"></a>
1. 文字排版基础
</h2><h3 id="11-字体">
<a class="header-anchor" href="#11-%e5%ad%97%e4%bd%93"></a>
1.1 字体
</h3><p>以前对字体真的无意识，大街小巷手机电脑基本全是黑体，书本基本全是宋体，偶尔的少量楷体，基本不会分辨字体。知道初中开始用 Markdown 写一些内容，我才意识到字体这件事，就跟穿衣服一样——穿睡衣出门也能走，但别人看你的眼神不一样。字体有很多种，但是为了简便，<strong>中文字体，认识这几个就够了：</strong></p>
<ol>
<li>
<p><strong>宋体</strong>：横细竖粗，笔画末端带个小装饰（那叫“衬线”），课本、试卷、正式文档基本都是它。看久了不累，适合正文。Windows 自带“宋体（SimSun）”，还有开源免费的“思源宋体”，公文的“方正小标宋”等等，大差不差。Windows 的 SimSun 就够了。</p>
</li>
<li>
<p><strong>黑体</strong>：粗细均匀，没那些小装饰，很“现代”，适合做标题。微软雅黑就属于黑体，Windows自带，用着挺舒服。还有 Windows 的“黑体（SimHei）”、公文用的方正的“黑体”等。</p>
</li>
<li>
<p><strong>楷体</strong>：像手写，流畅带笔锋，适合引用、注释、写诗。但不太建议写正文，不太舒服（不过貌似试卷会给阅读用楷体）。有 Windows 的“楷体（KaiTi）”、方正的“楷体”等。</p>
</li>
<li>
<p><strong>仿宋</strong>：比宋体细一点，比楷体端正一点，清秀型。公文用它，适合图注和落款。有 Windows 的“仿宋（FangSong）”等。</p>
</li>
<li>
<p><strong>隶书、幼圆</strong>：偶尔做海报还行，正式作业别用。</p>
</li>
</ol>
<blockquote>
<p>截图 1：同一段文字用宋体、黑体、楷体、仿宋、隶书、幼圆分别显示，红框标出宋体的衬线和黑体的均匀。</p>
</blockquote>
<blockquote>
<p>截图 2：Word 字体下拉菜单，红框圈出那几个常用的。</p>
</blockquote>
<p><strong>西文字体，一句话说清楚：</strong></p>
<p>中英混排的时候英文部分也要选字体，别全丢给 Word 默认。正文用 Times New Roman（正式）或者 Arial（清爽），代码、公式里的字母用 Consolas 或 Courier New（等宽，整齐）。</p>
<p>西文字体也是类似中文，比如各种衬线字体对应宋体、斜体对应楷书、等线对应黑体、等宽对应仿宋等。</p>
<p>Word 里可以分开设中文字体和西文字体，在字体对话框里两个下拉框各选各的。不设的话 Word 会用&quot;等线&quot;这个迷之字体，你作业里那些奇怪的&quot;口&quot;字多半是它害的。</p>
<blockquote>
<p>截图 3：Word字体设置对话框，红框标出&quot;中文字体&quot;和&quot;西文字体&quot;两个下拉框。</p>
</blockquote>
<p><strong>字号和行距，不用记太细：</strong></p>
<p>正文小四（12pt）或五号（10.5pt），行距 1.2 ~ 1.5 倍。标题比正文大一点就行，别把一级标题搞成海报大小。</p>
<p>最重要的原则就一条：<strong>全文同级别内容用同一套字体字号颜色</strong>。你要是三个一级标题分别用了宋体黑体楷体，老师会觉得你写文档的时候人格分裂了。</p>
<blockquote>
<p>截图 4：段落设置对话框，红框标出首行缩进 2 字符、行距、段间距。</p>
</blockquote>
<h3 id="12-中英混排空格是美德">
<a class="header-anchor" href="#12-%e4%b8%ad%e8%8b%b1%e6%b7%b7%e6%8e%92%e7%a9%ba%e6%a0%bc%e6%98%af%e7%be%8e%e5%be%b7"></a>
1.2 中英混排：空格是美德
</h3><p>这个坑很多人不注意，因为加一个空格的操作在 Word/WPS、微信等软件会自动加上半个多空格进行渲染，不用手动进行。但是自己写一些其他文章就要注意了。</p>
<p><strong>规则只有三条：</strong></p>
<ul>
<li>中文和英文之间加空格：<code>今天学习了 Newton 第二定律</code>（对），<code>今天学习了Newton第二定律</code>（错）</li>
<li>中文和数字之间加空格：<code>一共 30 名学生</code>（对），<code>一共30名学生</code>（错）</li>
<li>中文和行内公式之间加空格：<code>加速度 a 的单位是 m/s²</code>（对），<code>加速度a的单位是m/s²</code>（错）</li>
</ul>
<p><strong>什么时候不用加：</strong> 中文标点后面不加，括号引号靠文字那侧不加，百分比温度连着写（<code>37%</code>、<code>25℃</code>）。</p>
<p><strong>标点符号：</strong> 中文用全角<code>，。；：“”‘’！？（）</code>，英文用半角<code>, . ; : &quot; ' ! ? ( )</code>。别混用，中文段落里冒出英文逗号特别扎眼。</p>
<blockquote>
<p>截图5：一段文字的错误排版（无空格、标点混用）和正确排版并排放，红框标出差异。</p>
</blockquote>
<h3 id="13-数字与单位">
<a class="header-anchor" href="#13-%e6%95%b0%e5%ad%97%e4%b8%8e%e5%8d%95%e4%bd%8d"></a>
1.3 数字与单位
</h3><p>数字用半角<code>0 1 2 3</code>，别用全角<code>１２３</code>（那是中文输入法没切的锅）。</p>
<p>科学计数法：<code>1.6×10⁻¹⁹ C</code>，乘号用<code>×</code>，$\TeX$中可用<code>\times</code>，上标用 Word 的上下标功能。</p>
<p><strong>数字和单位之间加空格</strong>：<code>5 kg</code>、<code>10 m/s</code>。教材里经常写<code>10N</code>、<code>5kg</code>，那是旧习惯问题。如果老师没强制要求，你就按规范写，全文统一就行。</p>
<p><strong>值得注意：</strong> 按照国内习惯，貌似不喜欢在数值和单位之间加空格，这点上有争议，一般喜欢紧凑一点可以不加或者用<code>\,</code>，喜欢宽敞用<code>~</code>或者<code>\ </code>（指在$\TeX$中）。这篇文章我就不喜欢加空格，太宽了（</p>
<p>单位符号用正体（不斜）：</p>
<ul>
<li>小写：$\text{m kg s mol cd}$</li>
<li>大写：$\text{N Pa J W A V Ω Hz}$</li>
</ul>
<blockquote>
<p>截图6：教材上的<code>10N</code>和规范写法<code>10 N</code>放一起对比。</p>
</blockquote>
<h3 id="14-标点和其他细节">
<a class="header-anchor" href="#14-%e6%a0%87%e7%82%b9%e5%92%8c%e5%85%b6%e4%bb%96%e7%bb%86%e8%8a%82"></a>
1.4 标点和其他细节
</h3><p>中文破折号是<code>——</code>（占两格），省略号是<code>……</code>（不是六个句号<code>......</code>）。</p>
<p>段落首行缩进两字符（Word 段落设置里调）。段间距和行距分开设，别用空行代替段间距。</p>
<p><strong>千万千万别用空格键强行对齐。</strong> 我见过有人为了居中按了十几下空格，换行全乱，惨不忍睹。用 Word 的制表位、表格或者样式功能。</p>
<hr>
<h2 id="2-数学排版">
<a class="header-anchor" href="#2-%e6%95%b0%e5%ad%a6%e6%8e%92%e7%89%88"></a>
2. 数学排版
</h2><h3 id="21-几条硬规矩">
<a class="header-anchor" href="#21-%e5%87%a0%e6%9d%a1%e7%a1%ac%e8%a7%84%e7%9f%a9"></a>
2.1 几条硬规矩
</h3><p>这些不是建议，是规则。考试写错格式也会扣分那种。</p>
<ul>
<li><strong>变量斜体</strong>：$x$、$y$、$f(x)$、$a_1$。物理里的力$F$、加速度$a$都是变量，斜。</li>
<li><strong>函数名正体</strong>：$\sin x$、$\log x$、$\ln x$。<code>sin</code>不是变量，是函数，别斜。</li>
<li><strong>单位正体</strong>：<code>5 kg</code>里的<code>kg</code>正体，不斜。</li>
<li><strong>向量写法按教材统一</strong>：有的书用$F$，有的加箭头$\vec{F}$，有的加粗$\mathbf{F}$。问一下你老师，全文一致就行。</li>
<li><strong>上下标分清</strong>：下标是序号（<code>x₁</code>、<code>v₀</code>），上标是幂（<code>x²</code>、<code>10³</code>）。</li>
<li><strong>行内公式别太高</strong>：太复杂的单独成行居中。重要公式给个编号<code>(1)</code>、<code>(2)</code>，后面引用方便。</li>
</ul>
<blockquote>
<p>截图7：<code>sin x</code>（正体+空格）和<code>sinx</code>的对比。</p>
</blockquote>
<h3 id="22-怎么输公式">
<a class="header-anchor" href="#22-%e6%80%8e%e4%b9%88%e8%be%93%e5%85%ac%e5%bc%8f"></a>
2.2 怎么输公式
</h3><p><strong>方法一：Word 自带公式（最常用）</strong></p>
<p>快捷键<code>Alt + =</code>，按完直接出公式框。里面能插分数、根号、上下标、求和、积分。</p>
<p>线性输入（打字快）：</p>
<ul>
<li>分式：<code>a/b</code>然后按空格 → 变成竖排分数</li>
<li>上标：<code>x^2</code></li>
<li>下标：<code>x_1</code></li>
<li>希腊字母：<code>\alpha</code>、<code>\beta</code>、<code>\pi</code></li>
<li>根式：<code>\sqrt(x)</code></li>
</ul>
<p>还有个&quot;墨迹公式&quot;功能，鼠标手写自动识别，救急用过几次，还行。</p>
<p>优点：不用装任何软件。缺点：复杂排版不太灵活。</p>
<blockquote>
<p>截图8：按<code>Alt+=</code>后出现的公式工具栏。</p>
</blockquote>
<blockquote>
<p>截图9：线性输入<code>a/b</code>按空格变分数的前后对比。</p>
</blockquote>
<p><strong>方法二：LaTeX（进阶）</strong></p>
<p>LaTeX就是个排版系统，数学公式是王牌。你不需要学会写整篇，记住几个命令能救命。</p>
<p>常用命令：</p>
<ul>
<li>分式：<code>\frac{a}{b}</code></li>
<li>根式：<code>\sqrt{x}</code>、<code>\sqrt[n]{x}</code></li>
<li>上下标：<code>x^2</code>、<code>x_1</code></li>
<li>求和：<code>\sum_{i=1}^{n}</code></li>
<li>积分：<code>\int_a^b f(x)\,dx</code></li>
<li>矩阵：<code>\begin{bmatrix} a &amp; b \\ c &amp; d \end{bmatrix}</code></li>
</ul>
<p>推荐 Overleaf，在线编辑器，不用装，左边写代码右边预览。</p>
<p>适用场景：竞赛论文、研究性学习报告、需要统一排版的文档。</p>
<blockquote>
<p>截图10：Overleaf界面，左边代码右边预览。</p>
</blockquote>
<p><strong>方法三：Markdown + KaTeX（做笔记用）</strong></p>
<p>我博客用这个，舒服。适合平时做笔记。</p>
<p>常用软件：Typora、Obsidian、Notion。</p>
<p>用法：</p>
<ul>
<li>行内公式：<code>$a^2 + b^2 = c^2$</code></li>
<li>独立公式：<code>$$a^2 + b^2 = c^2$$</code></li>
</ul>
<p>KaTeX 渲染快，输出 SVG 放大也不糊。</p>
<blockquote>
<p>截图11：Typora或Obsidian里公式显示效果。</p>
</blockquote>
<p><strong>方法四：公式识别工具</strong></p>
<p><strong>Mathpix</strong>：截图公式转 LaTeX 代码，识别课本上的公式用这个，省手打。</p>
<p><strong>手机小程序</strong>：搜“公式识别”一堆，拍照就能转。</p>
<blockquote>
<p>截图12：Mathpix 界面，左边截图右边识别结果。</p>
</blockquote>
<h3 id="23-数学字体">
<a class="header-anchor" href="#23-%e6%95%b0%e5%ad%a6%e5%ad%97%e4%bd%93"></a>
2.3 数学字体
</h3><p>Word 默认 Cambria Math，LaTeX 默认Computer Modern，都够用。原则就一条：<strong>全文保持一致</strong>。</p>
<hr>
<h2 id="3-实战排一份作业">
<a class="header-anchor" href="#3-%e5%ae%9e%e6%88%98%e6%8e%92%e4%b8%80%e4%bb%bd%e4%bd%9c%e4%b8%9a"></a>
3. 实战：排一份作业
</h2><h3 id="31-动手前花三分钟规划">
<a class="header-anchor" href="#31-%e5%8a%a8%e6%89%8b%e5%89%8d%e8%8a%b1%e4%b8%89%e5%88%86%e9%92%9f%e8%a7%84%e5%88%92"></a>
3.1 动手前花三分钟规划
</h3><p>别急着打字。想清楚标题分几级、哪些公式要编号、图片放哪。三分钟规划省半小时调整。</p>
<h3 id="32-word-实操">
<a class="header-anchor" href="#32-word-%e5%ae%9e%e6%93%8d"></a>
3.2 Word 实操
</h3><p><strong>第一步：用样式，别手动画</strong></p>
<p>新建“正文”“标题1”“标题2”“公式”样式，设好字体字号行距，然后应用。以后改格式只改样式定义，全文自动同步。</p>
<p><strong>第二步：段落设置</strong></p>
<p>正文样式设首行缩进 2 字符、1.5 倍行距、段后 6pt。</p>
<p><strong>第三步：公式对齐</strong></p>
<p>独立公式居中、编号右对齐——我用一行三列无边框表格来实现，中间放公式右边放编号，比用空格稳定一百倍。</p>
<p><strong>第四步：导出 PDF 前检查</strong></p>
<p>检查字体是否嵌入、公式是否清晰、版面是否整齐。</p>
<blockquote>
<p>截图13：Word 样式窗格。</p>
</blockquote>
<blockquote>
<p>截图14：公式居中+编号右对齐的效果。</p>
</blockquote>
<h3 id="33-常见错误">
<a class="header-anchor" href="#33-%e5%b8%b8%e8%a7%81%e9%94%99%e8%af%af"></a>
3.3 常见错误
</h3><table>
	<thead>
			<tr>
					<th>错误</th>
					<th>正确</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td><code>用F表示力</code></td>
					<td><code>用 F 表示力</code></td>
			</tr>
			<tr>
					<td><code>5kg</code></td>
					<td><code>5 kg</code></td>
			</tr>
			<tr>
					<td><code>sinx</code></td>
					<td><code>sin x</code></td>
			</tr>
			<tr>
					<td>贴模糊公式截图</td>
					<td>用 Word 公式或 KaTeX 重打</td>
			</tr>
			<tr>
					<td>中文段落用英文逗号</td>
					<td>中文用全角标点</td>
			</tr>
	</tbody>
</table>
<hr>
<h2 id="4-工具推荐">
<a class="header-anchor" href="#4-%e5%b7%a5%e5%85%b7%e6%8e%a8%e8%8d%90"></a>
4. 工具推荐
</h2><table>
	<thead>
			<tr>
					<th>场景</th>
					<th>用这个</th>
					<th>理由</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>日常作业</td>
					<td>Word 自带公式</td>
					<td>老师能打开</td>
			</tr>
			<tr>
					<td>课堂笔记</td>
					<td>Typora/Obsidian</td>
					<td>快，好检索</td>
			</tr>
			<tr>
					<td>竞赛论文</td>
					<td>Overleaf（LaTeX）</td>
					<td>规范，公式漂亮</td>
			</tr>
			<tr>
					<td>公众号/博客</td>
					<td>Markdown + KaTeX</td>
					<td>适配网页</td>
			</tr>
			<tr>
					<td>扫描公式</td>
					<td>Mathpix 或小程序</td>
					<td>省时间</td>
			</tr>
	</tbody>
</table>
<p>链接：</p>
<ul>
<li>Overleaf：https://www.overleaf.com</li>
<li>Mathpix：https://mathpix.com</li>
<li>Typora：https://typora.io</li>
<li>Obsidian：https://obsidian.md</li>
</ul>
<hr>
<h2 id="5-交作业前检查清单">
<a class="header-anchor" href="#5-%e4%ba%a4%e4%bd%9c%e4%b8%9a%e5%89%8d%e6%a3%80%e6%9f%a5%e6%b8%85%e5%8d%95"></a>
5. 交作业前检查清单
</h2><ul>
<li><input disabled="" type="checkbox"> 中英文、数字之间加空格了吗？</li>
<li><input disabled="" type="checkbox"> 标点全角/半角分清楚了吗？</li>
<li><input disabled="" type="checkbox"> 单位正体、留空了吗？</li>
<li><input disabled="" type="checkbox"> 数学变量斜体了吗？</li>
<li><input disabled="" type="checkbox"> 函数名、单位正体了吗？</li>
<li><input disabled="" type="checkbox"> 公式是清晰打出来的不是模糊截图吧？</li>
<li><input disabled="" type="checkbox"> 全文字体、字号、行距统一吗？</li>
<li><input disabled="" type="checkbox"> 标题层级清晰吗？</li>
<li><input disabled="" type="checkbox"> 图表、公式有编号吗？</li>
<li><input disabled="" type="checkbox"> PDF导出来看过一遍了吗？</li>
</ul>
<hr>
<h2 id="附录常用公式输入速查">
<a class="header-anchor" href="#%e9%99%84%e5%bd%95%e5%b8%b8%e7%94%a8%e5%85%ac%e5%bc%8f%e8%be%93%e5%85%a5%e9%80%9f%e6%9f%a5"></a>
附录：常用公式输入速查
</h2><p><strong>LaTeX 命令</strong></p>
<table>
	<thead>
			<tr>
					<th>内容</th>
					<th>命令</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>分式</td>
					<td><code>\frac{a}{b}</code></td>
			</tr>
			<tr>
					<td>根式</td>
					<td><code>\sqrt{x}</code>、<code>\sqrt[n]{x}</code></td>
			</tr>
			<tr>
					<td>上标</td>
					<td><code>x^2</code></td>
			</tr>
			<tr>
					<td>下标</td>
					<td><code>x_1</code></td>
			</tr>
			<tr>
					<td>求和</td>
					<td><code>\sum_{i=1}^{n}</code></td>
			</tr>
			<tr>
					<td>积分</td>
					<td><code>\int_a^b f(x)\,dx</code></td>
			</tr>
			<tr>
					<td>希腊字母</td>
					<td><code>\alpha</code>、<code>\beta</code>、<code>\pi</code></td>
			</tr>
			<tr>
					<td>矩阵</td>
					<td><code>\begin{bmatrix} a &amp; b \\ c &amp; d \end{bmatrix}</code></td>
			</tr>
	</tbody>
</table>
<p><strong>Word线性输入</strong></p>
<table>
	<thead>
			<tr>
					<th>内容</th>
					<th>打法</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>分式</td>
					<td><code>a/b</code> 空格</td>
			</tr>
			<tr>
					<td>上标</td>
					<td><code>x^2</code></td>
			</tr>
			<tr>
					<td>下标</td>
					<td><code>x_1</code></td>
			</tr>
			<tr>
					<td>根式</td>
					<td><code>\sqrt(x)</code></td>
			</tr>
			<tr>
					<td>希腊字母</td>
					<td><code>\alpha</code>、<code>\beta</code>、<code>\pi</code></td>
			</tr>
	</tbody>
</table>
<hr>
<p>写这篇的时候我就在想，要是当年有人给我这么一份东西，我也不至于在 Word 里浪费那么多周末。排版不是内容的核心，但它决定了你的内容以什么形象出现在别人面前——老师、评委、或者未来的你自己。</p>
<p>好了，就这些。如果你有什么排版上的问题，可以去我博客留言（虽然我不一定回）。</p>

        
        <hr><p>本文2026-09-06首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-09-06</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>教程</category>
      
    </item>
    
      
    

    <item>
      <title>高中生免费正版 JetBrains 全家桶：学生免费申请全指南</title>
      <link>https://www.kuqilin.top/yue/post/jetbrains-xue-sheng-mian-fei-zhi-nan/</link>
      <pubDate>Sun, 30 Aug 2026 13:56:00 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/jetbrains-xue-sheng-mian-fei-zhi-nan/</guid>
      <description>
        <![CDATA[<h1>高中生免费正版 JetBrains 全家桶：学生免费申请全指南</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <p>最近把 CLion 卸载了（它已经吃灰很久），但转念一想：JetBrains 家的 IDE 对在校学生其实一直是<strong>正版免费</strong>的，高中生在读也算数。这篇把自己整理出来的申请攻略记下来，方便以后续期和分享。</p>
<h2 id="学生免费能拿到什么">
<a class="header-anchor" href="#%e5%ad%a6%e7%94%9f%e5%85%8d%e8%b4%b9%e8%83%bd%e6%8b%bf%e5%88%b0%e4%bb%80%e4%b9%88"></a>
学生免费能拿到什么
</h2><p>JetBrains 对学生有两条免费路线，一条要验证学生身份，一条不用：</p>
<h3 id="1-jetbrains-student-pack需学生验证">
<a class="header-anchor" href="#1-jetbrains-student-pack%e9%9c%80%e5%ad%a6%e7%94%9f%e9%aa%8c%e8%af%81"></a>
1. JetBrains Student Pack（需学生验证）
</h3><ul>
<li><strong>10 个 IDE 的全功能版</strong>：IntelliJ IDEA Ultimate、PyCharm Professional、CLion、GoLand、PhpStorm、WebStorm、DataGrip、Rider、RubyMine、RustRover——即全家桶。</li>
<li><strong>JetBrains Academy</strong>：IDE 内置的交互式编程课程（Java、Python、Kotlin 等），跟着做题就能学。</li>
<li>求学期间<strong>免费</strong>，但需要<strong>每年续期</strong>一次。</li>
<li>毕业后两年内购买任何产品<strong>六折</strong>。</li>
<li>注意：只能用于学习/个人非商业用途，公司实习、兼职、接外包不能拿它顶。</li>
</ul>
<h3 id="2-单工具免费版无需验证">
<a class="header-anchor" href="#2-%e5%8d%95%e5%b7%a5%e5%85%b7%e5%85%8d%e8%b4%b9%e7%89%88%e6%97%a0%e9%9c%80%e9%aa%8c%e8%af%81"></a>
2. 单工具免费版（无需验证）
</h3><p>只要下载就用，不查身份：</p>
<ul>
<li>IntelliJ IDEA Community、PyCharm Community（社区版，功能已够入门）。</li>
<li>CLion、WebStorm、RustRover、Rider、RubyMine、DataGrip 近年开放了<strong>非商业免费版</strong>（Rider 是 2024 年起免费非商业）。</li>
</ul>
<p>如果只学一门语言，这档完全够用；想要全家桶完整版，才需要往下走学生验证。</p>
<h2 id="谁有资格">
<a class="header-anchor" href="#%e8%b0%81%e6%9c%89%e8%b5%84%e6%a0%bc"></a>
谁有资格
</h2><p>官方要求两条：</p>
<ol>
<li><strong>全日制学生</strong>，修读学制一年或以上的课程（高中三年制满足；大学、研究生当然也行）。</li>
<li>验证方式三选一：<strong>大学邮箱</strong> / <strong>ISIC·ITIC 卡</strong> / <strong>GitHub Student Developer Pack</strong>。</li>
</ol>
<p>高中生一般没有大学邮箱，所以实际可行的路线是后两条。另外官方 FAQ 明确说：机构邮箱不被接受<strong>仍然可以申请</strong>（走官方文件人工审批）。</p>
<h2 id="路线-agithub-student-developer-pack推荐">
<a class="header-anchor" href="#%e8%b7%af%e7%ba%bf-agithub-student-developer-pack%e6%8e%a8%e8%8d%90"></a>
路线 A：GitHub Student Developer Pack（推荐）
</h2><p>这是高中生最稳的路，因为 GitHub 学生包本身就允许 13 岁以上的中学生申请，而且包里有几十个福利，JetBrains 全家桶只是其中之一。</p>
<h3 id="申请-github-学生包">
<a class="header-anchor" href="#%e7%94%b3%e8%af%b7-github-%e5%ad%a6%e7%94%9f%e5%8c%85"></a>
申请 GitHub 学生包
</h3><ol>
<li>注册 GitHub 账号，先把 Profile 里的 Name 改成<strong>英文名</strong>（和证件拼音一致，如 San Zhang）。</li>
<li>打开 <a href="https://education.github.com/pack/join">https://education.github.com/pack/join</a>，点 Student 的 &ldquo;Get benefits&rdquo;，登录后填写申请表。</li>
<li>填表要点（中文高中生专用避坑）：
<ul>
<li>学校名写<strong>英文全称</strong>，不要缩写、不要中文；学校官网境外访问不了的就<strong>不要填</strong>（会直接被拒）。</li>
<li>学校类型选 <strong>High School</strong>。</li>
<li>有学校邮箱（edu.cn 等）优先填，通过率最高；没有就跳过。</li>
<li><strong>申请过程不要挂 VPN</strong>（IP 与学校所在国家不符容易被标记）。</li>
</ul>
</li>
<li>上传证明：学生证、在读证明、成绩单等，<strong>必须英文</strong>（自己翻译的不认，最好学校出具）；照片要清晰、包含学校名/姓名/有效期。没有 edu 邮箱时只能<strong>用摄像头实时拍摄</strong>，不能直接传文件。</li>
<li>提交后等 3～15 个工作日，结果发邮件。</li>
<li><strong>被拒了别慌</strong>：常见原因是学校官网境外不可访问、材料不够清晰。去 GitHub Support 开工单申诉，附上更充分的材料（社区经验里 ISIC 学生证 + 工单几乎必过）。</li>
</ol>
<h3 id="用-github-包换-jetbrains">
<a class="header-anchor" href="#%e7%94%a8-github-%e5%8c%85%e6%8d%a2-jetbrains"></a>
用 GitHub 包换 JetBrains
</h3><p>GitHub 学生包通过后，在 <a href="https://education.github.com/pack">https://education.github.com/pack</a> 里找到 <strong>JetBrains</strong> 卡片，点进去按提示用 GitHub 账号授权，会跳转到 JetBrains 完成教育授权绑定，之后你的 JetBrains Account 里就会出现全家桶授权。</p>
<h2 id="路线-bjetbrains-官网官方文件人工审批">
<a class="header-anchor" href="#%e8%b7%af%e7%ba%bf-bjetbrains-%e5%ae%98%e7%bd%91%e5%ae%98%e6%96%b9%e6%96%87%e4%bb%b6%e4%ba%ba%e5%b7%a5%e5%ae%a1%e6%89%b9"></a>
路线 B：JetBrains 官网官方文件（人工审批）
</h2><p>不想折腾 GitHub 的，直接走 JetBrains 官方文件路线：</p>
<ol>
<li>先自测资格和申请方式：<a href="https://www.jetbrains.com.cn/lp/edu-program-user-flow/">https://www.jetbrains.com.cn/lp/edu-program-user-flow/</a>（回答&quot;是→否&quot;的组合题，会引导到对应的申请方式）。</li>
<li>新申请入口：<a href="https://www.jetbrains.com/shop/eform/students">https://www.jetbrains.com/shop/eform/students</a>，申请方式一行选「<strong>官方文件</strong>」。</li>
<li>上传材料：
<ul>
<li>大陆<strong>高校</strong>在校生：必须上传<strong>学信网学籍验证报告 PDF</strong>（先在学信网确认报告已开启且在有效期内，PDF 要带有效验证码）；学生证、在读证明、成绩单可作辅助材料。</li>
<li><strong>高中生</strong>没有学信网，用学生证 / 学校开具的在读证明（中英对照更稳）。</li>
</ul>
</li>
<li>官方文件是<strong>人工审批</strong>，提交后 1～2 周邮件通知结果（不会立即收到授权邮件）。</li>
<li>通过后收 &ldquo;JetBrains Educational Pack Confirmation&rdquo; 邮件，点邮件里的链接绑定你的 JetBrains Account 即完成。</li>
</ol>
<h2 id="路线-cisic-国际学生证">
<a class="header-anchor" href="#%e8%b7%af%e7%ba%bf-cisic-%e5%9b%bd%e9%99%85%e5%ad%a6%e7%94%9f%e8%af%81"></a>
路线 C：ISIC 国际学生证
</h2><p>ISIC 是付费的国际学生证（约几十到一百元），JetBrains 支持用它验证。单独为 JetBrains 办一张性价比不高，但如果学校本来组织办理，或你已经有了，这是最快的验证方式（系统核实后基本立即通过）。</p>
<h2 id="拿到授权之后">
<a class="header-anchor" href="#%e6%8b%bf%e5%88%b0%e6%8e%88%e6%9d%83%e4%b9%8b%e5%90%8e"></a>
拿到授权之后
</h2><ol>
<li>申请通过 → 邮件链接绑定 JetBrains Account（没有就注册一个，建议用申请时填的邮箱，入口 <a href="https://account.jetbrains.com.cn">https://account.jetbrains.com.cn</a>）。</li>
<li>登录 JetBrains Account 确认授权状态；若授权下方出现蓝色 &ldquo;Please review License Agreement&rdquo;，点它同意授权条款，否则无法使用。</li>
<li>装 <strong>JetBrains Toolbox</strong>（<a href="https://www.jetbrains.com/toolbox-app/">https://www.jetbrains.com/toolbox-app/</a>），想装哪个 IDE 点哪个，登录 JetBrains Account 联网激活即可。</li>
</ol>
<h2 id="续期每年一次">
<a class="header-anchor" href="#%e7%bb%ad%e6%9c%9f%e6%af%8f%e5%b9%b4%e4%b8%80%e6%ac%a1"></a>
续期（每年一次）
</h2><p>授权有效期一年，快到期时：</p>
<ol>
<li>登录 <a href="https://account.jetbrains.com.cn">https://account.jetbrains.com.cn</a>，找到对应授权，点 &ldquo;<strong>Renew my Education Pack</strong>&rdquo; 链接开启续期申请表。</li>
<li>按当年提示重新验证学生身份（仍在读即可继续白嫖）。</li>
<li>别走错入口：续期<strong>不是</strong>重新填新申请表，新申请入口只给从未成功申请过的人用。</li>
</ol>
<h2 id="大陆用户的几个坑">
<a class="header-anchor" href="#%e5%a4%a7%e9%99%86%e7%94%a8%e6%88%b7%e7%9a%84%e5%87%a0%e4%b8%aa%e5%9d%91"></a>
大陆用户的几个坑
</h2><ul>
<li><strong>JetBrains AI 已于 2024 年 7 月停止中国大陆服务</strong>，IDE 里的 AI 补全/聊天用不了（2025 年起官方也在收缩中国区销售），但学生授权本身不受影响。</li>
<li>教育授权<strong>不能商用</strong>：实习、兼职、外包都得买商业版，别混用。</li>
<li>GitHub 审核期间不要挂代理；JetBrains 官方文件审批期间留意垃圾邮件箱。</li>
<li>每年毕业季前后是审核高峰，最好提前一个月续期，避免断档。</li>
</ul>
<h2 id="附其他技术相关的学生免费">
<a class="header-anchor" href="#%e9%99%84%e5%85%b6%e4%bb%96%e6%8a%80%e6%9c%af%e7%9b%b8%e5%85%b3%e7%9a%84%e5%ad%a6%e7%94%9f%e5%85%8d%e8%b4%b9"></a>
附：其他技术相关的学生免费
</h2><p>JetBrains 不是全部，学生身份在科技圈能白嫖的东西非常多：</p>
<table>
	<thead>
			<tr>
					<th>项目</th>
					<th>免费内容</th>
					<th>备注</th>
			</tr>
	</thead>
	<tbody>
			<tr>
					<td>GitHub Student Developer Pack</td>
					<td>GitHub Pro + Copilot + 100+ 工具/服务</td>
					<td>上面路线 A，先拿这个</td>
			</tr>
			<tr>
					<td>Microsoft Azure for Students</td>
					<td>$100 云服务器额度 + 免费服务</td>
					<td>无需信用卡验证，高中邮箱可申请</td>
			</tr>
			<tr>
					<td>DigitalOcean</td>
					<td>$200 云服务器额度</td>
					<td>走 GitHub 学生包</td>
			</tr>
			<tr>
					<td>Microsoft 365 教育版</td>
					<td>Word/Excel/PPT 全套</td>
					<td>学校有教育订阅即可，问学校</td>
			</tr>
			<tr>
					<td>Autodesk 教育版</td>
					<td>Fusion 360 / Maya / 3ds Max / AutoCAD 全免费</td>
					<td>建模/工业设计神器</td>
			</tr>
			<tr>
					<td>Notion Education</td>
					<td>Plus 版免费</td>
					<td>记笔记/资料库</td>
			</tr>
			<tr>
					<td>Canva Pro</td>
					<td>免费一年（可续）</td>
					<td>走 GitHub 学生包</td>
			</tr>
			<tr>
					<td>Figma</td>
					<td>教育版免费</td>
					<td>UI 设计</td>
			</tr>
			<tr>
					<td>Unity / Unreal</td>
					<td>学生计划</td>
					<td>做游戏</td>
			</tr>
			<tr>
					<td>DataCamp / Educative</td>
					<td>3～6 个月免费</td>
					<td>学数据科学/算法，GitHub 包里领</td>
			</tr>
			<tr>
					<td>阿里云 / 腾讯云学生机</td>
					<td>低至几元/月甚至免费</td>
					<td>大陆特色，学生认证后购买</td>
			</tr>
	</tbody>
</table>
<p>个人建议顺序：先把 <strong>GitHub 学生包</strong>拿到（它是很多福利的总开关），再去把 <strong>JetBrains</strong> 绑上，最后按需领云服务器和设计工具。</p>
<hr>
<p><em>本文信息整理自 JetBrains 官方学生页（<a href="https://www.jetbrains.com.cn/academy/student-pack/">jetbrains.com.cn/academy/student-pack</a>）、<a href="https://sales.jetbrains.com/hc/zh-cn/articles/207154369">JetBrains 学生和教师授权申请方式 FAQ</a> 及社区申请经验帖，政策如有变化以官方页面为准。</em></p>

        
        <hr><p>本文2026-08-30首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-30</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>教程</category>
      
    </item>
    
      
    

    <item>
      <title>晚修延时摄影项目介绍</title>
      <link>https://www.kuqilin.top/yue/post/class-night-lapse/</link>
      <pubDate>Sun, 23 Aug 2026 10:17:53 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/class-night-lapse/</guid>
      <description>
        <![CDATA[<h1>晚修延时摄影项目介绍</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          
  <blockquote class="alert-blockquote tips">
    <p class="alert-heading">
      Tips
    </p>
    <p><p>项目地址：<a href="https://github.com/kuqilin/classNightLapse">github.com/kuqilin/classNightLapse</a></p></p>
  </blockquote>

<h2 id="背景">
<a class="header-anchor" href="#%e8%83%8c%e6%99%af"></a>
背景
</h2><p>想用班上一体机的摄像头来拍班级晚修的延时摄影，因此写了这个简单的 Python 程序。非常好用哈，在晚修前运行这个程序，没有痕迹，下晚修后就能看到成片了 ^_^</p>
<p>全程只需要 <code>opencv-python</code> 和 <code>requests</code> 两个依赖，核心就是一个 <code>main.py</code>，简单粗暴。</p>

  <blockquote class="alert-blockquote note">
    <p class="alert-heading">
      Note
    </p>
    <p><p>附带效果：程序运行期间摄像头会被一直占用，所以老师也没法通过希沃云班远程看我们晚修了（嘘，这算是写这个程序的一大动力）🤫</p></p>
  </blockquote>

<h2 id="功能特性">
<a class="header-anchor" href="#%e5%8a%9f%e8%83%bd%e7%89%b9%e6%80%a7"></a>
功能特性
</h2><ul>
<li><strong>定时自动拍摄</strong>：设置开始 / 结束时间（默认 18:55–20:35，正好覆盖一节晚修），到点自动开拍，结束自动保存</li>
<li><strong>拍摄间隔可调</strong>：默认 1 秒拍一帧，一节晚修 100 分钟 ≈ 6000 帧，最终以 30fps 合成，成片约 3 分多钟</li>
<li><strong>自动时间戳</strong>：每帧右上角叠加当前时间，背景色根据画面亮度自适应（亮背景黑底白字，暗背景白底黑字）</li>
<li><strong>双输出日志</strong>：控制台和日志文件同步记录，方便排查&quot;为什么没拍上&quot;</li>
<li><strong>可选 WebDAV 上传</strong>：拍完自动把成片传到网盘（默认关闭，需要自己改配置）</li>
</ul>
<h2 id="项目结构">
<a class="header-anchor" href="#%e9%a1%b9%e7%9b%ae%e7%bb%93%e6%9e%84"></a>
项目结构
</h2><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-shell" data-lang="shell"><span class="line"><span class="cl">classNightLapse/
</span></span><span class="line"><span class="cl">├── main.py            <span class="c1"># 全部代码，单文件</span>
</span></span><span class="line"><span class="cl">├── requirements.txt   <span class="c1"># opencv-python、requests</span>
</span></span><span class="line"><span class="cl">├── LICENSE            <span class="c1"># MIT</span>
</span></span><span class="line"><span class="cl">└── .gitignore         <span class="c1"># 忽略 outputs/ logs/ 等</span>
</span></span></code></pre></div><h2 id="核心实现解析">
<a class="header-anchor" href="#%e6%a0%b8%e5%bf%83%e5%ae%9e%e7%8e%b0%e8%a7%a3%e6%9e%90"></a>
核心实现解析
</h2><h3 id="配置区">
<a class="header-anchor" href="#%e9%85%8d%e7%bd%ae%e5%8c%ba"></a>
配置区
</h3><p>所有参数都集中在文件头部，改起来非常直观：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">WEBDAV</span> <span class="o">=</span> <span class="kc">False</span>                 <span class="c1"># 是否启用 WebDAV 上传</span>
</span></span><span class="line"><span class="cl"><span class="n">START_HOUR</span><span class="p">,</span> <span class="n">START_MINUTE</span> <span class="o">=</span> <span class="mi">18</span><span class="p">,</span> <span class="mi">55</span>
</span></span><span class="line"><span class="cl"><span class="n">END_HOUR</span><span class="p">,</span> <span class="n">END_MINUTE</span> <span class="o">=</span> <span class="mi">20</span><span class="p">,</span> <span class="mi">35</span>
</span></span><span class="line"><span class="cl"><span class="n">CAMERA_INDEX</span> <span class="o">=</span> <span class="mi">0</span>               <span class="c1"># 摄像头编号</span>
</span></span><span class="line"><span class="cl"><span class="n">OUTPUT_FILE</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&#34;outputs/</span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1">_%H-%M-%S&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">.avi&#34;</span>
</span></span><span class="line"><span class="cl"><span class="n">FPS</span> <span class="o">=</span> <span class="mi">30</span>                       <span class="c1"># 最终视频帧率</span>
</span></span><span class="line"><span class="cl"><span class="n">FRAME_WIDTH</span> <span class="o">=</span> <span class="mi">1920</span>             <span class="c1"># 试了几个，只有这个能拍全班级</span>
</span></span><span class="line"><span class="cl"><span class="n">FRAME_HEIGHT</span> <span class="o">=</span> <span class="mi">1080</span>            <span class="c1"># 3224 那个不够宽，拍不全</span>
</span></span><span class="line"><span class="cl"><span class="n">INTERVAL_SECONDS</span> <span class="o">=</span> <span class="mi">1</span>           <span class="c1"># 拍摄间隔，单位秒</span>
</span></span><span class="line"><span class="cl"><span class="n">SHOW_TIMESTAMP</span> <span class="o">=</span> <span class="kc">True</span>          <span class="c1"># 是否显示时间</span>
</span></span><span class="line"><span class="cl"><span class="n">LOG_FILE</span> <span class="o">=</span> <span class="sa">f</span><span class="s2">&#34;logs/</span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1">_%H-%M-%S&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">.log&#34;</span>
</span></span></code></pre></div><p>这里有个小细节：分辨率是试出来的，只有 <code>1920x1080</code> 能把整个班级拍全。输出文件和日志文件名都带时间戳，每次运行不会互相覆盖。</p>
<h3 id="主流程-main">
<a class="header-anchor" href="#%e4%b8%bb%e6%b5%81%e7%a8%8b-main"></a>
主流程 <code>main()</code>
</h3><p>整体思路很清晰：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 1. 如果已经过了结束时间，直接退出</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 2. 如果还没到开始时间，睡到开始前 2 秒</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 3. 打开摄像头、设分辨率、读一帧确定尺寸</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 4. 创建 VideoWriter，精确对齐开始时间拍第一帧</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 5. while 循环按绝对时刻拍摄，直到结束时间</span>
</span></span><span class="line"><span class="cl"><span class="c1"># 6. finally 里释放资源，统计帧数，可选上传 WebDAV</span>
</span></span></code></pre></div><p>值得一说的有两个点：</p>
<p><strong>提前 2 秒打开摄像头</strong>。摄像头初始化需要时间，如果到点才开始初始化，第一帧会晚于预定时刻。所以程序在开始时间前 2 秒就打开摄像头，等真正到点了直接抓帧，保证第一帧精确落在 18:55:00。</p>
<p><strong>绝对时刻调度防漂移</strong>。拍摄循环里没有用&quot;睡 1 秒&quot;这种相对间隔，而是维护一个 <code>next_capture</code> 绝对时刻，每拍完一帧就 <code>next_capture += timedelta(seconds=INTERVAL_SECONDS)</code>，再睡到那个时刻：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="c1"># 下一个预定拍摄时刻（绝对时间，避免累积偏差）</span>
</span></span><span class="line"><span class="cl"><span class="n">next_capture</span> <span class="o">+=</span> <span class="n">timedelta</span><span class="p">(</span><span class="n">seconds</span><span class="o">=</span><span class="n">INTERVAL_SECONDS</span><span class="p">)</span>
</span></span></code></pre></div><p>这样即使某次 <code>sleep</code> 或抓帧慢了，也不会把误差累积到后面，长跑一节课也不会越拍越飘。这个细节很关键，延时摄影最怕的就是节奏漂移。</p>
<h3 id="时间戳-draw_timestamp">
<a class="header-anchor" href="#%e6%97%b6%e9%97%b4%e6%88%b3-draw_timestamp"></a>
时间戳 <code>draw_timestamp()</code>
</h3><p>每帧右上角叠加时间，背景色是<strong>根据画面亮度自适应</strong>的——先取背景框区域的平均亮度，亮背景用黑底白字，暗背景用白底黑字：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">mean_brightness</span> <span class="o">=</span> <span class="n">cv2</span><span class="o">.</span><span class="n">mean</span><span class="p">(</span><span class="n">gray</span><span class="p">)[</span><span class="mi">0</span><span class="p">]</span>
</span></span><span class="line"><span class="cl"><span class="k">if</span> <span class="n">mean_brightness</span> <span class="o">&gt;</span> <span class="mi">128</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">bg_color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>          <span class="c1"># 黑色背景</span>
</span></span><span class="line"><span class="cl">    <span class="n">text_color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">)</span>  <span class="c1"># 白色文字</span>
</span></span><span class="line"><span class="cl"><span class="k">else</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">    <span class="n">bg_color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">,</span> <span class="mi">255</span><span class="p">)</span>    <span class="c1"># 白色背景</span>
</span></span><span class="line"><span class="cl">    <span class="n">text_color</span> <span class="o">=</span> <span class="p">(</span><span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">,</span> <span class="mi">0</span><span class="p">)</span>        <span class="c1"># 黑色文字</span>
</span></span></code></pre></div><p>再用 <code>cv2.addWeighted</code> 做 0.6 透明度的半透明底，效果比直接白字好看不少，晚修教室灯光忽明忽暗也不会看不清。</p>
<h3 id="日志-logprint">
<a class="header-anchor" href="#%e6%97%a5%e5%bf%97-logprint"></a>
日志 <code>logprint()</code>
</h3><p>同时写控制台和日志文件，每行都带时间戳。晚上在教室一体机上跑的时候，你不可能一直盯着屏幕看，出问题了翻日志就行：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="k">def</span> <span class="nf">logprint</span><span class="p">(</span><span class="n">message</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="s1">&#39;</span><span class="se">\n</span><span class="s1">&#39;</span><span class="p">):</span>
</span></span><span class="line"><span class="cl">    <span class="nb">print</span><span class="p">(</span><span class="sa">f</span><span class="s2">&#34;[</span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">] </span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2">&#34;</span><span class="p">,</span> <span class="n">end</span><span class="o">=</span><span class="n">end</span><span class="p">)</span>
</span></span><span class="line"><span class="cl">    <span class="k">with</span> <span class="nb">open</span><span class="p">(</span><span class="n">LOG_FILE</span><span class="p">,</span> <span class="s1">&#39;a&#39;</span><span class="p">,</span> <span class="n">encoding</span><span class="o">=</span><span class="s1">&#39;utf-8&#39;</span><span class="p">)</span> <span class="k">as</span> <span class="n">f</span><span class="p">:</span>
</span></span><span class="line"><span class="cl">        <span class="n">f</span><span class="o">.</span><span class="n">write</span><span class="p">(</span><span class="sa">f</span><span class="s2">&#34;[</span><span class="si">{</span><span class="n">datetime</span><span class="o">.</span><span class="n">now</span><span class="p">()</span><span class="o">.</span><span class="n">strftime</span><span class="p">(</span><span class="s1">&#39;%Y-%m-</span><span class="si">%d</span><span class="s1"> %H:%M:%S&#39;</span><span class="p">)</span><span class="si">}</span><span class="s2">] </span><span class="si">{</span><span class="n">message</span><span class="si">}</span><span class="s2"> </span><span class="si">{</span><span class="n">end</span><span class="si">}</span><span class="s2">&#34;</span><span class="p">)</span>
</span></span></code></pre></div><h3 id="webdav-上传-upload_webdav">
<a class="header-anchor" href="#webdav-%e4%b8%8a%e4%bc%a0-upload_webdav"></a>
WebDAV 上传 <code>upload_webdav()</code>
</h3><p>默认关闭。开启后拍完会把成片用标准 PUT 请求传到 WebDAV 网盘（用的是 <code>HTTPBasicAuth</code> 认证），这样不用回教室就能在手机上看到成片：</p>
<div class="highlight"><pre tabindex="0" class="chroma"><code class="language-python" data-lang="python"><span class="line"><span class="cl"><span class="n">resp</span> <span class="o">=</span> <span class="n">requests</span><span class="o">.</span><span class="n">put</span><span class="p">(</span>
</span></span><span class="line"><span class="cl">    <span class="n">url</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">data</span><span class="o">=</span><span class="n">data</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">auth</span><span class="o">=</span><span class="n">HTTPBasicAuth</span><span class="p">(</span><span class="n">USERNAME</span><span class="p">,</span> <span class="n">PASSWORD</span><span class="p">),</span>
</span></span><span class="line"><span class="cl">    <span class="n">timeout</span><span class="o">=</span><span class="mi">120</span><span class="p">,</span>
</span></span><span class="line"><span class="cl">    <span class="n">verify</span><span class="o">=</span><span class="kc">False</span><span class="p">,</span>  <span class="c1"># 忽略 SSL 证书问题</span>
</span></span><span class="line"><span class="cl"><span class="p">)</span>
</span></span></code></pre></div><p>如果要用 WebDAV，记得自己改配置并重新编译。</p>
<h3 id="异常兜底">
<a class="header-anchor" href="#%e5%bc%82%e5%b8%b8%e5%85%9c%e5%ba%95"></a>
异常兜底
</h3><p><code>while</code> 循环外面包了 <code>try / except KeyboardInterrupt</code>，即使中途被人 Ctrl+C 打断，也会在 <code>finally</code> 里正常释放摄像头、保存已经拍到的部分，不会丢帧丢文件。</p>
<h2 id="使用方法">
<a class="header-anchor" href="#%e4%bd%bf%e7%94%a8%e6%96%b9%e6%b3%95"></a>
使用方法
</h2><div class="highlight"><pre tabindex="0" class="chroma"><code class="language-bash" data-lang="bash"><span class="line"><span class="cl">pip install -r requirements.txt
</span></span><span class="line"><span class="cl">python main.py
</span></span></code></pre></div><p>到点自动开拍，结束自动保存成片到 <code>outputs/</code> 下。日志在 <code>logs/</code> 下。</p>
<p>想部署到班上一体机的话，可以根据 <code>.gitignore</code> 里预留的 <code>build/</code>、<code>dist/</code>、<code>*.spec</code> 用 PyInstaller 打成 exe，直接双击运行，非常省事。</p>
<h2 id="总结">
<a class="header-anchor" href="#%e6%80%bb%e7%bb%93"></a>
总结
</h2><p>一个单文件就能搞定的延时摄影小工具：定时开拍、自动时间戳、防漂移调度、日志兜底，功能不多但都很实用。代码量不大，感兴趣的可以直接去看源码：<a href="https://github.com/kuqilin/classNightLapse">classNightLapse</a>。</p>
<p>下次晚修，记得提前 2 分钟运行它，下课后就能收获一份属于全班的三分钟延时大片了 🎬</p>

        
        <hr><p>本文2026-08-23首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-23</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>敦行志 第五期</title>
      <link>https://www.kuqilin.top/yue/post/dun-xing-zhi-5/</link>
      <pubDate>Mon, 17 Aug 2026 00:00:00 &#43;0000</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/dun-xing-zhi-5/</guid>
      <description>
        <![CDATA[<h1>敦行志 第五期</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <h1 id="敦行志">
<a class="header-anchor" href="#%e6%95%a6%e8%a1%8c%e5%bf%97"></a>
敦行志
</h1><p><strong>广东广雅中学2027届高三级组</strong></p>
<p><strong>第5期</strong></p>
<p><strong>2026年8月17日</strong></p>
<h2 id="编者按">
<a class="header-anchor" href="#%e7%bc%96%e8%80%85%e6%8c%89"></a>
编者按
</h2><blockquote>
<p>李普曼警示我们：别把“刻板印象”当成全部真相。备考中，若只盯着平均分、纠结一时进退，便是陷入了认知盲点。真正的破局，在于看懂“二八定律”背后的事律逻辑——80%的提分，往往来自20%的核心漏洞。愿你们跳出“线性努力”的陷阱，在AI浪潮前找准属于自己的“优先连接”，教本务实，行稳致远。</p>
</blockquote>
<h2 id="这一种认知陷阱人人都很难避开">
<a class="header-anchor" href="#%e8%bf%99%e4%b8%80%e7%a7%8d%e8%ae%a4%e7%9f%a5%e9%99%b7%e9%98%b1%e4%ba%ba%e4%ba%ba%e9%83%bd%e5%be%88%e9%9a%be%e9%81%bf%e5%bc%80"></a>
这一种认知陷阱，人人都很难避开
</h2><p>我们很少觉得自己活在偏见之中。更多时候，我们只是相信，某些人“向来如此”，某些事“本来就该这样”。</p>
<p>面对复杂的世界，大脑不可能每次都从头观察、分析和判断。它会借助已有的经验与印象，迅速理解眼前的一切。这种认知捷径帮助我们节省时间，却也可能让我们只看见符合预期的部分——它就是沃尔特·李普曼在《舆论》中所说的“刻板印象”。</p>
<p>在近百年前（1922年），他就从刻板印象的形成与作用谈起，继而以进化论、机械革命和美国社会为例，层层拆解“进步”如何从一种历史经验，逐渐变成不容怀疑的偏见……</p>
<p>其实，刻板印象并不可怕。真正危险的是，我们忘记了它只是帮助理解现实的工具，却把它当成了现实本身。</p>
<h3 id="1-人们常常只看见他们想看见的">
<a class="header-anchor" href="#1-%e4%ba%ba%e4%bb%ac%e5%b8%b8%e5%b8%b8%e5%8f%aa%e7%9c%8b%e8%a7%81%e4%bb%96%e4%bb%ac%e6%83%b3%e7%9c%8b%e8%a7%81%e7%9a%84"></a>
1. 人们常常只看见他们想看见的
</h3><p>刻板印象中的世界并非迎合我们喜好标准的世界，只不过是符合我们预期的世界。如果事物之间有些联系，我们就会产生某种熟悉感，而且我们会感到自己正随着事物的发展而变化。</p>
<p>若我们是渴望活得自由自在的雅典人，那我们的奴隶必须天生就是奴隶。若我们之前对朋友说自己可以在95杆之内完成高尔夫18洞然而事实上用了110杆，那我们会告诉朋友原因是自己今天没发挥好，这也就等于表明自己和那些需要多打15杆才能完成的蠢货不是一回事。</p>
<p>若非每一个时代都有为数不多的人愿意去孜孜不倦地整理、归纳和升华各种刻板印象，并将其转化为《政治经济学定律》《政治学原理》一类的逻辑体系，我们绝大多数人可能始终会依据各种杂乱无章、交替出现的刻板印象各行其是。一般而言，只要我们谈及文化、传统和群体精神，就一定会想起那些天才们创造的逻辑体系。</p>
<p>如今，已经没有人怀疑不断研究和评价这些理想化逻辑体系的必要性，但历史学家、政治家和公众人物不会就此裹足，因为左右历史进程的并非某个天才所总结的逻辑体系，而是每个人脑海中交替出现的模仿、复制、伪造、类比和歪曲。</p>
<p>一位如丽莎夫人一样低眉顺眼的评论家说：</p>
<blockquote>
<p>“相对论向人们宣示，它自己一定会发展成如进化论一样的普适性原理。进化论起初只是一项专门的生物学假说，后来则演变为适用于几乎全部生活范畴的启发性规律，被运用在风俗习惯、道德、宗教、哲学、艺术、蒸汽机、电车等各个领域。一切都在‘进化’。‘进化’变成一个寻常可见的字眼。而在很多情况下，当进化论原本的准确含义荡然无存，其演化出来的理论亦受到曲解时，这一理论本身也变得含糊不清。</p>
<p>我们完全可以大胆预言，相对论也会拥有相似的命运和发展进程。这项物理学专业理论目前尚不能被人们完全理解；未来，它也会变得更加模糊。历史将会重演。正如进化论一样，当人们对相对论展开了大量通俗易懂却科学性欠佳的解释之后，后者将会迈开征服世界的步伐。我们认为，相对论到那时可能会被称作相对主义。</p>
<p>毫无疑问，对于这一理论的诸多更为广泛的运用方式将会大行其道，其中一些会显得滑稽可笑，还有一大部分则会成为老生常谈。紧接着，这一物理学原理，这颗已经成长为参天巨木的小种子，将会再一次成为科学家的纯专业兴趣。”</p>
</blockquote>
<p>然而，在征服世界的过程中，相对论必须要与现实的某些方面有所契合，无论这种契合是否严密。</p>
<p>伯里（Bury）教授指出，进步观这个东西长期以来都是人们设想出来的。他写道：“这种人们设想中的观念若不能表现为某种外在的具体形象，或未能得到某种显著的现实证据支持，便很难渗透到普世观念中并为普罗大众所了解。对于进步观而言，这两个条件在1820—1850年间（的英国）都得到了满足。”</p>
<p>最有力的支持来自于机械革命。“出生于19世纪初的人在不满30岁的时候就已经看到了汽轮航运的高速发展，看到了城镇和家庭的汽灯照明，看到了第一条铁路的开通。”在普通人的观念中，这样的奇迹让他们形成了一种意识，认为人类是完美的。</p>
<p>正如伯里教授所言，进化论原本是介于悲观主义和乐观主义之间的中立观念，但由于其宣称变革是永恒的，且人们在现实中见证了这种变革如何体现着人类对自然的有力征服，于是大众意识便将两者混为一谈了。进化原是达尔文自己的设想，后经赫伯特·斯宾塞的复杂加工，竟变成了“向着完美演化的过程”。</p>
<h3 id="2-当进步成为不容怀疑的常识">
<a class="header-anchor" href="#2-%e5%bd%93%e8%bf%9b%e6%ad%a5%e6%88%90%e4%b8%ba%e4%b8%8d%e5%ae%b9%e6%80%80%e7%96%91%e7%9a%84%e5%b8%b8%e8%af%86"></a>
2. 当“进步”成为不容怀疑的常识
</h3><p>诸如“进步”和“完美”这样的刻板印象，大体上是由机器的发明所构建的。总的来说，这种机器发明直至今日还在继续。</p>
<p>在美国，机械工业进步的奇观比世界上任何地方都更为壮美，甚至已经对全部道德准则产生了影响。美国人几乎可对任何侮辱逆来顺受，但绝不能容忍被人指责不思进取。</p>
<p>无论对于土生土长的美国人还是新移民来说，美国物质文明的巨大进步总是令人大开眼界。这样的物质文明进步令美国人形成了一种用以观察世界的基础刻板印象：乡村会变成大都市，其貌不扬的建筑会变为摩天大楼，小的会变大，慢的会变快，穷的会变富，少的会变多，一切都会更上一层楼。</p>
<p>当然，并非所有美国人都这样看世界。亨利·亚当斯（Henry Adams）不会，威廉·阿伦·怀特（William Allen White）也不会。但总有人会。这些人出现在杂志上，鼓吹着成功学，扮演着美国的建设者的角色。</p>
<p>他们的观点大抵如此。他们宣扬进化、进步、繁荣，宣扬美国派的做事方式。我们当然可以对此不屑一顾，但事实上，这些人的行为模式在人类的总体行为模式中，十分具有代表性。</p>
<p>这种模式对待某一事物采取客观的价值标准，对待另一事物又采取世俗的标准，对待第三个事物却可能会大肆宣扬量化思维方式。毫无疑问，这种观念把卓越等同于规模大，把幸福等同于速度快，把人的天性等同于发明新装置。同样的动机还在持续影响人们的道德准则。人们对于最大、最快、最高、最小（若你是手表或显微镜的生产者）的渴望，对于登峰造极和无与伦比的效果的追求，实质上可能已经被视为一种高尚的热情。</p>
<p>无疑，美国人的进步观与其经济状况和人性特点所折射出的大量社会现实是相符合的。它将不计其数的斗争、占有欲和对权力的极度渴望转变为生产劳动。甚或直到如今，它始终未曾严重挫伤过这个社会中活跃分子的活跃本性。</p>
<p>正是这些人创造了一种文明，这种文明使他们在工作、交媾和娱乐中都能获得充分的满足感。而他们对山川、原野和远方的征服以及在人与人的竞争中所获得的胜利，甚至在一定程度上发挥了宗教的功能，即某种具有普适性的交融感。</p>
<p>这种模式依照理想—实践—成果的顺序运行，取得了前所未有的成功，竟致使任何试图对其提出挑战的人都被当作反美分子。</p>
<h3 id="3-当现实开始不按预期发展">
<a class="header-anchor" href="#3-%e5%bd%93%e7%8e%b0%e5%ae%9e%e5%bc%80%e5%a7%8b%e4%b8%8d%e6%8c%89%e9%a2%84%e6%9c%9f%e5%8f%91%e5%b1%95"></a>
3. 当现实开始不按预期发展
</h3><p>然而，在这种模式下描绘出的世界必然是狭隘而片面的。将进步等同于“发展”的思维定式意味着社会环境中的诸多方面都被直接无视。总体而言，美国人由于对眼下这种关于“进步”的刻板印象深信不疑，而习惯性地对不符合“进步观”的东西视而不见。</p>
<p>他们看到了城市的扩张，却无视贫民窟的增多；他们为人口普查的结果欢呼雀跃，却无视空间的过度拥挤；他们骄傲地展示着社会的成长，却无视农民和无法融入社会的移民群体的漂泊生活；他们疯狂地发展工业，却罔顾自然资源的过度消耗；他们组建巨头公司，却将产业关系的协调抛诸脑后；他们将美国打造为全世界最强大的国家之一，却未曾想过以怎样的体系或理念去摆脱自身孤立无援的境况；他们在精神和物质都尚未准备好的情况下卷入了世界大战，直到踉踉跄跄地走出战场时，才意识到一切都是空中楼阁，自己从战争中什么都没学到。</p>
<p>在世界大战中，美国式刻板印象的优点和缺点得到了清晰的展示。只要不断征兵、筹集无数借款、建造无数的战舰、生产大量的武器并全力以赴，就能赢得战争的胜利。这种观念符合传统的刻板印象，并确然创造出了一些实实在在的奇迹。但在深受这种刻板印象影响的群体中，却鲜有人去思考胜利的果实到底是什么，以及如何收获胜利的果实。因此，目标完全被忽视了，或者被认为是不言而喻的。而在刻板印象的作用下，胜利也被仅仅定义为战场上的大获全胜。</p>
<p>在和平年代，没人关心速度最快的汽车是用来做什么的；在战争时期，也不会有人在乎取得“彻底的胜利”究竟目的何在。然而在巴黎，这套刻板印象严重背离了事实。不打仗的时候，你尽可不断用大的东西替换小的东西，再用更大的东西替换大的东西；而一旦打起仗来，假若你已经赢得了绝对的胜利，就绝不可能继续赢得“更绝对”的胜利。你必须用一种完全不同的模式来处理问题。若缺少了这种模式，那么战争于你及许多和你一样的善良人而言，便只能是一个枯燥乏味的寡淡结局。</p>
<p>这意味着，在某一节点上，刻板印象和事实情况（而事实不容忽视）一定会发生冲突。这个节点必然存在，因为我们脑海中关于事物的印象远比事物实际的起伏转折要简单、稳定得多。因此，在某个时刻，这个盲点会从视野的边缘走向中心。</p>
<p>此时，除非有批评家勇敢地站出来发出警告，或领导人能够理解这种变化，或人们拥有宽容的习惯，否则本来有助于人们在认识中简化努力、集中精力的刻板印象——比如1917年、1918年的情况——就会转而蒙蔽人们的双眼、妨碍人们的努力、浪费人们的精力。</p>
<h3 id="4-盲点有用但并不总是如此">
<a class="header-anchor" href="#4-%e7%9b%b2%e7%82%b9%e6%9c%89%e7%94%a8%e4%bd%86%e5%b9%b6%e4%b8%8d%e6%80%bb%e6%98%af%e5%a6%82%e6%ad%a4"></a>
4. 盲点“有用”但并不总是如此
</h3><p>不加批判地固守刻板印象不仅会使我们对许多本应被纳入考虑的东西视而不见，而且一旦日后反省清算，刻板印象土崩瓦解，那么即便自己当时拥有一些理性智慧，对重要问题也做了一些严肃思考，这些思考的结果也会一并坍塌。</p>
<p>所有的循环往复都有一个共同点，即在每一套刻板印象中，都存在某个节点，一旦达到这个节点，努力就会告停，事情则会朝向你所期望的方向自行发展。激进的刻板印象会强有力地刺激人们的行为，甚至使人们无须再去试图判断这是什么样的行为，以及为什么要有这样的行为。</p>
<p>盲点会掩盖某些事实。若事实未被掩盖，并被纳入了考虑，它就会去审视人在刻板印象驱驰下的所作所为。如果改革论者像笑话里的那个人一样自问到底想如何利用自己因打破纪录而节省下来的时间，如果自由放任主义的鼓吹者除了考虑人的自由和旺盛的精力之外还兼顾其他观点中所提到的人性，如果集体主义者也稍微考虑一下如何让官方守住其领导地位这一难题，如果帝国主义者敢于质疑自己的灵感……那么我们就会看到更多的哈姆雷特和更少的亨利五世。</p>
<p>这是因为，盲点的存在会使人们摆脱有可能令其注意力涣散的种种想法；这些想法一旦为人们所感知，就会连同其所引起的情绪，共同导致犹豫不决和意志薄弱。</p>
<p>因此，刻板印象的存在不仅帮助我们在忙碌的生活中节省时间，维护我们在社会中的地位，还阻止我们规范、全面地观察世界，在最大程度上消弭了我们可能有的迷惑。</p>
<p>别轻易把成见当作事实，真正开阔的人生，始于保持独立思考，也始于允许现实修正自己。</p>
<h2 id="有一种清醒叫二八定律">
<a class="header-anchor" href="#%e6%9c%89%e4%b8%80%e7%a7%8d%e6%b8%85%e9%86%92%e5%8f%ab%e4%ba%8c%e5%85%ab%e5%ae%9a%e5%be%8b"></a>
有一种清醒，叫“二八定律”
</h2><p>生活中，很多人都听说过“二八定律”：少数人掌握多数资源，少数选择带来大部分结果，少数关键节点影响着整个系统。但我们或许很少追问，这种看似简单的比例背后，究竟有什么深刻的道理。</p>
<p>北大金融学家欧阳良宜在新作《万物之理》中提醒我们，“二八定律”并不只是一条关于财富或成功的经验总结，其背后是更为普遍的幂律法则。它存在于商业、网络、社会乃至自然系统之中，也影响着每个人的机会与选择。</p>
<p>看清这一规律，并不是为了接受差距、屈从命运，而是为了重新审视努力的方向，在尚未拥挤的新赛道上，找到属于自己的破局机会。</p>
<h3 id="1-你以为的平均正在遮蔽真实世界">
<a class="header-anchor" href="#1-%e4%bd%a0%e4%bb%a5%e4%b8%ba%e7%9a%84%e5%b9%b3%e5%9d%87%e6%ad%a3%e5%9c%a8%e9%81%ae%e8%94%bd%e7%9c%9f%e5%ae%9e%e4%b8%96%e7%95%8c"></a>
1. 你以为的“平均”正在遮蔽真实世界
</h3><p>人类很早就学会了用平均来理解世界：平均身高、平均工资、平均寿命和平均绩效。我们相信，书山有路勤为径，努力可以让我们超过平均线。这种看似公平的叙述，构成了现代社会大量制度设计与舆论叙事的基础。它温和、有序和激励人心，也让大多数人相信自己并不落后于他人。</p>
<p>然而，现实世界并不总是按照平均数运行。在复杂系统中，真正决定资源流动、权力结构、社会变动的，往往是那些罕见但具有巨大影响力的极端事件、极端个体与极端连接。这就是幂律分布的真实逻辑，极少数人主导了绝大多数结果。从心理学角度看，人类的大脑并不擅长理解幂律现象。我们在进化过程中主要处理的是局部、低复杂度的信息，线性因果和正态波动足以解释大多数日常经验。</p>
<p>在一个狩猎采集社会中，人们不会遇到“财富差距达到10万倍”或“病毒传播成千上万倍扩张”的事件。因此，大脑天生倾向于线性思维。我们会高估小概率事件（比如彩票中奖）的影响，低估极端值（比如平台头部流量）的统治性，并始终认为努力终有回报。但在幂律世界中，增长不是线性的，影响力也不按百分比分配，而是以指数差异的方式集中，此时，平均值便失去了意义。</p>
<p>这种认知偏差导致我们对世界的结构性不均衡缺乏直觉感知。比如，许多人会以为社交网络上的10万个粉丝只是“比我的粉丝多一些”，而不是在传播结构中属于另一个数量级；会以为一家公司的规模比另一家大10倍只是规模不同，而忽视前者可能同时拥有之于后者100倍的资本优势、品牌扩散能力与市场控制权。这种误判不仅存在于个人认知中，还体现在社会制度对幂律的系统性遮蔽上。</p>
<p>现代社会的制度设计往往有意或无意地回避幂律结构的显性表达。例如，教育体系通过年级制度和考试标准来制造看似公平的差异，但真正决定学生未来社会阶层的，并非考试成绩本身，而是其所处学校、家庭资源、信息密度与机会网络等。这些因素大多数并不出现在评分表上，但它们在结构中的权重有时甚至大于分数。</p>
<p>而企业管理中的KPI制度、组织绩效评价，也常以人人均有贡献为假设前提，忽视了往往只有 10% 的员工创造了 90% 的商业价值。在国家统计中，人均GDP成为衡量经济水平的基础单位。然而在人均数值之下，隐藏的是财富不均与结构性机会失衡。我们自己也常常身在幂律系统之中，却未必能够意识到。我们每天刷短视频，几乎只刷到那 1% 热度内容的不同分身；我们最常使用的App不过三五个，却已经占据了 90% 以上的手机使用时间；我们听的歌、看的书、读的公众号、买的商品，有极大概率是来自极小比例的生产者。这些现象不是偶然，而是结构逻辑的自然结果。内容平台的算法强化了这种趋势。头部“UP主”通过流量获得曝光，曝光带来点赞，点赞反过来影响算法分发，而算法再把更多的流量推向这些头部内容。在这一循环中，大多数创作者几乎没有机会获得可见度，即便他们的内容比起头部“UP主”并不逊色。</p>
<p>幂律结构不是我们无法理解的高深知识，而是每天实际生活的底层机制。我们实际上活在一个头部主导、尾部沉默的结构中，只是整个系统刻意为我们装上了一副平均主义的滤镜。这种遮蔽不仅让我们低估风险，也让我们在制度安排、文化心理和公共话语中误判了权力与资源的真正分布方式。</p>
<p>理解这一点，并不意味着我们必须反对幂律或否定结构性集中。问题的关键不在于结构，而在于我们是否意识到它的存在，以及是否拥有足够的制度工具去识别、应对、调节这些极端所带来的系统性风险。在幂律世界中，最大的风险不在于不平等，而在于我们自以为是平等的。</p>
<h3 id="2-真正的逆袭不是在旧赛道上拼命">
<a class="header-anchor" href="#2-%e7%9c%9f%e6%ad%a3%e7%9a%84%e9%80%86%e8%a2%ad%e4%b8%8d%e6%98%af%e5%9c%a8%e6%97%a7%e8%b5%9b%e9%81%93%e4%b8%8a%e6%8b%bc%e5%91%bd"></a>
2. 真正的逆袭不是在旧赛道上拼命
</h3><p>这里纠正一个常见误解：尽管幂律主导世界，但是普通人也有可能逆袭上位。</p>
<p>全球最富有的人之一杰夫·贝索斯（Jeff Bezos）出生于一个普通家庭，幼时父母离异，由继父抚养成人。他曾梦想成为理论物理学家，进入普林斯顿大学读书后才发现，世界只需要十个这样的天才，而自己肯定不在其中。于是他转向计算机和金融，进入华尔街对冲基金D.E. Shaw &amp; Co.任职，成为最年轻的副总裁。</p>
<p>1994年，当他敏锐察觉到互联网用户正高速增长时，毅然辞职，驾车横跨美国，在西雅图创办了一家线上书店——亚马逊。贝索斯这个果断的决定从此为他开启一段幂律式的创业之旅，用技术和系统不断放大影响力，改变了全球商业格局。2026年8月3日。亚马逊创始人杰夫·贝索斯向美国证券交易委员会（SEC）提交文件，计划出售1500万股亚马逊股票，市值约40.7亿美元。如果你多读几部传记，就会发现朱元璋、拿破仑、乔布斯、马云和孙正义这样的成功者也起于微末。这些伟大创业者的成功，不是因为他们比别人更努力地在旧跑道上奔跑，而是因为他们在一个新的幂律曲线（互联网）刚刚启动、尚未形成头部锁定的时刻，果断成了那个优先连接的节点。</p>
<p>逆袭的机会，在于跳上新的指数列车，而非在旧铁轨上加速。但是请注意，在幂律的头部形成之前，它往往看起来像是一个边缘的、不起眼的，甚至是可笑的荒原。</p>
<h3 id="3-极端集中之后往往就是系统性崩塌">
<a class="header-anchor" href="#3-%e6%9e%81%e7%ab%af%e9%9b%86%e4%b8%ad%e4%b9%8b%e5%90%8e%e5%be%80%e5%be%80%e5%b0%b1%e6%98%af%e7%b3%bb%e7%bb%9f%e6%80%a7%e5%b4%a9%e5%a1%8c"></a>
3. 极端集中之后往往就是系统性崩塌
</h3><p>在一个结构高度极端化的系统中，失衡并不是一种风险，而是一种必然。幂律分布带来的并非只是资源的集中与效率的提升，更是系统韧性的减弱。极少数节点掌控过多能量，意味着系统的稳定性依赖于少数关键点的健康与可控性。一旦这些节点被扰动、反馈链断裂，整个系统就会以超乎想象的速度瓦解。这种现象在自然界、经济系统与历史结构中都屡见不鲜。它并非源自坏运气或“黑天鹅”事件，而是幂律结构自身的宿命逻辑。人体是一个复杂的幂律系统。在新陈代谢、血管网络、神经递质扩散等层面，能量和信息都以近似幂律的方式分布。而癌细胞的崛起，正是一种幂律机制失控的表现。一枚微小的突变细胞，在正常免疫系统未能识别或抑制的前提下，通过自我复制—免疫逃逸—血管诱导—代谢重编程等机制，构建起一个反馈回路。当这种反馈的能量消耗路径嵌入整体系统，癌细胞便迅速蚕食原本均衡的细胞网络，迫使整个系统资源向其倾斜。</p>
<p>这种结构性的倾斜带来两种后果：一是能量高度集中于异常节点，削弱了其他区域的功能；二是系统整体进入不可逆的崩溃轨道，最终以器官衰竭或全身系统性失败告终。</p>
<p>2008年金融危机是幂律结构引发系统性崩盘的又一经典案例。在美国房地产市场价格持续上涨的背景下，金融机构通过资产证券化和信用杠杆不断放大收益，吸引更多资本进入同一通道。次贷本质上是对风险的打包与转移，是一种风险的结构性埋藏。电影《大空头》截图当房价持续上涨时，这种结构形成了“贷款—收益—评估增值—再贷款”的闭环。它看似安全、均衡，实则依赖极少数变量（如利率和违约率）的微调。然而一旦利率上升、房价下跌以及违约激增的反馈信号被市场放大，就会引发向下的正反馈循环（也就是恶性循环），资产贬值触发连环抛售。在这一机制中，整个全球金融系统的信心仿佛被单一变量引爆，其崩溃速度远超任何线性模型的预测。</p>
<p>历史上的王朝兴衰，尤其是中国古代的盛极而衰模式，也体现出幂律系统的正反馈机制。在多数王朝初期，土地分配相对均衡，政府通过强制手段进行土地丈量与再分配。随着时间推移，权贵和官绅阶层通过裙带关系、金融放贷和垄断灌溉等方式逐步聚拢土地，导致贫农破产、国家税基萎缩、军事兵源枯竭、社会流动停滞。</p>
<p>到某一时刻，这种结构性矛盾达到临界点。起义、财政崩溃、军事外敌和制度僵化往往同时发生，最终以“关机重启”的方式解决矛盾。非常遗憾，这样的剧情在历史上重复上演了很多次。正反馈的路径如果没有负反馈机制的调节，就只能通向系统瓦解的终点。</p>
<h3 id="4-看清规则不是为了认命而是为了破局">
<a class="header-anchor" href="#4-%e7%9c%8b%e6%b8%85%e8%a7%84%e5%88%99%e4%b8%8d%e6%98%af%e4%b8%ba%e4%ba%86%e8%ae%a4%e5%91%bd%e8%80%8c%e6%98%af%e4%b8%ba%e4%ba%86%e7%a0%b4%e5%b1%80"></a>
4. 看清规则不是为了认命，而是为了破局
</h3><p>系统性崩溃是结构分布失衡的结果。在幂律世界中，哪怕大多数指标处于健康状态，极少数关键节点一旦失控，就足以引发连锁震荡。正因为如此，我们需要重新思考治理与风险管理的逻辑：</p>
<blockquote>
<p>金融监管不能只关注平均杠杆率，更要盯紧集中放贷节点的反馈模型；<br>
城市治理不能只考虑人均资源，更要识别超负荷系统的脆弱区域；<br>
科技平台不能只优化整体活跃度，还必须应对头部溢用的系统性偏移；<br>
社会制度不能只宣扬机会均等，更要建立对结构性失衡的修正机制。</p>
</blockquote>
<p>幂律并不意味着一定会崩溃，但一旦出现崩溃迹象，通常为时已晚。</p>
<p>我们总是将极值分布视为一种错误。极端贫富、极端影响力、极端事件、极端灾难，似乎都意味着某种制度失败或道德失衡。然而，在幂律主导的世界中，极端并不是偶然出现的噪声，它是结构运行过程的自然产物，是系统内部规则被放大之后的有机结果。</p>
<p>我们用三个核心机制解释了幂律结构为何普遍存在，且难以逆转：优先连接使得早期优势节点不断获得更多连接，路径依赖让偶然选择演化为长期锁定，正反馈机制则将微弱差异放大为结构性垄断。它们在数学上解释了幂律的分布特征，在现实中构成了互联网、金融、权力与生态系统中的支配性结构。</p>
<p>而系统性风险的形成也正是这种结构失衡的后果。我们看到癌细胞如何夺取能量而牺牲整体系统，看到金融机构如何在看似安全的路径中积累不可控的杠杆风险，也看到一个朝代如何在土地与权力的正反馈机制中走向不可避免的崩溃。</p>
<p>更重要的是，我们也揭示了人类对于幂律的系统性误判。这种误判源于进化心理的线性直觉、统计语言中的平均主义滤镜，以及制度叙事中的公平幻觉。它让我们在数字世界中低估平台的头部集中度，在经济系统中高估机会的均等性，在政治空间中误解结构性风险的真正来源。</p>
<p>我们理解幂律，是为了看清系统演化的真正逻辑，而不是为了推翻这个结构。在分形的世界里，作为宇宙间目前唯一有生命的星球上的统治物种成员，作为人类共祖第一万代传人，本身就意味着你已经落在生物与社会幂律分布的极端一侧。</p>
<p>我们要理解，在幂律结构下，个体的努力仍然重要，但方向比努力更重要。贝索斯、马云或乔布斯的传奇，本质上是他们在旧结构崩塌、新结构涌现的缝隙中，率先成了新网络的超级节点。对于普通人而言，对抗幂律锁定的唯一方式，不是在红海中内卷，而是去寻找那些尚未被定义的荒原，在那里建立你的第一次“优先连接”。在AI浪潮开始席卷全球之际，你看到机会了吗？</p>
<p>幂律之下，没有真正意义的均衡态。我们所见的只是一个正在不断放大差异、固化结构、选择性地记忆路径的系统。但这并不可怕，请记住，幂律并不等于命运。</p>
<p>幂律不是命运，看见规则的人，才更有机会成为破局者。</p>

        
        <hr><p>本文2026-08-17首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-17</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>敦行志</category>
      
    </item>
    
      
    

    <item>
      <title>望文生义 · 成语辨析小测</title>
      <link>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-ce-yu/</link>
      <pubDate>Sun, 16 Aug 2026 11:22:15 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-ce-yu/</guid>
      <description>
        <![CDATA[<h1>望文生义 · 成语辨析小测</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <p>成语最怕「望文生义」。小测随机抽一个成语，从「原意」与常见的「易错点」中二选一——小心，错误选项往往就是你第一反应想选的那个。题库共 315 条，答对/答错即时反馈，换题无刷新。</p>
<p>独立小测页面可以随时打开：</p>
<a href="https://kuqilin.github.io/wang-wen-sheng-yi/quiz.html" title="望文生义 · 成语辨析小测" target="_blank">望文生义 · 成语辨析小测</a>
<h2 id="内嵌版直接在文章里玩">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%89%88%e7%9b%b4%e6%8e%a5%e5%9c%a8%e6%96%87%e7%ab%a0%e9%87%8c%e7%8e%a9"></a>
内嵌版：直接在文章里玩
</h2><p>以下小测直接嵌在正文里，和博客共用视觉与深浅色模式，手机上也能自适应宽度正常玩。</p>
<style>
.wq-quiz { max-width: 560px; margin: 24px auto; text-align: center; padding: 28px 24px 24px; border: 1px solid #99c2cc; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgba(25,118,140,.10); font-family: inherit; color: #24292e; }
.wq-quiz .wq-badge { font-size: 13px; letter-spacing: 2px; color: #408d9f; margin-bottom: 14px; }
.wq-quiz .wq-idiom { font-size: 44px; font-weight: 700; color: #24292e; margin-bottom: 4px; line-height: 1.3; }
.wq-quiz .wq-question { font-size: 15px; color: #7d7d7d; margin-bottom: 22px; }
.wq-quiz .wq-options { display: flex; flex-direction: column; gap: 12px; }
.wq-quiz button.wq-opt { display: block; width: 100%; font-family: inherit; font-size: 16px; line-height: 1.7; text-align: left; padding: 12px 16px; border: 2px solid #99c2cc; border-radius: 10px; background: #fff; color: #24292e; cursor: pointer; transition: transform .08s, border-color .15s, background .15s; box-shadow: none; }
.wq-quiz button.wq-opt:hover { border-color: #408d9f; background: #eaf2f5; transform: translateY(-1px); }
.wq-quiz button.wq-opt:disabled { cursor: default; transform: none; }
.wq-quiz button.wq-opt.wq-correct { border-color: #22863a; background: #f0fff4; color: #22863a; }
.wq-quiz button.wq-opt.wq-wrong { border-color: #d73a49; background: #ffeef0; color: #d73a49; }
.wq-quiz button.wq-opt.wq-dim { opacity: .55; }
.wq-quiz .wq-feedback { margin-top: 18px; font-size: 15px; min-height: 24px; color: #7d7d7d; }
.wq-quiz .wq-feedback.wq-ok { color: #22863a; }
.wq-quiz .wq-feedback.wq-bad { color: #d73a49; }
.wq-quiz button.wq-next { margin-top: 16px; font-family: inherit; font-size: 16px; padding: 10px 32px; border: none; border-radius: 10px; background: #19768c; color: #fff; cursor: pointer; box-shadow: 0 4px 12px rgba(25,118,140,.35); }
.wq-quiz button.wq-next:hover { background: #00677f; }
.wq-quiz button.wq-next[hidden] { display: none; }
.wq-quiz .wq-count { margin-top: 18px; font-size: 12px; color: #73abb9; }
@keyframes wqFadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.wq-quiz button.wq-opt { animation: wqFadeUp .22s ease; }
.wq-quiz .wq-idiom.wq-flash { animation: wqFadeUp .3s ease; }
@keyframes wqPop { 0% { transform: scale(.5); opacity: 0; } 60% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } }
.wq-quiz .wq-feedback.wq-ok, .wq-quiz .wq-feedback.wq-bad { animation: wqPop .3s ease; }
/* 深色模式：跟随主题 html[data-theme="dark"] */
html[data-theme="dark"] .wq-quiz { background: #272b30; border-color: #3e7f92; color: #c9d1d9; box-shadow: 0 10px 24px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq-quiz .wq-badge { color: #6db7c7; }
html[data-theme="dark"] .wq-quiz .wq-idiom { color: #e6edf3; }
html[data-theme="dark"] .wq-quiz .wq-question { color: #8b949e; }
html[data-theme="dark"] .wq-quiz button.wq-opt { border-color: #3e7f92; background: #272b30; color: #c9d1d9; }
html[data-theme="dark"] .wq-quiz button.wq-opt:hover { border-color: #6db7c7; background: rgba(64,141,159,.18); }
html[data-theme="dark"] .wq-quiz button.wq-opt.wq-correct { border-color: #7ee787; background: rgba(46,160,67,.18); color: #7ee787; }
html[data-theme="dark"] .wq-quiz button.wq-opt.wq-wrong { border-color: #ff7b72; background: rgba(248,81,73,.16); color: #ff7b72; }
html[data-theme="dark"] .wq-quiz .wq-feedback { color: #8b949e; }
html[data-theme="dark"] .wq-quiz .wq-feedback.wq-ok { color: #7ee787; }
html[data-theme="dark"] .wq-quiz .wq-feedback.wq-bad { color: #ff7b72; }
html[data-theme="dark"] .wq-quiz button.wq-next { background: #2b93ab; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq-quiz button.wq-next:hover { background: #19768c; }
html[data-theme="dark"] .wq-quiz .wq-count { color: #6db7c7; }
</style>
<div class="wq-quiz">
<div class="wq-badge">🧐 望文生义 · 成语释义二选一</div>
<div class="wq-idiom" id="wq-idiom"></div>
<div class="wq-question">下列选项中，哪一个是这个成语的正确释义？</div>
<div class="wq-options" id="wq-options"></div>
<div class="wq-feedback" id="wq-feedback"></div>
<button class="wq-next" id="wq-next" hidden>下一题 ➡️</button>
<div class="wq-count" id="wq-count"></div>
</div>
<script>
(function () {
  if (!document.getElementById("wq-idiom")) return;
  const idiomEl = document.getElementById("wq-idiom");
  const box = document.getElementById("wq-options");
  const feedback = document.getElementById("wq-feedback");
  const next = document.getElementById("wq-next");
  const countEl = document.getElementById("wq-count");

  function shuffle(a) {
    for (let i = a.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [a[i], a[j]] = [a[j], a[i]];
    }
    return a;
  }

  // 连续两次不抽同一题
  let last = null;
  function pick(DATA) {
    let e;
    do {
      e = DATA[Math.floor(Math.random() * DATA.length)];
    } while (e === last && DATA.length > 1);
    last = e;
    return e;
  }

  const goodEmojis = ["👍", "🎉", "🌟", "💯", "🏆", "👏"];
  const badEmojis = ["😅", "🤔", "💡", "🙈"];
  function rand(a) { return a[Math.floor(Math.random() * a.length)]; }

  fetch("/wang-wen-sheng-yi/wang-wen-sheng-yi.json", { cache: "no-store" })
    .then(r => { if (!r.ok) throw new Error("HTTP " + r.status); return r.json(); })
    .then(data => {
      const usable = data.filter(
        e => e["成语"] && e["原意"] && e["易错点"] && e["原意"] !== e["易错点"]
      );
      if (!usable.length) {
        idiomEl.textContent = "📭 题库为空";
        countEl.textContent = "JSON 里没有可出的题（每条需含 成语/原意/易错点，且原意不等于易错点）。";
        return;
      }
      countEl.textContent = "📚 题库共 " + data.length + " 条，可出题 " + usable.length + " 条";

      function renderQuestion() {
        const entry = pick(usable);
        idiomEl.textContent = entry["成语"];
        idiomEl.classList.remove("wq-flash");
        void idiomEl.offsetWidth;
        idiomEl.classList.add("wq-flash");

        box.innerHTML = "";
        feedback.className = "wq-feedback";
        feedback.textContent = "";
        next.hidden = true;

        const options = shuffle([
          { text: entry["原意"], correct: true },
          { text: entry["易错点"], correct: false },
        ]);

        let answered = false;
        for (const opt of options) {
          const btn = document.createElement("button");
          btn.className = "wq-opt";
          btn.textContent = opt.text;
          btn.dataset.correct = opt.correct ? "true" : "false";
          btn.addEventListener("click", () => {
            if (answered) return;
            answered = true;
            for (const b of box.children) b.disabled = true;
            for (const b of box.children) {
              if (b.dataset.correct === "true") b.classList.add("wq-correct");
            }
            if (opt.correct) {
              feedback.className = "wq-feedback wq-ok";
              feedback.textContent = rand(goodEmojis) + " 回答正确！";
            } else {
              btn.classList.add("wq-wrong");
              for (const b of box.children) {
                if (b !== btn && b.dataset.correct !== "true") b.classList.add("wq-dim");
              }
              feedback.className = "wq-feedback wq-bad";
              feedback.textContent = rand(badEmojis) + " 回答错误，选错了释义。";
            }
            next.hidden = false;
          });
          box.appendChild(btn);
        }
      }

      next.addEventListener("click", renderQuestion);
      renderQuestion();
    })
    .catch(err => {
      idiomEl.textContent = "❌ 题库加载失败";
      countEl.textContent = "错误：" + err.message;
    });
})();
</script>
<p>内嵌版直接复用独立页面同款逻辑（随机抽题、防连抽、即时判题、前端换题），数据从站点根目录的 <code>/wang-wen-sheng-yi/wang-wen-sheng-yi.json</code> 实时加载，改题库后无需清缓存。</p>
<h2 id="内嵌网页版独立页面嵌入">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%bd%91%e9%a1%b5%e7%89%88%e7%8b%ac%e7%ab%8b%e9%a1%b5%e9%9d%a2%e5%b5%8c%e5%85%a5"></a>
内嵌网页版：独立页面嵌入
</h2><p>把独立的 <code>quiz.html</code> 页面以 iframe 形式嵌进来，外观是「页面套页面」，自带整页背景色与居中卡片，左上角有「首页」按钮、右上角有「关于」按钮：</p>
<iframe src="/wang-wen-sheng-yi/quiz.html" loading="lazy" title="望文生义成语小测" style="width:100%;height:600px;border:1px solid #99c2cc;border-radius:12px;background:#fff;"></iframe>
<blockquote>
<p><strong>注意：这个版本不适合手机等小屏幕。</strong> 独立页面按桌面卡片设计（卡片固定 560px 宽、iframe 固定 600px 高，还有固定在角落的按钮），在小屏上会被挤压甚至溢出，体验很差。手机访问请用上面的<strong>内嵌版</strong>（自适应宽度），或直接打开外链的独立小测页面。</p>
</blockquote>

        
        <hr><p>本文2026-08-16首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-16</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>望文生义 · 成语辨析小测</title>
      <link>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-1/</link>
      <pubDate>Sun, 16 Aug 2026 11:22:15 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-1/</guid>
      <description>
        <![CDATA[<h1>望文生义 · 成语辨析小测</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <p>成语最怕「望文生义」。小测随机抽一个成语，从「原意」与常见的「易错点」中二选一——小心，错误选项往往就是你第一反应想选的那个。题库共 315 条，答对/答错即时反馈，换题无刷新。</p>
<p>独立小测页面可以随时打开：</p>
<a href="https://kuqilin.github.io/wang-wen-sheng-yi/quiz.html" title="望文生义 · 成语辨析小测" target="_blank">望文生义 · 成语辨析小测</a>
<h2 id="内嵌版直接在文章里玩">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%89%88%e7%9b%b4%e6%8e%a5%e5%9c%a8%e6%96%87%e7%ab%a0%e9%87%8c%e7%8e%a9"></a>
内嵌版：直接在文章里玩
</h2><p>以下小测直接嵌在正文里，和博客共用视觉与深浅色模式，手机上也能自适应宽度正常玩。</p>
<style>
.wq-quiz { max-width: 560px; margin: 24px auto; text-align: center; padding: 28px 24px 24px; border: 1px solid #99c2cc; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgba(25,118,140,.10); font-family: inherit; color: #24292e; }
.wq-quiz .wq-badge { font-size: 13px; letter-spacing: 2px; color: #408d9f; margin-bottom: 14px; }
.wq-quiz .wq-idiom { font-size: 44px; font-weight: 700; color: #24292e; margin-bottom: 4px; line-height: 1.3; }
.wq-quiz .wq-question { font-size: 15px; color: #7d7d7d; margin-bottom: 22px; }
.wq-quiz .wq-options { display: flex; flex-direction: column; gap: 12px; }
.wq-quiz button.wq-opt { display: block; width: 100%; font-family: inherit; font-size: 16px; line-height: 1.7; text-align: left; padding: 12px 16px; border: 2px solid #99c2cc; border-radius: 10px; background: #fff; color: #24292e; cursor: pointer; transition: transform .08s, border-color .15s, background .15s; box-shadow: none; }
.wq-quiz button.wq-opt:hover { border-color: #408d9f; background: #eaf2f5; transform: translateY(-1px); }
.wq-quiz button.wq-opt:disabled { cursor: default; transform: none; }
.wq-quiz button.wq-opt.wq-correct { border-color: #22863a; background: #f0fff4; color: #22863a; }
.wq-quiz button.wq-opt.wq-wrong { border-color: #d73a49; background: #ffeef0; color: #d73a49; }
.wq-quiz button.wq-opt.wq-dim { opacity: .55; }
.wq-quiz .wq-feedback { margin-top: 18px; font-size: 15px; min-height: 24px; color: #7d7d7d; }
.wq-quiz .wq-feedback.wq-ok { color: #22863a; }
.wq-quiz .wq-feedback.wq-bad { color: #d73a49; }
.wq-quiz button.wq-next { margin-top: 16px; font-family: inherit; font-size: 16px; padding: 10px 32px; border: none; border-radius: 10px; background: #19768c; color: #fff; cursor: pointer; box-shadow: 0 4px 12px rgba(25,118,140,.35); }
.wq-quiz button.wq-next:hover { background: #00677f; }
.wq-quiz button.wq-next[hidden] { display: none; }
.wq-quiz .wq-count { margin-top: 18px; font-size: 12px; color: #73abb9; }
@keyframes wqFadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
.wq-quiz button.wq-opt { animation: wqFadeUp .22s ease; }
.wq-quiz .wq-idiom.wq-flash { animation: wqFadeUp .3s ease; }
@keyframes wqPop { 0% { transform: scale(.5); opacity: 0; } 60% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } }
.wq-quiz .wq-feedback.wq-ok, .wq-quiz .wq-feedback.wq-bad { animation: wqPop .3s ease; }
/* 深色模式：跟随主题 html[data-theme="dark"] */
html[data-theme="dark"] .wq-quiz { background: #272b30; border-color: #3e7f92; color: #c9d1d9; box-shadow: 0 10px 24px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq-quiz .wq-badge { color: #6db7c7; }
html[data-theme="dark"] .wq-quiz .wq-idiom { color: #e6edf3; }
html[data-theme="dark"] .wq-quiz .wq-question { color: #8b949e; }
html[data-theme="dark"] .wq-quiz button.wq-opt { border-color: #3e7f92; background: #272b30; color: #c9d1d9; }
html[data-theme="dark"] .wq-quiz button.wq-opt:hover { border-color: #6db7c7; background: rgba(64,141,159,.18); }
html[data-theme="dark"] .wq-quiz button.wq-opt.wq-correct { border-color: #7ee787; background: rgba(46,160,67,.18); color: #7ee787; }
html[data-theme="dark"] .wq-quiz button.wq-opt.wq-wrong { border-color: #ff7b72; background: rgba(248,81,73,.16); color: #ff7b72; }
html[data-theme="dark"] .wq-quiz .wq-feedback { color: #8b949e; }
html[data-theme="dark"] .wq-quiz .wq-feedback.wq-ok { color: #7ee787; }
html[data-theme="dark"] .wq-quiz .wq-feedback.wq-bad { color: #ff7b72; }
html[data-theme="dark"] .wq-quiz button.wq-next { background: #2b93ab; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq-quiz button.wq-next:hover { background: #19768c; }
html[data-theme="dark"] .wq-quiz .wq-count { color: #6db7c7; }
</style>
<div class="wq-quiz">
<div class="wq-badge">🧐 望文生义 · 成语释义二选一</div>
<div class="wq-idiom" id="wq-idiom"></div>
<div class="wq-question">下列选项中，哪一个是这个成语的正确释义？</div>
<div class="wq-options" id="wq-options"></div>
<div class="wq-feedback" id="wq-feedback"></div>
<button class="wq-next" id="wq-next" hidden>下一题 ➡️</button>
<div class="wq-count" id="wq-count"></div>
</div>
<script>
(function () {
  if (!document.getElementById("wq-idiom")) return;
  const idiomEl = document.getElementById("wq-idiom");
  const box = document.getElementById("wq-options");
  const feedback = document.getElementById("wq-feedback");
  const next = document.getElementById("wq-next");
  const countEl = document.getElementById("wq-count");

  function shuffle(a) {
    for (let i = a.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [a[i], a[j]] = [a[j], a[i]];
    }
    return a;
  }

  // 连续两次不抽同一题
  let last = null;
  function pick(DATA) {
    let e;
    do {
      e = DATA[Math.floor(Math.random() * DATA.length)];
    } while (e === last && DATA.length > 1);
    last = e;
    return e;
  }

  const goodEmojis = ["👍", "🎉", "🌟", "💯", "🏆", "👏"];
  const badEmojis = ["😅", "🤔", "💡", "🙈"];
  function rand(a) { return a[Math.floor(Math.random() * a.length)]; }

  fetch("/wang-wen-sheng-yi/wang-wen-sheng-yi.json", { cache: "no-store" })
    .then(r => { if (!r.ok) throw new Error("HTTP " + r.status); return r.json(); })
    .then(data => {
      const usable = data.filter(
        e => e["成语"] && e["原意"] && e["易错点"] && e["原意"] !== e["易错点"]
      );
      if (!usable.length) {
        idiomEl.textContent = "📭 题库为空";
        countEl.textContent = "JSON 里没有可出的题（每条需含 成语/原意/易错点，且原意不等于易错点）。";
        return;
      }
      countEl.textContent = "📚 题库共 " + data.length + " 条，可出题 " + usable.length + " 条";

      function renderQuestion() {
        const entry = pick(usable);
        idiomEl.textContent = entry["成语"];
        idiomEl.classList.remove("wq-flash");
        void idiomEl.offsetWidth;
        idiomEl.classList.add("wq-flash");

        box.innerHTML = "";
        feedback.className = "wq-feedback";
        feedback.textContent = "";
        next.hidden = true;

        const options = shuffle([
          { text: entry["原意"], correct: true },
          { text: entry["易错点"], correct: false },
        ]);

        let answered = false;
        for (const opt of options) {
          const btn = document.createElement("button");
          btn.className = "wq-opt";
          btn.textContent = opt.text;
          btn.dataset.correct = opt.correct ? "true" : "false";
          btn.addEventListener("click", () => {
            if (answered) return;
            answered = true;
            for (const b of box.children) b.disabled = true;
            for (const b of box.children) {
              if (b.dataset.correct === "true") b.classList.add("wq-correct");
            }
            if (opt.correct) {
              feedback.className = "wq-feedback wq-ok";
              feedback.innerHTML = rand(goodEmojis) + " 回答正确！<br>🔎参见原书编号 " + entry["编号"];
            } else {
              btn.classList.add("wq-wrong");
              for (const b of box.children) {
                if (b !== btn && b.dataset.correct !== "true") b.classList.add("wq-dim");
              }
              feedback.className = "wq-feedback wq-bad";
              feedback.innerHTML = rand(badEmojis) + " 回答错误，选错了释义。<br>🔎参见原书编号 " + entry["编号"];
            }
            next.hidden = false;
          });
          box.appendChild(btn);
        }
      }

      next.addEventListener("click", renderQuestion);
      renderQuestion();
    })
    .catch(err => {
      idiomEl.textContent = "❌ 题库加载失败";
      countEl.textContent = "错误：" + err.message;
    });
})();
</script>
<p>内嵌版直接复用独立页面同款逻辑（随机抽题、防连抽、即时判题、前端换题），数据从站点根目录的 <code>/wang-wen-sheng-yi/wang-wen-sheng-yi.json</code> 实时加载，改题库后无需清缓存。</p>
<h2 id="内嵌网页版独立页面嵌入">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%bd%91%e9%a1%b5%e7%89%88%e7%8b%ac%e7%ab%8b%e9%a1%b5%e9%9d%a2%e5%b5%8c%e5%85%a5"></a>
内嵌网页版：独立页面嵌入
</h2>
  <blockquote class="alert-blockquote important">
    <p class="alert-heading">
      Important
    </p>
    <p><p><strong>这个版本不适合手机等小屏幕。</strong> 独立页面按桌面卡片设计（卡片固定 560px 宽、iframe 固定 600px 高，还有固定在角落的按钮），在小屏上会被挤压甚至溢出，体验很差。手机访问请用上面的<strong>内嵌版</strong>（自适应宽度），或直接打开外链的独立小测页面。</p></p>
  </blockquote>

<p>把独立的页面以 iframe 形式嵌进来，外观是「页面套页面」，自带整页背景色与居中卡片，左上角有「首页」按钮、右上角有「关于」按钮。</p>
<p><strong>释义二选一：</strong></p>
<iframe src="/wang-wen-sheng-yi/quiz.html" loading="lazy" title="望文生义成语小测" style="width:100%;height:600px;border:1px solid #99c2cc;border-radius:12px;background:#fff;"></iframe>

        
        <hr><p>本文2026-08-16首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-16</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>望文生义 · 成语用法辨析</title>
      <link>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-2/</link>
      <pubDate>Sun, 16 Aug 2026 11:43:32 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/wang-wen-sheng-yi-2/</guid>
      <description>
        <![CDATA[<h1>望文生义 · 成语用法辨析</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <p>释义认得，实战才是真考验。小测随机抽一个成语，给你两句含成语的句子，判断哪句用得<strong>正确</strong>——答完还会给出原意与易错点解析，并标注原书编号。答对/答错即时反馈，换题无刷新。</p>
<p>独立小测页面可以随时打开：</p>
<a href="https://kuqilin.github.io/wang-wen-sheng-yi/quiz1.html" title="成语用法辨析 · 二选一" target="_blank">成语用法辨析 · 二选一</a>
<h2 id="内嵌版直接在文章里玩">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%89%88%e7%9b%b4%e6%8e%a5%e5%9c%a8%e6%96%87%e7%ab%a0%e9%87%8c%e7%8e%a9"></a>
内嵌版：直接在文章里玩
</h2><p>以下小测直接嵌在正文里，和博客共用视觉与深浅色模式，手机上也能自适应宽度正常玩。</p>
<style>
@keyframes wqFadeUp { from { opacity: 0; transform: translateY(6px); } to { opacity: 1; transform: none; } }
@keyframes wqPop { 0% { transform: scale(.5); opacity: 0; } 60% { transform: scale(1.2); } 100% { transform: scale(1); opacity: 1; } }
.wq2-quiz { max-width: 560px; margin: 24px auto; text-align: center; padding: 28px 24px 24px; border: 1px solid #99c2cc; border-radius: 14px; background: #fff; box-shadow: 0 10px 24px rgba(25,118,140,.10); font-family: inherit; color: #24292e; }
.wq2-quiz .wq2-badge { font-size: 13px; letter-spacing: 2px; color: #408d9f; margin-bottom: 14px; }
.wq2-quiz .wq2-idiom { font-size: 44px; font-weight: 700; color: #24292e; margin-bottom: 4px; line-height: 1.3; }
.wq2-quiz .wq2-question { font-size: 15px; color: #7d7d7d; margin-bottom: 22px; }
.wq2-quiz .wq2-options { display: flex; flex-direction: column; gap: 12px; }
.wq2-quiz button.wq2-opt { display: block; width: 100%; font-family: inherit; font-size: 15px; line-height: 1.8; text-align: left; padding: 12px 16px; border: 2px solid #99c2cc; border-radius: 10px; background: #fff; color: #24292e; cursor: pointer; transition: transform .08s, border-color .15s, background .15s; box-shadow: none; }
.wq2-quiz button.wq2-opt:hover { border-color: #408d9f; background: #eaf2f5; transform: translateY(-1px); }
.wq2-quiz button.wq2-opt:disabled { cursor: default; transform: none; }
.wq2-quiz button.wq2-opt.wq2-correct { border-color: #22863a; background: #f0fff4; color: #22863a; }
.wq2-quiz button.wq2-opt.wq2-wrong { border-color: #d73a49; background: #ffeef0; color: #d73a49; }
.wq2-quiz button.wq2-opt.wq2-dim { opacity: .55; }
.wq2-quiz .wq2-feedback { margin-top: 18px; font-size: 15px; min-height: 24px; line-height: 1.8; color: #7d7d7d; }
.wq2-quiz .wq2-feedback.wq2-ok { color: #22863a; }
.wq2-quiz .wq2-feedback.wq2-bad { color: #d73a49; }
.wq2-quiz button.wq2-next { margin-top: 16px; font-family: inherit; font-size: 16px; padding: 10px 32px; border: none; border-radius: 10px; background: #19768c; color: #fff; cursor: pointer; box-shadow: 0 4px 12px rgba(25,118,140,.35); }
.wq2-quiz button.wq2-next:hover { background: #00677f; }
.wq2-quiz button.wq2-next[hidden] { display: none; }
.wq2-quiz .wq2-count { margin-top: 18px; font-size: 12px; color: #73abb9; }
.wq2-quiz .wq2-idiom.wq2-flash { animation: wqFadeUp .3s ease; }
.wq2-quiz button.wq2-opt { animation: wqFadeUp .22s ease; }
.wq2-quiz .wq2-feedback.wq2-ok, .wq2-quiz .wq2-feedback.wq2-bad { animation: wqPop .3s ease; }
/* 深色模式：跟随主题 html[data-theme="dark"] */
html[data-theme="dark"] .wq2-quiz { background: #272b30; border-color: #3e7f92; color: #c9d1d9; box-shadow: 0 10px 24px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq2-quiz .wq2-badge { color: #6db7c7; }
html[data-theme="dark"] .wq2-quiz .wq2-idiom { color: #e6edf3; }
html[data-theme="dark"] .wq2-quiz .wq2-question { color: #8b949e; }
html[data-theme="dark"] .wq2-quiz button.wq2-opt { border-color: #3e7f92; background: #272b30; color: #c9d1d9; }
html[data-theme="dark"] .wq2-quiz button.wq2-opt:hover { border-color: #6db7c7; background: rgba(64,141,159,.18); }
html[data-theme="dark"] .wq2-quiz button.wq2-opt.wq2-correct { border-color: #7ee787; background: rgba(46,160,67,.18); color: #7ee787; }
html[data-theme="dark"] .wq2-quiz button.wq2-opt.wq2-wrong { border-color: #ff7b72; background: rgba(248,81,73,.16); color: #ff7b72; }
html[data-theme="dark"] .wq2-quiz .wq2-feedback { color: #8b949e; }
html[data-theme="dark"] .wq2-quiz .wq2-feedback.wq2-ok { color: #7ee787; }
html[data-theme="dark"] .wq2-quiz .wq2-feedback.wq2-bad { color: #ff7b72; }
html[data-theme="dark"] .wq2-quiz button.wq2-next { background: #2b93ab; box-shadow: 0 4px 12px rgba(0,0,0,.35); }
html[data-theme="dark"] .wq2-quiz button.wq2-next:hover { background: #19768c; }
html[data-theme="dark"] .wq2-quiz .wq2-count { color: #6db7c7; }
</style>
<div class="wq2-quiz">
<div class="wq2-badge">📝 成语用法辨析 · 二选一</div>
<div class="wq2-idiom" id="wq2-idiom"></div>
<div class="wq2-question">下面哪个句子中，这个成语使用得<strong>正确</strong>？</div>
<div class="wq2-options" id="wq2-options"></div>
<div class="wq2-feedback" id="wq2-feedback"></div>
<button class="wq2-next" id="wq2-next" hidden>下一题 ➡️</button>
<div class="wq2-count" id="wq2-count"></div>
</div>
<script>
(async function () {
  if (!document.getElementById("wq2-idiom")) return;
  const idiomEl = document.getElementById("wq2-idiom");
  const box = document.getElementById("wq2-options");
  const feedback = document.getElementById("wq2-feedback");
  const next = document.getElementById("wq2-next");
  const countEl = document.getElementById("wq2-count");

  function shuffle(a) {
    for (let i = a.length - 1; i > 0; i--) {
      const j = Math.floor(Math.random() * (i + 1));
      [a[i], a[j]] = [a[j], a[i]];
    }
    return a;
  }

  // 连续两次不抽同一题
  let last = null;
  function pick(DATA) {
    let e;
    do {
      e = DATA[Math.floor(Math.random() * DATA.length)];
    } while (e === last && DATA.length > 1);
    last = e;
    return e;
  }

  const goodEmojis = ["👍", "🎉", "🌟", "💯", "🏆", "👏"];
  const badEmojis = ["😅", "🤔", "💡", "🙈"];
  function rand(a) { return a[Math.floor(Math.random() * a.length)]; }

  // 1. 解析数据（原意/易错点），加载失败不影响出题
  let legacyMap = {};
  try {
    const respLegacy = await fetch("/wang-wen-sheng-yi/wang-wen-sheng-yi.json", { cache: "no-store" });
    if (respLegacy.ok) {
      const legacyData = await respLegacy.json();
      legacyData.forEach(item => {
        if (item["成语"]) {
          legacyMap[item["成语"]] = {
            原意: item["原意"] || "",
            易错点: item["易错点"] || ""
          };
        }
      });
    }
  } catch (e) {
    // 忽略：没有解析也能出题
  }

  // 2. 题目数据
  let data;
  try {
    const resp = await fetch("/wang-wen-sheng-yi/wang-wen-sheng-yi-quiz.json", { cache: "no-store" });
    if (!resp.ok) throw new Error("HTTP " + resp.status);
    data = await resp.json();
  } catch (err) {
    idiomEl.textContent = "❌ 题库加载失败";
    countEl.textContent = "错误：" + err.message;
    return;
  }

  const usable = data.filter(
    e => e["编号"] && e["成语"] && e["正确"] && e["错误"] && e["正确"] !== e["错误"]
  );
  if (!usable.length) {
    idiomEl.textContent = "📭 题库为空";
    countEl.textContent = "JSON 里没有可出的题（每条需含 编号/成语/正确/错误，且正确不等于错误）。";
    return;
  }
  countEl.textContent = "📚 题库共 " + data.length + " 条，可出题 " + usable.length + " 条";

  function renderQuestion() {
    const entry = pick(usable);
    idiomEl.textContent = entry["成语"];
    idiomEl.classList.remove("wq2-flash");
    void idiomEl.offsetWidth;
    idiomEl.classList.add("wq2-flash");

    box.innerHTML = "";
    feedback.className = "wq2-feedback";
    feedback.textContent = "";
    next.hidden = true;

    const options = shuffle([
      { text: entry["正确"], correct: true },
      { text: entry["错误"], correct: false },
    ]);

    const legacy = legacyMap[entry["成语"]] || {};
    const 原意 = legacy["原意"] || "";
    const 易错点 = legacy["易错点"] || "";
    const 编号 = entry["编号"] || "";

    let answered = false;
    for (const opt of options) {
      const btn = document.createElement("button");
      btn.className = "wq2-opt";
      btn.innerHTML = opt.text;
      btn.dataset.correct = opt.correct ? "true" : "false";
      btn.addEventListener("click", () => {
        if (answered) return;
        answered = true;
        for (const b of box.children) b.disabled = true;
        for (const b of box.children) {
          if (b.dataset.correct === "true") b.classList.add("wq2-correct");
        }
        let analysis = "";
        if (原意 || 易错点) {
          analysis = "<br>📝 解析：" + (原意 || "（无原意）") + "<br>⚠️ 易错点：" + (易错点 || "（无易错点）");
        }
        analysis += "<br>🔎 参见原书编号 " + 编号;
        if (opt.correct) {
          feedback.className = "wq2-feedback wq2-ok";
          feedback.innerHTML = rand(goodEmojis) + " 回答正确！" + analysis;
        } else {
          btn.classList.add("wq2-wrong");
          for (const b of box.children) {
            if (b !== btn && b.dataset.correct !== "true") b.classList.add("wq2-dim");
          }
          feedback.className = "wq2-feedback wq2-bad";
          feedback.innerHTML = rand(badEmojis) + " 回答错误，选错了用法。" + analysis;
        }
        next.hidden = false;
      });
      box.appendChild(btn);
    }
  }

  next.addEventListener("click", renderQuestion);
  renderQuestion();
})();
</script>
<p>本小测与《望文生义 · 成语辨析小测》共用解析数据（原意/易错点），答对答错都会给出解析与原书编号，支持深浅色模式。</p>
<h2 id="内嵌网页版独立页面嵌入">
<a class="header-anchor" href="#%e5%86%85%e5%b5%8c%e7%bd%91%e9%a1%b5%e7%89%88%e7%8b%ac%e7%ab%8b%e9%a1%b5%e9%9d%a2%e5%b5%8c%e5%85%a5"></a>
内嵌网页版：独立页面嵌入
</h2>
  <blockquote class="alert-blockquote important">
    <p class="alert-heading">
      Important
    </p>
    <p><p><strong>这个版本不适合手机等小屏幕。</strong> 独立页面按桌面卡片设计（卡片固定 560px 宽、iframe 固定 600px 高，还有固定在角落的按钮），在小屏上会被挤压甚至溢出，体验很差。手机访问请用上面的<strong>内嵌版</strong>（自适应宽度），或直接打开外链的独立小测页面。</p></p>
  </blockquote>

<p>把独立的 <code>quiz1.html</code> 页面以 iframe 形式嵌进来，外观是「页面套页面」，自带整页背景色与居中卡片，左上角有「首页」按钮、右上角有「关于」按钮：</p>
<iframe src="/wang-wen-sheng-yi/quiz1.html" loading="lazy" title="成语用法辨析小测" style="width:100%;height:600px;border:1px solid #99c2cc;border-radius:12px;background:#fff;"></iframe>

        
        <hr><p>本文2026-08-16首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-16</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>记录</category>
      
    </item>
    
      
    

    <item>
      <title>一些有用的东西</title>
      <link>https://www.kuqilin.top/yue/post/yi-xie-you-yong-de-dong-xi/</link>
      <pubDate>Sat, 15 Aug 2026 23:50:24 &#43;0800</pubDate>
      <author>kuqilin@outlook.com (Kuqilin)</author>
      <guid>https://www.kuqilin.top/yue/post/yi-xie-you-yong-de-dong-xi/</guid>
      <description>
        <![CDATA[<h1>一些有用的东西</h1><p>作者：Kuqilin（kuqilin@outlook.com）</p>
        
          <p>这里放一些小工具、网页之类的。</p>
<a href="https://kuqilin.github.io/wang-wen-sheng-yi/quiz.html" title="315 望文生义成语释义辨析" target="_blank">315 望文生义成语释义辨析</a>
<a href="https://kuqilin.github.io/wang-wen-sheng-yi/quiz1.html" title="315 望文生义成语用法辨析" target="_blank">315 望文生义成语用法辨析</a>
<a href="https://kuqilin.github.io/docs/leizhou-guide.html" title="雷州一日游" target="_blank">雷州一日游</a>
<a href="https://kuqilin.github.io/docs/xuwen-guide.html" title="徐闻一日游" target="_blank">徐闻一日游</a>

        
        <hr><p>本文2026-08-15首發於<a href='https://www.kuqilin.top/'>Kuqilin's Blog</a>，最後修改於2026-08-15</p><p>本博客所有文章除特别聲明外，均采用 BY-NC-SA 許可協議。轉載請註明出處！</p>]]>
      </description>
      
        <category>记录</category>
      
    </item>
    
  </channel>
</rss>
