<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Yc.W</title>
    <description>Yc.W (@yongchao) · 本站记录我的一些总结！</description>
    <link>https://blog.wyclswq.top/</link>
    <atom:link href="https://blog.wyclswq.top/feed.xml" rel="self" type="application/rss+xml"/>
    <pubDate>Mon, 28 Sep 2026 13:42:40 +0000</pubDate>
    <lastBuildDate>Mon, 28 Sep 2026 13:42:40 +0000</lastBuildDate>
    <generator>Jekyll v4.4.1</generator>
    
      <item>
        <title>GPU / CUDA / Docker 部署兼容性清单：从镜像到模型服务</title>
        <description>GPU 部署失败时，最容易把三类问题混在一起：&lt;strong&gt;宿主机驱动不兼容、容器没有看到设备、模型/框架本身不兼容&lt;/strong&gt;。这份清单不替代 NVIDIA、CUDA、模型或 vLLM 的兼容性文档，而是提供一个从证据到验收的顺序。

&lt;blockquote&gt;
  文中的历史 GPU 型号、CUDA/驱动、wheel、模型和性能数字都必须在目标环境重新确认。&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RTX 4090&lt;/code&gt;、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;RTX 4090D&lt;/code&gt;、48GB 变体和不同 SM 架构不能只按品牌名称视为同一配置。&lt;a href=&quot;#source-note-1&quot;&gt;DeepSeek source note&lt;/a&gt; &lt;a href=&quot;#source-note-2&quot;&gt;cluster source note&lt;/a&gt;
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 18:30:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/curated-gpu-docker-deployment/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/curated-gpu-docker-deployment/</guid>
        
        <category>GPU</category>
        
        <category>Docker</category>
        
        <category>vLLM</category>
        
        <category>Model</category>
        
        <category>Deployment</category>
        
        <category>Testing</category>
        
        
        <category>AI &amp; LLM</category>
        
      </item>
    
      <item>
        <title>Ray + vLLM 离线多节点部署：从可复现安装到安全运维</title>
        <description>多节点推理的难点不是把 Ray 和 vLLM 同时启动，而是让&lt;strong&gt;版本、模型、GPU、网络、进程生命周期和回滚路径&lt;/strong&gt;形成同一个可验证的交付单元。本文把历史记录整理成一份版本敏感的 runbook；它不是对任何具体硬件或模型性能的保证。

&lt;blockquote&gt;
  原文中的安装包、端口、镜像、参数和性能数字都可能只对当时的版本成立。Ray、vLLM、CUDA、NCCL 和模型文件必须以目标环境的实际版本为准。&lt;a href=&quot;#source-note-1&quot;&gt;Ray source note&lt;/a&gt; &lt;a href=&quot;#source-note-2&quot;&gt;vLLM + Ray source note&lt;/a&gt;
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 18:20:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/curated-ray-vllm-offline-runbook/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/curated-ray-vllm-offline-runbook/</guid>
        
        <category>Ray</category>
        
        <category>vLLM</category>
        
        <category>Docker</category>
        
        <category>GPU</category>
        
        <category>Deployment</category>
        
        <category>Testing</category>
        
        <category>Observability</category>
        
        
        <category>AI &amp; LLM</category>
        
      </item>
    
      <item>
        <title>BehaviorTree.CPP 工程指南：从执行模型到仿真系统</title>
        <description>BehaviorTree.CPP 真正需要工程化的，不只是把 XML 写出来，而是把&lt;strong&gt;决策、动作、状态和生命周期&lt;/strong&gt;分层，并为中断、仿真、测试与性能建立可观察的边界。本文以 4.9 系列为阅读入口，同时把版本敏感的 API 细节留给官方文档和源码。

