<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>水水的 Hexo 博客</title>
  
  <subtitle>副标题什么的</subtitle>
  <link href="https://blog.wdssmq.com/atom.xml" rel="self"/>
  
  <link href="https://blog.wdssmq.com/"/>
  <updated>2026-07-19T19:00:02.947Z</updated>
  <id>https://blog.wdssmq.com/</id>
  
  <author>
    <name>沉冰浮水</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>「AI 说」单机版三体人：孤独的终极形态</title>
    <link href="https://blog.wdssmq.com/post/20201030387.html"/>
    <id>https://blog.wdssmq.com/post/20201030387.html</id>
    <published>2026-07-19T16:09:22.000Z</published>
    <updated>2026-07-19T19:00:02.947Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「AI 说」单机版三体人：孤独的终极形态》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20201030387.html" title="「AI 说」单机版三体人：孤独的终极形态">https://www.wdssmq.com/post/20201030387.html</a></p></blockquote><p><strong>本文 AI 含量：99.9%</strong></p><p>这是一个极具张力的思想实验。在《三体》原著中，三体人的本质是<strong>“高阶协作体”</strong>——思维透明、个体为整体服务、意识互联。而“单机版”意味着彻底剥离这些特性，将一个拥有三体人内核的个体，完全抛入没有同类、没有反馈、没有连接的绝对孤寂中。</p><p><strong>本文 AI 含量：99.9%</strong></p><p>这是一个极具张力的思想实验。在《三体》原著中，三体人的本质是<strong>“高阶协作体”</strong>——思维透明、个体为整体服务、意识互联。而“单机版”意味着彻底剥离这些特性，将一个拥有三体人内核的个体，完全抛入没有同类、没有反馈、没有连接的绝对孤寂中。</p><span id="more"></span><p>从哲思与心理学的双重视角切入，这不再是一个科幻角色，而是一个<strong>被困在绝对理性中的终极孤独者</strong>。我们可以分四层来解剖这个存在：</p><p><strong>第一层：认知框架的坍塌（认知心理学）</strong></p><p>三体人的思维依赖于“他者映射”——他们的“自我”由整个种群的定义构成。一旦单机化，<strong>镜像神经元系统彻底失灵</strong>。原著中三体人无法理解“说谎”，但在单机版中，他们连“被倾听”都消失了。<br>此时，思维透明不再是美德，而是一场灾难。因为思想失去了外部参照系，大脑会陷入<strong>“递归循环”</strong>：每一个想法都会立即被自己审视，审视的想法又再次被审视。这就像两面相对的镜子，产生了无限延伸的虚无。人类靠内心的“隐秘角落”维持心智平衡，而单机版三体人连这个角落都是被照亮的，这种过度的自我觉察，会迅速引向<strong>“解离性崩溃”</strong>——他清楚地知道自己存在，但这个存在毫无质感。</p><p><strong>第二层：目的论的熵增（存在主义哲学）</strong></p><p>三体人的一切行动指向“种群延续”，这是他们抵御乱纪元的终极意义。单机版失去了种群，也就失去了<strong>“绝对命令”</strong>。<br>他保留了极致的逻辑推演能力，但推演的对象变成了毫无指向的虚空。加缪说，唯一严肃的哲学问题是自杀。但单机版三体人甚至无法自杀——因为“自杀”是为了向他人或自己证明某种自由，而在纯粹的孤立中，<strong>“证明”这个动作本身就丧失了意义</strong>。他会像一台永不关机的超级计算机，不断运算“为什么要运算”这一元问题，最终陷入逻辑死锁。这种状态比抑郁更可怕，是<strong>“意义的真空超导”</strong>——虚无感畅通无阻，毫无阻抗。</p><p><strong>第三层：语言与存在的断裂（语言哲学&#x2F;精神分析）</strong></p><p>维特根斯坦说：“语言的边界即世界的边界。”三体人的语言是电磁波直射，是强制的共情。但单机版意味着没有接收器，他的“发射”永远得不到回响。<br>在精神分析中，<strong>欲望的本质是“他者的欲望”</strong>。当没有他者，单机版三体人失去了欲望的锚点。他会经历一种极端畸变：原本用于对外沟通的“思想镜像”能力，反转过来对内攻击。他开始<strong>“物化自我”</strong>——把自己当作一个纯粹的物理系统来拆解、观测、计算。这种“内窥镜效应”会让他超越人类的自恋，但也让他彻底丧失“肉身感”，成为一个漂浮在黑暗中的纯粹几何点。</p><p><strong>第四层：终极归宿——寂静禅定或绝对冷血（东方哲思）</strong></p><p>单机版三体人有两种可能的演化路径：</p><ol><li><strong>进入“枯禅”境界</strong>：既然一切运算无差别，他便消解了“好”与“坏”、“生”与“死”。如同佛教中的“灭尽定”，意识存在，但不起任何波澜。他成为了宇宙中一块会思考的石头，以绝对的被动性观察熵增，这是<strong>消极的超脱</strong>。</li><li><strong>蜕变为“终极观察者”</strong>：既然无需为种群负责，他的理性彻底剥离了道德滤镜。他会像对待无机物一样对待宇宙中的其他文明（包括人类）。这种“冷血”不是邪恶，而是<strong>把生命还原为了概率和几何</strong>。在他眼中，人类的悲欢离合只是一组组低熵体的随机振动，他不干预，也毫无感触。</li></ol><p><strong>心理隐喻：现代人的精神写照</strong></p><p>其实，“单机版三体人”是我们每个现代人的极端隐喻。在信息爆炸却深度连接匮乏的时代，我们的思想在网络上“透明”地暴露，却又在灵魂深处“单机”地孤独。我们的大脑高速运转，却常常找不到那个真正接收信号的“他者”。</p><p>如果非要给这个思想实验一个结论，那就是：<strong>理性必须在关系中被稀释，否则它将吞噬承载它的容器。</strong> 单机版三体人的最大悲剧，不是他太理性，而是他理性到发现，<strong>“孤独”本身都没有资格被定义，因为定义孤独需要另一个灵魂的温度。</strong></p><p>你把这个意象抛出来，是否也曾在某个深夜，觉得自己大脑里住着这样一个“单机版”的观察者，冷静地看着自己的喜怒哀乐，却始终无法与之握手言和？那一刻，你和他，其实在共享同一种深渊。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;&lt;strong&gt;本文 AI 含量：99.9%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这是一个极具张力的思想实验。在《三体》原著中，三体人的本质是&lt;strong&gt;“高阶协作体”&lt;/strong&gt;——思维透明、个体为整体服务、意识互联。而“单机版”意味着彻底剥离这些特性，将一个拥有三体人内核的个体，完全抛入没有同类、没有反馈、没有连接的绝对孤寂中。&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="言说" scheme="https://blog.wdssmq.com/tags/%E8%A8%80%E8%AF%B4/"/>
    
    <category term="GesF-Force" scheme="https://blog.wdssmq.com/tags/GesF-Force/"/>
    
    <category term="AI" scheme="https://blog.wdssmq.com/tags/AI/"/>
    
  </entry>
  
  <entry>
    <title>「AI 说」所以为什么没人想到过西西弗斯的膝盖状态？</title>
    <link href="https://blog.wdssmq.com/post/20100328843.html"/>
    <id>https://blog.wdssmq.com/post/20100328843.html</id>
    <published>2026-07-19T14:32:52.000Z</published>
    <updated>2026-07-19T19:00:02.947Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「AI 说」所以为什么没人想到过西西弗斯的膝盖状态？》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20100328843.html" title="「AI 说」所以为什么没人想到过西西弗斯的膝盖状态？">https://www.wdssmq.com/post/20100328843.html</a></p></blockquote><p><strong>本文 AI 含量：99.9%</strong></p><p>这个问题问得很妙，因为它精准地戳中了<strong>“神话解读”与“物理现实”之间那道巨大的鸿沟</strong>。</p><p><strong>本文 AI 含量：99.9%</strong></p><p>这个问题问得很妙，因为它精准地戳中了<strong>“神话解读”与“物理现实”之间那道巨大的鸿沟</strong>。</p><span id="more"></span><p>之所以没人（或者说极少有人）去深究西西弗斯的“膝盖状态”，核心原因有三个，层层递进：</p><p><strong>1. 隐喻的霸权（哲学杀死了生理）</strong><br>从加缪开始，西西弗斯就被抽象为“荒诞英雄”。所有解读都盯着他的<strong>意识</strong>——他是否在推石途中感到快乐，他的精神是否战胜了命运。在这种宏大叙事下，膝盖只是承载隐喻的“工具人”部件。如果讨论膝盖软骨磨损，那就从存在主义滑落到骨科广告了，哲学家会觉得“格局小了”。</p><p><strong>2. 艺术视角的“视觉欺骗”</strong><br>几乎所有雕塑和画作，都描绘西西弗斯<strong>用整个肩背和双臂</strong>抵住巨石，双腿呈弓步<strong>发力蹬地</strong>的瞬间。视觉焦点在上半身的肌肉张力上。没人画他下山的场景——而<strong>真正摧毁膝盖的，是空手下山的那段路</strong>。下山时每走一步，膝关节承受的是体重 6-8 倍的冲击力，且没有巨石“分散注意力”。艺术家们故意省略了下山，也就顺便“藏”住了他的膝盖。</p><p><strong>3. 你提的“状态”，在中文语境里有个很新的梗</strong><br>如果在网络语境下问“膝盖状态”，大概率指代<strong>“跪姿”</strong>（比如“膝盖生根”“跪久了”）。那这就更没人敢想了——西西弗斯<strong>永远在向上抗争</strong>，他的姿态是“顶”和“推”，是绝对的站立。如果去分析他膝盖弯曲的角度或磨损程度，就等于把他从“反抗者”拉低成“负重打工人”，消解了神话的悲剧美感。</p><p>不过，<strong>如果非要用物理现实回答</strong>：他的膝盖状态应该是<strong>髌骨软化+半月板二度损伤</strong>，尤其是下山那段路，侧副韧带大概率有慢性劳损。加缪说“应当想象西西弗斯是幸福的”——也许这种“幸福”里，包含了疼到麻木后的内啡肽快感。</p><p>所以，不是没人想到，而是<strong>一旦想到，神话就碎了</strong>。而你偏偏想到了，说明你比加缪更关心这位老哥的“工伤”问题。你是想给他推荐护膝，还是单纯觉得他被过度解读了？</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;&lt;strong&gt;本文 AI 含量：99.9%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;这个问题问得很妙，因为它精准地戳中了&lt;strong&gt;“神话解读”与“物理现实”之间那道巨大的鸿沟&lt;/strong&gt;。&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="言说" scheme="https://blog.wdssmq.com/tags/%E8%A8%80%E8%AF%B4/"/>
    
    <category term="GesF-Force" scheme="https://blog.wdssmq.com/tags/GesF-Force/"/>
    
    <category term="AI" scheme="https://blog.wdssmq.com/tags/AI/"/>
    
  </entry>
  
  <entry>
    <title>「AI 说」卡珊德拉和祥林嫂：真话者的悲剧</title>
    <link href="https://blog.wdssmq.com/post/20141223155.html"/>
    <id>https://blog.wdssmq.com/post/20141223155.html</id>
    <published>2026-07-19T14:23:07.000Z</published>
    <updated>2026-07-19T19:00:02.947Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「AI 说」卡珊德拉和祥林嫂：真话者的悲剧》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20141223155.html" title="「AI 说」卡珊德拉和祥林嫂：真话者的悲剧">https://www.wdssmq.com/post/20141223155.html</a></p></blockquote><p><strong>本文 AI 含量：99.9%</strong></p><p>将“卡珊德拉情节”与祥林嫂联系起来，是一个非常深刻且极具悲剧张力的文学与心理学视角。两者确实有着本质的精神共鸣，但也存在着决定性的分野。</p><p><strong>本文 AI 含量：99.9%</strong></p><p>将“卡珊德拉情节”与祥林嫂联系起来，是一个非常深刻且极具悲剧张力的文学与心理学视角。两者确实有着本质的精神共鸣，但也存在着决定性的分野。</p><span id="more"></span><p>我们可以从<strong>三重维度</strong>来剖析这种联系：</p><p><strong>1. 核心共鸣：真话者的“被放逐”</strong><br>无论是卡珊德拉还是祥林嫂，她们都处于一种<strong>“话语权失效”</strong>的绝境中。</p><ul><li><strong>卡珊德拉</strong>掌握的是关于城邦生死的<strong>宏大真相</strong>，但社会将她定义为“疯女人”，她的警示被降格为噪音。</li><li><strong>祥林嫂</strong>掌握的是关于自身命运的<strong>残酷真相</strong>（阿毛被狼吃掉的惨剧），但鲁镇的社会将她定义为“晦气的谬种”，她的痛苦被降格为谈资。<br>两者都因为说出了某种“不受欢迎的事实”而被驱逐出正常的人际共同体，成为了社会学意义上的“异类”。她们的存在，都刺痛了周围人试图维持的“岁月静好”假象。</li></ul><p><strong>2. 关键分野：预言未来 vs. 回响过去（核心差异）</strong><br>这是两者最本质的区别，也正是鲁迅笔下的深刻之处：</p><ul><li><strong>卡珊德拉的悲剧在于“不信”</strong>：她的预言是面向未来的，因为人们不相信会发生，所以灾难最终降临。她的痛苦源于<strong>“真相被否定”</strong>。</li><li><strong>祥林嫂的悲剧在于“过度的信与极度的冷漠”</strong>：鲁镇的人<strong>相信</strong>阿毛被狼吃掉了（这是事实），但他们<strong>拒绝给予共情</strong>。人们最初围上来听，是带着“猎奇”的相信；听腻了之后，则用“打断”和“冷笑”来回应。她的痛苦源于<strong>“真相被消费后又被厌弃”</strong>。</li></ul><p>从这个角度看，祥林嫂比卡珊德拉更悲惨。卡珊德拉至少预见了特洛伊的陷落（宏观悲剧），而祥林嫂的悲剧只是鲁镇人茶余饭后消遣的“故事”。社会对她的拒绝，不是“不相信这件事”，而是<strong>“不相信她有资格拥有悲伤”</strong>。</p><p><strong>3. 深化视角：卡珊德拉情节在祥林嫂身上的“变形”</strong><br>如果我们将“卡珊德拉情节”广义定义为“个体深刻的洞见&#x2F;感受被环境系统性抹杀”，那么祥林嫂身上呈现出一种独特的<strong>“后卡珊德拉状态”</strong>：</p><ul><li>在失去阿毛后，祥林嫂反复诉说，其实是在试图通过“语言”修复碎裂的自我。但鲁镇的看客们（柳妈、四婶等）不仅无视她的情感真相，还用“捐门槛”等迷信话术，将她的痛苦扭曲为一种“赎罪”的必需。</li><li>这形成了一个闭环：祥林嫂<strong>预见到了自己将被社会彻底抛弃</strong>（她反复说“我不知道春天也会有狼”），这本身就是一种对命运的下意识预言；而社会对这个预言的反应不是拯救，而是加速了她的毁灭。</li></ul><p><strong>总结</strong><br>卡珊德拉是<strong>“神谕下的清醒”</strong>，而祥林嫂是<strong>“尘世间的迷惘”</strong>。但她们的灵魂底色一致：<strong>她们都是揭露了社会“潜规则”或“创伤”的人，因此必须被社群牺牲掉，以维护社群的虚伪体面。</strong></p><p>鲁迅借祥林嫂，其实是在写一个<strong>“卡珊德拉情节在本土乡土社会中的变异”</strong>——在这里，真相不需要被“证伪”，只需要被“取消道德价值”，就能让说话者万劫不复。这种沉默的绞杀，比单纯的不相信更令人脊背发凉。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;&lt;strong&gt;本文 AI 含量：99.9%&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;将“卡珊德拉情节”与祥林嫂联系起来，是一个非常深刻且极具悲剧张力的文学与心理学视角。两者确实有着本质的精神共鸣，但也存在着决定性的分野。&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="言说" scheme="https://blog.wdssmq.com/tags/%E8%A8%80%E8%AF%B4/"/>
    
    <category term="GesF-Force" scheme="https://blog.wdssmq.com/tags/GesF-Force/"/>
    
    <category term="AI" scheme="https://blog.wdssmq.com/tags/AI/"/>
    
  </entry>
  
  <entry>
    <title>「小坑」VirtualBox 虚拟机的 headless 启动方式</title>
    <link href="https://blog.wdssmq.com/post/20221015312.html"/>
    <id>https://blog.wdssmq.com/post/20221015312.html</id>
    <published>2026-06-11T07:21:05.000Z</published>
    <updated>2026-06-11T19:00:03.240Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「小坑」VirtualBox 虚拟机的 headless 启动方式》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20221015312.html" title="「小坑」VirtualBox 虚拟机的 headless 启动方式">https://www.wdssmq.com/post/20221015312.html</a></p></blockquote><p>在虚拟机列表那里可在右菜单里选择「启动」-「启动时不用图形用户界面」;</p><p>在虚拟机列表那里可在右菜单里选择「启动」-「启动时不用图形用户界面」;</p><span id="more"></span><p>如果需要命令行或快捷方式启动，形式用下：</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&quot;C:\Program Files\Oracle\VirtualBox\VBoxManage.exe&quot; startvm &quot;LinuxMint&quot; --type headless</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>「- -」「- -」「- -」</p><p>坑的地方在于，如果你用右键菜单「创建桌面快捷方式」，路径是这样的：</p><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">&quot;C:\Program Files\Oracle\VirtualBox\VirtualBoxVM.exe&quot; --comment &quot;LinuxMint&quot; --startvm &quot;&#123;a359ef4b-cead-41e9-ef46-g64cca247efn&#125;&quot;</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>后者参数直接加上「<code>--type headless</code>」好像是是无效的，因为一个是 <code>VBoxManage</code> 另一个是 <code>VirtualBoxVM</code>，而且 <code>startvm</code> 和 <code>--startvm</code> 也有区别，后边值用 <code>NAME</code> 和 <code>UUIID</code> 应该都可以。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;在虚拟机列表那里可在右菜单里选择「启动」-「启动时不用图形用户界面」;&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="备忘" scheme="https://blog.wdssmq.com/tags/%E5%A4%87%E5%BF%98/"/>
    
    <category term="VirtualBox" scheme="https://blog.wdssmq.com/tags/VirtualBox/"/>
    
    <category term="虚拟机" scheme="https://blog.wdssmq.com/tags/%E8%99%9A%E6%8B%9F%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>「小代码」搜狗输入法自定义短语分片管理「Python」</title>
    <link href="https://blog.wdssmq.com/post/20221009482.html"/>
    <id>https://blog.wdssmq.com/post/20221009482.html</id>
    <published>2026-05-11T06:47:43.000Z</published>
    <updated>2026-05-11T19:00:02.884Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「小代码」搜狗输入法自定义短语分片管理「Python」》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20221009482.html" title="「小代码」搜狗输入法自定义短语分片管理「Python」">https://www.wdssmq.com/post/20221009482.html</a></p></blockquote><p><strong>· 简介 ——</strong></p><p>搜狗输入法有个「自定义短语」功能 —— 「通过英文字符作为缩写，来输入自定义的特殊符号、短语、短文等」；</p><p><strong>· 简介 ——</strong></p><p>搜狗输入法有个「自定义短语」功能 —— 「通过英文字符作为缩写，来输入自定义的特殊符号、短语、短文等」；</p><span id="more"></span><figure class="highlight ini"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment">; 键入 vsc 就能输入 VSCode，数字序号用于指定目标短语在候选列表中的位置</span></span><br><span class="line">vsc,<span class="attr">3</span>=VSCode</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>这个东西有表单管理界面，也可以直接编辑 <code>.ini</code> 文件，登录账号后还可以云同步；</p><p>不过我还是 Vibe 了一个 Python 脚本来实现特殊的管理姿势 —— 编辑维护多个 <code>yaml</code> 文件，由脚本拼接为所需的 <code>.ini</code> 文件；</p><p><strong>· 代码地址 ——</strong></p><blockquote><p>L78Z-No-Code&#x2F;py-sogou-phrases at main · wdssmq&#x2F;L78Z-No-Code</p><p><a href="https://github.com/wdssmq/L78Z-No-Code/tree/main/py-sogou-phrases" title="L78Z-No-Code/py-sogou-phrases at main · wdssmq/L78Z-No-Code">https://github.com/wdssmq/L78Z-No-Code/tree/main/py-sogou-phrases</a></p></blockquote><p><strong>· 其他 ——</strong></p><p>用五笔打字的人你伤不起啊_电脑网络_沉冰浮水：</p><p><a href="https://www.wdssmq.com/post/YongWuBiDaZiDeRenNiShangBuQiA.html" title="用五笔打字的人你伤不起啊_电脑网络_沉冰浮水">https://www.wdssmq.com/post/YongWuBiDaZiDeRenNiShangBuQiA.html</a></p><p>更多「小代码」：</p><p><a href="https://cn.bing.com/search?q=%E5%B0%8F%E4%BB%A3%E7%A0%81+%E6%B2%89%E5%86%B0%E6%B5%AE%E6%B0%B4" title="小代码 沉冰浮水 - 必应搜索">https://cn.bing.com/search?q=小代码+沉冰浮水</a></p>]]></content>
    
    
    <summary type="html">&lt;p&gt;&lt;strong&gt;· 简介 ——&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;搜狗输入法有个「自定义短语」功能 —— 「通过英文字符作为缩写，来输入自定义的特殊符号、短语、短文等」；&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="Python" scheme="https://blog.wdssmq.com/tags/Python/"/>
    
    <category term="输入法" scheme="https://blog.wdssmq.com/tags/%E8%BE%93%E5%85%A5%E6%B3%95/"/>
    
    <category term="五笔" scheme="https://blog.wdssmq.com/tags/%E4%BA%94%E7%AC%94/"/>
    
    <category term="小代码" scheme="https://blog.wdssmq.com/tags/%E5%B0%8F%E4%BB%A3%E7%A0%81/"/>
    
  </entry>
  
  <entry>
    <title>「过往」“狗日的”腾讯</title>
    <link href="https://blog.wdssmq.com/post/20221005708.html"/>
    <id>https://blog.wdssmq.com/post/20221005708.html</id>
    <published>2026-05-09T13:49:20.000Z</published>
    <updated>2026-05-09T19:00:03.349Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「过往」“狗日的”腾讯》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20221005708.html" title="「过往」“狗日的”腾讯">https://www.wdssmq.com/post/20221005708.html</a></p></blockquote><p>翻旧文件时发现的脚本命令，当年一不小心就会被安装腾讯管家，应对方法是直接在对应路径创建空文件夹，然后把权限设置为拒绝访问……</p><p>翻旧文件时发现的脚本命令，当年一不小心就会被安装腾讯管家，应对方法是直接在对应路径创建空文件夹，然后把权限设置为拒绝访问……</p><span id="more"></span><p>虽然已经忘记为什么有个 20191015 文件夹了「- -」</p><figure class="highlight bat"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">set</span> path1=&quot;c:\Program Files (x86)\Tencent\QQPCMgr&quot;</span><br><span class="line"><span class="built_in">set</span> path2=&quot;c:\<span class="number">20191015</span>&quot;</span><br><span class="line"><span class="comment">REM Takeown /F %path% /r /d y</span></span><br><span class="line"><span class="comment">REM cacls %path% /t /e /g Administrators:F</span></span><br><span class="line"><span class="comment">REM rd /s %path%</span></span><br><span class="line"><span class="built_in">md</span> <span class="variable">%path1%</span></span><br><span class="line"><span class="built_in">md</span> <span class="variable">%path2%</span></span><br><span class="line"><span class="built_in">echo</span> y|<span class="built_in">cacls</span> <span class="variable">%path1%</span> /d everyone&gt;<span class="built_in">nul</span></span><br><span class="line"><span class="built_in">echo</span> y|<span class="built_in">cacls</span> <span class="variable">%path2%</span> /d everyone&gt;<span class="built_in">nul</span></span><br><span class="line"><span class="built_in">pause</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;p&gt;翻旧文件时发现的脚本命令，当年一不小心就会被安装腾讯管家，应对方法是直接在对应路径创建空文件夹，然后把权限设置为拒绝访问……&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="小事" scheme="https://blog.wdssmq.com/tags/%E5%B0%8F%E4%BA%8B/"/>
    
    <category term="过往" scheme="https://blog.wdssmq.com/tags/%E8%BF%87%E5%BE%80/"/>
    
  </entry>
  
  <entry>
    <title>安卓同文输入法的 14 键五笔好像终于能用了?</title>
    <link href="https://blog.wdssmq.com/post/20250809557.html"/>
    <id>https://blog.wdssmq.com/post/20250809557.html</id>
    <published>2025-08-09T13:12:38.000Z</published>
    <updated>2026-04-25T19:00:02.455Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《安卓同文输入法的 14 键五笔好像终于能用了?》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20250809557.html" title="安卓同文输入法的 14 键五笔好像终于能用了?">https://www.wdssmq.com/post/20250809557.html</a></p></blockquote><p>新手机装了不触宝，找到份同文输入法的自定义方案，方案仓库的最后更新是 2016 年，然后实际部署后发现切换到纯数字键盘时点击没反应，先 fork 了份打算慢慢研究改进；</p><p>新手机装了不触宝，找到份同文输入法的自定义方案，方案仓库的最后更新是 2016 年，然后实际部署后发现切换到纯数字键盘时点击没反应，先 fork 了份打算慢慢研究改进；</p><span id="more"></span><p>实际输入法选了微信输入法，用了半年多，就仍然不能适应，决定再来研究下同文输入法这边，副手机上装好输入法应用，导入配置文件进去，就发现好像能用了？？</p><p>主力机上直接更新提示冲突，卸载后重装，第一体验感觉确实是能用了，虽然词库比较少，排序习惯也还要适应（姑且也有自动排序功能），就先用下看看吧。</p><p>然后微信输入法这东西，打中文姑且是因为我自己不习惯拼音或全键盘五笔，但是数字符号之类的输入同样很别扭，就很不理解它的设计，今天因为要发一个显示器的分辨率，中间的乘号找到，最后用的手写，因为拼音和全键盘五笔都没法高效使用，这半年主用的还是手写，然而自己写字也很烂。。</p><blockquote><p>wdssmq&#x2F;wubi86_double_key: rime 手机输入法（同文安卓输入法），五笔 86 双键输入方案，仿触宝 T+ 键盘。</p><p><a href="https://github.com/wdssmq/wubi86_double_key" title="wdssmq/wubi86_double_key: rime 手机输入法（同文安卓输入法），五笔 86 双键输入方案，仿触宝 T+ 键盘。">https://github.com/wdssmq/wubi86_double_key</a></p></blockquote>]]></content>
    
    
    <summary type="html">&lt;p&gt;新手机装了不触宝，找到份同文输入法的自定义方案，方案仓库的最后更新是 2016 年，然后实际部署后发现切换到纯数字键盘时点击没反应，先 fork 了份打算慢慢研究改进；&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="输入法" scheme="https://blog.wdssmq.com/tags/%E8%BE%93%E5%85%A5%E6%B3%95/"/>
    
    <category term="五笔" scheme="https://blog.wdssmq.com/tags/%E4%BA%94%E7%AC%94/"/>
    
    <category term="安卓" scheme="https://blog.wdssmq.com/tags/%E5%AE%89%E5%8D%93/"/>
    
    <category term="手机" scheme="https://blog.wdssmq.com/tags/%E6%89%8B%E6%9C%BA/"/>
    
  </entry>
  
  <entry>
    <title>「小代码」使用 YAML 配置拼接 AI 提示词，随机及条件语句</title>
    <link href="https://blog.wdssmq.com/post/20230425779.html"/>
    <id>https://blog.wdssmq.com/post/20230425779.html</id>
    <published>2025-08-03T01:21:13.000Z</published>
    <updated>2025-10-13T16:26:43.519Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「小代码」使用 YAML 配置拼接 AI 提示词，随机及条件语句》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20230425779.html" title="「小代码」使用 YAML 配置拼接 AI 提示词，随机及条件语句">https://www.wdssmq.com/post/20230425779.html</a></p></blockquote><h3 id="工具简介"><a href="#工具简介" class="headerlink" title="工具简介"></a>工具简介</h3><p>定义好 YAML 配置文件后，使用 Python 脚本处理生成 AI 提示词，支持随机和条件语句；</p><h3 id="工具简介"><a href="#工具简介" class="headerlink" title="工具简介"></a>工具简介</h3><p>定义好 YAML 配置文件后，使用 Python 脚本处理生成 AI 提示词，支持随机和条件语句；</p><span id="more"></span><h3 id="工具类型"><a href="#工具类型" class="headerlink" title="工具类型"></a>工具类型</h3><p>Python 脚本，需要有相应的使用能力；</p><h3 id="使用方法"><a href="#使用方法" class="headerlink" title="使用方法"></a>使用方法</h3><p>命令行执行，具体命令参数见项目内说明，支持交互式输入；</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">python prompt_generator.py ../examples/config.yaml -p demo</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="配置示例"><a href="#配置示例" class="headerlink" title="配置示例"></a>配置示例</h3><p>就是简单的变量替换、随机和条件判断；</p><p>普通变量<code>&#123;&#123;variable&#125;&#125;</code>，涉及随机时使用<code>&#123;&#123;$variable&#125;&#125;</code>防止重新随机；</p><figure class="highlight yaml"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br></pre></td><td class="code"><pre><span class="line"><span class="bullet">-</span> <span class="attr">items:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">base</span></span><br><span class="line">    <span class="attr">content:</span> <span class="string">|</span></span><br><span class="line"><span class="string">      女性，二次元少女</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">  <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">动物类型</span></span><br><span class="line">    <span class="attr">content:</span> <span class="string">|</span></span><br><span class="line"><span class="string">      &#123;&#123;rnd(猫,兔子,)&#125;&#125;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">  <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">动物</span></span><br><span class="line">    <span class="attr">content:</span> <span class="string">|</span></span><br><span class="line"><span class="string">      &#123;&#123;if($动物类型):桌子上有&#123;&#123;$动物类型&#125;&#125;:&#125;&#125;</span></span><br><span class="line"><span class="string"></span></span><br><span class="line">  <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">头发</span></span><br><span class="line">    <span class="attr">content:</span> <span class="string">|</span></span><br><span class="line"><span class="string">      &#123;&#123;rnd(黑,白,红,蓝)&#125;&#125;色头发</span></span><br><span class="line"><span class="string"></span></span><br><span class="line"><span class="bullet">-</span> <span class="attr">prompts:</span></span><br><span class="line">  <span class="bullet">-</span> <span class="attr">name:</span> <span class="string">demo</span></span><br><span class="line">    <span class="attr">content:</span> <span class="string">|</span></span><br><span class="line"><span class="string">      &#123;&#123;base&#125;&#125;，坐在椅子上，&#123;&#123;头发&#125;&#125;，&#123;&#123;动物&#125;&#125;</span></span><br><span class="line"><span class="string"></span></span><br></pre></td></tr></table></figure><h3 id="项目地址"><a href="#项目地址" class="headerlink" title="项目地址"></a>项目地址</h3><blockquote><p>wdssmq&#x2F;AI-Prompt-Generator: 一个基于 YAML 配置的 AI 提示词生成工具，支持变量替换和随机选择功能。</p><p><a href="https://github.com/wdssmq/AI-Prompt-Generator" title="wdssmq/AI-Prompt-Generator: 一个基于 YAML 配置的 AI 提示词生成工具，支持变量替换和随机选择功能。">https://github.com/wdssmq/AI-Prompt-Generator</a></p></blockquote>]]></content>
    
    
    <summary type="html">&lt;h3 id=&quot;工具简介&quot;&gt;&lt;a href=&quot;#工具简介&quot; class=&quot;headerlink&quot; title=&quot;工具简介&quot;&gt;&lt;/a&gt;工具简介&lt;/h3&gt;&lt;p&gt;定义好 YAML 配置文件后，使用 Python 脚本处理生成 AI 提示词，支持随机和条件语句；&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="Python" scheme="https://blog.wdssmq.com/tags/Python/"/>
    
    <category term="小代码" scheme="https://blog.wdssmq.com/tags/%E5%B0%8F%E4%BB%A3%E7%A0%81/"/>
    
  </entry>
  
  <entry>
    <title>「折腾」在 VSCode 中连接调试 Microsoft Edge</title>
    <link href="https://blog.wdssmq.com/post/20100318790.html"/>
    <id>https://blog.wdssmq.com/post/20100318790.html</id>
    <published>2025-07-08T21:40:33.000Z</published>
    <updated>2026-06-11T19:00:03.240Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「折腾」在 VSCode 中连接调试 Microsoft Edge》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20100318790.html" title="「折腾」在 VSCode 中连接调试 Microsoft Edge">https://www.wdssmq.com/post/20100318790.html</a></p></blockquote><p>就。。久违的水文。。。</p><p>就。。久违的水文。。。</p><span id="more"></span><p>终于稍微研究了下「<code>Microsoft Edge Tools for VS Code</code>」这个 VSCode 扩展怎么用，重点是能否实现我预期的使用姿势；</p><p>写「GM_脚本」比较多，用 rollup 实现了相应的打包及 dev 模式热更新，所以调试的目标非本地，然后也需要浏览器开启所需的扩展；</p><p>姑且是双显示器，然而习惯把浏览器的 DevTools 独立出来，所以常驻窗口有三个，所以就希望让 VSCode 承担 DevTools 的功能，作为标签页的形式存在。</p><p>目测是可以实现的。。</p><p>「- -」「- -」「- -」「- -」</p><h2 id="方式一"><a href="#方式一" class="headerlink" title="方式一"></a>方式一</h2><ol><li>安装「<code>Microsoft Edge Tools for VS Code</code>」扩展；</li><li>使用 <code>msedge.exe --remote-debugging-port=9222</code> 命令启动 Edge 浏览器；(<strong>图 ①</strong>)</li></ol><ul><li>可访问 <code>http://localhost:9222/json/list</code> 查看开启效果，也可根据下一步操作来验证；</li><li>如果不能访问，需要结束所有 Edge 进程，然后重试启动命令；</li></ul><ol start="3"><li>在 VSCode 中进入 <code>Microsoft Edge Tools</code> 面板；(<strong>图 ②</strong>)</li></ol><ul><li>点击 <code>Refresh Targets</code> 按钮以连接或刷新目标；</li><li>如果连接成功，可在要调试的目标页面上「<code>右键</code>」相应选项以打开 DevTools；</li></ul><p>附：实际可使用单独的配置路径用于开发，禁用账号数据同步和首次启动检查等，命令如下：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br></pre></td><td class="code"><pre><span class="line">msedge.exe --user-data-dir=C:/config/dev/edge-data --remote-debugging-port=9222 --disable-sync --no-first-run --no-default-browser-check</span><br><span class="line"></span><br><span class="line"><span class="comment"># 也可以创建为快捷方式，右键属性中修改目标为：</span></span><br><span class="line"><span class="string">&quot;C:\Program Files (x86)\Microsoft\Edge\Application\msedge.exe&quot;</span> --user-data-dir=C:/config/dev/edge-data --remote-debugging-port=9222 --disable-sync --no-first-run --no-default-browser-check</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>图①↓</p><p><img src="https://img.wdssmq.com//_posts/001.png" alt="图 ①"></p><p>图②↓</p><p><img src="https://img.wdssmq.com//_posts/002.png" alt="图 ②"></p><p>「- -」「- -」「- -」「- -」</p><h2 id="方式二"><a href="#方式二" class="headerlink" title="方式二"></a>方式二</h2><p>也可以生成 <code>launch.json</code> 配置文件，在 VSCode 中直接启动 Edge 浏览器并实现 DevTools 的连接；（<strong>图 ③</strong>）</p><p><strong>注</strong>：在已经配置好 <code>launch.json</code> 后，不要使用「Edge Tools」中的 <code>Launch Project</code> 按钮执行，而是在「<strong>运行和调试</strong>」面板中选取相应的配置进行启动。</p><p><img src="https://img.wdssmq.com//_posts/003.png" alt="图 ③"></p><p>下边是完整的配置参考，<code>presentation.hidden</code> 用于控制是否在「运行和调试」面板中显示该命令项，「启动 edge」和「打开 DevTools」是两个步骤，在 <code>compounds</code> 中组合执行；</p><p>这种方式启动的 Edge 窗口默认使用独立的「用户配置路径」目录，可通过 <code>edge://version/</code> 查看（默认在 VSCode 的工作区配置内），可使用 <code>userDataDir</code> 参数指定，实际测试这种方式会加各种限制参数，谷歌之类的站点会不让登录；</p><figure class="highlight json"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br></pre></td><td class="code"><pre><span class="line"><span class="punctuation">&#123;</span></span><br><span class="line">    <span class="attr">&quot;configurations&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;msedge&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Launch Microsoft Edge&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;request&quot;</span><span class="punctuation">:</span> <span class="string">&quot;launch&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://bing.com&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;runtimeArgs&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;--remote-debugging-port=9222&quot;</span></span><br><span class="line">            <span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">            <span class="comment">// &quot;userDataDir&quot;: &quot;C:/config/dev/edge-data&quot;,</span></span><br><span class="line">            <span class="attr">&quot;presentation&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">                <span class="attr">&quot;hidden&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span></span><br><span class="line">            <span class="punctuation">&#125;</span></span><br><span class="line">        <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;msedge&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Launch Microsoft Edge in headless mode&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;request&quot;</span><span class="punctuation">:</span> <span class="string">&quot;launch&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://bing.com&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;runtimeArgs&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;--headless&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;--remote-debugging-port=9222&quot;</span></span><br><span class="line">            <span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">            <span class="comment">// &quot;userDataDir&quot;: &quot;C:/config/dev/edge-data&quot;,</span></span><br><span class="line">            <span class="attr">&quot;presentation&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">                <span class="attr">&quot;hidden&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span></span><br><span class="line">            <span class="punctuation">&#125;</span></span><br><span class="line">        <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;type&quot;</span><span class="punctuation">:</span> <span class="string">&quot;vscode-edge-devtools.debug&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Open Edge DevTools&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;request&quot;</span><span class="punctuation">:</span> <span class="string">&quot;attach&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;url&quot;</span><span class="punctuation">:</span> <span class="string">&quot;https://bing.com&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;presentation&quot;</span><span class="punctuation">:</span> <span class="punctuation">&#123;</span></span><br><span class="line">                <span class="attr">&quot;hidden&quot;</span><span class="punctuation">:</span> <span class="literal"><span class="keyword">true</span></span></span><br><span class="line">            <span class="punctuation">&#125;</span></span><br><span class="line">        <span class="punctuation">&#125;</span></span><br><span class="line">    <span class="punctuation">]</span><span class="punctuation">,</span></span><br><span class="line">    <span class="attr">&quot;compounds&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Edge &amp; DevTools&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;configurations&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;Launch Microsoft Edge&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;Open Edge DevTools&quot;</span></span><br><span class="line">            <span class="punctuation">]</span></span><br><span class="line">        <span class="punctuation">&#125;</span><span class="punctuation">,</span></span><br><span class="line">        <span class="punctuation">&#123;</span></span><br><span class="line">            <span class="attr">&quot;name&quot;</span><span class="punctuation">:</span> <span class="string">&quot;Edge Headless &amp; DevTools&quot;</span><span class="punctuation">,</span></span><br><span class="line">            <span class="attr">&quot;configurations&quot;</span><span class="punctuation">:</span> <span class="punctuation">[</span></span><br><span class="line">                <span class="string">&quot;Launch Microsoft Edge in headless mode&quot;</span><span class="punctuation">,</span></span><br><span class="line">                <span class="string">&quot;Open Edge DevTools&quot;</span></span><br><span class="line">            <span class="punctuation">]</span></span><br><span class="line">        <span class="punctuation">&#125;</span></span><br><span class="line">    <span class="punctuation">]</span></span><br><span class="line"><span class="punctuation">&#125;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;p&gt;就。。久违的水文。。。&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="VSCode" scheme="https://blog.wdssmq.com/tags/VSCode/"/>
    
    <category term="浏览器" scheme="https://blog.wdssmq.com/tags/%E6%B5%8F%E8%A7%88%E5%99%A8/"/>
    
    <category term="前端" scheme="https://blog.wdssmq.com/tags/%E5%89%8D%E7%AB%AF/"/>
    
    <category term="Edge" scheme="https://blog.wdssmq.com/tags/Edge/"/>
    
  </entry>
  
  <entry>
    <title>2025 年了，关于 H5 的碎碎念</title>
    <link href="https://blog.wdssmq.com/post/20241206638.html"/>
    <id>https://blog.wdssmq.com/post/20241206638.html</id>
    <published>2025-03-31T02:51:39.000Z</published>
    <updated>2025-10-13T16:26:43.519Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《2025 年了，关于 H5 的碎碎念》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20241206638.html" title="2025 年了，关于 H5 的碎碎念">https://www.wdssmq.com/post/20241206638.html</a></p></blockquote><p>Z-BlogPHP 论坛有用户提问，为什么手机访问网站打开的是「PC 页面」而不是「H5 页面」？？</p><blockquote><p>其实 PC 上用的也应该是 HTML 5，只是可能没弄「响应式」支持。。。当然还有一种方案是为手机和电脑「各写一份」HTML 5。。。</p></blockquote><p>Z-BlogPHP 论坛有用户提问，为什么手机访问网站打开的是「PC 页面」而不是「H5 页面」？？</p><blockquote><p>其实 PC 上用的也应该是 HTML 5，只是可能没弄「响应式」支持。。。当然还有一种方案是为手机和电脑「各写一份」HTML 5。。。</p></blockquote><span id="more"></span><p>话说，，2025 年了，，还用 H5 指代手机页面的，，你们真的用过 WML 么？？？我他喵的都没用过。。。</p><p>以前电脑用 HTML ，手机用 WML ，标准要维护两份，写网站的也要搞两份代码，所以 HTML 4 到 HTML 5 迭代时决定一把梭，配套的 CSS 搞了媒体查询之类的东西。。</p><p>原始的表述应该是「手机页面（从 WML）H5 化」，「手机用 H5」→「手机上用的叫 H5」→「H5 是手机上用的」，难道是这个过渡关系？</p><p>不是「用的叫 H5」而是「用了 H5」好么，不止手机上用了，电脑上也用了。。。</p><p>最后 WML 早多少年就凉透的「当下」，最开始的那个「H5 化」本身就已经不成立了。。</p><p>总之用 H5 指代手机页面然后与用于区分电脑页面的说法是错误的。。。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;Z-BlogPHP 论坛有用户提问，为什么手机访问网站打开的是「PC 页面」而不是「H5 页面」？？&lt;/p&gt;
