<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>小明同学 - 效率工具</title>
  
  <subtitle>分类：效率工具</subtitle>
  <link href="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/atom.xml" rel="self"/>
  
  <link href="https://xiaomingclassmate.com/"/>
  <updated>2026-11-08T12:56:54.935Z</updated>
  <id>https://xiaomingclassmate.com/</id>
  
  <author>
    <name>小明同学</name>
    
  </author>
  
  <generator uri="https://hexo.io/">Hexo</generator>
  
  <entry>
    <title>CC Switch 的对手来了：Magpie 不帮你改配置，而是让你不用再改</title>
    <link href="https://xiaomingclassmate.com/posts/24101/"/>
    <id>https://xiaomingclassmate.com/posts/24101/</id>
    <published>2026-10-14T09:23:41.000Z</published>
    <updated>2026-11-08T12:56:54.935Z</updated>
    
    <content type="html"><![CDATA[<p>下午三点，Claude 的额度用完了。</p><p>你打开配置文件，把 key 换成另一个账号的。半小时后 Codex 也见底，再换一个。Gemini CLI 那边还挂着一个早就过期的 key，你懒得管了。</p><p>这是同时用好几个 AI 编程工具的人，每天都在干的事。问题不在工具不好用，在于工具之间那层管理，一直没人管。</p><blockquote><p><strong>版本提示：</strong> 截至 2026 年 11 月 8 日，Magpie 最新 Release 为 <code>v0.1.3327</code>。项目迭代很快，安装命令和界面可能变化，请以官方文档为准。</p><p><strong>安全提示：</strong> 安装脚本会下载并运行程序，也会改写 Agent 配置；执行前先审查脚本，并备份相关配置文件。订阅账号发现功能会读取登录文件和系统钥匙串，敏感环境建议关闭。API key 和订阅凭据不要发给不可信网关。</p></blockquote><h2 id="CC-Switch-解决的是“改配置”"><a href="#CC-Switch-解决的是“改配置”" class="headerlink" title="CC Switch 解决的是“改配置”"></a>CC Switch 解决的是“改配置”</h2><p>CC Switch 试过管这件事。思路很直接：把 Claude Code 的配置文件接过来，界面上点一下就能换 provider，不用自己动手改 JSON。</p><p>好用，这点得承认。但它的天花板也摆在那儿。</p><p>它管的其实是配置文件本身。Claude Code 是 Claude Code 的配置，Codex 是 Codex 的配置，格式不同、key 各管各的，你还是在几个文件之间打转。而且它的思路是“让你改配置更快”，不是“让你不用再改配置”。下午三点换 key 这件事，它没帮你取消，只是让你换得顺手一点。</p><h2 id="Magpie-把网关插了进来"><a href="#Magpie-把网关插了进来" class="headerlink" title="Magpie 把网关插了进来"></a>Magpie 把网关插了进来</h2><p>最近冒出来的 <a href="https://github.com/yetone/magpie">Magpie</a> 走了另一条路。它不管“怎么改配置”，而是在所有 Agent 和所有模型中间，插了一层本地网关。</p><p>过去的路径是：Agent → 各自的配置文件 → 绑定的模型。现在变成：Agent → Magpie → 任意厂商 → 任意模型。</p><p>Magpie 在本地跑一个网关，地址 <code>127.0.0.1:3425</code>，只监听本机回环，外网碰不到。然后它把每个 Agent 的配置改成指向这个地址：Claude Code 的 <code>ANTHROPIC_BASE_URL</code> 变成 <code>http://127.0.0.1:3425</code>，原来填 key 的位置，直接写一个词，magpie。</p><p>看着有点怪，但重点在这儿：真正的 API key 不上桌。所有厂商的 key 都存在 Magpie 自己的配置里，Agent 拿到的只是一个指向本机网关的地址加一个占位符。你的 key 不会再散落在七八个配置文件里。</p><h2 id="更值钱的部分：订阅不再是孤岛"><a href="#更值钱的部分：订阅不再是孤岛" class="headerlink" title="更值钱的部分：订阅不再是孤岛"></a>更值钱的部分：订阅不再是孤岛</h2><p>如果只是统一了入口，那还只是省事。Magpie 真正有意思的，是它能把你的订阅盘活。</p><p>你买的 Claude 订阅，以前只能在 Claude Code 里用；ChatGPT 的订阅，锁死在 Codex 里。每个订阅都是一座孤岛。</p><p>Magpie 的做法是去读这些 Agent 自己的登录状态，Claude Code 和 Codex 的配置文件、系统的钥匙串，读到之后就把这个订阅变成网关里的一个 provider。于是 Claude Code 可以调用你的 ChatGPT 套餐，Codex 也能反过来用你的 Claude 订阅，不用再为每个工具单独买一份 API。</p><p>隐私这块留了开关。不想被读到登录信息，设置里关掉 Subscription accounts，或者跑一句 <code>magpie accounts discovery off</code>，单次运行用 <code>MAGPIE_NO_ACCOUNTS=1</code>。API key 类型的 provider 不受影响，照常能用。</p><p>不同 Agent 说的是不同的话。Claude Code 说 Anthropic Messages，Codex 说 OpenAI Responses，Gemini CLI 说 Gemini。同一个模型，接口形状不一定一样。Magpie 的网关把这四套协议都实现了，请求进来之后按需翻译，流式输出、工具调用、推理过程都跟着转。所以 Codex 也能用上只提供 Anthropic 接口的模型，反过来也一样。</p><p>配额也被接管了。你可以把几个账号或几个模型编成一个“路由组”，设置好策略：优先用哪个、用完怎么轮、按用量怎么分。额度耗尽的瞬间，请求自动落到下一个账号，Agent 那边完全无感，不弹错误。官方管这叫“静默切换”。</p><p>剩下的是一些顺手的设计。Profiles 能把每个 Agent 当前的配置存成一个名字，比如“省钱模式”“猛干模式”，一键整体切回来。Import 能从 CC Switch 直接导入已有的 provider，迁移不用重头填。它本身是一个轻量的 Go 程序，macOS、Linux、Windows 都能跑，还支持 Docker 和 NAS。支持的 Agent 列表很长，Claude Code、Codex、Gemini CLI、OpenCode、Cursor CLI、Copilot、Cline、Devin 这些常见的都在里面，任何能接受 base URL 的工具也能手动接进来。</p><h2 id="一条命令，三步上手"><a href="#一条命令，三步上手" class="headerlink" title="一条命令，三步上手"></a>一条命令，三步上手</h2><p>装起来就一条：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -fsSL https://usemagpie.ai/install.sh | sh</span><br></pre></td></tr></table></figure><p>也可以用 <code>go install github.com/yetone/magpie@latest</code> 或者 Docker 镜像（<code>ghcr.io/yetone/magpie</code>）。装完三步：打开 Magpie 加一个 provider，选预设粘贴 key 或者用订阅登录；到 Agents 页面给每个工具选模型；开个新会话就生效。命令行党也有对应的命令，比如 <code>magpie claude deepseek/deepseek-v4-pro</code>，就是把 Claude Code 的模型切到 DeepSeek。</p><h2 id="有几个坑先说清楚"><a href="#有几个坑先说清楚" class="headerlink" title="有几个坑先说清楚"></a>有几个坑先说清楚</h2><p>最容易被忽略的一点是，它对你可能根本没用。如果你只用一个 Agent，而那个 Agent 带着厂商自己的套餐，多装一个后台常驻的网关纯属负担。它是给同时用好几个工具、还攒了一堆订阅的人准备的。</p><p>另外 Codex 的模型列表是启动时读的，通过 Magpie 切完模型，得重启它才认。</p><p>隐私上有个细节：它每天上报一次使用统计，介意的话在设置里关掉，或者设 <code>DO_NOT_TRACK=1</code>。</p><p>最后，这个仓库不收 PR，只有维护者能提交，想反馈问题得走 Discord。</p><p>说到底，CC Switch 和 Magpie 不是谁替代谁。一个是你顺手打开的桌面工具，把配置改得更快；一个是常驻在后台的网关，把“改配置”这件事直接从流程里拿掉了。站位不同，解决的问题也就不一样。</p><p>你电脑里现在挂着几个 AI 编程工具？有没有过额度用完、手忙脚乱切 key 的时候？评论区聊聊。</p><p>项目地址：<a href="https://github.com/yetone/magpie">https://github.com/yetone/magpie</a></p>]]></content>
    
    
    <summary type="html">Magpie 通过本地 API 网关统一 Claude Code、Codex 等 AI 编程工具，集中管理模型、密钥、订阅、路由与配置切换。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="AI编程" scheme="https://xiaomingclassmate.com/tags/AI%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Magpie" scheme="https://xiaomingclassmate.com/tags/Magpie/"/>
    
    <category term="API网关" scheme="https://xiaomingclassmate.com/tags/API%E7%BD%91%E5%85%B3/"/>
    
    <category term="Claude Code" scheme="https://xiaomingclassmate.com/tags/Claude-Code/"/>
    
    <category term="Codex" scheme="https://xiaomingclassmate.com/tags/Codex/"/>
    
  </entry>
  
  <entry>
    <title>Obsidian 下载即吃灰？装上这4个插件，毛坯房秒变精装房</title>
    <link href="https://xiaomingclassmate.com/posts/23101/"/>
    <id>https://xiaomingclassmate.com/posts/23101/</id>
    <published>2026-09-12T09:07:09.000Z</published>
    <updated>2026-11-08T12:57:03.239Z</updated>
    
    <content type="html"><![CDATA[<p>先说个扎心的场景。</p><p>很多人被安利了 Obsidian，兴冲冲下载打开。界面光秃秃，一个空文件夹，一片空白。</p><p>然后呢？然后就吃灰了。</p><p>其实不是 Obsidian 不行，是你没装对插件。装对这四个，它就从“毛坯房”变“精装房”：收集、编辑、关联、同步，四个核心问题一次解决。</p><blockquote><p><strong>版本提示：</strong> 本文基于 2026 年 8 月的文章整理；Obsidian 插件功能和权限可能变化，请以官方插件目录当前说明为准。</p><p><strong>安全提示：</strong> 第三方插件可以读取或修改笔记库，安装前请先备份，并只从 Obsidian 官方目录或项目官方发布页安装。<code>Claudian</code> 和 <code>Fast Note Sync</code> 目前在目录中标记为未经 Obsidian 团队人工审核。</p></blockquote><h2 id="①-Web-Clipper-解释器：剪藏即理解"><a href="#①-Web-Clipper-解释器：剪藏即理解" class="headerlink" title="① Web Clipper + 解释器：剪藏即理解"></a>① Web Clipper + 解释器：剪藏即理解</h2><p>看到好文章、好视频，想存进 Obsidian，还得手动复制粘贴？</p><p>官方的 <a href="https://obsidian.md/clipper">Web Clipper</a> 浏览器插件，点一下，网页内容直接进笔记库。</p><p>配合解释器功能（比如接 DeepSeek 模型），剪藏的同时自动生成摘要、提炼关键词，连 YouTube 视频字幕都能转成笔记。你存进来的不再是碎片，而是整理好的知识卡片。</p><p>建议提前把模板设置好，收集模块化，后面查找和管理都省心。</p><p><img src="/images/obsidian-plugins/web-clipper-workflow.webp" alt="剪藏工作流：网页一键变知识卡片"></p><h2 id="②-Editing-Toolbar：不用背-Markdown-语法"><a href="#②-Editing-Toolbar：不用背-Markdown-语法" class="headerlink" title="② Editing Toolbar：不用背 Markdown 语法"></a>② Editing Toolbar：不用背 Markdown 语法</h2><p>新手最头疼什么？记语法。加粗两个星号，链接方括号加圆括号，写一句查一次。</p><p><a href="https://obsidian.md/plugins?id=editing-toolbar">Editing Toolbar</a> 在编辑器顶部加了一条可视化工具栏：加粗、斜体、标题、引用、列表、代码块，全部一键搞定，写起来像 Word 一样流畅。</p><p>想拉朋友入坑 Obsidian，先给他装这个，适应门槛直接砍半。</p><h2 id="③-Claudian：AI-替你挖笔记关联"><a href="#③-Claudian：AI-替你挖笔记关联" class="headerlink" title="③ Claudian：AI 替你挖笔记关联"></a>③ Claudian：AI 替你挖笔记关联</h2><p>笔记记多了有个通病：全是孤岛。单看每篇都有用，彼此的联系却没人管。</p><p><a href="https://obsidian.md/plugins?id=realclaudian">Claudian</a> 把 Claude Code、Codex 等本地代理带进笔记库，可让 AI 在写作时分析内容、挖掘隐性关联。比如你写过“时间管理”和“精力管理”，它可以提示两者的共通点，帮你把知识网络织起来。</p><p>你不用刻意整理。AI 可以在写作时辅助分析，但使用前要准备好对应的本地 CLI 或 API 环境，并确认数据会发送到哪里。</p><h2 id="④-Fast-Note-Sync：多端同步"><a href="#④-Fast-Note-Sync：多端同步" class="headerlink" title="④ Fast Note Sync：多端同步"></a>④ Fast Note Sync：多端同步</h2><p>笔记不能在手机上接着写，体验直接打折。</p><p><a href="https://obsidian.md/plugins?id=fast-note-sync">Fast Note Sync</a> 可以把电脑、手机和平板连接到同一个同步服务。插件本身免费，但通常需要部署或连接可用的服务器；域名、带宽和运维成本要自行承担。重要笔记仍建议保留额外备份。</p><p>出门手机随手记，回家电脑上已经在了。这种畅快感，用过就回不去。</p><h2 id="拼起来就是一条工作流"><a href="#拼起来就是一条工作流" class="headerlink" title="拼起来就是一条工作流"></a>拼起来就是一条工作流</h2><p>收集用 Web Clipper，编辑用 Editing Toolbar，关联交给 Claudian，同步交给 Fast Note Sync。四款插件对应四个环节，一套流水线就搭好了。</p><p><img src="/images/obsidian-plugins/four-plugins-workflow.webp" alt="四插件工作流：收集、编辑、关联、同步"></p><p>工具的价值不在多复杂，而在能不能补上你工作流里缺的那一块。刚开始用 Obsidian 的话，从这四个入手，不会错。</p><p>你的 Obsidian 里装了哪些离不开的插件？评论区交换一下。</p>]]></content>
    
    
    <summary type="html">用 Web Clipper、Editing Toolbar、Claudian 和 Fast Note Sync 补齐 Obsidian 的收集、编辑、关联与同步工作流。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="Obsidian" scheme="https://xiaomingclassmate.com/tags/Obsidian/"/>
    
    <category term="插件" scheme="https://xiaomingclassmate.com/tags/%E6%8F%92%E4%BB%B6/"/>
    
    <category term="知识管理" scheme="https://xiaomingclassmate.com/tags/%E7%9F%A5%E8%AF%86%E7%AE%A1%E7%90%86/"/>
    
    <category term="Web Clipper" scheme="https://xiaomingclassmate.com/tags/Web-Clipper/"/>
    
    <category term="工作流" scheme="https://xiaomingclassmate.com/tags/%E5%B7%A5%E4%BD%9C%E6%B5%81/"/>
    
  </entry>
  
  <entry>
    <title>我给 AI 装了“偷懒插件”：代码少一半，安全和测试反而更好</title>
    <link href="https://xiaomingclassmate.com/posts/48129/"/>
    <id>https://xiaomingclassmate.com/posts/48129/</id>
    <published>2026-09-12T08:25:31.000Z</published>
    <updated>2026-11-08T13:50:00.000Z</updated>
    
    <content type="html"><![CDATA[<p>先说一个很常见的翻车现场。</p><p>你让 AI 加一个日期选择器。它噼里啪啦写了一个自定义组件：日历、动画、主题切换、国际化，一个都不少。</p><p>而你真正需要的，可能只是浏览器原生支持的那一个：</p><figure class="highlight html"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line"><span class="tag">&lt;<span class="name">input</span> <span class="attr">type</span>=<span class="string">&quot;date&quot;</span>&gt;</span></span><br></pre></td></tr></table></figure><p>这不是 AI 不会写，而是它默认把“能写”当成了“应该写”。</p><p>Ponytail 要解决的，就是这个问题。它不是新模型，也不是代码生成器，而是一套给 AI 编程助手用的行为规则：动手之前，先沿着“最小可行方案”往下走。</p><p><img src="/images/ponytail/ponytail-hero.svg" alt="同一个日期选择器：没有 Ponytail 写了 335 行，用了 Ponytail 只要 10 行"></p><p><em>同一个日期选择器：普通 Agent 写了 335 行，Ponytail 复用项目已有组件和浏览器原生能力，只写 10 行。</em></p><p>项目地址：<a href="https://github.com/DietrichGebert/ponytail">https://github.com/DietrichGebert/ponytail</a></p><blockquote><p>本文数据核对于 2026-11-08，采用项目 README 的 v5 基准测试。实际效果会随项目、任务和模型变化。</p></blockquote><h2 id="先看结论：少写，不等于少做"><a href="#先看结论：少写，不等于少做" class="headerlink" title="先看结论：少写，不等于少做"></a>先看结论：少写，不等于少做</h2><p>作者在同一批任务上对比了“开 Ponytail”和“不开 Ponytail”的结果。测试包含 39 个任务，其中有真实的 FastAPI + React 仓库，每个任务跑 5 次。</p><p>最新 v5 基准的结果是：</p><ul><li>代码量减少 <strong>53%</strong></li><li>交付时间减少 <strong>41%</strong></li><li>成本降低 <strong>26%</strong></li><li>输出 Token 减少 <strong>45%</strong></li></ul><p>如果只看这些数字，很容易把它理解成“让 AI 少写点”。但真正有价值的是另一组数据：</p><ul><li>高风险逻辑带测试的比例：<strong>98%</strong>，不开 Ponytail 时是 <strong>68%</strong></li><li>Agent 自己写的测试能抓到 <strong>66%</strong> 的注入 Bug，不开时是 <strong>46%</strong></li><li>6 类安全任务、共 30 次运行全部通过</li></ul><p>也就是说，代码确实少了一半，但验证、安全和测试没有被一起砍掉。</p><h2 id="它到底改了什么：写代码前的-7-级梯子"><a href="#它到底改了什么：写代码前的-7-级梯子" class="headerlink" title="它到底改了什么：写代码前的 7 级梯子"></a>它到底改了什么：写代码前的 7 级梯子</h2><p>Ponytail 的核心不是一句“给我写简洁点”，而是一套明确的决策顺序。</p><p>AI 在理解问题、读完相关代码之后，才允许开始选方案。它会依次问自己：</p><ol><li>这东西真的需要存在吗？不需要就停。</li><li>代码库里已经有类似的吗？有就复用。</li><li>标准库能做吗？能就直接用。</li><li>平台原生能力能做吗？能就别重造。</li><li>已安装的依赖里已经有吗？有就不要再装一个。</li><li>能一行解决吗？能就写一行。</li><li>以上都不行，才允许写最小实现；如果包含分支、循环、解析、金钱或安全逻辑，还要留一个小测试。</li></ol><p><img src="/images/ponytail/ponytail-ladder.svg" alt="Ponytail 的七级决策梯子"></p><p><em>先理解问题，再走梯子。懒的是方案，不是阅读和验证。</em></p><p>这套顺序看起来朴素，但它刚好补上了 AI 编程里最常见的漏洞：<strong>默认从“新增代码”开始，而不是从“现有能力”开始。</strong></p><h2 id="为什么不是一句“写简洁点”？"><a href="#为什么不是一句“写简洁点”？" class="headerlink" title="为什么不是一句“写简洁点”？"></a>为什么不是一句“写简洁点”？</h2><p>因为“简洁”这个词没有底线。</p><p>你在提示词里塞一句“少写点、简单点”，AI 确实可能少写几行。但它也可能顺手删掉路径遍历校验、输入边界检查、错误处理和可访问性支持。</p><p>Ponytail 明确划了四条红线，任何时候都不允许省：</p><ul><li>信任边界上的输入校验</li><li>防止数据丢失的错误处理</li><li>安全</li><li>可访问性</li></ul><p>它还把“给逻辑留测试”写进了规则里。不是所有代码都要配一套庞大测试，但分支、循环、解析器、金钱和安全逻辑，至少应该有一个小而有效的检查。</p><p><img src="/images/ponytail/ponytail-benchmark.svg" alt="Ponytail v5 基准：资源下降，测试与安全保持"></p><p><em>更少代码是结果，不是目标。目标是只写任务真正需要的那部分。</em></p><p>这也是它和“极简代码挑战”最大的区别：<strong>Ponytail 懒的是方案，不是责任。</strong></p><h2 id="怎么装：Claude-Code-和-Codex-都能用"><a href="#怎么装：Claude-Code-和-Codex-都能用" class="headerlink" title="怎么装：Claude Code 和 Codex 都能用"></a>怎么装：Claude Code 和 Codex 都能用</h2><p>Ponytail 支持 Claude Code、Codex、Copilot、Cursor、Gemini CLI 等二十多个宿主。安装方式以官方 README 为准，下面是两个最常见的入口。</p><h3 id="Claude-Code"><a href="#Claude-Code" class="headerlink" title="Claude Code"></a>Claude Code</h3><p>分别执行：</p><figure class="highlight text"><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">/plugin marketplace add DietrichGebert/ponytail</span><br><span class="line">/plugin install ponytail@ponytail</span><br></pre></td></tr></table></figure><p>安装后默认是 <code>full</code> 档，开始新会话即可生效。</p><h3 id="Codex"><a href="#Codex" class="headerlink" title="Codex"></a>Codex</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">codex plugin marketplace add DietrichGebert/ponytail</span><br><span class="line">codex plugin add ponytail@ponytail</span><br></pre></td></tr></table></figure><p>然后在 Codex 中打开 <code>/hooks</code>，信任它的两个生命周期 Hook，再新开一个线程。</p><h3 id="其他-AI-编程工具"><a href="#其他-AI-编程工具" class="headerlink" title="其他 AI 编程工具"></a>其他 AI 编程工具</h3><p>把项目里的 <code>AGENTS.md</code> 复制到你的项目，或者让 Agent 把 <code>skills/ponytail/SKILL.md</code> 安装成技能即可。Copilot、Cursor、OpenCode、Gemini 等宿主的具体步骤，官方 <code>INSTALL.md</code> 里都有。</p><blockquote><p>只从 <code>DietrichGebert/ponytail</code> 或 npm 的 <code>@dietrichgebert/ponytail</code> 安装。Ponytail 不会附带 <code>.exe</code> 或 <code>.dll</code> 文件。</p></blockquote><h2 id="三个最值得用的命令"><a href="#三个最值得用的命令" class="headerlink" title="三个最值得用的命令"></a>三个最值得用的命令</h2><p>装好之后，除了默认规则，我更推荐把这三个命令用起来。</p><h3 id="ponytail-review"><a href="#ponytail-review" class="headerlink" title="/ponytail-review"></a><code>/ponytail-review</code></h3><p>不只检查“哪里能删”，还会读改动涉及的代码，检查 Bug、安全问题、真实负载下的风险、缺失测试和慢路径。</p><p>每条问题都应该说清楚：这段代码做什么、哪里会坏、怎么修、不修会怎样。</p><h3 id="ponytail-audit"><a href="#ponytail-audit" class="headerlink" title="/ponytail-audit"></a><code>/ponytail-audit</code></h3><p>把同一套检查扩大到整个仓库，按严重程度排序，告诉你先修什么。</p><p>它适合接手陌生项目，或者定期给老项目做一次体检。</p><h3 id="ponytail-debt"><a href="#ponytail-debt" class="headerlink" title="/ponytail-debt"></a><code>/ponytail-debt</code></h3><p>收集代码里刻意留下的简化点，生成一份技术债账本。</p><p>现在推荐的标记格式是：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">// shortcut: 只支持单文件，需要批量导入时升级</span><br></pre></td></tr></table></figure><p>偷懒不可怕，可怕的是忘了自己偷过懒。把限制和升级条件写下来，之后才能用一条命令把账翻出来。</p><p>Codex CLI 里的命令会带命名空间，例如：</p><figure class="highlight text"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">$ponytail:ponytail-review</span><br></pre></td></tr></table></figure><h2 id="怎么用才不容易翻车"><a href="#怎么用才不容易翻车" class="headerlink" title="怎么用才不容易翻车"></a>怎么用才不容易翻车</h2><p>Ponytail 不是“无脑砍代码”按钮。想让它发挥得好，任务描述里至少要给它三样东西：</p><ol><li><strong>目标</strong>：要解决什么问题，不是“给我写一个组件”。</li><li><strong>边界</strong>：必须保留哪些行为、兼容性和安全要求。</li><li><strong>验证方式</strong>：哪些测试必须跑，哪些场景不能退化。</li></ol><p>如果你确实在做探索性原型，需要先比较几种方案，也可以明确告诉 AI：“先发散，最后再用 Ponytail 收敛到最小实现。”</p><p>它最适合已有代码库、维护型项目和 AI 生成代码越来越多的团队。因为这些场景里，真正的成本通常不是“写出第一版”，而是之后几年里持续阅读、修改和修 Bug。</p><h2 id="最后说两句"><a href="#最后说两句" class="headerlink" title="最后说两句"></a>最后说两句</h2><p>这几年我们教 AI 的事，很多都是“写更多”：更多功能、更多抽象、更多看起来很专业的代码。</p><p>Ponytail 反着来，教它先停下来问一句：</p><p><strong>这东西真的需要存在吗？</strong></p><p>维护比生成贵。每多一行没人读过的代码，都是将来某个凌晨三点的 Bug 候选人。</p><p>最好的代码，是你从未写过的代码。</p><p>项目地址：<a href="https://github.com/DietrichGebert/ponytail">https://github.com/DietrichGebert/ponytail</a></p>]]></content>
    
    
    <summary type="html">Ponytail 用一套“偷懒”规则约束 AI 编程：优先复用现有代码和原生能力。官方 v5 基准中代码量减少 53%，同时保留安全、测试与可访问性。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="开发效率" scheme="https://xiaomingclassmate.com/tags/%E5%BC%80%E5%8F%91%E6%95%88%E7%8E%87/"/>
    
    <category term="AI编程" scheme="https://xiaomingclassmate.com/tags/AI%E7%BC%96%E7%A8%8B/"/>
    
    <category term="Claude Code" scheme="https://xiaomingclassmate.com/tags/Claude-Code/"/>
    
    <category term="Codex" scheme="https://xiaomingclassmate.com/tags/Codex/"/>
    
    <category term="Ponytail" scheme="https://xiaomingclassmate.com/tags/Ponytail/"/>
    
  </entry>
  
  <entry>
    <title>Karpathy 的 4 条守则：80 行让 AI 编码从“翻车”变“靠谱”</title>
    <link href="https://xiaomingclassmate.com/posts/22101/"/>
    <id>https://xiaomingclassmate.com/posts/22101/</id>
    <published>2026-08-09T08:14:46.000Z</published>
    <updated>2026-11-08T12:56:46.907Z</updated>
    
    <content type="html"><![CDATA[<p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260726151450005.png" alt="image.png"></p><blockquote><p><strong>版本提示：</strong> 标题中的“80 行”来自文章原始表述；截至 2026 年 11 月 8 日，仓库主分支的 <code>CLAUDE.md</code> 为 66 行，规则结构未变，安装时请以仓库当前文件为准。</p><p><strong>使用提示：</strong> 在项目根目录下载前，先确认不会覆盖已有的 <code>CLAUDE.md</code>，必要时先备份。</p></blockquote><p>你有没有遇到过这种情况？</p><p>让 AI “优化搜索速度”，它默默选了一种理解，埋头写了 200 行——结果优化的方向根本不是你要的。</p><p>让 AI “修一个空 email 的 bug”，它顺手加了 type hint、改了注释、重构了相邻函数——bug 修了，但 PR diff 多了 30 行无关改动。</p><p>Karpathy 早就看透了这件事。他在推文里指出，LLM 编码有三类典型失败：替你做错误假设、过度复杂化代码、顺手改不该改的东西。</p><p>根源只有一个：LLM 不管理自己的认知不确定性。RLHF 训练让模型学到”给出动作 &gt; 提出问题”、”写完整 &gt; 写最小”，两个加起来，就是 Karpathy 列举的所有翻车行为。</p><p>有人把这 4 条守则落成了一份 80 行的 CLAUDE.md。不是空泛的”写好代码”，而是对症下药的显式约束。</p><p>项目地址：<a href="https://github.com/multica-ai/andrej-karpathy-skills">https://github.com/multica-ai/andrej-karpathy-skills</a></p><h2 id="Think-Before-Coding：不确定就停下来问"><a href="#Think-Before-Coding：不确定就停下来问" class="headerlink" title="Think Before Coding：不确定就停下来问"></a>Think Before Coding：不确定就停下来问</h2><p>多种解释存在时，列出来，不要默默挑一个。不清楚就指出不清楚的是什么，然后问。</p><p>“优化搜索速度”——快的定义是响应时间、并发吞吐还是感知速度？先问清楚再动手。</p><p>副作用：agent 会反问更多小事。需要加一条 escape hatch：显然的单行修改、拼写错误，跳过本规则。</p><h2 id="Simplicity-First：100-行能写完的事别堆成-1000-行"><a href="#Simplicity-First：100-行能写完的事别堆成-1000-行" class="headerlink" title="Simplicity First：100 行能写完的事别堆成 1000 行"></a>Simplicity First：100 行能写完的事别堆成 1000 行</h2><p>不写任务以外的功能，不为一次性代码做抽象，不加没被要求的灵活性。</p><p>计算折扣：错的版本祭出策略模式 + 抽象基类 + 工厂方法，80 行。对的版本是 5 行纯函数。</p><p>过度复杂不是错——它们符合设计模式和最佳实践。问题在于时机：不需要的时候引入复杂度，就是浪费。</p><h2 id="Surgical-Changes：只改用户要求的，不改邻近的"><a href="#Surgical-Changes：只改用户要求的，不改邻近的" class="headerlink" title="Surgical Changes：只改用户要求的，不改邻近的"></a>Surgical Changes：只改用户要求的，不改邻近的</h2><p>每一行修改都要能追溯到用户的请求。不”改进”相邻代码，不重构没坏的东西，不删原本就存在的死代码。</p><p>修空 email 的 bug——只改直接相关的 3 行。不是顺便加校验、改注释、加 docstring。</p><p>这条收益最快。装上后，PR diff 第一周就明显变干净。</p><h2 id="Goal-Driven-Execution：给成功标准，让它自己跑"><a href="#Goal-Driven-Execution：给成功标准，让它自己跑" class="headerlink" title="Goal-Driven Execution：给成功标准，让它自己跑"></a>Goal-Driven Execution：给成功标准，让它自己跑</h2><p>不要说”Add validation”，说”Write tests for invalid inputs, then make them pass”。不要说”Fix the bug”，说”Write a test that reproduces it, then make it pass”。</p><p>把指令式动词翻译成可验证目标。多步任务每步配 verify，agent 自己拆 plan、自己验证，回来检查的频率显著下降。</p><h2 id="为什么-80-行就能管这么多"><a href="#为什么-80-行就能管这么多" class="headerlink" title="为什么 80 行就能管这么多"></a>为什么 80 行就能管这么多</h2><p>四条都是元规则——教 agent 决策框架，不是穷举”不要做什么”。元规则可泛化、不会过期、agent 在新情境下能自己推理。</p><p>规则跟症状一一对应：假设漂移 → Think Before Coding，复杂度膨胀 → Simplicity First，scope creep → Surgical Changes，无可验证终止 → Goal-Driven Execution。对症下药，所以短、准、副作用小。</p><p>GitHub 地址：<a href="https://github.com/multica-ai/andrej-karpathy-skills">https://github.com/multica-ai/andrej-karpathy-skills</a></p><p>安装只需一行：</p><figure class="highlight bash"><table><tr><td class="gutter"><pre><span class="line">1</span><br></pre></td><td class="code"><pre><span class="line">curl -fL https://raw.githubusercontent.com/multica-ai/andrej-karpathy-skills/main/CLAUDE.md -o CLAUDE.md</span><br></pre></td></tr></table></figure><p>验证是否生效：给 agent 一个故意有歧义的任务，比如”帮我加一下 export 功能”。装上后它应该反问”export 指哪种？”——如果直接开始写代码，说明没生效。</p><p>80 行，四条守则，对症下药。不是教 agent “努力写好代码”，而是堵住它每次会话都会犯的毛病。这才是让 AI 编码从翻车变靠谱的起点。</p>]]></content>
    
    
    <summary type="html">用 Karpathy 提出的 4 条 AI 编码守则约束代理：先问清楚、保持简单、只改必要代码，并用可验证目标驱动执行。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="Karpathy" scheme="https://xiaomingclassmate.com/tags/Karpathy/"/>
    
    <category term="AI编程" scheme="https://xiaomingclassmate.com/tags/AI%E7%BC%96%E7%A8%8B/"/>
    
    <category term="CLAUDE.md" scheme="https://xiaomingclassmate.com/tags/CLAUDE-md/"/>
    
    <category term="代码质量" scheme="https://xiaomingclassmate.com/tags/%E4%BB%A3%E7%A0%81%E8%B4%A8%E9%87%8F/"/>
    
    <category term="提示词工程" scheme="https://xiaomingclassmate.com/tags/%E6%8F%90%E7%A4%BA%E8%AF%8D%E5%B7%A5%E7%A8%8B/"/>
    
  </entry>
  
  <entry>
    <title>还在为 Obsidian 同步发愁？这款开源神器，让你实现全平台秒传</title>
    <link href="https://xiaomingclassmate.com/posts/25101/"/>
    <id>https://xiaomingclassmate.com/posts/25101/</id>
    <published>2026-03-05T11:42:00.000Z</published>
    <updated>2026-11-08T12:56:29.319Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>如果要评选最好用的本地笔记软件，Obsidian 绝对榜上有名。</p><p>但很多 Obsidian 用户都有一个共同的痛点：多端同步怎么解决？</p><p>官方自带的 Sync 服务虽然省心，但价格确实不便宜。用 iCloud 或 OneDrive 的话，经常遇到同步慢、容易产生冲突文件的问题。而用 Git 同步，对于移动端（尤其是 iOS）来说极其折腾，每次都要手动推拉，做不到“无感”。</p><p>今天介绍一款在 GitHub 上开源的项目：Fast Note Sync For Obsidian。</p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304214511519.png" alt="image.png"></p><blockquote><p><strong>版本提示：</strong> 本文截图基于 2026 年 3 月。截至 2026 年 11 月 8 日，插件最新 Release 为 <code>2.4.0</code>，服务端为 <code>3.6.1</code>，示例已固定到 <code>3.6.1</code> 镜像。</p><p><strong>安全提示：</strong> 不要把服务端 <code>9000</code> 端口直接裸露到公网。建议通过 VPN、内网访问，或放在带 HTTPS 和身份认证的反向代理后。首次注册管理员后尽快关闭注册，使用强密码，并定期备份 <code>storage</code> 与 <code>config</code>。该插件目前在 Obsidian 社区目录中标记为未经 Obsidian 团队人工审核。</p></blockquote><h2 id="它能解决什么问题？"><a href="#它能解决什么问题？" class="headerlink" title="它能解决什么问题？"></a>它能解决什么问题？</h2><p>正如名字“Fast”一样，这款插件主打快和稳。不同于简单的同步脚本，它是一套完整的私有化同步架构。</p><p>根据其文档，它有几个核心特点：</p><p><strong>1. 基于 Websocket 的实时同步</strong><br>受够了手动点同步或者苦等网盘刷新？Fast Note Sync 基于 Websocket 构建，支持多端实时同步。你在电脑上敲下的每一行字，都会在很短的时间内同步到手机或平板上。这种体验非常接近官方的 Sync 服务。</p><p><strong>2. 数据私有化部署</strong><br>笔记是私密数据。Fast Note Sync 允许你将其部署在自己的服务器或 NAS 上。它配套了一个基于 Golang、Websocket、Sqlite 和 React 构建的高性能服务端。所有数据都在你自己的掌控中，不经过第三方服务器。</p><p><strong>3. 全平台跨设备支持</strong><br>它提供了原生插件支持，无论你使用的是 Mac、Windows，还是 Android、iOS。只要配置好服务端，各端就能随时调取最新的知识库。</p><p><strong>4. 稳定且无打扰</strong><br>它在后台悄悄运行，支持多语言，资源占用极低，不会干扰你正常的写作心流。</p><h2 id="怎么上手使用？"><a href="#怎么上手使用？" class="headerlink" title="怎么上手使用？"></a>怎么上手使用？</h2><p>因为是私有化方案，你需要简单的两步操作：</p><h3 id="安装客户端插件："><a href="#安装客户端插件：" class="headerlink" title="安装客户端插件："></a><strong>安装客户端插件</strong>：</h3><p>在 Obsidian 插件市场（或通过安装包）安装 <code>Fast Note Sync Plugin</code>，填入你配置好的私有服务器地址。连接成功后，就可以开始同步了。</p><p>1.安装插件</p><ul><li><strong>优先</strong> 在 Obsidian 社区插件市场搜索 <strong>Fast Note Sync</strong>。如果商店版本暂未更新，再用 BRAT：搜索并安装 <a href="https://github.com/TfTHacker/obsidian42-brat">BRAT</a> 插件。</li></ul><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304214940749.png" alt="image-20260304204014980"></p><p>进入插件设置界面, 点击 <strong>Add beta plugin</strong> 并粘贴 <a href="https://github.com/haierkeys/obsidian-fast-note-sync%EF%BC%8C%E6%9C%80%E5%90%8E%E7%82%B9%E5%87%BBAdd">https://github.com/haierkeys/obsidian-fast-note-sync，最后点击Add</a> plugin。</p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304214949723.png" alt="image-20260304204900179"></p><ul><li><strong>手动安装</strong>: 访问 <a href="https://github.com/haierkeys/obsidian-fast-note-sync/releases">https://github.com/haierkeys/obsidian-fast-note-sync/releases</a> 下载安装包, 解压到 Obsidian 插件目录下 <strong>.obsidian&#x2F;plugins</strong></li></ul><h3 id="部署服务端："><a href="#部署服务端：" class="headerlink" title="部署服务端："></a><strong>部署服务端</strong>：</h3><p>在云服务器或 NAS 上部署 <code>Fast Note Sync Service</code>。服务端是用 Go 语言写的，非常轻量。配置要求不高，哪怕是最低配的 1 核 1G 服务器也能跑起来。此外，它还自带一个在线管理网页和远端 API。下面使用我本地极空间Z4Pro主力机进行部署。</p><p>1.在个人空间创建所需目录config和storage<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304210340198.png" alt="image.png"><br>2.打开Docker，选择Compose，点击新增项目，项目名字自定义<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304210700168.png" alt="image.png"><br>3.点击查询路径，找到我们刚才创建的目录，点击复制路径<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304210828764.png" alt="image.png"></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></pre></td><td class="code"><pre><span class="line"><span class="attr">services:</span></span><br><span class="line">  <span class="attr">fast-note-sync-service:</span></span><br><span class="line">    <span class="attr">image:</span> <span class="string">haierkeys/fast-note-sync-service:3.6.1</span></span><br><span class="line">    <span class="attr">container_name:</span> <span class="string">fast-note-sync-service</span></span><br><span class="line">    <span class="attr">restart:</span> <span class="string">always</span></span><br><span class="line">    <span class="attr">ports:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">&quot;9000:9000&quot;</span>  <span class="comment"># RESTful API &amp; WebSocket 端口 其中 /api/user/sync 为 WebSocket 接口地址</span></span><br><span class="line">    <span class="attr">volumes:</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./storage:/fast-note-sync/storage</span>  <span class="comment"># 数据存储</span></span><br><span class="line">      <span class="bullet">-</span> <span class="string">./config:/fast-note-sync/config</span>    <span class="comment"># 配置文件</span></span><br></pre></td></tr></table></figure><p>4.替换上述<code>./storage</code>和<code>./config</code>为我们刚才复制的路径，粘贴进黑框中，点击<strong>创建</strong><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304211414055.png" alt="image.png"><br>5.<strong>访问管理面板</strong>： 在浏览器打开 <code>http://{服务器IP或者NAS_IP}:9000</code>。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304212000630.png" alt="image.png"></p><p>6.<strong>初始化设置</strong>： 首次访问需注册账号。<em>(如需关闭注册功能，请在配置文件中设置 <code>user.register-is-enable: false</code>)</em><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304212149198.png" alt="image.png"></p><p>7.<strong>配置客户端</strong>： 登录管理面板，点击 右上角头像–&gt;<strong>“授权配置”</strong>，一键授权到Obsidian。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304212619237.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304212717042.png" alt="image.png"></p><h3 id="Obsidian同步插件配置"><a href="#Obsidian同步插件配置" class="headerlink" title="Obsidian同步插件配置"></a>Obsidian同步插件配置</h3><p>1.打开Obsidian，打开同步插件，可以看到远端配置已经自动配置好<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304213619838.png" alt="image.png"></p><p>2.选到同步配置，打开配置自动同步按钮<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304213851501.png" alt="image.png"></p><h3 id="服务端同步"><a href="#服务端同步" class="headerlink" title="服务端同步"></a>服务端同步</h3><p>配置好，Obsidian的文件和配置就会自动同步到服务端了，如下图所示<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260304214325839.png" alt="image.png"></p><p>如果你正在寻找一个掌控数据隐私、成本可控且足够稳定的 Obsidian 同步方案，这是个不错的选择。</p><p>插件仓库地址：<code>https://github.com/haierkeys/obsidian-fast-note-sync</code></p><p>中国大陆地区，推荐使用腾讯 <code>cnb.cool</code> 镜像库: <a href="https://cnb.cool/haierkeys/obsidian-fast-note-sync">https://cnb.cool/haierkeys/obsidian-fast-note-sync</a></p><p>服务端仓库：<code>https://github.com/haierkeys/fast-note-sync-service</code></p><p>中国大陆地区，推荐使用腾讯 <code>cnb.cool</code> 镜像库: <a href="https://cnb.cool/haierkeys/fast-note-sync-service">https://cnb.cool/haierkeys/fast-note-sync-service</a></p><p>大家平时都在用什么方案同步 Obsidian？遇到了什么坑？欢迎在评论区交流。</p>]]></content>
    
    
    <summary type="html">使用 Fast Note Sync 插件和自建 Docker 服务端，为 Obsidian 配置 WebSocket 实时同步，实现电脑、手机与 NAS 的多端同步。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="NAS" scheme="https://xiaomingclassmate.com/tags/NAS/"/>
    
    <category term="Docker" scheme="https://xiaomingclassmate.com/tags/Docker/"/>
    
    <category term="Obsidian" scheme="https://xiaomingclassmate.com/tags/Obsidian/"/>
    
    <category term="Fast Note Sync" scheme="https://xiaomingclassmate.com/tags/Fast-Note-Sync/"/>
    
    <category term="笔记同步" scheme="https://xiaomingclassmate.com/tags/%E7%AC%94%E8%AE%B0%E5%90%8C%E6%AD%A5/"/>
    
  </entry>
  
  <entry>
    <title>终于找到它了！Umi-OCR：这个离线文字识别神器，免费、批量、超安全！</title>
    <link href="https://xiaomingclassmate.com/posts/21101/"/>
    <id>https://xiaomingclassmate.com/posts/21101/</id>
    <published>2026-02-09T15:23:57.000Z</published>
    <updated>2026-11-08T12:57:13.699Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>老铁们，你是不是也经常遇到这种“卡壳”的场景？</p><ul><li>看到一张图，上面有段文字想复制粘贴，结果只能手动敲？</li><li>领导发来一堆图片格式的会议纪要，让你整理成文档，瞬间崩溃？</li><li>为了把PDF里的文字提取出来，到处找在线工具，结果不是要收费就是识别不准，更担心数据安全？</li><li>或者某个古老的扫描件，急需里面的信息，对着屏幕一个字一个字地敲，眼睛都要瞎了？</li></ul><p>每当这个时候，我们都恨不得能有一个“超能力”，一眼扫过去，文字就自动跳出来。市面上那些在线OCR工具，虽然能解决一时之急，但要么限制次数，要么识别效果不佳，最让人担心的还是那句：<strong>“你的图片和文字，会上传到服务器进行处理……”</strong> 敏感信息，你敢上传吗？</p><p>别慌！今天，我要给你们安利一个真正的 <strong>“神仙级”文字识别工具——Umi-OCR！</strong> 它不仅<strong>完全免费、识别超准，最关键的是，它还能离线运行、批量识别！</strong> 简直是打工人的福音，学生党的宝藏，效率神器，没有之一！</p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202215014064.png" alt="image.png"></p><blockquote><p><strong>版本提示：</strong> 本文截图和操作界面基于 2026 年 2 月。截至 2026 年 11 月 8 日，项目 GitHub 最新稳定版为 <code>v2.1.5</code>，请以 Releases 页面为准。</p><p><strong>使用提示：</strong> 离线识别可减少图片上传到第三方的风险，但安装包仍需从官方发布页获取；如果启用联网插件或调用外部服务，请自行确认数据处理方式。</p></blockquote><hr><h3 id="Umi-OCR-是个啥？为什么它能让你“真香”？"><a href="#Umi-OCR-是个啥？为什么它能让你“真香”？" class="headerlink" title="Umi-OCR 是个啥？为什么它能让你“真香”？"></a>Umi-OCR 是个啥？为什么它能让你“真香”？</h3><p>简单来说，Umi-OCR 是一款<strong>免费开源的离线 OCR 软件</strong>。它能把图片上的文字识别出来，让你轻松复制粘贴。听起来平平无奇？不！它的强大之处远超你的想象！</p><p>我用它已经有一段时间了，真切地感受到了什么叫做“效率起飞”！它的“真香”特点，简直是为我们这些对隐私有要求、对效率有追求、对钱包有顾虑的人量身打造：</p><ol><li><p><strong>完全免费，开源良心！</strong><br>这年头，好用的工具大多要收费，或者免费版各种限制。Umi-OCR 真正做到了<strong>免费、无广告、无内购！</strong> 项目开源，意味着它背后的代码是公开透明的，大家可以一起监督，用起来更放心。开发者简直是活菩萨！</p></li><li><p><strong>离线识别，数据安全感爆棚！</strong><br>这是我最爱的一点！所有的识别过程都在你的本地电脑上完成，<strong>不需要联网！</strong> 你的图片、你的文字，永远不会上传到任何服务器。这意味着，无论是公司的敏感文件，还是你的个人私密信息，都可以放心地交给 Umi-OCR 处理，<strong>彻底告别数据泄露的风险！</strong> 这种安全感，是任何在线 OCR 都给不了的。</p></li><li><p><strong>批量识别，效率直接翻倍！</strong><br>你有过一次性处理几十张、上百张图片文字的经历吗？一张一张地识别，简直是“人间炼狱”！Umi-OCR 支持<strong>批量导入图片进行识别</strong>，你只需要把所有图片拖进去，它就能“突突突”地全部识别完，然后把所有文字按顺序导出。<strong>一键搞定，省时省力，效率暴增！</strong></p></li><li><p><strong>识别准确率高，多语言支持！</strong><br>别以为免费的就不好用！Umi-OCR 的识别引擎非常强大，对中英文的识别准确率非常高，甚至还支持日语、韩语、法语、德语等多种语言。无论是打印体、手写体（部分支持），还是各种复杂的排版，它都能处理得有模有样。</p></li><li><p><strong>轻量级，不占资源！</strong><br>安装包不大，运行起来也很流畅，对电脑配置要求不高。即使是老旧的电脑，也能顺畅运行，不会卡顿。</p></li><li><p><strong>截图即识别，操作便捷！</strong><br>除了导入图片，它还支持<strong>屏幕截图识别</strong>。看到屏幕上任何区域的文字，随手一截，文字就出来了！这个功能在日常工作中简直是神来之笔，比如复制网页上不让复制的文字，或者从PPT、视频里提取信息，都变得轻而易举。</p></li></ol><p>一句话总结：<strong>Umi-OCR 真正做到了“免费、高效、安全”三位一体，是目前市面上最值得推荐的离线 OCR 工具，没有之一！</strong></p><h3 id="怎么用？简单到没朋友！"><a href="#怎么用？简单到没朋友！" class="headerlink" title="怎么用？简单到没朋友！"></a>怎么用？简单到没朋友！</h3><p>Umi-OCR 的界面设计非常简洁直观，几乎是“傻瓜式”操作。</p><p>项目地址：<a href="https://github.com/hiroi-sora/Umi-OCR">https://github.com/hiroi-sora/Umi-OCR</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202211649226.png" alt="image.png"></p><ol><li><p><strong>下载安装：</strong><br>直接去 GitHub 搜索 <code>Umi-OCR</code>，或者到它的官方主页，找到最新版的安装包下载。一般是免安装的绿色版，解压就能用。</p></li><li><p><strong>基本操作：</strong></p><ul><li><strong>截图识别：</strong> 打开 Umi-OCR 软件，点击“截图识别”按钮（或者快捷键），框选屏幕上的文字区域，识别结果秒出！</li><li><strong>图片识别：</strong> 将单张图片直接拖拽到软件界面，或者点击“图片识别”按钮选择图片，文字立即呈现。</li><li><strong>批量识别：</strong> 点击“批量识别”选项卡，将多张图片一次性拖入，或选择文件夹。点击“开始识别”，喝杯咖啡的功夫，所有图片文字就都提取出来了，支持导出为 TXT、Markdown 等多种格式。</li></ul></li><li><p><strong>高级设置（可选）：</strong><br>如果你有特殊需求，比如要识别特定语言、或者调整识别精度，可以在设置里简单调整一下。但对于大多数日常使用，默认设置就已经非常棒了！</p></li></ol><blockquote><p>请从 <a href="https://github.com/hiroi-sora/Umi-OCR/releases">GitHub Releases</a> 下载。<br>不要从无法确认来源的网盘或第三方站点获取安装包。</p></blockquote><p><strong>Paddle 引擎插件版</strong><br>（性能好，速度快，占用率高，适合高配机器。<strong>不兼容奔腾、赛扬、凌动CPU</strong>）</p><p><strong>重要提示：如果执行OCR时报错 <code>0xc0000142</code>、<code>[Error] OCR init fail</code>，大概率是CPU不兼容Paddle，请换用Rapid版本。</strong></p><p><strong>Rapid 引擎插件版</strong><br>（速度稍慢，内存占用低，适合低配机器，兼容性好）</p><h3 id="Umi-OCR软件实战"><a href="#Umi-OCR软件实战" class="headerlink" title="Umi-OCR软件实战"></a>Umi-OCR软件实战</h3><p>Umi-OCR 支持的界面多国语言。在第一次打开软件时，将会按照你的电脑的系统设置，自动切换语言。</p><p>如果需要手动切换语言，请参考下图，<code>全局设置</code>→<code>语言/Language</code><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202214805499.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202214844047.png" alt="image.png"></p><h3 id="1-截图-OCR"><a href="#1-截图-OCR" class="headerlink" title="1. 截图 OCR"></a>1. 截图 OCR</h3><p>打开这一页后，就可以用快捷键唤起截图，识别图中的文字。</p><ul><li>左侧的图片预览栏，可直接用鼠标划选复制。</li><li>右侧的识别记录栏，可以编辑文字，允许划选多个记录复制。</li><li>也支持在别处复制图片，粘贴到Umi-OCR进行识别。</li><li>关于 <a href="https://github.com/hiroi-sora/Umi-OCR/issues/254">公式识别</a> 功能<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202212508670.png" alt="image.png"></li></ul><h3 id="2-批量-OCR"><a href="#2-批量-OCR" class="headerlink" title="2. 批量 OCR"></a>2. 批量 OCR</h3><p>这一页用于批量导入本地图片进行识别。</p><ul><li>支持格式：<code>jpg, jpe, jpeg, jfif, png, webp, bmp, tif, tiff</code>。</li><li>保存识别结果的支持格式：<code>txt, jsonl, md, csv(Excel)</code>。</li><li>与截图OCR一样，支持<code>文本后处理</code>功能，整理OCR文本的排版和顺序。</li><li>没有数量上限，可一次性导入几百张图片进行任务。</li><li>支持任务完成后自动关机&#x2F;待机。</li><li>如果要识别像素超大的长图或大图，请调整：<strong>页面的设置→文字识别→限制图像边长→【调高数值】</strong>。</li><li>拥有特殊功能 <code>忽略区域</code> 。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202212936748.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202213249524.png" alt="image.png"></li></ul><h3 id="3-文档识别"><a href="#3-文档识别" class="headerlink" title="3. 文档识别"></a>3. 文档识别</h3><ul><li>支持格式：<code>pdf, xps, epub, mobi, fb2, cbz</code>。</li><li>对扫描件进行OCR，或提取原有文本。可输出为 <strong>双层可搜索PDF</strong> 。</li><li>支持设定 <strong>忽略区域</strong> ，可用于排除页眉页脚的文字。</li><li>可设置任务完成后 <strong>自动关机&#x2F;休眠</strong> 。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260202213522559.png" alt="image.png"></li></ul><h3 id="4-二维码"><a href="#4-二维码" class="headerlink" title="4. 二维码"></a>4. 二维码</h3><p>  <img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260203020158758.png" alt="image.png"></p><p><strong>扫码</strong>：</p><ul><li>截图&#x2F;粘贴&#x2F;拖入本地图片，读取其中的二维码、条形码。</li><li>支持一图多码。</li><li>支持19种协议，如下：<br><code>Aztec</code>,<code>Codabar</code>,<code>Code128</code>,<code>Code39</code>,<code>Code93</code>,<code>DataBar</code>,<code>DataBarExpanded</code>,<code>DataMatrix</code>,<code>EAN13</code>,<code>EAN8</code>,<code>ITF</code>,<code>LinearCodes</code>,<code>MatrixCodes</code>,<code>MaxiCode</code>,<code>MicroQRCode</code>,<code>PDF417</code>,<code>QRCode</code>,<code>UPCA</code>,<code>UPCE</code></li></ul><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260203015956280.png" alt="image.png"></p><p><strong>生成码</strong>：</p><ul><li>输入文本，生成二维码图片。</li><li>支持19种协议和<strong>纠错等级</strong>等参数。</li></ul><h3 id="谁需要它？反正我是离不开它了！"><a href="#谁需要它？反正我是离不开它了！" class="headerlink" title="谁需要它？反正我是离不开它了！"></a>谁需要它？反正我是离不开它了！</h3><ul><li><strong>学生党：</strong> 整理笔记、复习资料、从课件图片中提取文字，效率直接起飞！</li><li><strong>上班族：</strong> 处理合同、扫描件、会议记录、从图片或PDF中提取数据，告别手动输入！</li><li><strong>内容创作者：</strong> 收集素材、整理灵感，快速把图片上的文字变成可编辑的内容。</li><li><strong>对隐私有要求的人：</strong> 任何需要处理敏感文字信息的场景，Umi-OCR 都是你的首选。</li></ul><h3 id="总结：你的效率神器，现在就拥有！"><a href="#总结：你的效率神器，现在就拥有！" class="headerlink" title="总结：你的效率神器，现在就拥有！"></a>总结：你的效率神器，现在就拥有！</h3><p>Umi-OCR 真的不是那种华而不实的东西，它是实实在在能提升你工作学习效率的工具。它用免费、离线、批量识别的强大功能，彻底解决了我们日常遇到的文字提取难题。</p><p>如果你还在为图片文字识别而烦恼，还在担心数据安全，还在忍受低效的手动输入，那么，赶紧去下载 Umi-OCR 吧！它会让你体验到什么叫做“科技改变生活”，什么叫做“效率飞升”！</p><p>别再犹豫了，赶紧动手，把它装进你的工具箱，让你的工作学习变得更轻松、更高效！</p>]]></content>
    
    
    <summary type="html">Umi-OCR 离线文字识别工具介绍：截图 OCR、批量图片识别、文档识别和二维码处理，免费开源并支持本地运行。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="Umi-OCR" scheme="https://xiaomingclassmate.com/tags/Umi-OCR/"/>
    
    <category term="OCR" scheme="https://xiaomingclassmate.com/tags/OCR/"/>
    
    <category term="文字识别" scheme="https://xiaomingclassmate.com/tags/%E6%96%87%E5%AD%97%E8%AF%86%E5%88%AB/"/>
    
    <category term="离线工具" scheme="https://xiaomingclassmate.com/tags/%E7%A6%BB%E7%BA%BF%E5%B7%A5%E5%85%B7/"/>
    
    <category term="开源软件" scheme="https://xiaomingclassmate.com/tags/%E5%BC%80%E6%BA%90%E8%BD%AF%E4%BB%B6/"/>
    
  </entry>
  
  <entry>
    <title>给想搞学习但没时间的你：把 YouTube 变成你的私人图书馆</title>
    <link href="https://xiaomingclassmate.com/posts/7996/"/>
    <id>https://xiaomingclassmate.com/posts/7996/</id>
    <published>2026-01-11T02:40:26.000Z</published>
    <updated>2026-11-08T12:56:53.427Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>本次给大家分享一个好用的网站<strong>longcut.ai</strong>，它旨在帮助你更好地、更快地从 YouTube 长视频中学习。</p><p>这个是我在视频号刷到的一个作者<strong>张咋啦 Zara</strong>业余开发的小工具，感觉非常有用，这里推荐给大家，希望对你有用。</p><p><strong>使用条件：</strong></p><ul><li>你得可以科学上网</li></ul><p>使用入口：<a href="https://www.longcut.ai/">https://www.longcut.ai/</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260110114513543.png" alt="image.png"></p><h3 id="01"><a href="#01" class="headerlink" title="01"></a>01</h3><h3 id="别让“进度条”劝退你"><a href="#别让“进度条”劝退你" class="headerlink" title="别让“进度条”劝退你"></a>别让“进度条”劝退你</h3><p>LongCut 解决的第一个问题，就是 <strong>“太长不看”</strong>。</p><p>以前面对一个 90 分钟的视频，你很难判断它到底讲了什么，是不是真的有干货。你得耐着性子往下看，可能看了半小时才发现全是废话。</p><p>把链接丢给 LongCut，它就像一个不知疲倦的速记员。</p><p>几秒钟，它就能给你吐出一份<strong>结构清晰的笔记</strong>。</p><p>注意，不是那种干巴巴的流水账，而是带逻辑的摘要。它会告诉你：</p><ul><li>这个视频分了几个部分？</li><li>核心观点是什么？</li><li>作者在第 15 分钟反驳了谁的观点？</li></ul><p><strong>这就像是把一杯浑浊的水过滤了一遍，最后递到你手里的，全是纯净水。</strong></p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260110115109523.png" alt="image.png"></p><h3 id="02"><a href="#02" class="headerlink" title="02"></a>02</h3><h3 id="把视频变成“搜索引擎”"><a href="#把视频变成“搜索引擎”" class="headerlink" title="把视频变成“搜索引擎”"></a>把视频变成“搜索引擎”</h3><p>这才是 LongCut 最像黑科技的地方。</p><p>很多时候，我们重看一个视频，只是为了找某一个具体的知识点。比如：“那个博主是在哪一分钟讲到 GPT-5 的预测的？”</p><p>以前你需要疯狂拖动进度条，凭运气盲猜。</p><p>在 LongCut 里，你直接在对话框里问它：<strong>“视频里关于 GPT-5 说了什么？”</strong></p><p>它会直接回答你，并且甩给你一个带时间戳的链接，一点就能跳转到那句话。</p><p>这不仅仅是节省时间，这是把一个线性的视频，变成了一个可以随意检索的<strong>数据库</strong>。</p><p>对于需要写论文、做调研，或者做竞品分析的人来说，这个功能简直是救命稻草。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260111000718312.png" alt="image.png"></p><h3 id="03"><a href="#03" class="headerlink" title="03"></a>03</h3><h3 id="跨越语言的“信息差”"><a href="#跨越语言的“信息差”" class="headerlink" title="跨越语言的“信息差”"></a>跨越语言的“信息差”</h3><p>虽然现在翻译工具很多，但看英文长视频依然是个脑力活。</p><p>特别是那种语速飞快、充满专业术语的科技视频，盯着字幕看半小时，眼睛都花了。</p><p>LongCut 能把这些内容直接转化成你熟悉的中文逻辑。你不需要去纠结某个单词是什么意思，直接看它生成的中文总结和思维导图。</p><p><strong>它帮我们抹平了“获取信息”的门槛，让我们能和硅谷的极客、名校的教授站在同一个起跑线上。</strong><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260111000812505.png" alt="image.png"></p><h3 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h3><p>工具的进化，总是为了让我们更懒，也更聪明。</p><p>以前，学习意味着“苦读”，意味着要在冷板凳上坐穿。</p><p>但在 AI 时代，<strong>学习更像是一种“调用”</strong>。</p><p>LongCut 这样的工具告诉我们：你不必看完每一秒画面，不必听懂每一句英语，只要你能提出好问题，你就能获得答案。</p><p>去清理一下你的收藏夹吧。</p><p>那些曾经让你望而生畏的长视频，现在，都是你的知识养料了。</p><h2 id="总结"><a href="#总结" class="headerlink" title="总结"></a>总结</h2><p>好了，以上就是今天给大家分享的内容，我是爱分享的小明同学，如果今天的内容对你有帮助请记得收藏，顺便点点关注，咱们下期再见！谢谢大家~</p>]]></content>
    
    
    <summary type="html">使用 LongCut 将 YouTube 长视频整理为摘要和结构化学习内容。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="LongCut" scheme="https://xiaomingclassmate.com/tags/LongCut/"/>
    
    <category term="YouTube" scheme="https://xiaomingclassmate.com/tags/YouTube/"/>
    
    <category term="学习工具" scheme="https://xiaomingclassmate.com/tags/%E5%AD%A6%E4%B9%A0%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
  <entry>
    <title>卸载掉你那堆带广告的转换器吧，有一个 VERT 就够了</title>
    <link href="https://xiaomingclassmate.com/posts/28305/"/>
    <id>https://xiaomingclassmate.com/posts/28305/</id>
    <published>2026-01-08T16:10:30.000Z</published>
    <updated>2026-11-08T12:57:21.139Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>假如你现在手头有一份涉密的合同，或者是公司的财务报表，急需从 doc 转成 docx。</p><p>你会怎么做？</p><p>绝大多数人的第一反应，是打开搜索引擎，搜“doc 转 docx”，然后点开排名第一的那个在线网站。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260109000957950.png" alt="image.png"></p><p>上传、等待、转换、下载。看似一气呵成。</p><p><strong>但你有没有细想过：你的文件，到底传到哪去了？</strong></p><p>在服务器的后台，有没有人能看到你的合同金额？你的身份证号？你的私人照片？</p><p>这就是在线转换器最大的隐患：<strong>我们在用隐私，换取便利。</strong></p><p>更别提那些恶心的套路了：转到一半告诉你文件太大要收费、下载速度只有几KB、满屏的弹窗广告……</p><p>今天要给大家按头安利的这款工具——<strong>VERT</strong>，就是专门来终结这些痛点的。</p><p>它就像是一个沉默寡言但技术过硬的理工男，把“靠谱”两个字写在了脸上。</p><p>项目地址：<a href="https://github.com/VERT-sh/VERT">https://github.com/VERT-sh/VERT</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260106230422384.png" alt="image.png"></p><h3 id="01"><a href="#01" class="headerlink" title="01"></a>01</h3><h3 id="极致的安全感：拔了网线也能用"><a href="#极致的安全感：拔了网线也能用" class="headerlink" title="极致的安全感：拔了网线也能用"></a>极致的安全感：拔了网线也能用</h3><p>VERT 最大的卖点，就是 <strong>“完全本地化”</strong>。</p><p>这是什么概念？</p><p>意味着你把电脑网线拔了，WiFi 关了，它依然能跑得飞快。</p><p>所有的转换过程，都是利用你自己的电脑算力完成的。你的文件<strong>不需要上传到任何云端</strong>，更不会经过别人的服务器。</p><ul><li>公司的机密文档？放心转。</li><li>个人的私密照片？放心转。</li></ul><p>在这个数据裸奔的时代，<strong>“不上传”</strong> 这三个字，就是给用户最大的定心丸。</p><h3 id="02"><a href="#02" class="headerlink" title="02"></a>02</h3><h3 id="开源免费，是它最后的倔强"><a href="#开源免费，是它最后的倔强" class="headerlink" title="开源免费，是它最后的倔强"></a>开源免费，是它最后的倔强</h3><p>现在的软件环境，大家懂的都懂。</p><p>好用的要订阅，免费的满身广告。甚至有些工具，打着免费的旗号把人骗进来，转到第 3 页告诉你“试用结束，请充值 VIP”。</p><p>VERT 是个<strong>开源项目</strong>。</p><p>简单说，它的代码是公开的，任何人都可以去检查有没有后门。而且，它承诺<strong>永久免费</strong>。</p><p>没有 VIP 专属通道，没有“解锁高级功能”，没有水印。</p><p>它就是个纯粹的工具，干干净净，清清爽爽。这种“傻乎乎”的良心软件，现在真的不多见了。</p><h3 id="03"><a href="#03" class="headerlink" title="03"></a>03</h3><h3 id="新一代转换器，主打一个“全能”"><a href="#新一代转换器，主打一个“全能”" class="headerlink" title="新一代转换器，主打一个“全能”"></a>新一代转换器，主打一个“全能”</h3><p>别看它免费，干起活来一点不含糊。</p><p>作为“新一代”转换器，VERT 支持的格式非常全：</p><ul><li><strong>图片</strong>：JPG、PNG、WebP、HEIC（苹果用户狂喜）等互相转，压缩率还很高。</li><li><strong>文档</strong>：.docx, .doc, .md,.csv等互相转换，简单的可以搞定。</li><li><strong>音视频</strong>：简单的格式转换也能搞定。</li></ul><p>而且，因为是在本地运行，转换速度完全取决于你的电脑性能。比起在线工具那个慢吞吞的进度条，本地转换简直就是秒杀。</p><h3 id="04"><a href="#04" class="headerlink" title="04"></a>04</h3><h3 id="废话不多说，直接开始部署使用"><a href="#废话不多说，直接开始部署使用" class="headerlink" title="废话不多说，直接开始部署使用"></a>废话不多说，直接开始部署使用</h3><p>通过Docker进行部署，关于Docker的安装，这里不再进行赘述，看我之前的文章。</p><h4 id="Docker-CLI"><a href="#Docker-CLI" class="headerlink" title="Docker CLI"></a>Docker CLI</h4><p>直接linux终端执行</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></pre></td><td class="code"><pre><span class="line"><span class="string">docker</span> <span class="string">run</span> <span class="string">-d</span> <span class="string">\</span></span><br><span class="line"><span class="string">--restart</span> <span class="string">unless-stopped</span> <span class="string">\</span></span><br><span class="line"><span class="string">-p</span> <span class="number">3000</span><span class="string">:80</span> <span class="string">\</span></span><br><span class="line"><span class="string">--name</span> <span class="string">&quot;vert&quot;</span> <span class="string">\</span></span><br><span class="line"><span class="string">vert-sh/vert</span></span><br></pre></td></tr></table></figure><h4 id="Docker-Compose部署"><a href="#Docker-Compose部署" class="headerlink" title="Docker Compose部署"></a>Docker Compose部署</h4><p><strong>这里我通过我的NAS主力机极空间Z4Pro进行部署</strong></p><p>1.打开Docker应用，选择Compose，点击新增项目，项目名字<code>vert</code>，将下面的内容复制进黑框内，点击创建。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260106232747437.png" alt="image.png"></p><figure class="highlight plaintext"><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></pre></td><td class="code"><pre><span class="line">services:</span><br><span class="line">  vert:</span><br><span class="line">    container_name: vert</span><br><span class="line">    image: ghcr.nju.edu.cn/vert-sh/vert:latest</span><br><span class="line">    restart: unless-stopped</span><br><span class="line">    ports:</span><br><span class="line">      - 3000:80</span><br></pre></td></tr></table></figure><p>浏览器中输入<code>http://NAS_ip:3000</code>，然后回车<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260107001039904.png" alt="image.png"><br>设置页面为中文<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260107001130858.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260107001547625.png" alt="image.png"><br>上传图片进行转换，支持单文件和批量转换<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260107004452682.png" alt="image.png"></p><p>我在服务器部署了vert，有兴趣的可以尝试一下，使用过程不足的地方就是文档转换不够强大<br><a href="https://vert.chunjun.de5.net/">https://vert.chunjun.de5.net/</a></p><h3 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h3><p>我一直觉得，电脑里应该常备一两款这样的“白月光”软件。</p><p>平时你可能想不起它，但当你急着要处理一个格式，或者要在没网的环境下工作时，它能救你的命。</p><p><strong>VERT 这种工具，是对“互联网精神”的一种回归：开放、平等、共享、安全。</strong></p><p>如果不放心把数据交给云端，那就把它装进硬盘里吧。</p><p>哪怕只是为了那份“我的文件我做主”的掌控感，它也值得一个下载。</p><p>好了，以上就是今天给大家分享的内容，我是爱分享的小明同学，如果今天的内容对你有帮助请记得收藏，顺便点点关注，咱们下期再见！谢谢大家~</p>]]></content>
    
    
    <summary type="html">使用开源工具 VERT 在本地完成文件格式转换，避免上传敏感文档。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="VERT" scheme="https://xiaomingclassmate.com/tags/VERT/"/>
    
    <category term="文件转换" scheme="https://xiaomingclassmate.com/tags/%E6%96%87%E4%BB%B6%E8%BD%AC%E6%8D%A2/"/>
    
    <category term="隐私" scheme="https://xiaomingclassmate.com/tags/%E9%9A%90%E7%A7%81/"/>
    
  </entry>
  
  <entry>
    <title>每天 5 分钟，刷完互联网最硬核的技术干货，我是怎么做到的？</title>
    <link href="https://xiaomingclassmate.com/posts/1698/"/>
    <id>https://xiaomingclassmate.com/posts/1698/</id>
    <published>2026-01-03T14:49:51.000Z</published>
    <updated>2026-11-08T12:56:18.619Z</updated>
    
    <content type="html"><![CDATA[<p>大家好，我是小明同学。</p><p>不知道大家有没有同感：</p><p>现在的互联网，<strong>垃圾信息</strong>实在是太多了。</p><p>想学点新技术，打开搜索引擎，前三页全是广告和 SEO 拼凑的废话；</p><p>关注了一堆公众号和博客，标题一个比一个惊悚，点进去全是情绪输出，干货没多少；</p><p>好不容易看到几篇好文章，随手点个“收藏”，然后……就没有然后了，它们在收藏夹里安静地躺成了化石。</p><p>我们每天都很忙，但又很焦虑，生怕错过了什么重要的技术趋势。</p><p><strong>我们需要不是更多的信息，而是更好的过滤器。</strong></p><p>最近挖到了一个宝藏平台——<strong>BestBlogs</strong>，用了一周，我感觉我的“阅读焦虑症”被治好了。</p><p>开源地址：<a href="https://github.com/ginobefun/BestBlogs">https://github.com/ginobefun/BestBlogs</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103200843705.png" alt="image.png"></p><p>今天必须按头安利给大家。</p><h3 id="介绍"><a href="#介绍" class="headerlink" title="介绍"></a>介绍</h3><p>BestBlogs.dev 为您提供编程、人工智能、产品设计、商业科技和个人成长领域的精选内容，汇集自顶级技术公司和社区。我们利用先进的大语言模型，为每篇文章提供智能摘要、评分和翻译服务，帮助您快速筛选高价值内容，节省阅读时间。立即订阅，探索未来技术的无限可能！<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103201007024.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103201029437.png" alt="image.png"></p><h3 id="1-1-优质文章"><a href="#1-1-优质文章" class="headerlink" title="1.1 优质文章"></a>1.1 优质文章</h3><p><a href="https://github.com/ginobefun/BestBlogs/blob/main/images/article_list_v4.png"><img src="https://github.com/ginobefun/BestBlogs/raw/main/images/article_list_v4.png" alt="文章列表"></a></p><h3 id="1-2-品质播客"><a href="#1-2-品质播客" class="headerlink" title="1.2 品质播客"></a>1.2 品质播客</h3><p><a href="https://github.com/ginobefun/BestBlogs/blob/main/images/podcast_list_v4.png"><img src="https://github.com/ginobefun/BestBlogs/raw/main/images/podcast_list_v4.png" alt="播客列表"></a></p><h3 id="1-3-精选视频"><a href="#1-3-精选视频" class="headerlink" title="1.3 精选视频"></a>1.3 精选视频</h3><p><a href="https://github.com/ginobefun/BestBlogs/blob/main/images/video_list_v4.png"><img src="https://github.com/ginobefun/BestBlogs/raw/main/images/video_list_v4.png" alt="视频列表"></a></p><h3 id="1-4-热门推文"><a href="#1-4-热门推文" class="headerlink" title="1.4 热门推文"></a>1.4 热门推文</h3><p><a href="https://github.com/ginobefun/BestBlogs/blob/main/images/twitter_list_v4.png"><img src="https://github.com/ginobefun/BestBlogs/raw/main/images/twitter_list_v4.png" alt="推文列表"></a></p><h3 id="01"><a href="#01" class="headerlink" title="01"></a>01</h3><h3 id="它是你的“最强阅读嘴替”"><a href="#它是你的“最强阅读嘴替”" class="headerlink" title="它是你的“最强阅读嘴替”"></a>它是你的“最强阅读嘴替”</h3><p>BestBlogs 的核心逻辑很简单，也很粗暴：<strong>用 AI 帮你把关。</strong></p><p>以前我们需要自己去翻 Hacker News，去扫 RSS 订阅，去推特上淘金。现在，BestBlogs 把这些源头的高质量内容全聚合在一起了。</p><p>但这不算什么，最牛的是它的<strong>AI 摘要功能</strong>。</p><p>很多技术文章动不动就万字长文，全英文还夹杂着一堆术语。BestBlogs 会直接用 AI 把文章“嚼碎”了：</p><ul><li><strong>一句话总结</strong>：这是讲什么的？值不值得读？</li><li><strong>核心观点提炼</strong>：文章的精华由哪几点组成？</li><li><strong>中文翻译</strong>：英文苦手的救星，直接看中文摘要，无痛吸收。</li></ul><p>我现在的习惯是：早上通勤路上，刷一遍 BestBlogs 的摘要列表。感兴趣的，点进去读全文；一般的，看个结论就知道怎么回事了。</p><p>效率提升了不止十倍。</p><h3 id="02"><a href="#02" class="headerlink" title="02"></a>02</h3><h3 id="只推“人话”，不推“水文”"><a href="#只推“人话”，不推“水文”" class="headerlink" title="只推“人话”，不推“水文”"></a>只推“人话”，不推“水文”</h3><p>在这个 AI 生成内容泛滥的时代，想在互联网上找到“人”写的深度好文，反而成了一件奢侈品。</p><p>BestBlogs 似乎有一套自己的评分机制。</p><p>它推荐给我的文章，很少有那种车轱辘话来回说的营销文，大多是<strong>硬核的技术分析、深度的行业思考、或者是实战的经验分享</strong>。</p><p>它像一个品味很好的老编辑，虽然不知疲倦地全网抓取，但只有真正有营养的东西，才会被端到你的餐桌上。</p><p>这种 <strong>“被尊重”</strong> 的感觉，在现在的互联网环境里，真的太难得了。</p><h3 id="03"><a href="#03" class="headerlink" title="03"></a>03</h3><h3 id="告别-FOMO（错失恐惧症）"><a href="#告别-FOMO（错失恐惧症）" class="headerlink" title="告别 FOMO（错失恐惧症）"></a>告别 FOMO（错失恐惧症）</h3><p>作为技术人，我们最怕的就是“掉队”。</p><p>昨天大模型又出了新架构，今天某个框架又发布了 3.0……</p><p>以前我会强迫自己把这些新闻都看完，搞得自己很累。</p><p>用了 BestBlogs 之后，我发现心态变了。因为它把热点聚合得很好，我只需要每天花 5-10 分钟，就能大概知道这个世界发生了什么。</p><p><strong>把省下来的时间，拿去深度阅读那 1% 真正值得钻研的好文章，或者干脆关上电脑，去陪陪家人。</strong></p><h3 id="04"><a href="#04" class="headerlink" title="04"></a>04</h3><h3 id="开始订阅"><a href="#开始订阅" class="headerlink" title="开始订阅"></a>开始订阅</h3><p>网站订阅地址：<a href="https://www.bestblogs.dev/#subscribe">https://www.bestblogs.dev/#subscribe</a><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103202034979.png" alt="image.png"><br>输入订阅邮箱地址，点击免费订阅，在邮箱中点击确认订阅，订阅成功后，将在每周五收到BestBlogs的精选文章推送。<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103202200558.png" alt="image.png"><br>你也可以在网页查看往期精选文章<br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20260103203133031.png" alt="image.png"></p><h3 id="写在最后"><a href="#写在最后" class="headerlink" title="写在最后"></a>写在最后</h3><p>工具的本质，是为了让人更自由，而不是更忙碌。</p><p>如果你也受够了信息流里的垃圾快乐，受够了永远读不完的收藏夹，不妨试试 BestBlogs。</p><p>把筛选的工作交给 AI，把思考的乐趣留给自己。</p><p>在这个信息爆炸的时代，<strong>“少读点，读好点”</strong>，才是顶级的自律。</p><p>你现在主要通过什么渠道获取高质量信息？RSS、推特列表还是某个宝藏博主？评论区交换一波“秘密基地”吧！</p>]]></content>
    
    
    <summary type="html">用 BestBlogs 聚合技术博客、播客和视频，每天快速筛选高质量内容。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="BestBlogs" scheme="https://xiaomingclassmate.com/tags/BestBlogs/"/>
    
    <category term="技术阅读" scheme="https://xiaomingclassmate.com/tags/%E6%8A%80%E6%9C%AF%E9%98%85%E8%AF%BB/"/>
    
    <category term="信息筛选" scheme="https://xiaomingclassmate.com/tags/%E4%BF%A1%E6%81%AF%E7%AD%9B%E9%80%89/"/>
    
  </entry>
  
  <entry>
    <title>还在对着GitHub犯愁？这个“中文翻译官”，让你的界面瞬间秒变中文！</title>
    <link href="https://xiaomingclassmate.com/posts/48127/"/>
    <id>https://xiaomingclassmate.com/posts/48127/</id>
    <published>2025-09-20T05:59:56.000Z</published>
    <updated>2026-11-08T13:25:50.008Z</updated>
    
    <content type="html"><![CDATA[<p>哈喽，各位小伙伴们！我是小明同学 。👋</p><p>是不是经常在GitHub上冲浪，却总被满屏的英文搞得头大？想找个按钮、看个说明，都得先在脑子里翻译一遍，效率瞬间大打折扣？别提那些刚入门的小白了，光是看到GitHub的界面可能就望而却步了吧！</p><p>今天，咱们就来聊一个能彻底解决这个烦恼的神器——<code>github-chinese</code>！它就像是给你的GitHub装上了一个“中文翻译官”，瞬间让你的GitHub界面变得亲切又好懂！</p><p><code>github-chinese</code>项目地址：<a href="https://github.com/maboloshi/github-chinese">https://github.com/maboloshi/github-chinese</a></p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920130413652.png" alt="image.png"></p><h3 id="告别“英文盲区”：github-chinese-是什么？"><a href="#告别“英文盲区”：github-chinese-是什么？" class="headerlink" title="告别“英文盲区”：github-chinese 是什么？"></a>告别“英文盲区”：<code>github-chinese</code> 是什么？</h3><p>想象一下，你打开GitHub，菜单、标题、按钮，甚至是一些常用的提示信息，全都变成了咱们熟悉的中文！是不是瞬间感觉整个世界都清晰了？没错，<code>github-chinese</code> 就是这样一个超给力的GitHub汉化插件。</p><p>它不是GitHub官方推出的中文版本（因为GitHub本身暂时还没有官方中文界面），而是一个由社区大神们创建和维护的开源项目 (GPL-3.0 license)，目的就是让全球的中文用户也能无障碍地使用GitHub。简单来说，它通过一段用户脚本，在你访问GitHub网页时，把界面上的英文元素实时翻译成中文，让你在熟悉的语言环境中，更好地探索和利用GitHub这个宝藏平台 。</p><h3 id="为什么你需要它？告别“翻译癌”！"><a href="#为什么你需要它？告别“翻译癌”！" class="headerlink" title="为什么你需要它？告别“翻译癌”！"></a>为什么你需要它？告别“翻译癌”！</h3><ol><li><p><strong>提升效率，告别卡顿！</strong><br>你是不是也有过这样的经历：想快速找到某个功能，却因为英文单词不熟悉，得反复琢磨才能点击？有了<code>github-chinese</code>，这一切都将成为过去。菜单栏 、按钮、标题等公共组件 ，全都一目了然的中文展示，让你的操作行云流水，大大提升了使用效率 。不用再为了一个英文单词而暂停思考，节省下来的时间，用来多看几个优质项目不好吗？</p></li><li><p><strong>降低门槛，小白也能轻松上手！</strong><br>对于编程新手或者英语不太好的小伙伴来说，GitHub的英文界面常常是入门的一道坎。各种专业术语，加上陌生的界面布局，很容易让人感到迷茫和挫败。而<code>github-chinese</code>就像一位贴心的向导，用中文为你指明方向，让你能够更自信、更顺畅地迈出学习的第一步。从此，GitHub不再是“高冷”的存在，而是你触手可及的开源世界！</p></li><li><p><strong>沉浸体验，更专注代码本身！</strong><br>当语言不再是障碍，你的注意力就能完全集中在代码、项目和技术交流上。你可以更轻松地阅读项目描述、参与讨论、提交问题，真正享受到开源社区的乐趣。这种沉浸式的体验，无疑会让你在技术学习和项目协作中获得更大的成就感。</p></li></ol><h3 id="“翻译官”上岗，其实就几步！"><a href="#“翻译官”上岗，其实就几步！" class="headerlink" title="“翻译官”上岗，其实就几步！"></a>“翻译官”上岗，其实就几步！</h3><p>你可能会问，这么厉害的插件，安装起来会不会很麻烦？嘿，别担心，它比你想象的要简单得多，只需简单2步就能搞定！</p><p>它的工作原理是基于用户脚本管理器来实现的 。你只需要在你的浏览器上安装一个用户脚本管理器，比如大名鼎鼎的 <strong>Tampermonkey</strong>（油猴）或者 <strong>Violentmonkey</strong>，然后把<code>github-chinese</code>的脚本添加进去，刷新一下GitHub页面，duang！你的GitHub就变成中文啦！</p><h4 id="💻-安装指南"><a href="#💻-安装指南" class="headerlink" title="💻 安装指南"></a>💻 安装指南</h4><ol><li>安装用户脚本管理器：<ul><li>推荐：<a href="http://tampermonkey.net/" title="篡改猴">Tampermonkey</a></li></ul></li><li><strong>Chrome &#x2F; Chromium 内核浏览器，请务必开启 “扩展程序” 管理中的 “开发者模式”</strong></li><li>选择安装源：<ul><li><a href="https://github.com/maboloshi/github-chinese/raw/gh-pages/main.user.js" title="GitHub 中文化插件 - GitHub 源">GitHub 源【开发版】</a></li><li><a href="https://greasyfork.org/scripts/435208-github-%E4%B8%AD%E6%96%87%E5%8C%96%E6%8F%92%E4%BB%B6/code/GitHub%20%E4%B8%AD%E6%96%87%E5%8C%96%E6%8F%92%E4%BB%B6.user.js" title="GitHub 中文化插件 - GreasyFork 源">GreasyFork 源【稳定版】</a></li></ul></li><li>刷新页面后，插件即可生效</li><li>必要时，重启浏览器</li></ol><p><strong>版本说明</strong>：</p><ul><li>🚀 开发版：实时更新，每周五自动更新词库</li><li>🛡️ 稳定版：每周一同步开发版词库，更稳定</li></ul><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920132041863.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920132209769.png" alt="image.png"></p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920133140464.png" alt="image.png"><br><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920133237348.png" alt="image.png"></p><p>这整个过程，就像给你的浏览器装了个小插件，然后激活一下它的“翻译功能”，非常傻瓜式操作，没有任何复杂的设置。对于新手来说，简直是福音！</p><h4 id="🖼️-效果预览"><a href="#🖼️-效果预览" class="headerlink" title="🖼️ 效果预览"></a>🖼️ 效果预览</h4><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920132917358.png" alt="image.png"></p><p><img src="https://cdn.jsdelivr.net/gh/jumplooper/images/image/20250920132829113.png" alt="image.png"></p><h3 id="谁是幕后英雄？开源的力量！"><a href="#谁是幕后英雄？开源的力量！" class="headerlink" title="谁是幕后英雄？开源的力量！"></a>谁是幕后英雄？开源的力量！</h3><p><code>github-chinese</code>之所以能这么好用，离不开广大的开源社区。它是一个完全开源的项目，这意味着任何人都可以查看它的代码、提交改进建议，甚至贡献自己的翻译。正是这种开放和协作的精神，让这个插件能够不断地完善和更新，为我们提供更好的汉化体验。每一次你看到更准确、更贴切的中文翻译，背后都可能是无数热心开发者默默付出的结果。</p><h3 id="总结一下：你的GitHub，你做主！"><a href="#总结一下：你的GitHub，你做主！" class="headerlink" title="总结一下：你的GitHub，你做主！"></a>总结一下：你的GitHub，你做主！</h3><p>如果你还在为GitHub的英文界面而感到困扰，那真的强烈建议你试试<code>github-chinese</code>这个神器 。它不仅能让你的GitHub使用体验直线上升，还能帮助你更快地融入开源世界，真正享受到技术带来的乐趣。</p><p>别再犹豫啦！动动手指，给你的GitHub换个“中文皮肤”吧！你会发现，原来GitHub可以这么亲切，这么好用！快去试试，让你的编程之路更加顺畅！</p>]]></content>
    
    
    <summary type="html">GitHub 中文界面插件 github-chinese 的安装与使用教程：通过 Tampermonkey 或 Violentmonkey 汉化菜单、按钮和提示信息。</summary>
    
    
    
    <category term="效率工具" scheme="https://xiaomingclassmate.com/categories/%E6%95%88%E7%8E%87%E5%B7%A5%E5%85%B7/"/>
    
    
    <category term="GitHub" scheme="https://xiaomingclassmate.com/tags/GitHub/"/>
    
    <category term="GitHub汉化" scheme="https://xiaomingclassmate.com/tags/GitHub%E6%B1%89%E5%8C%96/"/>
    
    <category term="Tampermonkey" scheme="https://xiaomingclassmate.com/tags/Tampermonkey/"/>
    
    <category term="浏览器脚本" scheme="https://xiaomingclassmate.com/tags/%E6%B5%8F%E8%A7%88%E5%99%A8%E8%84%9A%E6%9C%AC/"/>
    
    <category term="开源工具" scheme="https://xiaomingclassmate.com/tags/%E5%BC%80%E6%BA%90%E5%B7%A5%E5%85%B7/"/>
    
  </entry>
  
</feed>