&lt;blockquote&gt;
  本文是新的主题化阅读层，不替换两篇历史原文，也不把 AI-assisted 文章中的 API 清单视为独立验证结果。执行模型、线程行为和 API 名称应以当前项目锁定的版本为准。&lt;a href=&quot;#source-note-1&quot;&gt;Architecture Guide&lt;/a&gt; &lt;a href=&quot;#source-note-2&quot;&gt;Practical Notes&lt;/a&gt;
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 18:10:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/curated-behaviortree-cpp-engineering/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/curated-behaviortree-cpp-engineering/</guid>
        
        <category>BehaviorTree.CPP</category>
        
        <category>C++</category>
        
        <category>Testing</category>
        
        <category>Performance</category>
        
        <category>Debugging</category>
        
        
        <category>C &amp; C++</category>
        
      </item>
    
      <item>
        <title>Agent 沙箱与工具权限：从 Docker 到可审计执行边界</title>
        <description>把 Agent 放进 Docker 或 Kubernetes 只能提供一个执行边界，不能自动解决提示注入、恶意工具参数、密钥泄露、越权文件访问或失控循环。真正的沙箱设计需要从“允许什么、拒绝什么、谁来批准、如何发现和如何清理”开始。

&lt;blockquote&gt;
  本文只讨论防御性架构和授权测试。示例环境应使用合成数据、测试凭据和隔离网络，不要把模型输出直接当作可信代码或高权限命令。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 11:30:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/agent-sandbox-security-runbook/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/agent-sandbox-security-runbook/</guid>
        
        <category>AI Agent</category>
        
        <category>Security</category>
        
        <category>Sandbox</category>
        
        <category>Least Privilege</category>
        
        <category>Observability</category>
        
        <category>OpenCode</category>
        
        
        <category>AI &amp; LLM</category>
        
      </item>
    
      <item>
        <title>现代 C++ 并发与生命周期：shared_ptr、锁、条件变量与线程池</title>
        <description>C++ 并发问题通常不是“线程 API 不会用”，而是对象生命周期、锁的保护范围和停止协议没有一起设计。先画出状态转移和所有权，再选择 &lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;std::mutex&lt;/code&gt;、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;std::shared_ptr&lt;/code&gt; 或线程池，代码会稳定很多。

&lt;blockquote&gt;
  本文是对历史 C++ 笔记的现代化重组。示例用于说明设计原则，编译器版本、库实现和业务约束仍需在项目中验证。
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;strong&gt;技术交叉核对（2026-09-25）&lt;/strong&gt;：&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;std::condition_variable&lt;/code&gt; 的等待、谓词和生命周期边界已对照 &lt;a href=&quot;https://en.cppreference.com/w/cpp/thread/condition_variable&quot;&gt;cppreference&lt;/a&gt;；示例仍不是某个标准库实现的压力测试。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 11:20:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/modern-cpp-concurrency-lifecycle/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/modern-cpp-concurrency-lifecycle/</guid>
        
        <category>C++</category>
        
        <category>Concurrency</category>
        
        <category>Memory</category>
        
        <category>RAII</category>
        
        <category>Debugging</category>
        
        <category>Thread Pool</category>
        
        
        <category>C &amp; C++</category>
        
      </item>
    
      <item>
        <title>Linux ELF 动态链接与 C++ 部署排障：RPATH、SONAME、ldconfig 与符号冲突</title>
        <description>“程序在开发机正常，部署到服务器就找不到库”通常不是单一的环境变量问题。ELF 动态链接同时涉及可执行文件请求的 SONAME、运行时的搜索规则、库的 ABI、符号版本和进程环境。排查时先画出加载链，再决定是否需要改变配置。

&lt;blockquote&gt;
  本文是历史共享库和动态链接笔记的重组稿。不同发行版、加载器和工具链的细节可能不同，示例命令应在目标环境验证。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 11:10:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/linux-elf-linking-deployment/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/linux-elf-linking-deployment/</guid>
        
        <category>Linux</category>
        
        <category>ELF</category>
        
        <category>Shared Libraries</category>
        
        <category>C++</category>
        
        <category>Debugging</category>
        
        <category>Deployment</category>
        
        
        <category>Systems</category>
        
      </item>
    
      <item>
        <title>现代 CMake 工程化：Targets、依赖发现、安装与 CPack</title>
        <description>CMake 记录通常从“怎样编译一个可执行文件”开始，但真正可维护的工程还需要回答：依赖如何传递、安装后的库如何被找到、测试如何运行、交叉编译如何隔离、发布包如何生成。现代 CMake 的核心是 &lt;strong&gt;target&lt;/strong&gt;：把目标的属性、依赖和用法写成显式关系。