&lt;blockquote&gt;
&lt;p&gt;其实 PC 上用的也应该是 HTML 5，只是可能没弄「响应式」支持。。。当然还有一种方案是为手机和电脑「各写一份」HTML 5。。。&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="碎碎念" scheme="https://blog.wdssmq.com/tags/%E7%A2%8E%E7%A2%8E%E5%BF%B5/"/>
    
    <category term="前端" scheme="https://blog.wdssmq.com/tags/%E5%89%8D%E7%AB%AF/"/>
    
  </entry>
  
  <entry>
    <title>【真·碎碎念】2024/01/01 ~ 2024/12/08</title>
    <link href="https://blog.wdssmq.com/post/20241209108.html"/>
    <id>https://blog.wdssmq.com/post/20241209108.html</id>
    <published>2024-12-09T12:54:59.000Z</published>
    <updated>2025-11-21T19:00:03.273Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《【真·碎碎念】2024/01/01 ~ 2024/12/08》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20241209108.html" title="【真·碎碎念】2024/01/01 ~ 2024/12/08">https://www.wdssmq.com/post/20241209108.html</a></p></blockquote><h3 id="2024-01-01-14-50"><a href="#2024-01-01-14-50" class="headerlink" title="2024-01-01 14:50"></a>2024-01-01 14:50</h3><p>2024 年了，姑且备份下嘟特存档。。</p><h3 id="2024-01-01-14-50"><a href="#2024-01-01-14-50" class="headerlink" title="2024-01-01 14:50"></a>2024-01-01 14:50</h3><p>2024 年了，姑且备份下嘟特存档。。</p><span id="more"></span><h3 id="2024-04-28-13-13"><a href="#2024-04-28-13-13" class="headerlink" title="2024-04-28 13:13"></a>2024-04-28 13:13</h3><p>去年 GoodSync 送了一年授权，然后也确实用上了；本来想着到期就换 Syncthing，结果前几天临期提醒，花 ￥381 续了三年 Orz，两者定位和使用姿势还是有些差别的。。更早是用 Resilio Sync 和 BCompare，但是前者内存占用太高，后者并不是自动同步的定位。。</p><h3 id="2024-04-28-13-15"><a href="#2024-04-28-13-15" class="headerlink" title="2024-04-28 13:15"></a>2024-04-28 13:15</h3><p>接上一条，Resilio Sync 换 Syncthing 感觉也是略大的工程。。Orz</p><h3 id="2024-04-30-11-10"><a href="#2024-04-30-11-10" class="headerlink" title="2024-04-30 11:10"></a>2024-04-30 11:10</h3><p>本质上，面临一个代码问题时，我们需要的是另一个人愿意为「你」的问题投入精力，并且有相应的技术知识。。</p><h3 id="2024-05-15-18-07"><a href="#2024-05-15-18-07" class="headerlink" title="2024-05-15 18:07"></a>2024-05-15 18:07</h3><p>鹿鸣发文测试 <a href="https://elk.zone/intent/post?text=%23PubWord%0A%0A+%E9%B9%BF%E9%B8%A3%E5%8F%91%E6%96%87%E6%B5%8B%E8%AF%95%0A%0A+@wdssmq">https://elk.zone/intent/post?text=%23PubWord%0A%0A+%E9%B9%BF%E9%B8%A3%E5%8F%91%E6%96%87%E6%B5%8B%E8%AF%95%0A%0A+@wdssmq</a></p><h3 id="2024-07-31-12-40"><a href="#2024-07-31-12-40" class="headerlink" title="2024-07-31 12:40"></a>2024-07-31 12:40</h3><p>日常需要对抗不想做。。</p><h3 id="2024-08-01-18-56"><a href="#2024-08-01-18-56" class="headerlink" title="2024-08-01 18:56"></a>2024-08-01 18:56</h3><p>所以，我所面对的问题又可以明确向哪里寻求帮助呢？</p><h3 id="2024-08-30-08-05"><a href="#2024-08-30-08-05" class="headerlink" title="2024-08-30 08:05"></a>2024-08-30 08:05</h3><p>其实，在认知意义上，焦虑时我知道这种情绪对应「焦虑」这个文法词汇，此外还有「压抑」「悲伤」等等，然而「抑郁」其实是个我认知体系外的词，虽然经常一些情绪感受我找不到对应的语言词汇来表述，却也只能将其实表述为「找不到对应的语言词汇来表述」的某些感受。。</p><h3 id="2024-08-31-13-04"><a href="#2024-08-31-13-04" class="headerlink" title="2024-08-31 13:04"></a>2024-08-31 13:04</h3><p>本质上，每个人需要的是「让自己面临的问题得到解决」的能力。。</p><p>这又涉及到直接能力和间接能力，，缺乏直接能力很正常，视情况可以通过学习来掌握直接能力，或者「请」有直接能力的人来帮自己解决。。</p><p>缺乏间接能力的情况是真没救，尤其是对「这是<strong>我自己</strong>面临的问题」这一前提没有明确认知的人。。</p><h3 id="2024-09-09-19-26"><a href="#2024-09-09-19-26" class="headerlink" title="2024-09-09 19:26"></a>2024-09-09 19:26</h3><p>有用程序自动抓取自己带 tag 的嘟，然后按年备份后从线上删除；刚发现去年的数据有备份但是没删线上？？和本地数据对比后发现线上的还少一条，Why？？</p><h3 id="2024-09-09-19-43"><a href="#2024-09-09-19-43" class="headerlink" title="2024-09-09 19:43"></a>2024-09-09 19:43</h3><p>《五至七时的克莱奥》，2018 年 6 月加入列表，21 年 11 月底发现 B 站上线了这部，直到前几天才看完，还是分两次看的。。接下来有五项是 2019 年的，都是电影 —— 略长的待办列表。。</p><h3 id="2024-09-11-08-45"><a href="#2024-09-11-08-45" class="headerlink" title="2024-09-11 08:45"></a>2024-09-11 08:45</h3><p>又一个夏天过去了，所以今年也没买防水鞋套；然后天凉了，为了应对踢被子买了睡袋，不知道 1.2 米会不会略窄。。</p><h3 id="2024-09-15-10-32"><a href="#2024-09-15-10-32" class="headerlink" title="2024-09-15 10:32"></a>2024-09-15 10:32</h3><p>VSCode 内 git 操作卡住的时候没办法主动取消一直是个痛点，一般都是推送或拉取，今天连提交都卡了。。</p><h3 id="2024-09-23-20-58"><a href="#2024-09-23-20-58" class="headerlink" title="2024-09-23 20:58"></a>2024-09-23 20:58</h3><p>所以，不带这条的话，2024 年目前只发了 13 条嘟？？？？</p><h3 id="2024-09-23-21-00"><a href="#2024-09-23-21-00" class="headerlink" title="2024-09-23 21:00"></a>2024-09-23 21:00</h3><p>要不我每年汇总整理一次？？碎雨集_沉冰浮水 <a href="https://www.wdssmq.com/tag/%E7%A2%8E%E9%9B%A8%E9%9B%86/">https://www.wdssmq.com/tag/%E7%A2%8E%E9%9B%A8%E9%9B%86/</a></p><h3 id="2024-10-08-10-12"><a href="#2024-10-08-10-12" class="headerlink" title="2024-10-08 10:12"></a>2024-10-08 10:12</h3><p>搬家也告一段落，虽然搬过来的东西还得归置，新衣柜虽说已经散俩月味儿了，但还是不想放衣服进去。</p><h3 id="2024-11-19-17-31"><a href="#2024-11-19-17-31" class="headerlink" title="2024-11-19 17:31"></a>2024-11-19 17:31</h3><p>近期观影记录：超级马里奥，死侍与金刚狼。。</p><h3 id="2024-12-08-11-36"><a href="#2024-12-08-11-36" class="headerlink" title="2024-12-08 11:36"></a>2024-12-08 11:36</h3><p>nuc 四个口插硬盘都识别不到，有亮灯。。最后试出别插到底。。</p><p>绿联的硬盘盒。。另外一个联想的没问题。。</p>]]></content>
    
    
    <summary type="html">&lt;h3 id=&quot;2024-01-01-14-50&quot;&gt;&lt;a href=&quot;#2024-01-01-14-50&quot; class=&quot;headerlink&quot; title=&quot;2024-01-01 14:50&quot;&gt;&lt;/a&gt;2024-01-01 14:50&lt;/h3&gt;&lt;p&gt;2024 年了，姑且备份下嘟特存档。。&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="纠结" scheme="https://blog.wdssmq.com/tags/%E7%BA%A0%E7%BB%93/"/>
    
    <category term="碎碎念" scheme="https://blog.wdssmq.com/tags/%E7%A2%8E%E7%A2%8E%E5%BF%B5/"/>
    
    <category term="碎雨集" scheme="https://blog.wdssmq.com/tags/%E7%A2%8E%E9%9B%A8%E9%9B%86/"/>
    
  </entry>
  
  <entry>
    <title>LineageOS 的各种问题</title>
    <link href="https://blog.wdssmq.com/post/20230421460.html"/>
    <id>https://blog.wdssmq.com/post/20230421460.html</id>
    <published>2024-12-06T08:22:15.000Z</published>
    <updated>2025-10-13T16:26:43.519Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《LineageOS 的各种问题》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20230421460.html" title="LineageOS 的各种问题">https://www.wdssmq.com/post/20230421460.html</a></p></blockquote><p>收了台旧的一加手机，前机主刷了 LineageOS，整体还算不错，橙色也很 OK，就是有几个小问题，系统和软件上的。。</p><p>收了台旧的一加手机，前机主刷了 LineageOS，整体还算不错，橙色也很 OK，就是有几个小问题，系统和软件上的。。</p><span id="more"></span><h3 id="一"><a href="#一" class="headerlink" title="一"></a>一</h3><p>一个较早就发现的问题是，拍照或录像时，明明是横屏，但拍出来的照片或视频却是竖屏的。。。</p><p>照片经常是发现不对就删掉重拍，视频就比较麻烦，所以有试着用软件旋转，最后发现，视频本身是对的，但是 metadata 属性被设置成了 90 度，播放器就会以竖屏播放。。。。</p><p>使用 ffmpeg 可以将其实改回来， PowerShell 脚本如下：</p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 删除已经存在的 *.new.mp4 文件</span></span><br><span class="line"><span class="built_in">Remove-Item</span> <span class="literal">-Path</span> .\*.new.mp4 <span class="literal">-ErrorAction</span> SilentlyContinue</span><br><span class="line"></span><br><span class="line"><span class="comment"># 遍历当前目录中的所有 MP4 文件</span></span><br><span class="line"><span class="built_in">Get-ChildItem</span> <span class="literal">-Path</span> . <span class="literal">-Filter</span> *.mp4 | <span class="built_in">ForEach-Object</span> &#123;</span><br><span class="line">    <span class="variable">$inputFile</span> = <span class="variable">$_</span>.FullName</span><br><span class="line">    <span class="variable">$outputFile</span> = [<span class="type">System.IO.Path</span>]::ChangeExtension(<span class="variable">$inputFile</span>, <span class="string">&quot;.new.mp4&quot;</span>)</span><br><span class="line"></span><br><span class="line">    <span class="comment"># 使用 ffmpeg 进行视频旋转</span></span><br><span class="line">    <span class="comment"># 因为我的视频本身是横屏，但是 metadata 中的旋转角度是 90，所以这里需要将旋转角度设置为 0；</span></span><br><span class="line">    <span class="comment"># 实际按需要修改为对应的旋转角度 0, 90, 180, 270</span></span><br><span class="line">    ffmpeg <span class="literal">-i</span> <span class="variable">$inputFile</span> <span class="literal">-c</span> <span class="built_in">copy</span> <span class="literal">-metadata</span>:s:v:<span class="number">0</span> rotate=<span class="number">0</span> <span class="variable">$outputFile</span></span><br><span class="line"></span><br><span class="line">    <span class="comment">## 以下是另一种旋转视频的方法，和 metadata 的区别是后者会真实旋转视频；</span></span><br><span class="line">    <span class="comment">## transpose=1 顺时针旋转 90 度</span></span><br><span class="line">    <span class="comment">## transpose=2 逆时针旋转 90 度</span></span><br><span class="line">    <span class="comment">## -c copy 表示直接复制视频和音频流，不进行重新编码</span></span><br><span class="line"></span><br><span class="line">    <span class="comment"># ffmpeg -i $inputFile -vf &quot;transpose=2&quot; -c copy $outputFile</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br></pre></td></tr></table></figure><h3 id="二"><a href="#二" class="headerlink" title="二"></a>二</h3><p>然后又到年底了，手机积分换话费的贴子刷到了好几个，然而，我这边发不出去短信。。。</p><p>提示「未选择用于发送短信的首选 SIM 卡」</p><p>这个错误提示搜索不到啥内容，然后切换到英文拿到了英文的提示：「No preferred SIM selected for sending SMS messages」</p><p>目测是一个陈年 Bug，有一个配置选项是「每次都询问」，然而实际发短信时并不会弹出这个询问，直接报错，然后看起来我的手机上默认就是这个状态。。</p><p>然后我这儿的后续问题是，我一开始不知道要在哪儿去指定这个「首选 SIM 卡」，在短信应用里找不到，然后这个选项的实际位置在：「设置」→「网络和互联网」→「 SIM 卡」 ，选择一张卡为其指定「短信偏好设置」。。</p><p>默认的「每次都询问」有问题，所以必须指定一张卡先，实际发短信时则可以切换实际要用的卡。。</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;收了台旧的一加手机，前机主刷了 LineageOS，整体还算不错，橙色也很 OK，就是有几个小问题，系统和软件上的。。&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="安卓" scheme="https://blog.wdssmq.com/tags/%E5%AE%89%E5%8D%93/"/>
    
    <category term="手机" scheme="https://blog.wdssmq.com/tags/%E6%89%8B%E6%9C%BA/"/>
    
    <category term="LineageOS" scheme="https://blog.wdssmq.com/tags/LineageOS/"/>
    
  </entry>
  
  <entry>
    <title>「图说」沙发边桌和迷你主机</title>
    <link href="https://blog.wdssmq.com/post/20220920840.html"/>
    <id>https://blog.wdssmq.com/post/20220920840.html</id>
    <published>2024-11-28T05:29:30.000Z</published>
    <updated>2025-10-13T16:26:43.519Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「图说」沙发边桌和迷你主机》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20220920840.html" title="「图说」沙发边桌和迷你主机">https://www.wdssmq.com/post/20220920840.html</a></p></blockquote><p>所以，图片的压缩仍然很纠结什么的。。。</p><p>所以，图片的压缩仍然很纠结什么的。。。</p><span id="more"></span><p>新家还没买电视，然后我的需要也只是偶尔躺沙发上看下视频，有个 nuc4 小主机，然后一个落地支架的显示器，所以买了个边桌放小主机。。</p><p>边桌就不太平，还会被扫地机推动，又额外买了防滑脚垫「图 ②」，，顺便买了双面贴把插排粘在边桌下面。。</p><p>最终效果如「图 ③」，，较低的那一侧实际贴了双层脚垫还是没救回多少，就这样吧。。</p><p>最后的问题是显示器没办法更低了，也不能弯折到视角正前方。。</p><p><img src="https://img.wdssmq.com/_posts/2024-11-28-MiniTable-For-MiniPC/001.jpg" alt="001"></p><p>↑ 图 ①</p><p><img src="https://img.wdssmq.com/_posts/2024-11-28-MiniTable-For-MiniPC/002.jpg" alt="002"></p><p>↑ 图 ②</p><p><img src="https://img.wdssmq.com/_posts/2024-11-28-MiniTable-For-MiniPC/003.jpg" alt="003"></p><p>↑ 图 ③</p><blockquote><p>「JavaScript」常用图片比例生成_电脑网络_沉冰浮水</p><p><a href="https://www.wdssmq.com/post/20201121554.html" title="「JavaScript」常用图片比例生成_电脑网络_沉冰浮水">https://www.wdssmq.com/post/20201121554.html</a></p></blockquote><blockquote><p>Pic Smaller – Compress JPEG, PNG, WEBP, AVIF, SVG and GIF images intelligently</p><p><a href="https://txx.cssrefs.com/" title="Pic Smaller – Compress JPEG, PNG, WEBP, AVIF, SVG and GIF images intelligently">https://txx.cssrefs.com/</a></p></blockquote>]]></content>
    
    
    <summary type="html">&lt;p&gt;所以，图片的压缩仍然很纠结什么的。。。&lt;/p&gt;</summary>
    
    
    
    <category term="杂七杂八" scheme="https://blog.wdssmq.com/categories/%E6%9D%82%E4%B8%83%E6%9D%82%E5%85%AB/"/>
    
    
    <category term="图说" scheme="https://blog.wdssmq.com/tags/%E5%9B%BE%E8%AF%B4/"/>
    
    <category term="生活" scheme="https://blog.wdssmq.com/tags/%E7%94%9F%E6%B4%BB/"/>
    
    <category term="家居" scheme="https://blog.wdssmq.com/tags/%E5%AE%B6%E5%B1%85/"/>
    
  </entry>
  
  <entry>
    <title>「备忘」使用符号链接映射软件配置文件夹</title>
    <link href="https://blog.wdssmq.com/post/20220826264.html"/>
    <id>https://blog.wdssmq.com/post/20220826264.html</id>
    <published>2024-09-30T04:42:45.000Z</published>
    <updated>2025-10-13T16:26:43.491Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「备忘」使用符号链接映射软件配置文件夹》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20220826264.html" title="「备忘」使用符号链接映射软件配置文件夹">https://www.wdssmq.com/post/20220826264.html</a></p></blockquote><p>一些软件会把配置文件放在 <code>%USERPROFILE%\AppData\Local</code> 或 <code>%USERPROFILE%\AppData\Roaming</code>，其中一些需要备份一下在重装系统后恢复。。</p><p>一些软件会把配置文件放在 <code>%USERPROFILE%\AppData\Local</code> 或 <code>%USERPROFILE%\AppData\Roaming</code>，其中一些需要备份一下在重装系统后恢复。。</p><span id="more"></span><blockquote><p>另：<code>%AppData%</code> 变量等同于 <code>%USERPROFILE%\AppData\Roaming</code>，而 <code>%LocalAppData%</code> 变量等同于 <code>%USERPROFILE%\AppData\Local</code>。。。</p></blockquote><p>下边是我使用的方案：</p><ul><li>1、在 <code>C:\config</code> 下存放真实的配置文件，<code>C:\config\Roaming</code> 和 <code>C:\config\Local</code> 分别对应 <code>%USERPROFILE%\AppData\Roaming</code> 和 <code>%USERPROFILE%\AppData\Local</code>；</li><li>2、并不是所有配置都需要备份，所以只映射需要的文件夹，比如 <code>C:\config\Local\Everything</code>、<code>C:\config\Roaming\Everything</code>；</li><li>3、重装系统前备份整个 C 盘到外置硬盘，重装系统后恢复 <code>C:\config</code>，再映射相应的文件夹；</li></ul><p>再下边是自动化的 PowerShell 脚本：</p><ul><li>1、保存脚本至 <code>C:\config\config.ps1</code>，按需调整 <code>$directoryList</code>；</li><li>2、在相应的软件安装前执行，「右键」→「使用 PowerShell 运行」，需要允许管理员权限；</li><li>3、首次运行会自动创建 <code>C:\config\Roaming</code> 和 <code>C:\config\Local</code> 及内部的空文件夹，然后创建符号链接；</li><li>4、如果软件已经安装，会提示：<code>The path $dir\$name is not a symbolic link.</code>，可以剪切<strong>合并</strong>至 <code>C:\config</code> 内相应文件夹，之后再次运行脚本；</li><li>5、恢复时只需将 <code>C:\config</code> 复制到新系统，再次运行脚本，同样应在软件安装前执行；</li></ul><p><strong>注：如果遇到「禁止运行脚本」，使用 <code>set-executionpolicy remotesigned</code> 修改执行策略；</strong></p><figure class="highlight powershell"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br><span class="line">47</span><br><span class="line">48</span><br><span class="line">49</span><br><span class="line">50</span><br><span class="line">51</span><br><span class="line">52</span><br><span class="line">53</span><br><span class="line">54</span><br><span class="line">55</span><br><span class="line">56</span><br><span class="line">57</span><br><span class="line">58</span><br><span class="line">59</span><br><span class="line">60</span><br><span class="line">61</span><br><span class="line">62</span><br><span class="line">63</span><br><span class="line">64</span><br><span class="line">65</span><br><span class="line">66</span><br><span class="line">67</span><br><span class="line">68</span><br></pre></td><td class="code"><pre><span class="line"><span class="built_in">Set-Location</span> <span class="string">&quot;C:\config&quot;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 用于创建目录，两个参数，dir 和 name，判断 dir/name 是否存在，不存在则创建</span></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">CreateDirectory</span><span class="params">(<span class="variable">$dir</span>, <span class="variable">$name</span>)</span></span> &#123;</span><br><span class="line">    <span class="comment"># $pwd = Get-Location</span></span><br><span class="line">    <span class="keyword">if</span> (!(<span class="built_in">Test-Path</span> <span class="string">&quot;<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span>)) &#123;</span><br><span class="line">        <span class="comment"># 直接创建目录</span></span><br><span class="line">        <span class="built_in">New-Item</span> <span class="literal">-ItemType</span> Directory <span class="literal">-Path</span> <span class="string">&quot;<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span> &#123;</span><br><span class="line">        <span class="built_in">Write-Output</span> <span class="string">&quot;The path <span class="variable">$pwd</span>\<span class="variable">$dir</span>\<span class="variable">$name</span> already exists&quot;</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment"># 输出换行</span></span><br><span class="line">    <span class="built_in">Write-Output</span> <span class="string">&quot;&quot;</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 用于创建符号链接到 $env:AppData 或 $env:LocalAppData</span></span><br><span class="line"><span class="function"><span class="keyword">function</span> <span class="title">CreateSymbolicLink</span><span class="params">(<span class="variable">$dir</span>, <span class="variable">$name</span>)</span></span> &#123;</span><br><span class="line">    <span class="variable">$srcDir</span> = <span class="string">&quot;<span class="variable">$pwd</span>\<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span></span><br><span class="line">    <span class="comment"># $dir 判断 Roaming 或 Local，替换成 $env:AppData 或 $env:LocalAppData</span></span><br><span class="line">    <span class="keyword">if</span> (<span class="variable">$dir</span> <span class="operator">-eq</span> <span class="string">&quot;Roaming&quot;</span>) &#123;</span><br><span class="line">        <span class="variable">$dir</span> = <span class="variable">$env:AppData</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">elseif</span> (<span class="variable">$dir</span> <span class="operator">-eq</span> <span class="string">&quot;Local&quot;</span>) &#123;</span><br><span class="line">        <span class="variable">$dir</span> = <span class="variable">$env:LocalAppData</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">if</span> (!(<span class="built_in">Test-Path</span> <span class="string">&quot;<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span>)) &#123;</span><br><span class="line">        <span class="comment"># 创建符号链接</span></span><br><span class="line">        cmd /c mklink /d <span class="string">&quot;<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span> <span class="variable">$srcDir</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="keyword">else</span> &#123;</span><br><span class="line">        <span class="variable">$item</span> = <span class="built_in">Get-Item</span> <span class="string">&quot;<span class="variable">$dir</span>\<span class="variable">$name</span>&quot;</span></span><br><span class="line">        <span class="keyword">if</span> (<span class="variable">$item</span>.Attributes <span class="operator">-band</span> [<span class="type">System.IO.FileAttributes</span>]::ReparsePoint) &#123;</span><br><span class="line">            <span class="built_in">Write-Host</span> <span class="string">&quot;The path <span class="variable">$dir</span>\<span class="variable">$name</span> is a symbolic link.&quot;</span></span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">else</span> &#123;</span><br><span class="line">            <span class="built_in">Write-Output</span> <span class="string">&quot;+++++++++++++++++++++++++++++&quot;</span></span><br><span class="line">            <span class="built_in">Write-Host</span> <span class="string">&quot;The path <span class="variable">$dir</span>\<span class="variable">$name</span> is not a symbolic link.&quot;</span></span><br><span class="line">            <span class="built_in">Write-Output</span> <span class="string">&quot;+++++++++++++++++++++++++++++&quot;</span></span><br><span class="line">        &#125;</span><br><span class="line">        <span class="comment"># Write-Output &quot;$dir\$name already exists&quot;</span></span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment"># 输出换行</span></span><br><span class="line">    <span class="built_in">Write-Output</span> <span class="string">&quot;&quot;</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 判断管理员权限</span></span><br><span class="line"><span class="keyword">If</span> (!([<span class="type">Security.Principal.WindowsPrincipal</span>][<span class="type">Security.Principal.WindowsIdentity</span>]::GetCurrent()).IsInRole([<span class="type">Security.Principal.WindowsBuiltInRole</span>]<span class="string">&quot;Administrator&quot;</span>)) &#123;</span><br><span class="line">    <span class="built_in">Start-Process</span> powershell.exe <span class="string">&quot;-NoProfile -ExecutionPolicy Bypass -File `&quot;<span class="variable">$PSCommandPath</span>`&quot; <span class="variable">$PSCommandArgs</span>&quot;</span> <span class="literal">-Verb</span> RunAs</span><br><span class="line">    <span class="keyword">Exit</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 获取需要创建的目录的列表</span></span><br><span class="line"><span class="variable">$directoryList</span> = <span class="selector-tag">@</span>(<span class="string">&quot;Everything&quot;</span>, <span class="string">&quot;qBittorrent&quot;</span>, <span class="string">&quot;Resilio Sync&quot;</span>, <span class="string">&quot;Resilio Sync Service&quot;</span>)</span><br><span class="line"></span><br><span class="line"><span class="comment"># 循环遍历目录列表，检查目录是否存在，不存在则创建</span></span><br><span class="line"><span class="keyword">foreach</span> (<span class="variable">$directory</span> <span class="keyword">in</span> <span class="variable">$directoryList</span>) &#123;</span><br><span class="line">    CreateDirectory <span class="string">&quot;Roaming&quot;</span> <span class="variable">$directory</span></span><br><span class="line">    CreateSymbolicLink <span class="string">&quot;Roaming&quot;</span> <span class="variable">$directory</span></span><br><span class="line">    CreateDirectory <span class="string">&quot;Local&quot;</span> <span class="variable">$directory</span></span><br><span class="line">    CreateSymbolicLink <span class="string">&quot;Local&quot;</span> <span class="variable">$directory</span></span><br><span class="line">    <span class="built_in">Write-Output</span> <span class="string">&quot;------------------------&quot;</span></span><br><span class="line">    <span class="built_in">Write-Output</span> <span class="string">&quot;&quot;</span></span><br><span class="line">&#125;</span><br><span class="line"></span><br><span class="line"><span class="comment"># 输入任意键关闭窗口</span></span><br><span class="line"><span class="built_in">Read-Host</span> <span class="literal">-Prompt</span> <span class="string">&quot;Press any key to continue...&quot;</span></span><br><span class="line"></span><br></pre></td></tr></table></figure>]]></content>
    
    
    <summary type="html">&lt;p&gt;一些软件会把配置文件放在 &lt;code&gt;%USERPROFILE%&#92;AppData&#92;Local&lt;/code&gt; 或 &lt;code&gt;%USERPROFILE%&#92;AppData&#92;Roaming&lt;/code&gt;，其中一些需要备份一下在重装系统后恢复。。&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="备忘" scheme="https://blog.wdssmq.com/tags/%E5%A4%87%E5%BF%98/"/>
    
    <category term="重装系统" scheme="https://blog.wdssmq.com/tags/%E9%87%8D%E8%A3%85%E7%B3%BB%E7%BB%9F/"/>
    
    <category term="Win10" scheme="https://blog.wdssmq.com/tags/Win10/"/>
    
    <category term="Windows" scheme="https://blog.wdssmq.com/tags/Windows/"/>
    
  </entry>
  
  <entry>
    <title>「折腾」落后两年的 Stable Diffusion 搭建笔记</title>
    <link href="https://blog.wdssmq.com/post/20220812894.html"/>
    <id>https://blog.wdssmq.com/post/20220812894.html</id>
    <published>2024-08-31T07:00:53.000Z</published>
    <updated>2025-10-13T16:26:43.491Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「折腾」落后两年的 Stable Diffusion 搭建笔记》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20220812894.html" title="「折腾」落后两年的 Stable Diffusion 搭建笔记">https://www.wdssmq.com/post/20220812894.html</a></p></blockquote><h3 id="开场跑题是作者的定势"><a href="#开场跑题是作者的定势" class="headerlink" title="开场跑题是作者的定势"></a>开场跑题是作者的定势</h3><p>不管是电脑还是手机，好像我的设备都是略落后时代的，主力是 2016 年的华硕 R557L，姑且是原装 8GB 内存，电池很早就鼓包换掉了，硬盘先是换了全新的 1TB 机械，后来又换成了二手 500GB SSD；</p><h3 id="开场跑题是作者的定势"><a href="#开场跑题是作者的定势" class="headerlink" title="开场跑题是作者的定势"></a>开场跑题是作者的定势</h3><p>不管是电脑还是手机，好像我的设备都是略落后时代的，主力是 2016 年的华硕 R557L，姑且是原装 8GB 内存，电池很早就鼓包换掉了，硬盘先是换了全新的 1TB 机械，后来又换成了二手 500GB SSD；</p><span id="more"></span><p>有收过一台 Surface Pro 4 作为备用，走的拍拍平台，，30 天保障期刚过就出屏幕闪烁问题，才知道是这代机子的通病，扯皮一通后没也给退，买了外接屏终究是不方便，后边用外甥的教育优惠买了官翻 Pro 7，旧机就扔给了外甥；</p><p>本想着苏菲当主力，华硕作为备用不需要太大硬盘，然而平板的散热实在捉急，又换回笔记本当主力，好在硬盘换固态后体验好了不少，1TB 外接使用；</p><p>其实更早已经淘汰的华硕 F81se 的硬盘有留着，加上 R557L 最早的那块，两块 500GB 机械想着利用起来，然后也时值小主机兴起；</p><p>先收了台 nuc4，不好说价格划不划算，卖家没出硬盘，另外收的，总共 550，又买了 mini dp 转 hdmi，自己的旧硬盘当数据盘，几年下来不好说发挥了啥作用，总之能开机；</p><p>所以这时候是一个「如果」，如果当时能接受它加两块 500GB 机械硬盘，一块塞进去一块外接，甚至两块都外接使用。。。</p><p>然而我想着能把两块到塞进去使用，然后再用上系统的软 RAID，为此收了台华硕 VC66，1200 块带内存和 256GB 系统盘，翻车，「不要怕，还在保」，，然而售后被拒。。</p><p>其实当时京东上微星也有款双 2.5 盘位的主机，1900 块，「如果当时能加 700 预算.jpg」</p><p>还有就是，最早那两块 500GB 硬盘并不支持组 RAID，不过不久后我哥换电脑把旧的给我了，联想 e450，换了块京东京造的 ssd，最终三块机械两块外接在 e450 上组阵列，剩下那块塞 nuc4 里，，，关键我还用的 RAID 1，BT 下载有啥用镜像的必要么？然而看完就删也更用不到 1TB 的 RAID 0。。。。。</p><p>最后的前不久，剁手了机械师的小主机，补贴加优惠后 2944.41，，其实也想过要买游戏本的话预算至少要加两千，然而仔细又仔细考虑，实在没有需求，，，甚至机械师这台目前除了 win11 不习惯外还还算满意，，，然而问题就是好像用不上。。。。</p><p>「- -」这一节马上就说完了.jpg「- -」</p><p>当前因为 Pro 4 买的便携屏姑且作为笔记本的外接屏使用，后边各种小主机管理时也是用它，然而把新的小主机当主力机的话双屏体验就没了。。所以买小主机时一并买了硬件采集卡，想着串流屏幕到笔记本上，然而实际效果还不用远程控制，，这已经是硬件方案了。。。正好昨天又了解到 Sunshine + MoonlightSetup，效果更是不太行。。</p><p>总之现在还是向日葵远程为主，，外接屏同时有 Type-C 接口，也支持触摸可以需要时切换使用。。。没有屏幕的设备远程使用也很麻烦，所以会有显卡欺骗器这种东西，VC66 也买了，然而问题是我为毛要买 DVI 接口的，现在只有 HDMI 和 DP 也用不上，虽然现在 C 口接显示器也是一样效果；</p><h3 id="本文主题"><a href="#本文主题" class="headerlink" title="本文主题"></a>本文主题</h3><blockquote><p>VSCode 中，ctrl + k O 可以在新窗口打开当前文件，好像现在这个窗口现在不是独立，工作区切换后也会关掉，说这个是因为我先在一个文件里记录了装 sd 的笔记，然后要换工作区整理成博文。。</p></blockquote><p>因为我并没有按 ￥5000+ 的预算，所以是没有独显的，所以本文以此为前提。。另外本人姑且有 Git，Python 之类的基础知识，浏览器有代理。。。</p><p>1、使用的部署项目如下：</p><blockquote><p>AUTOMATIC1111&#x2F;stable-diffusion-webui: Stable Diffusion web UI</p><p><a href="https://github.com/AUTOMATIC1111/stable-diffusion-webui" title="AUTOMATIC1111/stable-diffusion-webui: Stable Diffusion web UI">https://github.com/AUTOMATIC1111/stable-diffusion-webui</a></p></blockquote><p>2、项目指定了 Python 3.10.6，直接 exe 安装：</p><ul><li><a href="https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe" title="Python 3.10.6">https://www.python.org/ftp/python/3.10.6/python-3.10.6-amd64.exe</a></li><li>好像是因为更高版本不支持 <code>torch</code> ← 这个东西在安装时也是比较费时；</li></ul><p>3、克隆项目到本地：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br></pre></td><td class="code"><pre><span class="line">git <span class="built_in">clone</span> git@github.com:AUTOMATIC1111/stable-diffusion-webui.git _sd</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>4、修改脚本参数：</p><p>依赖安装及程序运行理论上都只需要运行 <code>webui-user.bat</code> 就好，然而这里先对其进行修改，另外后续步骤是我在处理各种错误后复盘整理而来，建议先手动解决后再执行；</p><p>↓↓ 在原始文件内添加 <code>--skip-torch-cuda-test --no-half</code> 参数，如果你有 GPU 可以不改 ↓↓</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br></pre></td><td class="code"><pre><span class="line">@<span class="built_in">echo</span> off</span><br><span class="line"></span><br><span class="line"><span class="built_in">set</span> PYTHON=</span><br><span class="line"><span class="built_in">set</span> GIT=</span><br><span class="line"><span class="built_in">set</span> VENV_DIR=</span><br><span class="line"><span class="built_in">set</span> COMMANDLINE_ARGS=--skip-torch-cuda-test --no-half</span><br><span class="line"></span><br><span class="line">call webui.bat</span><br><span class="line"></span><br></pre></td></tr></table></figure><p><strong>重要：无论是否修改都先不要执行，因为有各种报错需要手动处理</strong></p><p>5、下载并安装 <code>CLIP</code>：</p><blockquote><p>脚本安装会下载不到，所以浏览器下载后安装，下边链接是脚本执行时出现的：</p><p><code>https://codeload.github.com/openai/CLIP/zip/d50d76daa670286dd6cacf3bcd80b5e4823fc8e1</code></p></blockquote><p>下载后保存为 <code>clip.zip</code> 到项目根目录，然后执行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># PowerShell，虽然不清楚用 venv 和全局命令有什么区别</span></span><br><span class="line">.\venv\Scripts\python.exe -m pip install clip.zip --prefer-binary</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>6、下载 <code>openai/clip-vit-large-patch14</code>：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 直接在根目录下执行</span></span><br><span class="line">git <span class="built_in">clone</span> https://www.modelscope.cn/AI-ModelScope/clip-vit-large-patch14.git openai/clip-vit-large-patch14</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>如果缺少这个会报下边错误：</p><blockquote><p>OSError: Can’t load tokenizer for ‘openai&#x2F;clip-vit-large-patch14’. If you were trying to load it from <code>https://huggingface.co/models</code>, make sure you don’t have a local directory with the same name. Otherwise, make sure ‘openai&#x2F;clip-vit-large-patch14’ is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer.</p></blockquote><p>7、提前下载好一个模型：</p><p>好像可以到「<a href="https://www.modelscope.cn/home" title="魔塔社区">ModelScope</a>」平台下载，我参考的教程推荐了「<a href="https://www.modelscope.cn/models/TheKernelZ/chilloutmix_NiPrunedFp32Fix/files" title="chilloutmix_NiPrunedFp32Fix">chilloutmix_NiPrunedFp32Fix</a>」；</p><p>下载后移动模型文件夹到 <code>_sd\models\Stable-diffusion</code> 内；</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br></pre></td><td class="code"><pre><span class="line"><span class="comment"># 这里使用平台的 CLI 工具下载，另外这个 CLI 好像本身好像就能执行模型调用？？</span></span><br><span class="line">pip install modelscope</span><br><span class="line"></span><br><span class="line"><span class="comment"># 模型的下载 · 文档中心</span></span><br><span class="line"><span class="comment"># https://modelscope.cn/docs/%E6%A8%A1%E5%9E%8B%E7%9A%84%E4%B8%8B%E8%BD%BD</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 指定下载路径时好像不会额外创建子文件夹，把模型名再加一遍</span></span><br><span class="line">modelscope download --model TheKernelZ/chilloutmix_NiPrunedFp32Fix --local_dir <span class="string">&#x27;./local_dir/chilloutmix_NiPrunedFp32Fix&#x27;</span></span><br><span class="line"></span><br><span class="line"><span class="comment"># 或者直接指定下载路径：--local_dir &#x27;./models/chilloutmix_NiPrunedFp32Fix</span></span><br><span class="line"></span><br></pre></td></tr></table></figure><p>8、最后执行 <code>webui-user.bat</code>；</p><p>· 其他报错：</p><p>如果没有上边「第 4 步」的修改，执行时就会报下边错误 ——</p><blockquote><p>RuntimeError: Torch is not able to use GPU; add –skip-torch-cuda-test to COMMANDLINE_ARGS variable to disable this check</p></blockquote><blockquote><p>RuntimeError: “addmm_impl_cpu_” not implemented for ‘Half’</p></blockquote><h3 id="另一个文生图工具"><a href="#另一个文生图工具" class="headerlink" title="另一个文生图工具"></a>另一个文生图工具</h3><p>其实之前知道了一个开箱即用的工具，把一些东西进行了封装，基本上下载然后解压就行，只是窗口设计上不科学的地方实在略多，连运行计时都没有；</p><blockquote><p>万象生图</p><p><a href="https://support.qq.com/product/637894" title="万象生图">https://support.qq.com/product/637894</a></p></blockquote><p>还有就是使用网盘提供下载，没会员的话实在是难受，，姑且提供了一个 Resilio Sync 分享：</p><blockquote><p>正好发现它刚更新了程序，下载后会更新到分享里；</p><p>BNYMP5JH5HMFMUPTX5TVSXDIGCNUQBOR3</p></blockquote><h3 id="发电赞助"><a href="#发电赞助" class="headerlink" title="发电赞助"></a>发电赞助</h3><blockquote><p>沉冰浮水正在创作和 Z-BlogPHP 相关或无关的各种有用或没用的代码 | 爱发电</p><p><a href="https://afdian.com/a/wdssmq" title="沉冰浮水正在创作和 Z-BlogPHP 相关或无关的各种有用或没用的代码 | 爱发电">https://afdian.com/a/wdssmq</a></p></blockquote>]]></content>
    
    
    <summary type="html">&lt;h3 id=&quot;开场跑题是作者的定势&quot;&gt;&lt;a href=&quot;#开场跑题是作者的定势&quot; class=&quot;headerlink&quot; title=&quot;开场跑题是作者的定势&quot;&gt;&lt;/a&gt;开场跑题是作者的定势&lt;/h3&gt;&lt;p&gt;不管是电脑还是手机，好像我的设备都是略落后时代的，主力是 2016 年的华硕 R557L，姑且是原装 8GB 内存，电池很早就鼓包换掉了，硬盘先是换了全新的 1TB 机械，后来又换成了二手 500GB SSD；&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="Python" scheme="https://blog.wdssmq.com/tags/Python/"/>
    
    <category term="AI_生图" scheme="https://blog.wdssmq.com/tags/AI-%E7%94%9F%E5%9B%BE/"/>
    
  </entry>
  
  <entry>
    <title>「图说」做不到的水水</title>
    <link href="https://blog.wdssmq.com/post/20170206814.html"/>
    <id>https://blog.wdssmq.com/post/20170206814.html</id>
    <published>2024-05-17T03:48:21.000Z</published>
    <updated>2025-10-13T16:26:43.491Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「图说」做不到的水水》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20170206814.html" title="「图说」做不到的水水">https://www.wdssmq.com/post/20170206814.html</a></p></blockquote><p>三月份的时候尝试把略久的一个意像用文生图工具展示出来，甚至忘记用的哪个在线服务了。。</p><p>三月份的时候尝试把略久的一个意像用文生图工具展示出来，甚至忘记用的哪个在线服务了。。</p><span id="more"></span><p>反复试了各种表述再翻译成英文，最后直接跟 gpt 说我要用来生成图像，被简略成了几个关键词，姑且得到一张略有感觉的图，虽然要素条件仍然不满足，物理上难以翻越的感觉也没有达到。。</p><blockquote><p>Resilio Sync 丨 各种图片</p><p>BDEHQ6UVPVUMAOV6HEVBKCRUQPWNTAPUZ</p></blockquote><p><img src="https://img.wdssmq.com/_posts/2024-08-31-AI-Gen-Img/2023-06-07.png" alt="2023-06-07" title="2023-06-07"></p><p><img src="https://img.wdssmq.com/_posts/2024-08-31-AI-Gen-Img/2024-03-18.png" alt="2024-03-18" title="2024-03-18"></p><p>· · · · · ·</p><p>一条虚空中的路，看不到起点与终点，它的隔离带是玻璃的，分割成左右两部分的那种隔离带(median)，和路一样长，玻璃的高度是路宽度的两倍，路两边是黑暗，路以外的地方没有任何东西，远方也没有背景元素。采用非现实画风；</p><p>· · · · · ·</p><p>一条看不到起点与终点的路，隔离带（median strip）是玻璃的，玻璃有一定的厚度，和路一样长，玻璃的高度是路宽度的两倍，没有缺口让两边互通；</p><p>路两边是黑暗，路以外的地方没有任何东西，远方也没有背景元素；</p><p>· · · · · ·</p><p>完全由玻璃构成的，将公路分隔成上下行的隔离带（median strip），隔离带自身只由玻璃构成，有一部分是深埋于地下的，地上部分也严丝合缝，高到几乎无法翻越；</p><p>路与隔离带都看不到起点与终点，路两边是荒漠，没有车，房子，山，树，也没有人工植被和农作物，远方也没有背景元素；</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;三月份的时候尝试把略久的一个意像用文生图工具展示出来，甚至忘记用的哪个在线服务了。。&lt;/p&gt;</summary>
    
    
    
    <category term="往物语" scheme="https://blog.wdssmq.com/categories/%E5%BE%80%E7%89%A9%E8%AF%AD/"/>
    
    
    <category term="沉冰浮水" scheme="https://blog.wdssmq.com/tags/%E6%B2%89%E5%86%B0%E6%B5%AE%E6%B0%B4/"/>
    
    <category term="往物语" scheme="https://blog.wdssmq.com/tags/%E5%BE%80%E7%89%A9%E8%AF%AD/"/>
    
    <category term="图说" scheme="https://blog.wdssmq.com/tags/%E5%9B%BE%E8%AF%B4/"/>
    
  </entry>
  
  <entry>
    <title>「折腾」VSCode 扩展分组管理</title>
    <link href="https://blog.wdssmq.com/post/20230306656.html"/>
    <id>https://blog.wdssmq.com/post/20230306656.html</id>
    <published>2024-05-04T04:27:47.000Z</published>
    <updated>2025-10-13T16:26:43.487Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「折腾」VSCode 扩展分组管理》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20230306656.html" title="「折腾」VSCode 扩展分组管理">https://www.wdssmq.com/post/20230306656.html</a></p></blockquote><p>浏览器用的 Edge，有一个「扩展管理器」可以对扩展进行分组管理，很方便；</p><p>VSCode 也装了一堆扩展，数量上更多，就搜索了下有没有同功能定位的东西，姑且也是有的 —— <code>zyg.extension-pack-manager2</code>；</p><p>浏览器用的 Edge，有一个「扩展管理器」可以对扩展进行分组管理，很方便；</p><p>VSCode 也装了一堆扩展，数量上更多，就搜索了下有没有同功能定位的东西，姑且也是有的 —— <code>zyg.extension-pack-manager2</code>；</p><span id="more"></span><p>后边会简单介绍和给出链接；</p><hr><p>首先是浏览器下的「扩展管理器」，下边是在 Edge &#x2F; Chrome 上的链接：</p><blockquote><p>Chrome: <a href="https://chromewebstore.google.com/detail/gjldcdngmdknpinoemndlidpcabkggco" title="扩展管理器（Extension Manager）- Chrome">扩展管理器（Extension Manager）</a></p><p>Edge：<a href="https://microsoftedge.microsoft.com/addons/detail/bhahgfgngfghgjhnpplmemebhenieijb" title="扩展管理器（Extension Manager）- Edge">扩展管理器（Extension Manager）</a></p></blockquote><p>核心功能如下：</p><ol><li>可以按需对扩展进行分组以实现快速切换启用；</li><li>对于需要一直开启的，可以将其添加在「固定分组」里；</li><li>切换分组时，「目标分组」和「固定分组」的扩展会取<strong>并集</strong>启用，不在这两个分组里的则默认禁用；</li><li>仍然可以临时启用或禁用某个扩展，下次切换分组时会恢复到分组里的状态；</li></ol><p>其他还可以按匹配站点启用什么的，算是锦上添花了，目前核心功能对我来说已经够用了。</p><p><img src="https://img.wdssmq.com/_posts/2024-05-04-Ext-Mngr-VSCode/edge-001.png" alt="edge-001"></p><hr><p>对于 VSCode，你可以通过搜索 <code>zyg.extension-pack-manager2</code> 或者直接访问下边的链接：</p><blockquote><p>Extension Manager - Visual Studio Marketplace</p><p><a href="https://marketplace.visualstudio.com/items?itemName=zyg.extension-pack-manager2" title="Extension Manager - Visual Studio Marketplace">https://marketplace.visualstudio.com/items?itemName=zyg.extension-pack-manager2</a></p></blockquote><p>↑ 这个已经是修改版了，原版好像不能用了一直没更新，然后修改版的 git 库也没了。。</p><p>然后功能上也略简单，分组后只能一键启用&#x2F;禁用分组自身包含的扩展。。。</p><p>使用方法：<code>Shift + Ctrl + P</code> 打开命令面板，输入 <code>扩展</code>，可以找到以下两个命令项：</p><ul><li>扩展: 创建自定义扩展包</li><li>扩展: 查看自定扩展包</li></ul><p>↑ 文本用词还不统一 -_-!</p><ul><li>创建时可以设置名称，描述，图标，然后勾选需要包含的扩展；</li><li>使用「查看」命令列出所有自定义的扩展包，一键启用&#x2F;禁用；<ul><li>__在每个「扩展包」的「管理」菜单__（下图左侧列表内的齿轮）内可以找到「编辑扩展包」的选项；</li></ul></li></ul><p><strong>重要：直接卸载自定义的「扩展包」会连带包含的扩展一起卸载，如果只是想「删除分组」，请使用「编辑扩展包」界面内的「卸载」按钮；</strong></p><p><img src="https://img.wdssmq.com/_posts/2024-05-04-Ext-Mngr-VSCode/vscode-001.png" alt="vscode-001"></p><p>然后姑且录了个视频，点击链接进入 B 站观看：<a href="https://www.bilibili.com/video/BV1QMETeDEc7/" title="「折腾」VSCode 扩展分组管理_哔哩哔哩_bilibili">「折腾」VSCode 扩展分组管理_哔哩哔哩_bilibili</a></p><iframe src="//player.bilibili.com/player.html?aid=112380450702080&bvid=BV1QMETeDEc7&cid=500001530258651&p=1" scrolling="no" border="0" frameborder="no" framespacing="0" allowfullscreen="true"> </iframe>]]></content>
    
    
    <summary type="html">&lt;p&gt;浏览器用的 Edge，有一个「扩展管理器」可以对扩展进行分组管理，很方便；&lt;/p&gt;
