[{"data":1,"prerenderedAt":738},["ShallowReactive",2],{"$f3nc86v8lz3f9a":3,"posts-list":19},{"yearMonth":4,"slug":5,"title":6,"date":7,"type":8,"updated":7,"categories":9,"tags":11,"excerpt":12,"cover":13,"banner":13,"sticky":14,"unlisted":14,"comments":15,"wordCount":16,"readingTime":17,"html":18},"2026-08","coding-agents-2608","Coding Agents 阶段性总结","2026-08-24","post",[10],"ai",[],"Coding Agents 阶段性经总结 我很早就开始把 AI 用在个人开发和学习中。本文是一份 Coding Agents 的阶段性使用总结与经验分享，大家也可以当流水账消遣。 由于时间跨度较大，开发环境多次迁移，其中许多细节已经模糊，时间顺序也可能存在一定的偏差。 1. 从网页对话到编辑器插件 最开始我是在 Windows 上使用 Coding Agents。那时 AI 刚出现，Agent 大","https:\u002F\u002Fmedia.cc01cc.cn\u002Fimages\u002Fd1cd9eb4.webp",false,true,4014,11,"\u003Ch1 id=\"coding-agents-%E9%98%B6%E6%AE%B5%E6%80%A7%E7%BB%8F%E6%80%BB%E7%BB%93\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#coding-agents-%E9%98%B6%E6%AE%B5%E6%80%A7%E7%BB%8F%E6%80%BB%E7%BB%93\">#\u003C\u002Fa> Coding Agents 阶段性经总结\u003C\u002Fh1>\n\u003Cp>我很早就开始把 AI 用在个人开发和学习中。本文是一份 Coding Agents 的阶段性使用总结与经验分享，大家也可以当流水账消遣。\u003C\u002Fp>\n\u003Cblockquote>\n\u003Cp>由于时间跨度较大，开发环境多次迁移，其中许多细节已经模糊，时间顺序也可能存在一定的偏差。\u003C\u002Fp>\n\u003C\u002Fblockquote>\n\u003Ch2 id=\"1.-%E4%BB%8E%E7%BD%91%E9%A1%B5%E5%AF%B9%E8%AF%9D%E5%88%B0%E7%BC%96%E8%BE%91%E5%99%A8%E6%8F%92%E4%BB%B6\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#1.-%E4%BB%8E%E7%BD%91%E9%A1%B5%E5%AF%B9%E8%AF%9D%E5%88%B0%E7%BC%96%E8%BE%91%E5%99%A8%E6%8F%92%E4%BB%B6\">#\u003C\u002Fa> 1. 从网页对话到编辑器插件\u003C\u002Fh2>\n\u003Cp>最开始我是在 Windows 上使用 Coding Agents。那时 AI 刚出现，Agent 大多还停留在网页对话窗口，形态较为单一，就是常规的你问我答的方式。\n在这之后 Coding Agents 以编辑器或者插件的形式，更深地融入到了开发流程中。我的主力编辑器是 VS Code，最早尝试的 Coding Agents 插件包括 GitHub Copilot、通义灵码、Mars、CodeBuddy 等。\u003C\u002Fp>\n\u003Cp>字节的 Mars，后来应该改名 Trae 了。它运行时 CPU 狂转、内存占用也很高，所以很早就被我停用了。通义灵码用得最久，主要承担对话、需求补充和语法补齐的角色。灵码的「@」文件功能当时不太可靠，所以已有代码的实际修改，我常常交给 CodeBuddy 完成。\u003C\u002Fp>\n\u003Cp>GitHub Copilot 是另一条线。我已经记不清最初从何时开始使用，只记得先试用了一个月，觉得体验不错，随后订阅了 Pro。当时的 Pro 套餐额度相对充沛，甚至还有一些免费模型，和现在消耗量巨大的 Credit 机制完全不同。\u003C\u002Fp>\n\u003Cp>在这个阶段的后期接触到了 kilo，发现 Kilo 的过程也是很偶然：我在 OpenRouter 上闲逛时，发现当时的 Apps 调用列表里，它仅次于 OpenClaw，抱着「尝试探索」的心态体验了一下，随后发现了这个宝藏。\u003C\u002Fp>\n\u003Cp>这一阶段的 Coding Agents 差不多是一个提高效率的工具：能回答问题、补全代码、处理局部修改。\u003C\u002Fp>\n\u003Ch2 id=\"2.-linux-%E4%B8%8E-cli\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#2.-linux-%E4%B8%8E-cli\">#\u003C\u002Fa> 2. Linux 与 CLI\u003C\u002Fh2>\n\u003Cp>Claude Code 等 CLI 形态的 Coding Agent 出现后，我也跟着尝试了一圈：Qwen Code、Gemini CLI、OpenCode、IFlow CLI、Claude Code，还有一些如今已经记不清的工具。最后留下来的是 OpenCode。\u003C\u002Fp>\n\u003Cp>也是在这段时间，我转向 Linux \u002F Windows 双系统，并把 Linux 作为开发主力。回头看，我当时会把 CLI 粗略分成两类：一类是 Qwen Code 那样比较传统的 TUI；另一类则像 Claude Code，试图把越来越多 GUI 式交互塞进终端。（当时的使用感受，今日未必一致）。\u003C\u002Fp>\n\u003Cp>我最先尝试 Qwen Code，多少是因为通义灵码留下的情感因素，当时每日也有免费调用次数。但同为阿里千问的产品，Qwen 和灵码之间的配置、Skill、Agent 不能通用，难以发挥互补优势；并且 Qwen Code 当时还不支持非常火的 sub-agent、Agent Team 模式。与此同时，Kilo 插件早期在长上下文的场景存在比较严重的内存溢出问题。于是我需要功能更完整的 CLI，并在 GitHub Trends 上发现了 OpenCode，随后转向它。\u003C\u002Fp>\n\u003Cp>OpenCode 当时给我的体验很好：支持 sub-agent，能接入大量第三方模型，并且更新频繁，可以不断尝试新的设计。当然，也能不断体验到新的 bug（哈哈）。\u003C\u002Fp>\n\u003Cp>我后来在 Windows DevContainer 中继续用 OpenCode 作为主力，也短暂使用过 Claude Code，但两者给我的实际体验差别不大，所以没有形成足以迁移的理由。\u003C\u002Fp>\n\u003Ch2 id=\"3.-%E5%9B%9E%E5%88%B0-vs-code%EF%BC%9A%E4%B8%BA%E4%BA%86%E6%95%88%E7%8E%87\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#3.-%E5%9B%9E%E5%88%B0-vs-code%EF%BC%9A%E4%B8%BA%E4%BA%86%E6%95%88%E7%8E%87\">#\u003C\u002Fa> 3. 回到 VS Code：为了效率\u003C\u002Fh2>\n\u003Cp>双系统本身也有不少坑，显示器在 Linux 下的色彩配置一直异常。所以不得不回到 Windows，却又舍不得 Linux 的开发体验，于是在很长一段时间里用 Windows DevContainer 模拟 Linux，同时也可以把它作为 Agent 的沙箱。\u003C\u002Fp>\n\u003Cp>随着 Agent 能力增强，我对开发效率的要求也越来越高。OpenCode 的 TUI 在纯文本 Markdown 阅读和交互上劣势变得越来越明显，尤其是 Mermaid 图表等需要高度依赖渲染的内容，在终端里总是隔着一层。\u003C\u002Fp>\n\u003Cp>真正的转折点是 DeepSeek V4 Flash 预览版。当前期 PLAN 已经把设计拆清楚时，后续实施并不一定需要最强的模型，更需要的是稳定、快速、连续地执行。那时我已经开始多窗口并行开发，但 OpenCode 当时没有自动审批，白名单也有问题，常常需要中断工作流去批准命令。这直接抵消了 Flash 的速度优势，于是我把更多工作重新交回 Kilo。\u003C\u002Fp>\n\u003Cp>工作流迁移到 Kilo 的过程也不顺利。当时它刚从 V5 过渡到 V7，索引功能一度缺失；而我的项目库不仅有代码，还有大量难以靠 grep 发现的项目文档、PLAN、Spec、Skill 和 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa>。为了弥补这一功能，我试过自己搭 embedding 索引，但阿里云 embedding v4 费用账单感人，本地跑 Qwen3-0.6B 后又受限于显存，显卡就干不了其他的活儿了，所以一边用着 Kilo，一边寻找替代方案。\u003C\u002Fp>\n\u003Cp>我也试了灵码、CodeBuddy、Roo Code 和 Cline。前两者当时不支持 WSL 与 DevContainer，无法进入开发环境；Roo Code 的使用感不错，毕竟 Kilo V5 就是从它分叉出来的，但当时 Roo Code 公告了将停止维护的消息，所以没法作为长久之计。Cline 使用量很高，但在我的印象中它当时不支持多模型，Agent Prompt 数也有限，也不支持索引，浅尝几日后便放弃了。\u003C\u002Fp>\n\u003Cp>那是一段典型的混用期，我尝试了大量 Coding Agents：GitHub Copilot 很好用，但 Pro 额度不够；Kilo、Roo Code、OpenCode 则轮流成为主力。随着 Kilo V7 逐步完善，它的占比越来越高。DevContainer 中 Kilo 的通知功能曾有 bug，我还为此自己写了飞书通知插件：\u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fcc01cc\u002Fagent-exo\">agent-exo\u003C\u002Fa>。\u003C\u002Fp>\n\u003Cp>在这期间 DevContainer 的沙箱也确实发挥过巨大的作用。有一次运行 SCNet Coding Plan 中的 MiniMax 2.5 时，项目目录被清空；万幸隔离和备份仍在，最终恢复了数据。\u003C\u002Fp>\n\u003Ch2 id=\"4.-%E6%A8%A1%E5%9E%8B%E3%80%81%E5%A5%97%E9%A4%90\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#4.-%E6%A8%A1%E5%9E%8B%E3%80%81%E5%A5%97%E9%A4%90\">#\u003C\u002Fa> 4. 模型、套餐\u003C\u002Fh2>\n\u003Cp>模型和套餐并不是这篇文章的主角；但它们影响了我能以什么速度、把多少任务同时交给 Coding Agents，因此也是后续工作流和环境迁移的现实约束。\u003C\u002Fp>\n\u003Cp>我最开始订阅的是阿里云的 Coding Plan 和字节跳动的 Coding Plan，以及试用 OpenRouter 上的免费模型。也正是为了接入更多第三方 Provider，我在 OpenRouter 上闲逛时偶然发现了 Kilo。\u003C\u002Fp>\n\u003Cp>字节的 Coding Plan 体验非常的糟糕，我没有续费；阿里云的 Coding Plan 似乎续费了几次后就绝版下架了。之后我用过一段时间 DeepSeek V4 Flash API。缓存命中很便宜，但日均调用仍需花掉约二三十元，非常焦虑。这个时候小米提供了「Xiaomi MiMo Orbit-百万亿 Token 创造者激励计划」我申请拿到 MiMo 的 Token Plan Pro 套餐，MiMo 2.5 支持多模态，相比 DeepSeek V4 Flash 有诸多优势。但一开始 Pro 套餐的额度也不足，不过 MiMo 大幅降价后，勉强与 DeepSeek V4 Flash、GitHub Copilot Pro 共同支撑日常开发。\u003C\u002Fp>\n\u003Cp>后来 GitHub Copilot 改为 Credit 机制，消耗速度惊人，所以终止了续费。同期我开始使用 OpenCode Go（OpenCode 的云托管版本），它提供 DeepSeek V4 Flash 和 MiMo 2.5，价格与官方相近（缓存命中非常便宜）。\u003C\u002Fp>\n\u003Cp>MiMo Pro 到期后（感谢小米赠送的两个月额度），想试试新的模型，GLM 抢不到，并且不支持多模态，所以我选择了 Kimi Allegretto。我很早就想尝试 Kimi 了，但是 Kimi Allegretto 的额度不透明让我一直非常犹豫。不过周围好评率挺高的，所以最终选择了 Kimi Allegretto。\u003C\u002Fp>\n\u003Cp>当初还是 Kimi 2.6，额度还是比较令我满意的，搭配 OpenCode Go、稍微减缓些开发速度，是够用的，\n只是从 DeepSeek V4 和 MiMo 2.5 1M 的上下文，转到 Kimi 2.6 275k 的上下文，会有些不适，Kilo 的自动压缩也存在 bug。\nKimi 2.7 Code 应该在之后不久就出来了，似乎比 Kimi 2.6 更加省 token，所以之后很长时间的主力是 Kimi 2.7 Code。Kimi Allegretto 因为体验比较好，所以一直在续费。接着 Kimi K3 出来了，效果确实非常惊艳，但套餐消耗速度也同样惊艳，所以当时还购买了些 MiMo API 作为补充，形成 OpenCode Go 为主、Kimi 为辅的组合。\u003C\u002Fp>\n\u003Cp>之后应该是 阿里云千问 Token Plan 的个人版推出（虽然和团队版一样，看文档感觉性价比不高），但是看着 Qwen 3.8 preview 夜间有 0.01 的折扣，仍然选择订阅了 Token Plan 的 standard 的版本。实际使用下来 Qwen 3.8 preview 虽然有 0.01 的折扣，但是额度消耗也高于我的预期，不过结合 OpenCode Go + Kimi Allegretto 这 3 个套餐合并，基本能满足我的开发需求。\n并且这期间 Kilo provider 提供了 K3 275k 的选项，我发现 K3 不用满 1M 上下文，额度消耗似乎小了很多（不清楚是不是心理作用），算是一个小确幸吧。\u003C\u002Fp>\n\u003Cp>接下去就是最近的事儿了，\n千问 Token Plan 的个人版，过了三周左右取消了 Qwen 3.8 preview 并且 Qwen 3.8 夜间只有 5 折优惠了，\n虽然期间提供了一周的免费重置，但是实际使用下来下完全不够用。\n雪上加霜的是，这期间，8 月 17 日，DeepSeek V4 大幅度的涨价，瞬间两大支柱没了，当时我可慌了。\u003C\u002Fp>\n\u003Cp>再加上早有耳闻隔壁 GPT 5.6 大幅降价，并且还时不时的额度重置，所以终止了 千问 Token Plan 个人版续费，订购了 ChatGPT Plus，\n实测下来，ChatGPT Plus 相比 千问 Token Plan 个人版 standard 相同的价格，额度相对更多些，和第三方 Agent 兼容性也更好些，也没有夜间折扣，这种让需要昼夜颠倒的限制。\u003C\u002Fp>\n\u003Cp>紧接而来的是 Meta 推出了新的模型 Muse Spark，也大幅降价，OpenCode Go 也收录了它；腾讯的 HY3 也在 OpenCode Go 提供了 8 倍额度，这大概就是我目前的模型与套餐情况。\u003C\u002Fp>\n\u003Cp>Flash 让我看到实施阶段对速度的依赖，MiMo 的多模态能力则让我开始希望把浏览器、Playwright 和 GUI 可视化开发真正纳入 Agent 工作流。这也直接把开发环境推向了下一阶段。\u003C\u002Fp>\n\u003Ch2 id=\"5.-agent-%E6%8A%8A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%8E%A8%E5%90%91%E4%B8%8B%E4%B8%80%E9%98%B6%E6%AE%B5\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#5.-agent-%E6%8A%8A%E5%BC%80%E5%8F%91%E7%8E%AF%E5%A2%83%E6%8E%A8%E5%90%91%E4%B8%8B%E4%B8%80%E9%98%B6%E6%AE%B5\">#\u003C\u002Fa> 5. Agent 把开发环境推向下一阶段\u003C\u002Fh2>\n\u003Cp>DevContainer + Kilo 的模式维持了很久，但随着模型多模态能力增强，我想要把浏览器、Playwright 和 GUI 可视化开发纳入工作流，DevContainer 的局限开始集中暴露。在容器中安装 Chrome、通过 Docker 输出浏览器页面时，遇到了很多问题例如，端口无法访问、MCP 无法认证、浏览器窗口难以关闭等。这些都是 Agent 实际操作浏览器时难以越过的工作流断点。\u003C\u002Fp>\n\u003Cp>因此，2026 年 6 月初我开始把开发环境从 DevContainer 迁到 WSL。WSL 的 GUI 开发体验比 DevContainer 好许多，浏览器与可视化能力也都能正常使用。\u003C\u002Fp>\n\u003Cp>随着 Spec 积累、我和 Agent 协作越来越熟练、并行任务越来越多，内存需求开始成倍增长。但我的物理机只有 32 GB 内存，即使给 WSL 分配了 Swap，仍多次发生 WSL OOM，甚至带着整个 Windows 系统崩溃 \u003Ccode>FAULTY_HARDWARE_CORRUPTED_PAGE (0x12B)\u003C\u002Fcode>。\u003C\u002Fp>\n\u003Cp>到 2026 年 8 月初，多次崩溃后，我不得不切回 Windows 原生开发，并把 WSL 保留为 Docker 后端。切换后，系统没有再因 WSL OOM 崩溃，浏览器也能正常调用。但是 Windows 下的命令行体验远不如 Linux，尤其是 PowerShell 调服务器 Bash 命令、涉及 TTY 密码输入等操作；此外由于之前经历过工作目录被清空，我也始终对 Agent 直接操作文件系统保留戒心。只是以现有的财力、物力和稳定性要求来看，也只能接受如今的开发环境。\u003C\u002Fp>\n\u003Ch2 id=\"6.-%E8%B7%A8-harness-%E7%9A%84-spec-%E5%B7%A5%E7%A8%8B\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#6.-%E8%B7%A8-harness-%E7%9A%84-spec-%E5%B7%A5%E7%A8%8B\">#\u003C\u002Fa> 6. 跨 Harness 的 Spec 工程\u003C\u002Fh2>\n\u003Cp>因为开发环境和 Coding Agents 都在不断更换与探索，所以我也一直在寻找相对通用、能跨 Harness 迁移的 Spec 工程。\u003C\u002Fp>\n\u003Cp>我早期探索过不同 Harness 的 Spec 机制，例如 GitHub Copilot 的 Instructions、Kilo 的 Rule 与 Workflow。后来我逐渐收束到 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa>、Agent Skills 和 MCP。插件由于定制性太强，不在此次讨论的范围内。\u003C\u002Fp>\n\u003Ch3 id=\"6.1.-rule\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#6.1.-rule\">#\u003C\u002Fa> 6.1. Rule\u003C\u002Fh3>\n\u003Cp>我花了很多时间尝试各种 Rule 方案（GitHub Copilot 中是 Instruction），最后还是放弃了全局 Rule。以 Kilo 为例，Rule 会在每次交互时注入。理论上这似乎最可靠，实际却有两个问题：\u003C\u002Fp>\n\u003Col>\n\u003Cli>即使反复注入，Agent 仍可能不执行，且不同 Model 的服从程度差异很大。\u003C\u002Fli>\n\u003Cli>Rule 很容易膨胀，并让每个 Session 携带大量与当前任务无关的上下文。\u003C\u002Fli>\n\u003C\u002Fol>\n\u003Cp>同时，各个 Harness 的 Rule 格式和存放位置并不一致，而我通常会同时使用两个以上的 Harness。\u003C\u002Fp>\n\u003Cp>对于 rule，我最终采用 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 配合 Agent Skills 的方案：简单、目录相关的约定放到对应层级的 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa>；复杂、可复用的流程写成 Skill，再由 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 建立索引。\u003C\u002Fp>\n\u003Cp>使用下来比把所有 Rule 在每个回合硬塞进上下文更有效。如果仍不放心，我会在用户输入里明确写「请按照规范」或「请根据 Agent Skills」，大多数模型都会自行寻找项目中的 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 与 Skill。\u003C\u002Fp>\n\u003Ch3 id=\"6.2.-agents.md\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#6.2.-agents.md\">#\u003C\u002Fa> 6.2. \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa>\u003C\u002Fh3>\n\u003Cp>我的 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 基本遵循通用设计：保持短小精炼，尽量不超过 150 行，包含目录结构和必要的文档、Skill 索引。\u003C\u002Fp>\n\u003Cp>\u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 采用多层级的设计，较大的目录各自放一个 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa>，让 Agent 就近读取，而不需要在根目录的 \u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 里解释整个项目。实测下来，这种多层级嵌套能被大多数 Agent 兼容。\u003C\u002Fp>\n\u003Ch3 id=\"6.3.-agent-skills\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#6.3.-agent-skills\">#\u003C\u002Fa> 6.3. Agent Skills\u003C\u002Fh3>\n\u003Cp>Agent Skills 则统一放在 \u003Ccode>.agents\u002Fskills\u003C\u002Fcode>，这是大多数 Harness 都兼容的位置。\u003C\u002Fp>\n\u003Cp>如果有第三方的 skills，我通常不会直接复制现成 Skill，而是让 Agent 先理解 Skills，再结合本地项目适配。\u003C\u002Fp>\n\u003Cp>我最常用的三个 Skill 是：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>\u003Ccode>grill-me\u003C\u002Fcode>：最初大概来自 \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\">https:\u002F\u002Fgithub.com\u002Fmattpocock\u002Fskills\u003C\u002Fa>。从使用 Agent 至今，我发现它们始终不太喜欢主动提问、指出疑点，用户的输入不管正确与否大多照单全收。所以尤其是在 PLAN 期间，我会多次用 \u003Ccode>grill-me\u003C\u002Fcode> 强行要求 Agent 主动提出问题。\u003C\u002Fli>\n\u003Cli>\u003Ccode>plan-mode\u003C\u002Fcode>：我在每个需求、每次修改都会先创建 PLAN，再按 PLAN 审阅和实施。PLAN 本身经历过 Kilo 内置 Plan、项目内分散 PLAN、根目录 Sprint 化、再回归统一 PLAN 的过程。实践证明，分散 Plan，多文档 Sprint 对 Agent 太重、灵活性也不足，统一 PLAN 反而更适合多项目工作区。\u003C\u002Fli>\n\u003Cli>\u003Ccode>session-retrospect\u003C\u002Fcode>：在每次 Session 结束时，让 Agent 回顾当前与关联历史 Session，将经验沉淀为文档、Skill、\u003Ca href=\"http:\u002F\u002FAGENTS.md\">AGENTS.md\u003C\u002Fa> 或记忆。它是整套 Spec Engineering 能不断自我修正的重要功臣。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Ch2 id=\"7.-%E4%BB%8D%E6%9C%AA%E8%A7%A3%E5%86%B3%E7%9A%84%E9%97%AE%E9%A2%98\" tabindex=\"-1\">\u003Ca class=\"header-anchor\" href=\"#7.-%E4%BB%8D%E6%9C%AA%E8%A7%A3%E5%86%B3%E7%9A%84%E9%97%AE%E9%A2%98\">#\u003C\u002Fa> 7. 仍未解决的问题\u003C\u002Fh2>\n\u003Cp>现在的 Agent 已经非常的强大，但仍然有许多我认为可以改进的地方：\u003C\u002Fp>\n\u003Cul>\n\u003Cli>多项目、多 Git 仓库支持仍然不足，特别是基于 worktree 的工作流，很难自然适配多仓库工作区。\u003C\u002Fli>\n\u003Cli>重载启动、长上下文加载的性能和内存消耗仍有明显优化空间。\u003C\u002Fli>\n\u003Cli>从工程角度看，日志、监控和后续审计评估能力仍不完善。\u003C\u002Fli>\n\u003Cli>命令行响应、自动压缩等细节也还会持续影响体验。\u003C\u002Fli>\n\u003C\u002Ful>\n\u003Chr>\n\u003Cp>Coding Agent 这场探索显然还未结束，接下来我还会继续尝试 DSH、OMP 等 Harness，并探索更多模型和更多 Agent 协作方式。\u003C\u002Fp>\n\u003Cp>\u003Cstrong>Cheers!\u003C\u002Fstrong>\u003C\u002Fp>\n",[20,23,38,51,64,74,84,92,102,110,122,133,145,155,166,173,184,194,204,213,222,233,243,252,262,274,283,293,302,309,316,325,337,345,354,362,371,381,388,400,408,416,426,434,442,451,460,469,478,490,500,507,513,521,531,541,549,556,564,573,583,590,598,606,613,620,626,635,641,649,656,665,673,681,691,699,707,715,723,732],{"yearMonth":4,"slug":5,"title":6,"date":7,"type":8,"updated":7,"categories":21,"tags":22,"excerpt":12,"cover":13,"banner":13,"sticky":14,"unlisted":14,"comments":15,"wordCount":16,"readingTime":17},[10],[],{"yearMonth":24,"slug":25,"title":26,"date":27,"type":8,"updated":27,"categories":28,"tags":30,"excerpt":34,"cover":35,"sticky":14,"unlisted":14,"comments":15,"wordCount":36,"readingTime":37},"2026-07","ui-rendering-test","UI 渲染测试页（全要素）","2026-07-22",[29,29,29],"blog-build",[31,32,33],"test","ui","rendering","本页是 UI 渲染测试页，覆盖博客渲染管线的全部要素，用于视觉审查和回归测试。每节标题即测试点。 1. 标题层级 1.1 三级标题 h3 四级标题 h4 五级标题 h5 六级标题 h6 1.2 另一个三级标题（用于 TOC 缩进测试） 2. 文本样式 普通段落：加粗、斜体、~~删除线~~、inline code、外部链接、站内链接。 中文强调：这是着重点测试（CJK emphasis）。 中英文混","https:\u002F\u002Fmedia.cc01cc.cn\u002F2f415521.webp",957,3,{"yearMonth":39,"slug":40,"title":41,"date":42,"type":8,"updated":42,"categories":43,"tags":45,"excerpt":47,"cover":48,"sticky":14,"unlisted":14,"comments":15,"wordCount":49,"readingTime":50},"2024-11","one-touch-screenshot-multi-platform","多平台一键截图全攻略 - Windows, 平板(iPad)与手机(荣耀,华为,小米)","2024-11-24",[44],"uncategorized",[46],"screenshot","1. 背景 截屏是一项常见需求，传统的截屏流程往往需要手动选择区域并确认（例如 Windows PRINT SCREEN 快捷键），然而在追番，线上学习等场景下，我们更需要是快速截屏，避免视频等流程中断，而非图像编辑。 针对这一需求，本文将探讨一种全平台的一键截图解决方案，主要利用各操作系统自带的截屏工具，实现高效、便捷的屏幕捕捉体验。 2. Windows 平台 Windows 11 Pro 2","https:\u002F\u002Fmedia.cc01cc.cn\u002F40af2f20.webp",614,2,{"yearMonth":39,"slug":52,"title":53,"date":54,"type":8,"updated":54,"categories":55,"tags":56,"excerpt":60,"cover":61,"sticky":14,"unlisted":14,"comments":15,"wordCount":62,"readingTime":63},"windows-environment-variable-command-line","使用命令行管理 Windows 环境变量","2024-11-05",[44,44,44],[57,58,59],"windows","cmd","powershell","1. 使用命令提示符 (CMD) 1.1. 设置环境变量 添加或修改临时环境变量（当前会话有效） 添加或修改用户环境变量 添加或修改系统环境变量（需要管理员权限）： 1.2. 删除用户环境变量 将 MY_VAR 设置为空字符串（常用操作，非真正删除） 修改注册表之前，请做好备份等安全防护措施；注意注册表的修改具有延迟性，造成的系统或程序影响可能不会在第一时间被感知 若需要完全删除环境变量，可以使用","https:\u002F\u002Fmedia.cc01cc.cn\u002F17bd1416.webp",317,1,{"yearMonth":65,"slug":66,"title":67,"date":68,"type":8,"updated":68,"categories":69,"tags":70,"excerpt":71,"cover":72,"sticky":14,"unlisted":14,"comments":15,"wordCount":73,"readingTime":50},"2024-10","nginx-windows-simplify","在 Windows 中简化 Nginx 命令行操作","2024-10-30",[44],[],"本文的主要目的是为了实现打开命令行后可以直接运行 Nginx 的常用命令，不需要手动切换到工作目录，从而简化操作流程。 1. 背景 在 Windows 中运行 Nginx 每次都需要进入安装目录，运行 Nginx 工具： - 直接将 Nginx 的安装目录添加到「Windows 系统环境变量 > Path」中后，只能运行 nginx -v 命令。而 nginx -t 或者 start nginx ","https:\u002F\u002Fmedia.cc01cc.cn\u002Fe6b002d3.webp",445,{"yearMonth":65,"slug":75,"title":76,"date":68,"type":8,"updated":68,"categories":77,"tags":78,"excerpt":81,"cover":82,"sticky":14,"unlisted":14,"comments":15,"wordCount":83,"readingTime":37},"storage-strateies-jwt-browser","JWT 在浏览器中的存储策略",[44,44],[79,80],"frontend","security","1. 前置 在讨论JWT的存储位置前，我们首先需要了解： - JWT主要用于验证数据完整性和来源可靠性，而非提供消息的机密性。由于JWT可能被解码，因此不建议直接存储敏感数据。 - 在浏览器环境中，安全性相对较低，即使采用风险较低的方案，但是相比于后端等环境仍可能面临更高的潜在威胁。针对安全性需求较高的场景，推荐增加实施多因素认证（MFA）。 2. 存储环境对比 在浏览器环境中，常见的持久化存储位","https:\u002F\u002Fmedia.cc01cc.cn\u002F314fe11c.webp",1068,{"yearMonth":65,"slug":85,"title":86,"date":68,"type":8,"updated":68,"categories":87,"tags":88,"excerpt":89,"cover":90,"sticky":14,"unlisted":14,"comments":15,"wordCount":91,"readingTime":37},"understand-csrf-attacks-samesite","CSRF 攻击 与 SameSite 属性",[44,44],[79,80],"1. CSRF 攻击介绍 当用户登录银行网站A（例如 bank.com）时，其浏览器会存储认证信息。恶意网站B（例如 attacker.com）可能会包含一个自动提交的请求，模拟用户在银行网站A上的操作，如转账。如果用户被诱骗访问了这个恶意页面，银行网站A将收到带有认证信息的转账请求，从而导致用户的财产损失。 常见的处理 CSRF 攻击的方式主要有：CSRF Token（常存储于 session ","https:\u002F\u002Fmedia.cc01cc.cn\u002Fcd84877e.webp",902,{"yearMonth":93,"slug":94,"title":95,"date":96,"type":8,"updated":96,"categories":97,"tags":98,"excerpt":99,"cover":100,"sticky":14,"unlisted":14,"comments":15,"wordCount":101,"readingTime":63},"2024-04","package-spring-boot-jar","将 Spring Boot 项目打包成可以独立运行的 jar 包","2024-04-23",[44],[],"| 环境 | | ----------------------- | | Windows 11 Pro 23H2 OS build 22631.3447 | | OpenJDK 64-Bit Server VM Temurin-21.0.2+13 (build 21.0.2+13-LTS, mixed mode, sharing)| | Spring Boot, Java version 等版本详","https:\u002F\u002Fmedia.cc01cc.cn\u002Fbed407db.webp",215,{"yearMonth":93,"slug":103,"title":104,"date":96,"type":8,"updated":96,"categories":105,"tags":106,"excerpt":107,"cover":108,"sticky":14,"unlisted":14,"comments":15,"wordCount":109,"readingTime":50},"understand-cross-same-site-origin","理解「跨域（源）」和「跨网站」的差异与联系",[44],[],"1. 跨域和跨站比较 URL A: https:\u002F\u002Fwww.example.com:443 | URL B | URL A 和 URL B 的差异 | 源（域） | 网站 | 无协议网站 | | ------------------------------- | ----------------------------------------------- | ------------------","https:\u002F\u002Fmedia.cc01cc.cn\u002Fdf87372c.webp",434,{"yearMonth":93,"slug":111,"title":112,"date":113,"type":8,"updated":113,"categories":114,"tags":116,"excerpt":119,"cover":120,"sticky":14,"unlisted":14,"comments":15,"wordCount":121,"readingTime":50},"log-developer-20240422-cors-but-not","开发日志（20240422）：一次以为是跨域但并不是跨域的问题排查记录","2024-04-22",[115,115],"log-developer",[117,118],"cors","log","1. 日志 在前后端联调的时候，遇到了报错，如下图所示（现在再看感觉非常简单了），发现前一个请求通过了，但是第二个请求报错，然后看到 strict-origin-when-cross-origin 条件反射的认为是跨域配置的问题。（没有发现后端报错，具体原因后文解释） 预检请求 | 正式请求 ---------|---------- 预检请求 | 正式请求 然后先后修改或尝试了，后端添加跨域，Ng","https:\u002F\u002Fmedia.cc01cc.cn\u002Fc567ffd7.webp",793,{"yearMonth":93,"slug":123,"title":124,"date":125,"type":8,"updated":126,"categories":127,"tags":128,"excerpt":130,"cover":131,"sticky":14,"unlisted":14,"comments":15,"wordCount":132,"readingTime":50},"practical-skills-for-git","Git 实用技巧（按场景汇总）回退历史、新建空白分支等","2024-04-15","2024-04-16",[44],[129],"git","git version 2.39.2.windows 1. 回退到历史 commit 回退分支历史是一个敏感的操作，需要小心谨慎。最好在备份、团队协商和测试的基础上进行操作，以避免不必要的问题。 将本地和远程分支回退到历史 commit 的过程涉及使用 Git 的命令来修改分支历史。请注意，在执行这些操作之前，务必备份你的代码，以防发生意外情况。以下为一般步骤： 1. 查找历史 commit 的哈","https:\u002F\u002Fmedia.cc01cc.cn\u002Fd8499c9d.webp",787,{"yearMonth":93,"slug":134,"title":135,"date":136,"type":8,"updated":136,"categories":137,"tags":139,"excerpt":141,"cover":142,"sticky":14,"unlisted":14,"comments":15,"wordCount":143,"readingTime":144},"java-jdk-version-lts-install-verify","JDK版本详解（含LTS）以及安装校验","2024-04-05",[138],"Java",[140],"java","1. JDK 版本 (Oracle Java SE 支持路线图) 数据来源：Oracle Java SE 支持路线图 | 甲骨文中国: | 版本 | GA Date | Premier Support Until | Extended Support Until（限 LTS）| | ----------------- | ----------------------- | ------------","https:\u002F\u002Fmedia.cc01cc.cn\u002Fcf259bb5.webp",1257,4,{"yearMonth":146,"slug":147,"title":148,"date":149,"type":8,"updated":149,"categories":150,"tags":152,"excerpt":153,"sticky":14,"unlisted":14,"comments":15,"wordCount":154,"readingTime":50},"2024-03","blog-build-cn-v3-3","CN 站日志 v3.3","2024-03-23",[151],"blog-build（建站日志）",[29],"1. 迁移到 EdgeOne 迁移到 EdgeOne 后，原先腾讯云云监控告警将无法使用，需要 EdgeOne 标准版才可配置告警功能。 1. EdgeOne 套餐内的站点关联主域名（一级域名），校验域名所有权 2. 添加子域名，在 DNS 中重新解析，配置源站（和 CDN 中的步骤一致） 3. 托管 SSL（介绍页说是限免，可以实现 SSL 自动续费，还有到期提醒，自动部署，遂添加尝试一下） 4",619,{"yearMonth":146,"slug":156,"title":157,"date":158,"type":8,"updated":158,"categories":159,"tags":161,"excerpt":164,"sticky":14,"unlisted":14,"comments":15,"wordCount":165,"readingTime":37},"font-source-han-install-use-qa","思源字体安装、使用及常见问题解答","2024-03-22",[160],"personalization（个性化）",[162,163],"font","personalization","| 环境 | | ----------------------- | | Windows 11 Pro 23H2 | | Microsoft 365 Word 2402 | | 思源宋体：v2.002 | | 思源黑体：v2.004 | 1. 结论 本人非专业字体工作者，个人建议，仅供参考；先说结论，链接以及详细说明见后文 - 安装 SC 版本，无其余后缀 HW, VF, CN 等 - 关于 HW",1008,{"yearMonth":146,"slug":167,"title":168,"date":158,"type":8,"updated":158,"categories":169,"tags":170,"excerpt":171,"sticky":14,"unlisted":14,"comments":15,"wordCount":172,"readingTime":50},"font-test-set","字体测试集",[160],[162,163],"1. 字体测试集 本人非专业字体工作者，字体测试集为个人经验总结整理，仅供参考 中文文本的选取参考了： - 字型设计：關於「南去經三國，東來過五湖」 与 思源字体文档中的测试字体 - 不同地区的字型区分：思源字体文档中的 63 字 - 由于思源字体字型默认为日文，所以添加了不同地区字型存在较大差异的常用字 门。 - 添置部分中文符号，查看全角半角，以及间距等 关于中文字符中，同字不同型的更多内容可",515,{"yearMonth":146,"slug":174,"title":175,"date":176,"type":8,"updated":176,"categories":177,"tags":179,"excerpt":182,"sticky":14,"unlisted":14,"comments":15,"wordCount":183,"readingTime":50},"windows-defender-firewall-inbound-outbound","Windows 防火墙入站和出站","2024-03-20",[178],"computer-network（计算机网络）",[57,180,181],"operating-system","computer-network","1. 介绍 1.1. 出站和入站 - 出站是从本地计算机访问外部网络，例如浏览器发起请求访问网站 - 零一居 - 入站是从外部网络访问本地计算机，例如使用 localsend 将文件从手机（外部网络）传送到本地计算机 1.2. Windows 默认逻辑 - 阻止所有传入流量，除非请求匹配规则 - 允许所有传出流量，除非与规则匹配 2. 操作指南 2.1. 开启 Windows 高级防火墙 (WFA",537,{"yearMonth":146,"slug":185,"title":186,"date":187,"type":8,"updated":187,"categories":188,"tags":189,"excerpt":192,"sticky":14,"unlisted":14,"comments":15,"wordCount":193,"readingTime":50},"mbr-gpt-comparison","选择 MBR 还是 GPT？你需要了解的都在这里","2024-03-05",[44],[190,191],"computer-tips","disk","1. 摘要 磁盘分区表是一种存储在磁盘上的数据结构，用于存储关于磁盘分区的信息，包括分区的大小、位置和类型。MBR 和 GPT 是两种常见的磁盘分区表格式。GPT 格式较新，具有较多优势，包括： * 支持更大的磁盘容量。MBR 最大支持 2.2TB，而 GPT 支持高达 9.44ZB。 * 支持更多分区。MBR 最多支持 4 个主分区，而 GPT 支持 128 个主分区。 * 更高的安全性。GPT",567,{"yearMonth":146,"slug":195,"title":196,"date":197,"type":8,"updated":197,"categories":198,"tags":200,"excerpt":202,"sticky":14,"unlisted":14,"comments":15,"wordCount":203,"readingTime":50},"html-iso-8601-rfc-3339-rfc-5322-comparison","常用日期和时间标准对比：HTML, ISO 8601, RFC 3339, RFC 5322","2024-03-01",[199],"specification",[201,199],"software-engineering","1. HTML, ISO 8601, RFC 3339, RFC 5322 对比 日期和时间，对于不同系统和平台之间的数据交换和互操作至关重要。本文将对比 HTML 标准、ISO 8601、RFC 3339 和 RFC 5322，为读者提供参考。 html-iso-8601-rfc-3339-rfc-5322-comparison-20240301195432 * 表格文字版见文末-附 1.1. ",586,{"yearMonth":205,"slug":206,"title":207,"date":208,"type":8,"updated":208,"categories":209,"tags":210,"excerpt":211,"sticky":14,"unlisted":14,"comments":15,"wordCount":212,"readingTime":37},"2024-02","understanding-software-versioning","软件版本号解读（语义化SemVer、日历化CalVer及标识符）","2024-02-23",[199],[201,199],"1. 版本控制规范 1.1. 语义化版本（SemVer） 版本格式：主版本号.次版本号.修订号，版本号递增规则： 1. 主版本号(MAJOR version)：添加了不兼容的 API 修改， 2. 次版本号(MINOR version)：添加了向下兼容的功能性新增， 3. 修订号(PATCH version)：添加向下兼容的问题修正。 1.1.1. 补充说明 1. 版本号均从 0 开始，一般使用 ",1072,{"yearMonth":214,"slug":215,"title":216,"date":217,"type":8,"updated":217,"categories":218,"tags":219,"excerpt":220,"sticky":14,"unlisted":14,"comments":15,"wordCount":221,"readingTime":50},"2024-01","blog-build-cn-v3-v3-1","博客 cn 站搭建 v3 v3.1","2024-01-29",[151],[29],"1. 架构设计 v3.1 版本 blog-build-v3.1 2. v2.x 存在的痛点 在v2.x版本中，围绕 服务器 遇到了两个主要的问题： 1. 服务器成本高：博客以静态页面为主，理论上可以实现无服务器部署，但是为了防止恶意攻击，不得不使用服务器进行访问控制。 2. 架构复杂：由于使用了服务器进行访问控制，虽然鉴权逻辑更加灵活，但是导致架构较为复杂，维护成本相对静态存储更高。 3. v3 ",524,{"yearMonth":214,"slug":223,"title":224,"date":217,"type":8,"updated":217,"categories":225,"tags":227,"excerpt":232,"sticky":14,"unlisted":14,"comments":15,"wordCount":221,"readingTime":50},"cloud-tencent-cdn-ali-oss","腾讯云 CDN 搭配 阿里云 OSS",[226],"cloud",[29,228,229,230,231,226],"tencent","ali","cdn","oss","ID: B2-P1 准备 1. 腾讯云 CDN 2. 阿里云 OSS 3. 域名（境内部署，需要备案） 4. 授权给待部署域名的 SSL 证书（腾讯云有免费额度的 SSL 证书） 5. 记事本（可以直接用电脑自带的 Notepad，用于临时记录信息） 创建子用户 创建子账户，后续将授予 OSS 只读权限，提供给 CDN 使用。 1. 访问 ，进入 阿里云 RAM 控制台，创建用户 RAM-crea",{"yearMonth":214,"slug":234,"title":235,"date":217,"type":8,"updated":217,"categories":236,"tags":238,"excerpt":241,"sticky":14,"unlisted":14,"comments":15,"wordCount":242,"readingTime":63},"living-cost-electricity","生活成本之电力",[237],"life（生活）",[239,240],"life","living-cost","ID: B2-O6 电价 浙江政务服务网-浙江省物价局关于完善居民生活用电阶梯电价政策有关事项的通知: | 浙江省电网居民生活用电价格表 | 单位：元\u002F千瓦时 | | | | |-----------------|-------------------|-------|-------|-------| | 电压等级 | | 电度电价 | 分时电价-高峰 | 分时电价-低谷 | | 不满1千伏“一户",213,{"yearMonth":244,"slug":245,"title":246,"date":247,"type":8,"updated":247,"categories":248,"tags":249,"excerpt":250,"sticky":14,"unlisted":14,"comments":15,"wordCount":251,"readingTime":63},"2023-10","use-feishu-base-calcu-time-diff","飞书-多维表格-计算时间差","2023-10-21",[44],[],"1. 选择字段类型 1. 如图所示，字段类型选择 公式 20231021010528 2. 编辑公式 1. 单击 公式编辑器 2. 在弹出的公式编辑框中输入公式 TEXT([终结时间]-[开始时间],\"HH:MM\") 1. [终结时间] 和 [开始时间] 请替换成你的表格中对应的字段名称 2. HH:MM 表示输出的时间格式为 时:分 3. 其中 \"YYY\u002FMM\u002FDD HH:MM\" 表示 年月日时",117,{"yearMonth":244,"slug":253,"title":254,"date":255,"type":8,"updated":255,"categories":256,"tags":257,"excerpt":260,"sticky":14,"unlisted":14,"comments":15,"wordCount":261,"readingTime":63},"linux-centos-mirror","更换 cnetos 软件源","2023-10-08",[44],[258,259],"linux","centos","linux-centos-mirror 实践环境: CentOS Linux release 7.8.2003 (Core) 1. 备份软件源目录 2. 修改软件源列表 运行一下命令，修改软件源 - CentOS 7 - CentOS 8 更新软件包缓存 参考 1. centos | 镜像站使用帮助 | 清华大学开源软件镜像站 | Tsinghua Open Source Mirror: 2. C",105,{"yearMonth":263,"slug":264,"title":265,"date":266,"type":8,"updated":266,"categories":267,"tags":269,"excerpt":272,"sticky":14,"unlisted":14,"comments":15,"wordCount":273,"readingTime":50},"2023-06","database-mysql-install-windows-zip","MySQL (zip) 安装 (windows)","2023-06-09",[268],"database",[270,268,271],"from-mine","mysql","MySQL:: MySQL 8.0 Reference Manual:: 2.3.4 Installing MySQL on Microsoft Windows Using a noinstall ZIP Archive: 1. 下载 MySQL Community Downloads: 如下图，选上一个，不要选 Debug Binaries & Test Suite MySQL-Communit",479,{"yearMonth":263,"slug":275,"title":276,"date":277,"type":8,"updated":277,"categories":278,"tags":279,"excerpt":280,"sticky":14,"unlisted":14,"comments":15,"wordCount":281,"readingTime":282},"use-personalized-font","零一的个性化-字体","2023-06-07",[160],[162,163,270],"- 1. 字体选择标准 - 2. 字体字重选择 - 3. 字体的场景应用 - 3.1. 中文文本 - 3.2. 代码编程 - 3.3. 中英文文本 - 3.4. 远古命令行 - 4. 部分概念收集 - 4.1. 字体类型 - 4.2. OTF TTF .otf .ttf 区别 - 4.2.1. True Type Fonts (TTF) - 4.2.2. Open Type Fonts (OTF)",2174,6,{"yearMonth":284,"slug":285,"title":286,"date":287,"type":8,"updated":287,"categories":288,"tags":290,"excerpt":291,"sticky":14,"unlisted":14,"comments":15,"wordCount":292,"readingTime":63},"2023-05","software-pandoc-guide","Pandoc 使用指南","2023-05-30",[289],"software",[289,270],"文档文件格式转换 快速开始 - .\u002Fpandoc-lab\u002Fdemo.ipynb 原始文件路径 - -f 原文件格式 - -t 目标文件格式 - -o 目标文件路径 - -t gfm Github-Flavored Markdown 类型 markdown - markdown-variants - Pandoc User’s Guide: 更多技巧 1. 进入用户手册: 1. (PDF 版本): ",142,{"yearMonth":284,"slug":294,"title":295,"date":296,"type":8,"updated":296,"categories":297,"tags":298,"excerpt":300,"sticky":14,"unlisted":14,"comments":15,"wordCount":301,"readingTime":63},"software-latex-guide","Latex 指南","2023-05-28",[289],[289,299,270],"latex","1. 学习资料 1. 【视频教程】latex中文教程-15集从入门到精通包含各种latex操作- 哔哩哔哩 : 2. Latex 符号集 - KaTeX : 3. tug.org\u002Ftwg\u002Fmactex\u002Ftutorials\u002Fltxprimer-1.0.pdf : 4. dralpha.altervista.org\u002Fzh\u002Ftech\u002Flnotes2.pdf : 2. Latex模板网站 1. LaTeX",282,{"yearMonth":284,"slug":303,"title":304,"date":296,"type":8,"updated":296,"categories":305,"tags":306,"excerpt":307,"sticky":14,"unlisted":14,"comments":15,"wordCount":308,"readingTime":50},"software-latex-install","Latex 安装",[289],[289,299,270],"1. 安装 Tex Live - 操作环境：windows 10\u002F11 - 【参考】 1. Tex Live : 2. CTAN : 3. proTeXt - a TeX distribution for Windows : 4. SumatraPDF reader : 1.1. 离线安装 Tex Live（使用 iso） 1. 前往 挑选合适的镜像源（比较纠结的话，就选择离自己比较近的即可） 1",419,{"yearMonth":284,"slug":310,"title":311,"date":296,"type":8,"updated":296,"categories":312,"tags":313,"excerpt":314,"sticky":14,"unlisted":14,"comments":15,"wordCount":315,"readingTime":63},"software-tex-studio","TexStudio 指南",[289],[289,270],"software-tex-studio 1. 安装并配置 Tex Studio 1. 运行 texstudio 安装程序 1. Latex Studio(可能被屏蔽) 2. Latex Studio(应该是个镜像，目前可以访问) 2. 在 Tex Studio 的设置>构建选项卡中，调整默认编译器为 XeLaTeX（XeLaTeX 采用 UTF-8 编码支持中日韩文字） 3. 修改渲染方式（避免中",202,{"yearMonth":284,"slug":317,"title":318,"date":319,"type":8,"updated":319,"categories":320,"tags":321,"excerpt":323,"sticky":14,"unlisted":14,"comments":15,"wordCount":324,"readingTime":63},"ai-pic-process-getChannel","使用 PIL, OpenCV, Matplotlib 获取图片通道数","2023-05-24",[10],[10,322,270],"picture-processing","1. PIL [参考] [参考] python - Number of channels in pil (pillow) image - Stack Overflow: 2. OpenCV 3. ~~Matplotlib (plt)~~ This function exists for historical reasons. It is recommended to use PIL.Image.o",226,{"yearMonth":284,"slug":326,"title":327,"date":328,"type":8,"updated":328,"categories":329,"tags":331,"excerpt":335,"sticky":14,"unlisted":14,"comments":15,"wordCount":336,"readingTime":63},"research-write-template-ieee","IEEE 论文模板下载","2023-05-15",[330],"research",[332,333,330,334],"paper","article","template","1. 进入 IEEE 文章模板下载页面： 2. 单击 IEEE Template Selector 按钮，进入模板选择页面 IEEE-Article-Templates20230515204725 3. 根据页面提示，选择合适的模板下载即可 ieee-template-20230515205241 -->",48,{"yearMonth":284,"slug":338,"title":339,"date":340,"type":8,"updated":340,"categories":341,"tags":342,"excerpt":343,"sticky":14,"unlisted":14,"comments":15,"wordCount":344,"readingTime":63},"software-recommend-00-index","软件推荐","2023-05-01",[44],[289],"1. Windows 1.1. ImageGlass 开源软件 ImageGlass 是一款轻量化的通用图片查看器。 imageglass-20230501181007 1. 官网: 2. 安装包: 3. 安装包-百度网盘: 1.1.1. 体验 是一款非常出色的图片浏览器，过去一直都是我浏览图片的主力。 不过 Windows 11 自带的 照片 应用，经过几次升级，从 UI 到功能都非常的舒适，所",389,{"yearMonth":346,"slug":347,"title":348,"date":349,"type":8,"updated":349,"categories":350,"tags":351,"excerpt":352,"sticky":14,"unlisted":14,"comments":15,"wordCount":353,"readingTime":63},"2023-04","linux-apt-apt-get","apt 与 apt-get 的区别","2023-04-30",[258],[270,258],"【参考】 Difference Between apt and apt-get Explained - It's FOSS : 简述 1. apt-get, apt-cache 相对于 apt 命令相对低级，拥有大量相似的命令与不常用的功能； 2. apt 是 apt-get 和 apt-cache 的子集，提供相对常用的命令。 细节差异 【参考】apt(8) — apt — Debian jes",200,{"yearMonth":346,"slug":355,"title":356,"date":349,"type":8,"updated":349,"categories":357,"tags":359,"excerpt":360,"sticky":14,"unlisted":14,"comments":15,"wordCount":361,"readingTime":63},"python-logging","Python 日志模块使用",[358],"python",[358,118],"将日志导出到文件【方法一】 *实测，Colab 中新建的日志文件只有当 running time 结束后才会出现。 将日志导出到文件【方法二】 *实测，Colab 中此方法无法写入到文件，会输出到控制台，暂未找到原因。 参考\u002F扩展 - logging - Python doc: - Logging in Python - Real Python: - logginginpython.ipynb -",87,{"yearMonth":346,"slug":363,"title":364,"date":365,"type":8,"updated":365,"categories":366,"tags":368,"excerpt":369,"sticky":14,"unlisted":14,"comments":15,"wordCount":370,"readingTime":63},"thought-ai","关于 AI 的思考","2023-04-27",[367],"thought",[10,367],"- 我并不觉得「感性」是当下自然人面对 AI 的最大优势。 - 我的观点，大语言模型训练的 AI 目前的缺陷主要在于，暂时没有实现和物理模型的关联，例如 AI 说「苹果」，但它仅仅指的是「苹果」这个字面本身，而不是「苹果」作为水果这么一个物体。 - 人类的思维有人类思维的优势，AI 的思维有 AI 思维的优势，我们不要拿人类思维的劣势去对比 AI 思维的优势，而过于悲观；也不要拿人类思维的优势去对",205,{"yearMonth":346,"slug":372,"title":373,"date":374,"type":8,"updated":374,"categories":375,"tags":376,"excerpt":379,"sticky":14,"unlisted":14,"comments":15,"wordCount":380,"readingTime":63},"ai-colab-tensorflow-example","colab 中 安装 tensorflow example 报错以及解决方案","2023-04-23",[10],[10,377,378],"colab","tensorflow","运行 报错 ai-colab-tensorflow-example-01 解决方案 扩展 1. tensorflow\u002Fexamples: TensorFlow examples: 同步 1. StackOverflow: How to install tensorflow examples in colab 1. Q: 2. A: -->",30,{"yearMonth":346,"slug":382,"title":383,"date":374,"type":8,"updated":374,"categories":384,"tags":385,"excerpt":386,"sticky":14,"unlisted":14,"comments":15,"wordCount":387,"readingTime":63},"ai-initial","初识 机器学习\u002F深度学习",[10],[270],"- 1. 参考教程 - 2. 服务器资源 - 3. 环境配置 - 3.1. cudnn, CUDA 的区别 - 3.2. 查询 CUDA 版本 - 3.3. 查询版本 - 4. 训练集\u002F验证集\u002F测试集 - 4.1. K 折交叉验证法 - 5. 过拟合 - 6. 环境 - 7. 数据集 - 7.1. 图像标注 - 8. 数据预处理 - 9. 训练与预测 - 10. 验证 - 11. 预测结果导出 -",369,{"yearMonth":346,"slug":389,"title":390,"date":391,"type":8,"updated":391,"categories":392,"tags":393,"excerpt":398,"sticky":14,"unlisted":14,"comments":15,"wordCount":399,"readingTime":63},"it-file-system-zfs","初识 zfs","2023-04-11",[44],[394,395,396,397],"todo","new-bing","zfs","file system","1. 定义 - ZFS：ZFS 是一种先进的文件系统和逻辑卷管理器，它提供了数据完整性保护、高存储容量、快照和写时复制克隆等功能。 - 存储池：存储池是 ZFS 结构的最上层。一个存储池包含一个或多个虚拟设备（vdev），每个虚拟设备又包含一个或多个设备。存储池是独立的单元，一台物理计算机上可能有两个或更多个独立的存储池，但每个存储池都是完全独立的。存储池之间不能共享虚拟设备。 2. 创建方法 2",204,{"yearMonth":346,"slug":401,"title":402,"date":403,"type":8,"updated":403,"categories":404,"tags":405,"excerpt":406,"sticky":14,"unlisted":14,"comments":15,"wordCount":407,"readingTime":50},"it-file-system-link-soft-hard","软链接和硬链接","2023-04-10",[44],[397],"1. 定义 - 软链接：软链接（也称为符号链接）是一种特殊的文件，它存储了目标文件或目录的路径信息。软链接可以跨文件系统，也可以指向目录。 - 硬链接：硬链接是同一个文件的多个名称，它们指向同一个 inode 节点。硬链接不能跨文件系统，也不能指向目录。 2. 创建方法 Windows 中 链接名在前，目标文件在后 Linux 中 连接名灾后，目标文件在前 2.1. Windows 环境：命令提示",733,{"yearMonth":346,"slug":409,"title":410,"date":411,"type":8,"updated":411,"categories":412,"tags":413,"excerpt":414,"sticky":14,"unlisted":14,"comments":15,"wordCount":415,"readingTime":37},"blog-build-beian-auto","com 和 cn 站自动化部署时备案信息的处理","2023-04-07",[151],[29],"原因 我的博客主要有两个站：境内的 cc01cc.cn 和 境外的 cc01cc.com cn-com-结构图 com 站，使用的是 GitHub 和 Vercel 的自动化部署服务，而且不需要付费；所以作为一个相对稳定的支撑。 cn 站，在境内我没有找到免费的服务，所以从定制化以及经济成本的角度，使用 DCDN + ECS + OSS 方案。 cn 站 和 com 站几乎全部的内容都一致，但是 ",810,{"yearMonth":346,"slug":417,"title":418,"date":419,"type":8,"updated":420,"categories":421,"tags":422,"excerpt":423,"cover":424,"sticky":15,"unlisted":14,"comments":15,"wordCount":425,"readingTime":282},"log-life-zeo","昔日织（ヒビオル）","2023-04-06","2024-11-04",[44],[],"昔日织会记下，那些漠然被岁月消磨的记忆，那些不得不别过的人儿，也会在昔日织里，与你执手相看泪眼 《朝花夕誓——于离别之朝束起约定之花》 编织 记录第一次学习或接触某项技术，或者一些重要的事件。 - 201X 远古时期，接触并学习 C 和 Java。 - 2019 年 学习 HTML\u002FCSS\u002FJS - 2020 年 接触 物联网 开发，基于 Arduino 开发板实现环境温湿度状态监测。 - 202","https:\u002F\u002Fmedia.cc01cc.cn\u002F55f20649.webp",2259,{"yearMonth":346,"slug":427,"title":428,"date":429,"type":8,"updated":429,"categories":430,"tags":431,"excerpt":432,"sticky":14,"unlisted":14,"comments":15,"wordCount":433,"readingTime":63},"blog-build-aliyun-sts","获取并生成 Aliyun STS 签名 URL 访问 OSS","2023-04-02",[151],[29],"此文章是在搭建 cn 站 v2 的过程中的一个小弯路 如果使用服务器连接 OSS，不需要 STS 授权，直接 IP 授权即可。 此方法适用于给用户临时授权， 使用 Spring Boot 搭建授权服务 为了方便后续拆分，以及调整，此处将 博客页面和图片 的授权分别放置于不同的模块中。 关于授权的相关概念 - 什么是STS: - 基本概念: - OSS访问域名使用规则: - 在URL中包含签名: 获",323,{"yearMonth":346,"slug":435,"title":436,"date":437,"type":8,"updated":437,"categories":438,"tags":439,"excerpt":440,"sticky":14,"unlisted":14,"comments":15,"wordCount":441,"readingTime":144},"blog-build-cn-v2","博客 cn 站搭建 v2.1","2023-04-01",[151],[29],"1. 结构设计 blog-build-v2.1 2. 准备 1. ECS 服务器 * 1 2. OSS 对象存储 * 1 3. 域名 * 1（若服务器在境内，域名需备案） 4. 已安装的 picGo 软件（用于图片上传，可自行选择其他方式） 5. 记事本（随时复制粘贴一些配置以及重要信息） 3. 配置 OSS 对象存储 1. 前往对象存储 Bucket 列表 进入需要操作的 Bucket 2. 在",1448,{"yearMonth":443,"slug":444,"title":445,"date":446,"type":8,"updated":446,"categories":447,"tags":448,"excerpt":449,"sticky":14,"unlisted":14,"comments":15,"wordCount":450,"readingTime":63},"2023-03","blog-static-pic-cdn-oss","搭建静态资源存储库（含图床）（OSS 存储+ DCDN 流量保护）","2023-03-28",[151],[29],"此图床已于 2024 年 1 月 28 日停止使用。 图床搭建完成！ Yeah 因为在 DCDN 中设置了多重防御，图片可能无法加载 *如果访问权限控制的比较严格，不推荐在文章中内嵌直接指向图库的 cdn 链接，因为一旦被拦截就显示不出来了。如果 cdn 指向网页而非图片，被拦截了也可以通过滑块校验最终正常访问。 后期将调整图像加载策略 -->",126,{"yearMonth":443,"slug":452,"title":453,"date":454,"type":8,"updated":454,"categories":455,"tags":456,"excerpt":458,"sticky":14,"unlisted":14,"comments":15,"wordCount":459,"readingTime":144},"thought-chatgpt-ai-feature-me","关于 chatgpt 的思考以及我未来的方向","2023-03-19",[367],[10,457,367],"me","--> ChatGPT 也包括 new bing 和 GPT 4.0 等 ChatGPT 火了相当一段时间了，最近在新领域的探索和学习中 ChatGPT 也帮助了我相当多，我觉得需要进行一个总结和思考。 我是 ChatGPT 此类模型以及 ai 的坚定支持者，也想对那些反对者坦言，其实并不存在支持和反对的选择，这是历史发展的趋势。 使用下来的体验是，ChatGPT 非常适合教育者的工作，尤其是你对",1492,{"yearMonth":443,"slug":461,"title":462,"date":463,"type":8,"updated":463,"categories":464,"tags":465,"excerpt":467,"sticky":14,"unlisted":14,"comments":15,"wordCount":468,"readingTime":63},"linux-debian-mirror","更换 Debian 软件源","2023-03-17",[44],[258,466],"debian","linux-debian-mirror 运行以下命令备份软件源并配置镜像源 此命令一并更新了「安全更新软件源」，一般而言，为了更及时地获得安全更新，不推荐使用镜像站安全更新软件源，因为镜像站往往有同步延迟。参考 但实测，使用原始地址非常缓慢，甚至无法连接，所以还是使用了镜像站的安全更新软件源。如果需要使用原始地址，相关配置文档可以参考： 配置结果 感谢 感谢 北京外国语大学开源软件镜像站 提供的镜",207,{"yearMonth":443,"slug":470,"title":471,"date":463,"type":8,"updated":463,"categories":472,"tags":473,"excerpt":476,"sticky":14,"unlisted":14,"comments":15,"wordCount":477,"readingTime":63},"linux-ubuntu-mirror","更换 Ubuntu 软件源",[44],[258,474,475],"ubuntu","from-repo-mine","【环境】Ubuntu: 20.04 LTS 1. 备份默认软件源列表 2. 修改软件源列表 [方法一] 命令修改配置文件 [方法二] 手动修改配置文件 使用 vi 命令，因为大部分 Linux 都自带了这个编辑器，不需要更新 （vim，VS Code 以及 SSH 远程连接都需要下载或更新相关软件） 1. 使用 sudo vi \u002Fetc\u002Fapt\u002Fsources.list 打开软件源配置文件 2. ",265,{"yearMonth":443,"slug":479,"title":480,"date":481,"type":8,"updated":481,"categories":482,"tags":483,"excerpt":488,"sticky":14,"unlisted":14,"comments":15,"wordCount":489,"readingTime":37},"blog-deploy-cloud-server","将 Hexo 博客部署到阿里云服务器（自动部署）","2023-03-16",[151],[29,484,485,486,487],"cloud server","aliyun","nginx","hexo","1. 使用 阿里云 云效 自动部署 - 因为我的服务器是阿里云的 ecs 所以使用的是阿里云的 DevOps 服务 - 总体思路：创建自动构建流水线 - 这是我第一次使用 云效 如有更佳的方法欢迎探讨 1.1. 代码源 1. 【初始化】使用 token 从 Github 同步到 云效 代码仓库 2. 云效中添加 git ssh 公钥 3. 本地新增 云效代码仓库 远程地址 4. 添加 Webhoo",881,{"yearMonth":443,"slug":491,"title":492,"date":481,"type":8,"updated":481,"categories":493,"tags":494,"excerpt":498,"sticky":14,"unlisted":14,"comments":15,"wordCount":499,"readingTime":63},"python-hardware-info","使用 python 获取硬件信息",[358],[358,495,496,497],"gpu","cpu","memory","1. 获取内存信息 1.1. 使用 psutil 获取内存信息 psutil 为 python 内置组件，不需要安装 可以应用于获取实时内存占用等场景 1. 引用 psutil 2. 获取物理内存信息 3. 获取交换内存信息 2. 获取 CPU 信息 2.1. 使用 py-cpuinfo 获取 CPU 信息 1. 安装 py-cpuinfo 2. 引用 py-cpuinfo 3. 获取 CPU 信",209,{"yearMonth":443,"slug":501,"title":501,"date":502,"type":8,"updated":502,"categories":503,"tags":504,"excerpt":505,"sticky":14,"unlisted":14,"comments":15,"wordCount":506,"readingTime":50},"log-life-20230314","2023-03-14",[237],[239],"前两天，环境好不容易搭建成功了，本来想着，总算可以跑代码了。虽然 GPU 可以调用，但是总有各种各样的bug，经常显存溢出然后崩溃，搜索也没有什么结果或解决方案；还有其他各种神奇的错误，明明文件在那里，上一个函数还能读取文件的，下一个函数就读取不到了。或许是因为用的是 wsl2，和原生 Linux 还是有些区别的，但是相关资料又太少，总之一山翻过又是更高的一山，很难受。 也没有其他办法，想着安装原",435,{"yearMonth":443,"slug":508,"title":508,"date":509,"type":8,"updated":509,"categories":510,"tags":511,"excerpt":512,"sticky":14,"unlisted":14,"comments":15,"wordCount":172,"readingTime":50},"log-life-20230312","2023-03-12",[237],[239],"植树节 今天，心情有些不平衡，不，是非常 pro max 的不平衡； 最近除了工作，一直忙着毕设。毕设是图像识别方向，第一步需要搭建环境。但是从接触的第一天开始，各种稀奇古怪的环境问题就不停地困扰着我。进度被拖得断断续续，前段时间，被这些环境问题，折磨的有些 emo 了，焦虑地睡不着。然后就花了完整的几日，想彻底解决这个顽疾，但是 tensorflow-gpu, scikit-learn, num",{"yearMonth":443,"slug":514,"title":515,"date":509,"type":8,"updated":509,"categories":516,"tags":517,"excerpt":519,"sticky":14,"unlisted":14,"comments":15,"wordCount":520,"readingTime":37},"use-jupyter-notebook","Jupyter Notebooks 使用指南",[44],[518,475],"jupyter notebook","- 1. 参考 - 2. 安装 Jupyter Notebook - 2.1. 使用 Anaconda 安装 - 2.2. 使用 pip 安装 - 2.3. 在云服务器中使用 Anaconda 安装 - 3. 更换默认目录 - 3.1. 生成 jupyter notebook 配置文件 - 3.2. 修改配置文件 - 3.3. 修改 jupyter notebook 快捷方式 - 3.4. 重新启",935,{"yearMonth":443,"slug":522,"title":523,"date":524,"type":8,"updated":524,"categories":525,"tags":526,"excerpt":529,"sticky":14,"unlisted":14,"comments":15,"wordCount":530,"readingTime":63},"ai-env-common","机器学习环境搭建-常用","2023-03-11",[10],[10,527,528,475],"ml","dl","1. tf-models Intel CPU + Nvidia GPU 2. OpenCV-python pytorch(含 cuda) Start Locally | PyTorch: -->",14,{"yearMonth":443,"slug":532,"title":533,"date":524,"type":8,"updated":524,"categories":534,"tags":535,"excerpt":539,"sticky":14,"unlisted":14,"comments":15,"wordCount":540,"readingTime":63},"ai-env-hardware-acceleration","机器学习环境搭建-硬件优化",[10],[527,528,10,496,495,536,537,538,475],"intel","amd","nvidia","使用 CPU GPU 加速等紧密贴合硬件的库时，务必查看官方文档的硬件要求 在测试或搭建硬件优化库时，务必备份原环境，以及及时的备份数据 1. Intel CPU + Intel GPU - Installing Intel® Distribution for Python* and Intel® Performance...: 2. Nvidia GPU 3. Intel CPU 4. AMD ",254,{"yearMonth":443,"slug":542,"title":543,"date":524,"type":8,"updated":524,"categories":544,"tags":545,"excerpt":547,"sticky":14,"unlisted":14,"comments":15,"wordCount":548,"readingTime":63},"use-conda-install","Conda 安装",[358],[358,546,475],"conda","1. Windows 安装 Anaconda 1. 访问 Anaconda 产品网站 2. 下载并运行安装包 3. 根据安装向导完成安装程序 2. 云服务器安装 Anaconda (以 Ubuntu 20.04 为例) 1. 访问 Anaconda 产品网站 2. 复制适合的 Anaconda Installers 安装包下载链接 Anaconda Installers 3. 在服务器中输入以下命",166,{"yearMonth":443,"slug":550,"title":551,"date":524,"type":8,"updated":524,"categories":552,"tags":553,"excerpt":554,"sticky":14,"unlisted":14,"comments":15,"wordCount":555,"readingTime":50},"use-conda-use","Conda 使用指南",[358],[358,546],"- 环境： conda\u002F4.12.0 requests\u002F2.25.1 CPython\u002F3.8.* Windows\u002F10 Windows\u002F10.0.19041 - 由于编辑顺序的差异，mamba 和 conda 命令存在混用的情况，未安装 mamba 的读者可以使用 conda 平替大部分 mamba 命令。 1. 快速开始 2. 阅读资料 1. Anaconda | For Practitione",786,{"yearMonth":443,"slug":557,"title":558,"date":559,"type":8,"updated":559,"categories":560,"tags":561,"excerpt":562,"sticky":14,"unlisted":14,"comments":15,"wordCount":563,"readingTime":63},"use-conda-config","Conda 配置","2023-03-07",[358],[358,546,475],"1. 命令行操作 1.1. 查看配置 1.2. 修改配置 2. 配置 Conda 镜像环境 2.1. (windows)使用配置文件修改镜像源 - 使用 conda info 命令查看 .condarc 配置文件位置（一般为 $env:userprofile\u002F.condarc） - 在 PowerShell 中使用 notepad $env:userprofile\u002F.condarc 命令，通过记事",280,{"yearMonth":443,"slug":565,"title":566,"date":567,"type":8,"updated":567,"categories":568,"tags":569,"excerpt":571,"sticky":14,"unlisted":14,"comments":15,"wordCount":572,"readingTime":50},"git-ssh","Git 配置 SSH 公钥","2023-03-05",[44],[129,570,475],"ssh","1. 打开 Git Bash git-bash 2. 检查现存的SSH密钥 如果提示 No such file or directory 则表明此位置没有 SSH 密钥对，可以在下一步创建新的 SSH 密钥对。 3. 生成新的SSH密钥 How to use ssh-keygen to generate a new SSH key: RSA、DSA、ECDSA、EdDSA 和 Ed25519 的区",492,{"yearMonth":443,"slug":574,"title":575,"date":576,"type":8,"updated":576,"categories":577,"tags":578,"excerpt":581,"sticky":14,"unlisted":14,"comments":15,"wordCount":582,"readingTime":63},"linux-docker-rocky-install","Rocky Linux 安装 Docker Engine","2023-03-02",[44],[258,579,580],"rocky linux","docker","1. 参考 Install Docker Engine on RHEL 2. 清理旧版本 3. 方法一：从仓库安装 3.1. 建立仓库 3.2. 安装 Docker Engine 以下方法二选一 3.2.1. 安装最新版本的 Docker Engine 3.2.2. 安装特定版本的 Docker Engine 1. 列举仓库中可用的版本 - 返回示例 1. 从第二列中选择并安装特定的版本 4. 方",131,{"yearMonth":443,"slug":584,"title":585,"date":576,"type":8,"updated":576,"categories":586,"tags":587,"excerpt":588,"sticky":14,"unlisted":14,"comments":15,"wordCount":589,"readingTime":50},"linux-docker-ubuntu-install","Ubuntu 安装 Docker Engine",[44],[258,474,580,475],"- 1. 清理旧版本 - 2. 安装方法 - 3. 方法一 从仓库安装 - 3.1. 建立仓库 - 3.1.1. 更新 apt 包索引，并安装相关依赖 - 3.1.2. 添加 Docker 官方 GPG 公钥 - 3.1.3. 建立仓库（stable） - 3.2. 安装 Docker Engine - 3.2.1. 安装最新版本的 Docker Engine - 3.2.2. 安装特定版本的 D",410,{"yearMonth":443,"slug":591,"title":592,"date":576,"type":8,"updated":576,"categories":593,"tags":594,"excerpt":596,"sticky":14,"unlisted":14,"comments":15,"wordCount":597,"readingTime":63},"linux-rocky-rustdesk-server","安装 RustDesk 服务器 (适用 Rocky Linux, CentOS, RHEL 系列发行版)",[44],[258,579,595,580],"rustdesk","环境：Rocky Linux 9.1 1. 安装 Docker Engine - 可以参考 [[linux-docker-rocky-install]] - 英文可以参考官方文档 Install Docker Engine on RHEL 2. 安装 Docker Compose 3. 验证 Docker Compose 4. 创建 Docker Compose 配置文件 1. 创建安装\u002F运行目录",353,{"yearMonth":443,"slug":599,"title":600,"date":601,"type":8,"updated":601,"categories":602,"tags":603,"excerpt":604,"sticky":14,"unlisted":14,"comments":15,"wordCount":605,"readingTime":63},"blog-build-hexo","Hexo 博客搭建","2023-03-01",[151],[29,487],"参考 1. 安装 文档 | Hexo 2. 部署 | Hexo 安装 1. 安装 Git 和 NodeJS 2. 安装 hexo npm install -g hexo-cli 部署 1. 克隆 https:\u002F\u002Fgithub.com\u002Fcc01cc\u002Fcc01cc.github.io.git 2. 复制 nodemodules 目录 【金山文档】 nodemodules 3. 使用 git subtr",185,{"yearMonth":443,"slug":607,"title":608,"date":601,"type":8,"updated":601,"categories":609,"tags":610,"excerpt":611,"sticky":14,"unlisted":14,"comments":15,"wordCount":612,"readingTime":63},"resouce-bookRef-computer-network","Computer Networking: A Top-Down Approach",[44],[],"1. 配套 Web 站点 - Jim Kurose Homepage : - Computer Science Resources | Pearson: 2. 章节 |Chapter|Title|Link| |--|--|--| |Chapter 1| Computer Networks and the Internet| | |Chapter 2| The Application Layer| ",236,{"yearMonth":443,"slug":614,"title":615,"date":601,"type":8,"updated":601,"categories":616,"tags":617,"excerpt":618,"sticky":14,"unlisted":14,"comments":15,"wordCount":619,"readingTime":63},"use-linux-ubuntu-todesk","Ubuntu 安装 Todesk",[44],[474],"环境：Ubuntu 22.04 LTS 1. 更新软件源 2. 安装 x11 Ubuntu 22.04 默认使用 Wayland 图形系统，但是 Todesk 仅支持 x11 1. Debian11 与ubuntu22.04做被控端无法显示桌面 - Bug 反馈 - Powered by Discuz! 2. software installation - How to install X11\u002Fx",171,{"yearMonth":443,"slug":621,"title":621,"date":601,"type":8,"updated":601,"categories":622,"tags":623,"excerpt":624,"sticky":14,"unlisted":14,"comments":15,"wordCount":625,"readingTime":63},"use-word",[44],[],"Word 论文排版 |标题|链接| |--|--| |标题&大纲|BV1E5411K7By| |图片&表格|BV1iZ4y1P7wa| -->",26,{"yearMonth":627,"slug":628,"title":629,"date":630,"type":8,"updated":630,"categories":631,"tags":632,"excerpt":633,"sticky":14,"unlisted":14,"comments":15,"wordCount":634,"readingTime":50},"2023-02","blog-build-log","建站日志","2023-02-26",[151],[29],"2024年3月 3月23日 cn 站 v3.3 由于近期爬虫过多，爬取速率过高，频发触发腾讯云监控平台告警，故将 cn 站从 腾讯云 CDN 切换到 腾讯云 EdgeOne 设置防护。 log-build-v3.3 2024年2月 2月8日 cn 站 v3.2 - 将博客域名从 cc01cc.cn 更改为 blog.cc01cc.cn 使用 301 永久重定向。 - 开始拆分 cn 站 com 站",516,{"yearMonth":627,"slug":636,"title":636,"date":630,"type":8,"updated":630,"categories":637,"tags":638,"excerpt":639,"sticky":14,"unlisted":14,"comments":15,"wordCount":640,"readingTime":63},"guide-url",[44],[],"目标 易于辨识，不重复 要求 1. 采用小写英文 1. 易于用户输入 2. 部分服务器或 robots 区分大小写 2. 采用 - 作为连接符 1. - 会被替换为空格 2. _ 会被省略 3. 目录或索引页以 \u002F 结尾 1. e.g. cc01cc.com\u002Fblog\u002F 4. 层级采用降级结构，且不得超过三级 1. e.g. cc01cc.com\u002Fblog\u002F2022\u002F11\u002Findex.html 5",182,{"yearMonth":627,"slug":642,"title":643,"date":644,"type":8,"updated":644,"categories":645,"tags":646,"excerpt":647,"sticky":14,"unlisted":14,"comments":15,"wordCount":648,"readingTime":63},"blog-todo","博客规划","2023-02-25",[151],[394,29],"架构规划 - [ ] 【暂缓】将博客从 「云服务器ECS」 迁移到 「Serverless 应用引擎」 - [ ] 在「Serverless 应用引擎」创建博客相关应用 风险控制 - [X] 风险预警 - [ ] 风险不停机处置方案（DCDN, ECS） - [ ] 更换 CDN 服务商以及 WAF 提供商 - [ ] 添加阿里云云监控回调函数 配置规划 配置指南 | Hexo Fluid 用户手",119,{"yearMonth":627,"slug":650,"title":651,"date":652,"type":8,"updated":652,"categories":653,"tags":654,"excerpt":655,"sticky":14,"unlisted":14,"comments":15,"wordCount":50,"readingTime":63},"Hello-World","Hello World","2023-02-16",[44],[],"Hello World! -->",{"yearMonth":657,"slug":658,"title":658,"date":659,"type":8,"updated":659,"categories":660,"tags":661,"excerpt":663,"sticky":14,"unlisted":14,"comments":15,"wordCount":664,"readingTime":63},"2023-01","blog-init-hexo","2023-01-30",[151],[662,487,29],"init","这两天在考虑将博客从 Hugo 迁移到 Hexo；看了网上许多文章都是从 Hexo 迁移到 Hugo，感觉我在逆向行驶，当初选择 Hugo 的主要原因是： 1. Hugo 运行和构建速度快 2. Hugo 有庞大的用户基础 虽然主题和一些细节上有些不太满意的地方，但原先考虑搭建博客之后慢慢地调整，但一段时间评估下来，短期内并无闲余去优化。而 Hexo 在文档和主题以及主题的文档上在浅看之后都相对满",261,{"yearMonth":666,"slug":667,"title":667,"date":668,"type":8,"updated":668,"categories":669,"tags":670,"excerpt":671,"sticky":14,"unlisted":14,"comments":15,"wordCount":672,"readingTime":63},"2022-12","log-life-20221226","2022-12-26",[237],[239],"从 21 日起，到今天（26日）大致一周，我经历各种颠簸（地理、生理、心理） - 地理上：在各个酒店之间流转，从车站旁的酒店，到考场旁的酒店，到家旁边的酒店 - 生理上：21 日，室友 covid-19 单管阳性，从 21 日晚间开始，我开始四肢酸痛，头晕 - 21日晚间 四肢酸痛，头晕（有时会短暂失去意识） - 22日 头痛 + 眼睛胀痛（最难受的时刻） - 23日 头晕 + 咳嗽 - 24日 ",263,{"yearMonth":666,"slug":674,"title":675,"date":676,"type":8,"updated":676,"categories":677,"tags":678,"excerpt":679,"sticky":14,"unlisted":14,"comments":15,"wordCount":680,"readingTime":63},"use-conda-tensorflow","安装 tensorflow GPU（使用 conda）","2022-12-06",[358],[358,546,475],"环境：windows 11 1. 快速开始 运行以下命令，直接新建一个包含 tensorflow (gpu) 以及其他常用库的新环境。 2. 「方法一」半自动安装 - 先安装 cudnn 和 cudatoolkit 包，再安装 tensorflow 包 3. 「方法二」全自动安装 - 缺点是版本相对 pypi 稍低 - 如：目前 pypi 版本为 2.8，conda 的版本为 2.6 - cond",190,{"yearMonth":682,"slug":683,"title":684,"date":685,"type":8,"updated":685,"categories":686,"tags":687,"excerpt":689,"sticky":14,"unlisted":14,"comments":15,"wordCount":690,"readingTime":63},"2022-11","java-redis-jedis","jedis","2022-11-19",[44],[140,688,684],"redis","redis\u002Fjedis: Redis Java client designed for performance and ease of use. 文件树 引入依赖 建立连接 操作 释放资源 Jedis 连接池 --- - 代码： -->",35,{"yearMonth":682,"slug":692,"title":693,"date":694,"type":8,"updated":694,"categories":695,"tags":696,"excerpt":697,"sticky":14,"unlisted":14,"comments":15,"wordCount":698,"readingTime":63},"use-conda-mamba","使用 mamba 提速 Conda","2022-11-16",[358],[358,546,475],"1. 介绍 GitHub - mamba-org\u002Fmamba: The Fast Cross-Platform Package Manager: mamba 是 Conda 包管理器的 C++ 重新实现 - 使用多线程并行下载存储库数据和包文件 - 使用 libsolv 加速处理依赖关系 - 为了提高效率，mamba 的核心部分使用 C++ 实现的 - 为了提高兼容性，mamba 使用与 Cond",275,{"yearMonth":682,"slug":700,"title":700,"date":701,"type":8,"updated":701,"categories":702,"tags":703,"excerpt":705,"sticky":14,"unlisted":14,"comments":15,"wordCount":706,"readingTime":50},"blog-init-hugo","2022-11-13",[151],[662,704,29],"hugo","这是使用 Hugo 建立本站的第一篇文章。 今日是 2022 年 11 月 13 日。 历程 之前也尝试过使用 Jekyll 搭建博客，当初因为 Jekyll 是 GitHub 推荐，同时有着庞大的用户基础，所以就选择了它。但是尝试了没多久就慢慢停滞了，主要原因： - 我自己在其他平台也有博文，博客定位不清，博客搭建和维护的动力不足。 - 但是由于当初能力有限，Jekyll 大量的纯英文文档阅读有",550,{"yearMonth":708,"slug":709,"title":709,"date":710,"type":8,"updated":710,"categories":711,"tags":712,"excerpt":713,"sticky":14,"unlisted":14,"comments":15,"wordCount":714,"readingTime":63},"2022-06","use-github","2022-06-06",[44],[],"高级搜索 1. 【高级搜索页】GitHub · Where software is built: 2. 【帮助文档】About searching on GitHub - GitHub Docs: 快捷键 Keyboard shortcuts - GitHub Docs: *不区分大小写 1. t 激活文件查找器 2. l 跳转至代码的某一行 在线运行项目 1. Gitpod: Always re",88,{"yearMonth":708,"slug":716,"title":717,"date":718,"type":8,"updated":718,"categories":719,"tags":720,"excerpt":721,"sticky":14,"unlisted":14,"comments":15,"wordCount":722,"readingTime":63},"java-yaml","java 读取 yaml","2022-06-04",[44],[],"1. pom.xml 2. 文件结构 3. config.yml yaml 中的层级关系，转化到 Java 中，类似于类的包裹 4. Main.java 5. Config.java 6. Qq\u002FFeishu\u002FDingtalk.java 以 Qq.java 为例 7. 注意点 1. yaml 中 @ 等字符，可以使用单双引号包裹 2. yaml 区分大小写 8. 参考 1. YAML file r",76,{"yearMonth":724,"slug":725,"title":725,"date":726,"type":8,"updated":726,"categories":727,"tags":728,"excerpt":730,"sticky":14,"unlisted":14,"comments":15,"wordCount":731,"readingTime":63},"2022-05","blog-init-jekyll","2022-05-31",[151],[662,729,29],"jekyll","Jekyll 目录结构 加载 liquid 如果需要让 jekyll 为页面加载 liquid 需要在头部使用 博文链接 Tags Filters | Jekyll • Simple, blog-aware, static sites: 博文使用 post_url 标签引用链接 参考 Setup | Jekyll • Simple, blog-aware, static sites -->",60,{"yearMonth":724,"slug":733,"title":733,"date":734,"type":8,"updated":734,"categories":735,"tags":736,"excerpt":737,"sticky":14,"unlisted":14,"comments":15,"wordCount":530,"readingTime":63},"initial-blog-jekyll","2022-05-30",[44],[],"这是第一篇博客哦！ 今天是2022年5月30日 -->",1787584684173]