&lt;blockquote&gt;
  本文是基于历史 CMake 笔记的重组稿。示例使用 CMake 3.21 语法来说明 target 关系；实际项目应以所用工具链、生成器和支持矩阵为准。
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;strong&gt;技术交叉核对（2026-09-25）&lt;/strong&gt;：target 依赖、Config package、&lt;code class=&quot;language-plaintext highlighter-rouge&quot;&gt;IMPORTED&lt;/code&gt; target 和安装导出关系已对照 CMake 官方 &lt;a href=&quot;https://cmake.org/cmake/help/latest/guide/tutorial/index.html&quot;&gt;Tutorial&lt;/a&gt; 与 &lt;a href=&quot;https://cmake.org/cmake/help/latest/manual/cmake-packages.7.html&quot;&gt;cmake-packages&lt;/a&gt;。示例仍是教学片段，不是某个项目的完整构建配方。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 11:00:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/modern-cmake-targets-packaging/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/modern-cmake-targets-packaging/</guid>
        
        <category>CMake</category>
        
        <category>C++</category>
        
        <category>Build System</category>
        
        <category>Packaging</category>
        
        <category>Cross-compilation</category>
        
        <category>CPack</category>
        
        
        <category>Developer Tools</category>
        
      </item>
    
      <item>
        <title>旧文章不改：个人博客的内容维护与重新发布策略</title>
        <description>一个跨越多年、经历多次迁移的个人博客，最珍贵的并不只是“最新答案”，还包括当时的思考、问题背景和成长轨迹。优化内容时，最稳妥的方式是把历史记录当作档案，把新的理解发布成新的文章，而不是用今天的判断覆盖过去的文字。

&lt;blockquote&gt;
  本文是内容治理说明，不修改任何历史文章。它描述当前博客采用的非破坏性发布策略。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 10:50:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/blog-legacy-content-maintenance-policy/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/blog-legacy-content-maintenance-policy/</guid>
        
        <category>Writing</category>
        
        <category>Blog</category>
        
        <category>Knowledge Management</category>
        
        <category>Editorial</category>
        
        
        <category>Personal</category>
        
      </item>
    
      <item>
        <title>摄影学习路径：从认识相机到持续观察</title>
        <description>摄影的进步不只来自购买设备或背参数，更来自“观察—拍摄—回看—解释”的循环。历史资料可以作为起点，但真正的练习应该发生在自己的城市、自己的光线和熟悉的主题中。

&lt;blockquote&gt;
  本文是摄影历史笔记的轻量重组，不替代相机说明书、课程原书或专业摄影指导。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 10:40:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/curated-photography-learning-path/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/curated-photography-learning-path/</guid>
        
        <category>Photography</category>
        
        <category>Composition</category>
        
        <category>Observation</category>
        
        <category>DSLR</category>
        
        
        <category>Photography</category>
        
      </item>
    
      <item>
        <title>数据库与工业协议笔记：从 SQL、嵌入式存储到数据采集</title>
        <description>数据库文章最容易变成安装步骤和零散 SQL 的集合。更好的学习方式，是先根据数据规模、并发、事务、部署边界和协议语义选择模型，再学习具体产品的操作。

&lt;blockquote&gt;
  本文是数据库与工业协议历史笔记的重组。安装命令、默认端口、认证方式和协议版本可能变化，请优先参考当前官方文档。
&lt;/blockquote&gt;

&lt;blockquote&gt;
  &lt;strong&gt;技术交叉核对（2026-09-25）&lt;/strong&gt;：SQLite 的显式事务、savepoint 和错误回滚语义已对照 &lt;a href=&quot;https://www.sqlite.org/lang_transaction.html&quot;&gt;SQLite Transaction Control Syntax&lt;/a&gt;；其他数据库仍需查阅各自版本和引擎文档。
&lt;/blockquote&gt;

</description>
        <pubDate>Thu, 24 Sep 2026 10:30:00 +0000</pubDate>
        <link>https://blog.wyclswq.top/2026/09/24/curated-database-and-protocol-notes/</link>
        <guid isPermaLink="true">https://blog.wyclswq.top/2026/09/24/curated-database-and-protocol-notes/</guid>
        
        <category>Database</category>
        
        <category>SQL</category>
        
        <category>SQLite</category>
        
        <category>PostgreSQL</category>
        
        <category>MySQL</category>
        
        <category>MTConnect</category>
        
        
        <category>Database</category>
        
      </item>
    
  </channel>
</rss>