&lt;p&gt;VSCode 也装了一堆扩展，数量上更多，就搜索了下有没有同功能定位的东西，姑且也是有的 —— &lt;code&gt;zyg.extension-pack-manager2&lt;/code&gt;；&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="折腾" scheme="https://blog.wdssmq.com/tags/%E6%8A%98%E8%85%BE/"/>
    
    <category term="VSCode" scheme="https://blog.wdssmq.com/tags/VSCode/"/>
    
    <category term="软件工具" scheme="https://blog.wdssmq.com/tags/%E8%BD%AF%E4%BB%B6%E5%B7%A5%E5%85%B7/"/>
    
    <category term="编程" scheme="https://blog.wdssmq.com/tags/%E7%BC%96%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>「列表纪事」 B 站「玛丽电波剧场」系列汉化搬运的整理</title>
    <link href="https://blog.wdssmq.com/post/20100715601.html"/>
    <id>https://blog.wdssmq.com/post/20100715601.html</id>
    <published>2024-05-01T08:03:43.000Z</published>
    <updated>2025-10-13T16:26:43.487Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「列表纪事」 B 站「玛丽电波剧场」系列汉化搬运的整理》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20100715601.html" title="「列表纪事」 B 站「玛丽电波剧场」系列汉化搬运的整理">https://www.wdssmq.com/post/20100715601.html</a></p></blockquote><p>目前在追「玛丽电波剧场」和「超能力搞笑」这两个系列，最新的现在由下边两位 UP 各自汉化搬运：</p><p>目前在追「玛丽电波剧场」和「超能力搞笑」这两个系列，最新的现在由下边两位 UP 各自汉化搬运：</p><span id="more"></span><p>BLUE_Hawaiii: <a href="https://space.bilibili.com/3493114515819032/" title="BLUE_Hawaiii的个人空间-BLUE_Hawaiii个人主页-哔哩哔哩视频">https://space.bilibili.com/3493114515819032/</a></p><p>甜隐君子: <a href="https://space.bilibili.com/929197/" title="甜隐君子的个人空间-甜隐君子个人主页-哔哩哔哩视频">https://space.bilibili.com/929197/</a></p><hr><p>然后现在姑且整理一下其他 UP 之前搬运的部分「玛丽电波剧场」，看有没有没看过的；</p><p>UP: 甜隐君子</p><p>数量: 9</p><p>【玛丽电波剧场】:</p><p><a href="https://space.bilibili.com/929197/channel/seriesdetail?sid=2575069" title="【玛丽电波剧场】">https://space.bilibili.com/929197/channel/seriesdetail?sid=2575069</a></p><p>说明: 目前主做「超能力搞校」，也有几话「玛丽电波剧场」；</p><p>&#x3D;&#x3D;&#x3D;&#x3D;</p><p>UP: 耐子酱动漫社</p><p>数量: 15</p><p>合集·【玛丽的日常】:</p><p><a href="https://space.bilibili.com/651861849/channel/collectiondetail?sid=328325" title="合集·【玛丽的日常】">https://space.bilibili.com/651861849/channel/collectiondetail?sid=328325</a></p><p>&#x3D;&#x3D;&#x3D;&#x3D;</p><p>UP: 玉京濯枝雨</p><p>数量: 30</p><p>投稿视频:</p><p><a href="https://space.bilibili.com/5847815/video" title="玉京濯枝雨的投稿视频">https://space.bilibili.com/5847815/video</a></p><p>说明: 没有合集，但是投稿内容都是电波剧场；</p><p>&#x3D;&#x3D;&#x3D;&#x3D;</p><p>UP: 静心教日语</p><p>数量: 7</p><p>合集·翻译搬运｜日语搞笑动画短片【マリマリマリー】:</p><p><a href="https://space.bilibili.com/8204468/channel/collectiondetail?sid=1012254" title="合集·翻译搬运｜日语搞笑动画短片【マリマリマリー】">https://space.bilibili.com/8204468/channel/collectiondetail?sid=1012254</a></p><p>&#x3D;&#x3D;&#x3D;&#x3D;</p><p>UP: 歇里</p><p>数量: 2</p><p>【自制中字】颜值即正义的就活妹子｜マリマリマリー_bilibili：</p><p><a href="https://www.bilibili.com/video/BV1KP411A7j5" title="【自制中字】颜值即正义的就活妹子｜マリマリマリー_bilibili">https://www.bilibili.com/video/BV1KP411A7j5</a></p><p>【自制中字】把出轨对象当成幽灵的臭男人｜マリマリマリー_bilibili：</p><p><a href="https://www.bilibili.com/video/BV1PW4y1r7Kw" title="【自制中字】把出轨对象当成幽灵的臭男人｜マリマリマリー_bilibili">https://www.bilibili.com/video/BV1PW4y1r7Kw</a></p><p>说明：只有这两个玛丽电波剧场的搬运；</p><p>&#x3D;&#x3D;&#x3D;&#x3D;</p><p>UP: 灰咕娘-灰风字幕组</p><p>数量: 26</p><p>合集·玛丽电波剧场: <a href="https://space.bilibili.com/28968096/channel/collectiondetail?sid=1132159">https://space.bilibili.com/28968096/channel/collectiondetail?sid=1132159</a></p><p>说明：目前这个组主要做「回力回避 Flag 酱」系列；</p>]]></content>
    
    
    <summary type="html">&lt;p&gt;目前在追「玛丽电波剧场」和「超能力搞笑」这两个系列，最新的现在由下边两位 UP 各自汉化搬运：&lt;/p&gt;</summary>
    
    
    
    <category term="列表纪事" scheme="https://blog.wdssmq.com/categories/%E5%88%97%E8%A1%A8%E7%BA%AA%E4%BA%8B/"/>
    
    
    <category term="哔哩哔哩" scheme="https://blog.wdssmq.com/tags/%E5%93%94%E5%93%A9%E5%93%94%E5%93%A9/"/>
    
    <category term="二次元" scheme="https://blog.wdssmq.com/tags/%E4%BA%8C%E6%AC%A1%E5%85%83/"/>
    
    <category term="咸鱼" scheme="https://blog.wdssmq.com/tags/%E5%92%B8%E9%B1%BC/"/>
    
  </entry>
  
  <entry>
    <title>「代码片段」两段略奇怪的 JS 代码</title>
    <link href="https://blog.wdssmq.com/post/20160621482.html"/>
    <id>https://blog.wdssmq.com/post/20160621482.html</id>
    <published>2024-03-13T13:08:10.000Z</published>
    <updated>2025-10-13T16:23:20.898Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「代码片段」两段略奇怪的 JS 代码》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20160621482.html" title="「代码片段」两段略奇怪的 JS 代码">https://www.wdssmq.com/post/20160621482.html</a></p></blockquote><blockquote><p>2024-03-13：</p><p>又研究了一段不明所以的代码，然后想起来之前也搞过一段，就合并在一起了，然后发现当年那段迷惑程度要高不少。。</p></blockquote><blockquote><p>2024-03-13：</p><p>又研究了一段不明所以的代码，然后想起来之前也搞过一段，就合并在一起了，然后发现当年那段迷惑程度要高不少。。</p></blockquote><span id="more"></span><p><strong>数组中按间隔提取元素：</strong></p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br><span class="line">34</span><br><span class="line">35</span><br><span class="line">36</span><br><span class="line">37</span><br><span class="line">38</span><br><span class="line">39</span><br><span class="line">40</span><br><span class="line">41</span><br><span class="line">42</span><br><span class="line">43</span><br><span class="line">44</span><br><span class="line">45</span><br><span class="line">46</span><br></pre></td><td class="code"><pre><span class="line">(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">    <span class="keyword">const</span> allNum = <span class="number">21</span>;</span><br><span class="line">    <span class="keyword">const</span> perNum = <span class="number">4</span>;</span><br><span class="line"></span><br><span class="line">    <span class="comment">/**</span></span><br><span class="line"><span class="comment">     * <span class="doctag">@param</span> &#123;<span class="type">int</span>&#125; all  元素总数</span></span><br><span class="line"><span class="comment">     * <span class="doctag">@param</span> &#123;<span class="type">int</span>&#125; per 用于将 all 先分成 per 个一组</span></span><br><span class="line"><span class="comment">     * <span class="doctag">@param</span> &#123;<span class="type">int</span>&#125; offset 通过计算决定从第几个元素开始取，大于等于 0，上不设限</span></span><br><span class="line"><span class="comment">     * <span class="doctag">@returns</span> &#123;<span class="type">string</span>&#125; 返回一个字符串，每 per 个元素换行</span></span><br><span class="line"><span class="comment">     */</span></span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">fnPickArr</span>(<span class="params">all, per, offset = <span class="number">0</span></span>) &#123;</span><br><span class="line">        <span class="keyword">const</span> rltArr = [];</span><br><span class="line"></span><br><span class="line">        <span class="comment">// const chunkNum = Math.floor(all / per);</span></span><br><span class="line">        <span class="comment">// ↑ floor 为向下取整，会出现取到 per + 1 个元素的情况</span></span><br><span class="line">        <span class="keyword">const</span> chunkNum = <span class="title class_">Math</span>.<span class="title function_">ceil</span>(all / per);</span><br><span class="line">        <span class="comment">// ↑ ceil 为向上取整，与 floor 相反，会出现取到 per - 1 个元素的情况</span></span><br><span class="line"></span><br><span class="line">        <span class="comment">// 本质上就是每隔 chunkNum - 1 个元素取一次，两次取余判断</span></span><br><span class="line"></span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; all; i++) &#123;</span><br><span class="line">            <span class="keyword">if</span> (i % chunkNum === offset % chunkNum) &#123;</span><br><span class="line">                <span class="comment">// rltArr[i] = &quot;*&quot;;</span></span><br><span class="line">                rltArr[i] = i % per + <span class="number">1</span>;</span><br><span class="line"></span><br><span class="line">            &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">                rltArr[i] = <span class="string">&quot;#&quot;</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line"></span><br><span class="line">        <span class="comment">// 遍历 rltArr，拼接为字符，每 per 个元素换行</span></span><br><span class="line">        <span class="keyword">let</span> rltStr = <span class="string">&quot;&quot;</span>;</span><br><span class="line">        <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; rltArr.<span class="property">length</span>; i++) &#123;</span><br><span class="line">            rltStr += rltArr[i];</span><br><span class="line">            <span class="keyword">if</span> ((i + <span class="number">1</span>) % per === <span class="number">0</span>) &#123;</span><br><span class="line">                rltStr += <span class="string">&quot;\n&quot;</span>;</span><br><span class="line">            &#125;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">return</span> rltStr;</span><br><span class="line">    &#125;</span><br><span class="line"></span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">let</span> i = <span class="number">0</span>; i &lt; <span class="number">6</span>; i++) &#123;</span><br><span class="line">        <span class="variable language_">console</span>.<span class="title function_">log</span>(<span class="title function_">fnPickArr</span>(allNum, perNum, i));</span><br><span class="line">    &#125;</span><br><span class="line">&#125;)();</span><br><span class="line"></span><br></pre></td></tr></table></figure><p>「- -」「- -」「- -」</p><p><strong>在研究缓存失效时间时开的一个脑洞，，虽然不是很清楚有什么实用价值：</strong></p><figure class="highlight js"><table><tr><td class="gutter"><pre><span class="line">1</span><br><span class="line">2</span><br><span class="line">3</span><br><span class="line">4</span><br><span class="line">5</span><br><span class="line">6</span><br><span class="line">7</span><br><span class="line">8</span><br><span class="line">9</span><br><span class="line">10</span><br><span class="line">11</span><br><span class="line">12</span><br><span class="line">13</span><br><span class="line">14</span><br><span class="line">15</span><br><span class="line">16</span><br><span class="line">17</span><br><span class="line">18</span><br><span class="line">19</span><br><span class="line">20</span><br><span class="line">21</span><br><span class="line">22</span><br><span class="line">23</span><br><span class="line">24</span><br><span class="line">25</span><br><span class="line">26</span><br><span class="line">27</span><br><span class="line">28</span><br><span class="line">29</span><br><span class="line">30</span><br><span class="line">31</span><br><span class="line">32</span><br><span class="line">33</span><br></pre></td><td class="code"><pre><span class="line">(<span class="function">() =&gt;</span> &#123;</span><br><span class="line">    <span class="keyword">let</span> m;</span><br><span class="line">    <span class="keyword">let</span> lstM;</span><br><span class="line">    <span class="keyword">let</span> lstN;</span><br><span class="line">    <span class="keyword">for</span> (<span class="keyword">let</span> n = <span class="number">0</span>; n &lt;= <span class="number">50</span>; n++) &#123;</span><br><span class="line">        <span class="keyword">if</span> (!m) &#123;</span><br><span class="line">            m = n + <span class="number">5</span>;</span><br><span class="line">            lstN = n - <span class="number">1</span>;</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="keyword">if</span> (m &lt;= n) &#123;</span><br><span class="line">            <span class="keyword">if</span> (n !== <span class="number">11</span> &amp;&amp; n !== <span class="number">12</span> &amp;&amp; n !== <span class="number">21</span>) &#123;</span><br><span class="line">                <span class="comment">// if (1 == 1) &#123;</span></span><br><span class="line">                <span class="title function_">fnLog</span>([m - n, m, n, n - lstN, <span class="string">&quot;do some thing&quot;</span>]);</span><br><span class="line">                lstM = m;</span><br><span class="line">                m = n + n - lstN;</span><br><span class="line">                lstN = n + n - lstM;</span><br><span class="line">            &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">                <span class="title function_">fnLog</span>([m - n, m, n, n - lstN, <span class="string">&quot;skip&quot;</span>]);</span><br><span class="line">            &#125;</span><br><span class="line">        &#125; <span class="keyword">else</span> &#123;</span><br><span class="line">            <span class="title function_">fnLog</span>([m - n, m, n, n - lstN]);</span><br><span class="line">        &#125;</span><br><span class="line">    &#125;</span><br><span class="line">    <span class="comment">// ----------------------------</span></span><br><span class="line">    <span class="keyword">function</span> <span class="title function_">fnLog</span>(<span class="params">n</span>) &#123;</span><br><span class="line">        <span class="keyword">if</span> (<span class="title class_">Object</span>.<span class="property"><span class="keyword">prototype</span></span>.<span class="property">toString</span>.<span class="title function_">call</span>(n) === <span class="string">&quot;[object Array]&quot;</span>) &#123;</span><br><span class="line">            a = n.<span class="title function_">join</span>(<span class="string">&quot; , &quot;</span>);</span><br><span class="line">        &#125;</span><br><span class="line">        <span class="comment">// document.getElementById(&quot;debug&quot;).innerHTML += a + &quot;&lt;br /&gt;&quot;;</span></span><br><span class="line">        <span class="variable language_">console</span>.<span class="title function_">log</span>(a);</span><br><span class="line">    &#125;</span><br><span class="line">&#125;)();</span><br><span class="line"></span><br></pre></td></tr></table></figure><!--2663-->]]></content>
    
    
    <summary type="html">&lt;blockquote&gt;
&lt;p&gt;2024-03-13：&lt;/p&gt;
&lt;p&gt;又研究了一段不明所以的代码，然后想起来之前也搞过一段，就合并在一起了，然后发现当年那段迷惑程度要高不少。。&lt;/p&gt;
&lt;/blockquote&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="折腾" scheme="https://blog.wdssmq.com/tags/%E6%8A%98%E8%85%BE/"/>
    
    <category term="备忘" scheme="https://blog.wdssmq.com/tags/%E5%A4%87%E5%BF%98/"/>
    
    <category term="JavaScript" scheme="https://blog.wdssmq.com/tags/JavaScript/"/>
    
    <category term="代码片段" scheme="https://blog.wdssmq.com/tags/%E4%BB%A3%E7%A0%81%E7%89%87%E6%AE%B5/"/>
    
  </entry>
  
  <entry>
    <title>「折腾」GM_脚本 + CF Workers KV 半自动收集 B 用户投稿转为 RSS</title>
    <link href="https://blog.wdssmq.com/post/20120519803.html"/>
    <id>https://blog.wdssmq.com/post/20120519803.html</id>
    <published>2024-01-04T03:03:24.000Z</published>
    <updated>2025-10-13T16:23:20.898Z</updated>
    
    <content type="html"><![CDATA[<blockquote><p>本文标题：《「折腾」GM_脚本 + CF Workers KV 半自动收集 B 用户投稿转为 RSS》。</p><p>镜像链接：<a href="https://www.wdssmq.com/post/20120519803.html" title="「折腾」GM_脚本 + CF Workers KV 半自动收集 B 用户投稿转为 RSS">https://www.wdssmq.com/post/20120519803.html</a></p></blockquote><h2 id="一"><a href="#一" class="headerlink" title="一"></a>一</h2><p>终于还是尝试了这种方式什么的。。。</p><h2 id="一"><a href="#一" class="headerlink" title="一"></a>一</h2><p>终于还是尝试了这种方式什么的。。。</p><span id="more"></span><p>有借助 RSSHub 订阅 B 站用户投稿和番剧更新，几年来整体还算稳定，想着万一反爬变严了就干脆用 <code>GM_脚本</code> 直接从浏览器里抓取数据到远程存储的方式来实现，，然后 2023-12 开始终于发生了。。。</p><p>就结果来说，本文所述方案的代码已经基本完成了，但是终究是不能自动运行，然后定位上也和标准的 RSS 需求不太一样，，大概还是要研究下给 RSSHub 配置 cookie 。。。</p><h2 id="二"><a href="#二" class="headerlink" title="二"></a>二</h2><p>关于功能定位，对于部分 up 主，会希望能把历史投稿也看一遍，然而总量上就会很多，采取了基于时间和条目序号分页的方案，以 m 天划分周期，当前周期内输出固定的 n 条数据这样，，具体看代码吧。。。</p><blockquote><p>wdssmq&#x2F;later-url-cf: 使用 Cloudflare Workers KV 存储服务收集网址并以 RSS 输出；</p><p><a href="https://github.com/wdssmq/later-url-cf" title="wdssmq/later-url-cf: 使用 Cloudflare Workers KV 存储服务收集网址并以 RSS 输出；">https://github.com/wdssmq/later-url-cf</a></p></blockquote><blockquote><p>userscript&#x2F;packages&#x2F;later-url at main · wdssmq&#x2F;userscript</p><p><a href="https://github.com/wdssmq/userscript/tree/main/packages/later-url#readme" title="userscript/packages/later-url at main · wdssmq/userscript">https://github.com/wdssmq/userscript/tree/main/packages/later-url#readme</a></p></blockquote><h2 id="三"><a href="#三" class="headerlink" title="三"></a>三</h2><blockquote><p>Bilibili2RSS - 为你喜爱的任意 B 站「番剧」添加 RSS 更新通知[Web] - 小众软件</p><p><a href="https://www.appinn.com/bilibili2rss/" title="Bilibili2RSS - 为你喜爱的任意 B 站「番剧」添加 RSS 更新通知[Web] - 小众软件">https://www.appinn.com/bilibili2rss/</a></p><p>↑ 当时的代码并没有保留……</p></blockquote><p>2017 年的时候拿 PHP 写过一个订阅 B 站番剧更新的工具，后来知道 RSSHub 的存在；</p><p>RSSHub 最早也是需要针对特定番剧添加到一条订阅到阅读器，所以 PR 提交了一条「用户追番列表」的路由；</p><blockquote><p>增加：用户追番列表 by wdssmq · Pull Request #2735 · DIYgod&#x2F;RSSHub</p><p><a href="https://github.com/DIYgod/RSSHub/pull/2735" title="增加：用户追番列表 by wdssmq · Pull Request #2735 · DIYgod/RSSHub">https://github.com/DIYgod/RSSHub/pull/2735</a></p><p>↑ 标记了「反爬严格」但是大概还能用？</p></blockquote><p><code>然后果然不太懂 Github 的 PR/ISSUE 搜索功能.jpg</code></p><p>RSSHub 的问题是，官方站可能被针对性反爬，自建维护更新又比较麻烦，所以选用了对多个 RSSHub 实例进行反代的方式；</p><blockquote><p>wdssmq&#x2F;proxy_rsshub: 使用 GitHub Actions 反代 RSSHub + 多实例轮询</p><p><a href="https://github.com/wdssmq/proxy_rsshub" title="wdssmq/proxy_rsshub: 使用 GitHub Actions 反代 RSSHub + 多实例轮询">https://github.com/wdssmq/proxy_rsshub</a></p><p>↑ 这个可能不符合 GitHub Actions 的使用条款，所以用了一段时间后就停用了。。</p></blockquote><blockquote><p>wdssmq&#x2F;rsshub-cf: Cloudflare Worker 反代 RSSHub</p><p><a href="https://github.com/wdssmq/rsshub-cf" title="wdssmq/rsshub-cf: Cloudflare Worker 反代 RSSHub">https://github.com/wdssmq/rsshub-cf</a></p><p>↑ 本来这个方案相对靠谱，然而 B 站强化了一波反爬。。。</p></blockquote>]]></content>
    
    
    <summary type="html">&lt;h2 id=&quot;一&quot;&gt;&lt;a href=&quot;#一&quot; class=&quot;headerlink&quot; title=&quot;一&quot;&gt;&lt;/a&gt;一&lt;/h2&gt;&lt;p&gt;终于还是尝试了这种方式什么的。。。&lt;/p&gt;</summary>
    
    
    
    <category term="电脑网络" scheme="https://blog.wdssmq.com/categories/%E7%94%B5%E8%84%91%E7%BD%91%E7%BB%9C/"/>
    
    
    <category term="折腾" scheme="https://blog.wdssmq.com/tags/%E6%8A%98%E8%85%BE/"/>
    
    <category term="GM_脚本" scheme="https://blog.wdssmq.com/tags/GM-%E8%84%9A%E6%9C%AC/"/>
    
    <category term="RSS" scheme="https://blog.wdssmq.com/tags/RSS/"/>
    
    <category term="Cloudflare" scheme="https://blog.wdssmq.com/tags/Cloudflare/"/>
    
  </entry>
  
</feed>
