运维123
type: channel
link: https://www.sddts.cn/
description: 一切有意，百事用心，心想事成。
items: 微信 iLink Bot SDK 技术文档
items: Understand Anything 代码库理解工具入门指南
items: Project N.O.M.A.D. 离线生存计算机系统
items: 维基百科再度拉黑 Archive.today，删除 69.5 万条存档链接
items: Electronics for Kids 电子学入门教程导读
items: Linux 应用开发基础教程
items: 有些事情就是需要时间
items: 从零重建VisiCalc电子表格软件
items: 比亚迪电动汽车需求激增：油价上涨推动司机转向新能源
items: SharpAI 发布 HomeSec-Bench 基准测试：本地 AI 性能逼近 GPT-5.4

微信 iLink Bot SDK 技术文档
type: item
date: 2026-03-22T11:02:11+00:00
description: 微信 iLink Bot SDK 技术文档一、概述1. 项目简介A. 是什么weixin-bot 是一个微信 iLink Bot SDK，支持 Node.js 和 Python 两种语言实现。它为开发者提供了一套简洁的 API，让任何 Agent 可以在 5 分钟内接入微信消息收发功能。B. 为什么需要它传统的微信机器人接入面临以下痛点：协议复杂，需要深入理解微信 iLink Bot APIcontext_token 管理繁琐，处理不当会导致消息投递失败Session 过期需要手动重新登录需要配置 Webhook 接收消息，部署复杂weixin-bot SDK 通过封装底层协议细节，解决了这些问题：零配置，开箱即用凭证自动保存和续期context_token 自动管理长轮询收消息，无需 WebhookC. 应用场景AI Agent 接入微信作为交互渠道客服机器人自动回复群聊助手和消息监听微信消息自动化处理2. 技术背景A. iLink Bot APIiLink Bot API 是微信提供的机器人接口协议，采用 HTTP 长轮询方式接收消息，通过 HTTP POST 发送消息。关键特性包括：扫码登录认证长轮询获取更新context_token 上下文传递机制Typing 状态支持B. 协议关键发现SDK 开发过程中发现的关键协议细节：context_token：回复消息时必须原样传回 APIsendtyping：唯一能触发"对方正在输入中"的方式message_state：GENERATING 状态在 API 层面可用，但微信客户端不渲染Session 过期：errcode 为 -14 时需要重新登录二、系统架构1. 整体架构graph TB Agent[Agent 应用] -->|调用| SDK[weixin-bot SDK] SDK -->|HTTP 长轮询| API[iLink Bot API] SDK -->|HTTP POST| API API -->|推送消息| User[微信用户] User -->|扫码/发消息| API SDK -->|保存凭证| Local[本地存储]2. 组件说明Agent 应用：使用 SDK 的上层应用，如 AI Agent、客服机器人weixin-bot SDK：封装 iLink Bot API 协议的 SDK 库iLink Bot API：微信提供的机器人接口服务本地存储：保存登录凭证，避免重复扫码3. 交互流程sequenceDiagram participant Agent as Agent 应用 participant SDK as weixin-bot SDK participant API as iLink Bot API participant User as 微信用户 Note over Agent,User: 1. 登录阶段 Agent->>SDK: bot.login() SDK->>API: GET /get_bot_qrcode?bot_type=3 API-->>SDK: 返回二维码 URL SDK-->>Agent: 终端显示二维码 User->>API: 微信扫码确认 API-->>SDK: 返回 bot_token + baseurl SDK-->>Agent: 登录成功，凭证已保存 Note over Agent,User: 2. 消息收发循环 Agent->>SDK: bot.run() loop 长轮询循环 SDK->>API: POST /getupdates (最多保持 35 秒) User->>API: 发送消息 "你好" API-->>SDK: 返回消息 + context_token SDK-->>Agent: 触发 onMessage(msg) Agent->>SDK: bot.sendTyping(userId) SDK->>API: POST /sendtyping Note over User: 显示 "对方正在输入中" Agent->>SDK: bot.reply(msg, "Echo: 你好") SDK->>API: POST /sendmessage (带 context_token) API-->>User: 推送回复消息 SDK->>API: POST /sendtyping (取消 typing) end Note over Agent,User: 3. 异常处理 API-->>SDK: 返回 errcode: -14 (Session 过期) SDK->>SDK: 自动触发重新登录 SDK->>API: 重新获取二维码和 token SDK-->>Agent: 自动恢复运行三、安装指南1. 系统要求Node.js：14…

Understand Anything 代码库理解工具入门指南
type: item
date: 2026-03-22T11:01:43+00:00
description: Understand Anything 代码库理解工具入门指南一、概述1. 简介A. 是什么Understand Anything 是一个开源的 Claude Code 插件，结合大语言模型智能与静态分析技术，将任意代码库转换为可交互的知识图谱。通过可视化界面，开发者可以探索、搜索和提问关于代码库的任何问题。B. 为什么学解决新人接手项目时的上手难题让非技术人员（产品经理、设计师）也能理解系统工作原理为 AI 编程工具提供深度的代码库上下文通过增量分析保持知识图谱的实时更新C. 学完能做什么使用多 Agent 管道自动分析项目结构在交互式仪表板中可视化代码依赖关系通过自然语言搜索代码库中的任意概念生成新人入职指南和架构导览2. 前置知识A. 必备技能Claude Code 基本使用基本的代码库概念（文件、函数、类、模块）终端命令操作B. 推荐知识TypeScript/JavaScript 基础React 框架了解知识图谱概念二、环境准备1. 系统要求Claude Code 已安装并配置Node.js 18+pnpm 包管理器2. 安装步骤通过 Claude Code 插件市场安装：/plugin marketplace add Lum1104/Understand-Anything /plugin install understand-anything从源码安装（开发模式）：git clone https://github.com/Lum1104/Understand-Anything.git cd Understand-Anything pnpm install3. 验证安装# 检查插件是否安装成功 /understand # 查看帮助信息 /understand-dashboard三、核心概念1. 基本术语知识图谱（Knowledge Graph）：表示代码库中文件、函数、类及其关系的图形结构节点（Node）：图谱中的基本单元，可以是文件、函数、类或模块边（Edge）：连接节点的关系，如导入、调用、继承等层级（Layer）：按架构层次组织的节点分组，如 API 层、数据层导览（Tour）：按照依赖关系生成的项目学习路径2. 工作原理graph TB A[代码库] --> B[项目扫描器] B --> C[文件分析器] C --> D[架构分析器] C --> E[知识图谱构建] D --> E E --> F[导览构建器] F --> G[图谱验证器] G --> H[知识图谱 JSON] H --> I[交互式仪表板]四、快速上手1. 分析代码库在项目根目录运行：/understand该命令会启动 5 个专用 Agent 协同工作：Agent职责project-scanner发现文件、检测语言和框架file-analyzer提取函数、类、导入，生成图谱节点和边architecture-analyzer识别架构层次tour-builder生成引导式学习导览graph-reviewer验证图谱完整性和引用完整性分析完成后，知识图谱保存到 .understand-anything/knowledge-graph.json。2. 打开仪表板/understand-dashboard交互式 Web 仪表板会自动打开，展示代码库的可视化图谱：按架构层次分色的节点可点击的节点显示代码和关系自然语言搜索功能平实语言描述的每个节点3. 核心功能演示自然语言问答：/understand-chat How does the payment flow work?分析代码变更影响：/understand-diff深入解释特定文件：/understand-explain src/auth/login.ts生成新人指南：/understand-onboard五、核心功能1. 知识图谱可视化使用 React Flow 构建的交互式图谱：点击节点查看代码和连接按架构层次自动分组支持缩放和平移2. 自然语言搜索支持两种搜索模式：模糊搜索：按名称匹配语义搜索：按含义匹配（如"哪些部分处理认证？"）3. 分层可视化自动识别以下层次：API 层服务层数据层UI 层工具层每个层次用不同颜色标识。4. 语言概念解释在代码上下文中解释 12 种编程模式：泛型闭包装饰器高阶函数异步模式等5. 差异影响分析查看代码变更对系统的影响：分析当前 PR 的变更解释受影响的区域评估潜在风险六、进阶内容1. 增量更新机制工具自动检测代码库变化：读取上次分析的 commit hash运行 git diff 获取变更文件仅重新分析变更的文件合并到现有图谱中2. 插件系统支持自定义语言分析器：interface AnalyzerPlugin { name: string; languag…

Project N.O.M.A.D. 离线生存计算机系统
type: item
date: 2026-03-22T10:59:41+00:00
description: Project N.O.M.A.D. 离线生存计算机系统一、概述1. 项目简介A. 是什么Project N.O.M.A.D.（Node for Offline Media, Archives, and Data）是一个自包含的离线优先知识和教育服务器。它通过 Docker 容器化技术整合了关键工具、知识库和本地 AI，能够在任何时间、任何地点保持信息获取和赋能能力。B. 为什么需要网络基础设施可能因自然灾害、战争或其他突发事件而中断某些环境下互联网访问受限或不可用需要保证数据隐私和完全的本地控制教育资源在偏远地区的可用性问题C. 能做什么离线访问完整的维基百科、医学参考资料和电子书本地 AI 聊天助手，支持文档上传和语义搜索Khan Academy 课程学习平台，支持进度跟踪离线地图下载和导航数据加密、编码和分析工具本地笔记系统2. 核心特性A. 完全离线运行系统仅在初始安装时需要网络连接，之后可完全脱机运行，无内置遥测功能。B. 容器化架构基于 Docker 的容器编排，所有工具和服务以容器形式运行，便于管理和更新。C. 统一管理界面提供 Web 界面（Command Center）统一管理所有服务和资源。D. 本地 AI 能力通过 Ollama 和 Qdrant 实现本地大语言模型和向量数据库，支持 RAG（检索增强生成）。3. 项目背景A. 开发团队由 Crosstalk Solutions 开发和维护，采用 Apache 2.0 开源许可证。B. 社区支持拥有活跃的 Discord 社区和社区排行榜，用户可以分享硬件配置和性能数据。二、系统架构1. 整体架构Project N.O.M.A.D. 采用分层架构设计，通过 Docker 容器化技术整合多个独立服务。graph TB subgraph 用户层 Browser[Web 浏览器] end subgraph 管理层 CC[Command Center 管理界面] API[REST API] end subgraph 服务层 Kiwix[Kiwix 离线知识库] Kolibri[Kolibri 教育平台] Ollama[Ollama AI 服务] Qdrant[Qdrant 向量数据库] CyberChef[CyberChef 数据工具] FlatNotes[FlatNotes 笔记服务] Maps[ProtoMaps 离线地图] end subgraph 数据层 MySQL[(MySQL 数据库)] ZIM[ZIM 文件存储] Content[用户内容存储] end subgraph 基础设施层 Docker[Docker 容器引擎] Linux[Linux 操作系统] end Browser --> CC CC --> API API --> Kiwix API --> Kolibri API --> Ollama API --> Qdrant API --> CyberChef API --> FlatNotes API --> Maps Ollama --> Qdrant CC --> MySQL Kiwix --> ZIM FlatNotes --> Content API --> Docker Kiwix --> Docker Kolibri --> Docker Docker --> Linux2. 组件说明A. Command Center核心管理界面，提供统一的服务管理、配置和用户交互入口。B. 服务层组件Kiwix：离线知识库服务，支持 ZIM 格式内容Kolibri：离线教育平台，支持课程管理和进度跟踪Ollama：本地大语言模型运行时Qdrant：向量数据库，用于语义搜索和 RAGCyberChef：多功能数据处理工具FlatNotes：Markdown 笔记应用ProtoMaps：离线地图瓦片服务C. 数据存储MySQL：存储元数据、配置和用户数据ZIM 文件：存储离线知识库内容本地文件系统：用户上传内容和笔记3. 交互流程A. AI 对话流程sequenceDiagram participant U as 用户 participant CC as Command Center participant O as Ollama participant Q as Qdrant participant KB as 知识库 U->>CC: 发送问题 CC->>Q: 向量搜索 Q-->>CC: 返回相关文档 CC->>O: 构建提示词 O-->>CC: 返回响应 CC-->>U: 显示答案 Note over U,KB: 用户可上传文档 U->>CC: 上传文档 CC->>KB: 存储文档 CC->>Q: 建立向量索引B. 内容获取流程初始安装时从互…

维基百科再度拉黑 Archive.today，删除 69.5 万条存档链接
type: item
date: 2026-03-22T09:51:19+00:00
description: 维基百科再度拉黑 Archive.today，删除 69.5 万条存档链接一、新闻概述1. 标题维基百科再度拉黑 Archive.today：利用访问者浏览器发动 DDoS 攻击2. 发布时间2026 年 2 月 20 日3. 来源维基百科社区共识、Solidot、IT之家等多家媒体报道二、核心内容1. 事件摘要A. 主要内容英文版维基百科编辑达成共识，决定将网页存档网站 Archive.today 及其镜像站点（archive.is、archive.ph）列入黑名单，并清理分散在约 40 万个页面中的 69.5 万条引用链接。B. 核心亮点维基百科史上最大规模的链接清理行动之一Archive.today 被指控利用访问者浏览器对持异见者发动 DDoS 攻击该网站还涉嫌冒用他人身份、篡改存档内容2. 关键信息A. 涉及数据受影响页面：约 40 万个待删除链接：约 69.5 万条DDoS 攻击频率：每 300 毫秒发送一次请求B. 涉及服务Archive.today 主站archive.is、archive.ph 等镜像站点CAPTCHA 验证页面（被植入攻击代码）C. 事件时间线2023 年 8 月：博主发表调查文章2025 年 10 月：FBI 发出传票2026 年 2 月：DDoS 攻击曝光2026 年 2 月 20 日：维基百科正式拉黑3. 背景介绍A. Archive.today 简介Archive.today（又称 archive.is 或 archive.ph）是一个私人资助的网页存档网站，成立于 2012 年。与互联网档案馆的 Wayback Machine 不同，该服务采用用户主动提交的方式存档网页，不遵守 Robots 排除标准。B. 历史争议2013-2016 年：曾被维基百科拉黑，原因包括僵尸网络和链接垃圾2015 年：封锁芬兰 IP 地址，避免与政府纠纷被中国、哈萨克斯坦封锁三、详细报道1. DDoS 攻击事件A. 事件起因2023 年 8 月，博主 Jani Patokallio 发表文章，利用公开信息调查 Archive.today 幕后运营者的身份，文章点击量约 1 万次。2025 年 10 月，FBI 向域名注册商 Tucows 发出传票，要求提供 Archive.today 注册者信息。媒体报道时引用了 Patokallio 的博客，称 Archive.today 创始人可能来自俄罗斯。B. 攻击手段Archive.today 向 Patokallio 发送邮件要求撤下文章（被 Gmail 归类为垃圾邮件）。在未获回应后，该网站在 CAPTCHA 验证页面中嵌入了恶意代码。攻击原理：graph LR A[用户访问 Archive.today] --> B[弹出 CAPTCHA 验证] B --> C[页面加载恶意 JavaScript] C --> D[每 300ms 发送请求] D --> E[目标博客服务器] E --> F[带宽耗尽/费用增加]只要用户保持 CAPTCHA 页面打开，恶意代码就会每隔 300 毫秒向 Patokallio 的博客发送一次请求，通过大量访问者的浏览器形成分布式拒绝服务攻击。C. 威胁与骚扰Archive.today 运营者对 Patokallio 进行辱骂和威胁，声称要开发与他名字相关的 AI 色情内容。2. 其他恶意行为A. 篡改存档内容Archive.today 被发现在存档页面中擅自插入与持异见者相关的内容，破坏了存档作为可靠证据的可信度。B. 冒用身份该网站涉嫌冒用他人身份进行操作。3. 维基百科的决策A. 社区讨论DDoS 攻击事件曝光后，维基百科志愿者发起了关于是否将 Archive.today 加入黑名单的讨论（RFC 5）。B. 最终决定维基百科编辑达成共识：立即弃用 Archive.today将其添加到垃圾黑名单创建编辑过滤器阻止添加新链接删除所有指向该站点的约 69.5 万条链接四、影响分析1. 行业影响A. 网页存档生态Archive.today 曾被视为仅次于互联网档案馆的第二重要网络存档服务，特别适用于：收费网站的存档大量使用 JavaScript 的页面被 Robots.txt 阻止的页面此次事件将严重影响其可信度和使用率。B. 存档服务信任危机用户对第三方存档服务的信任度下降，可能促使用户转向：互联网档案馆 Wayback Machine自建存档方案Perma.cc 等学术存档服务2. 用户影响A. 维基百科读者约 40 万个页面的引用链接失效部分历史证据难以追溯需要寻找替代存档来源B. 数据保存爱好者失去一个重要的存档工具对存档服务的可靠性和中立性产生质疑3. 技术趋势A. CAPTCHA 安全性此次事件暴露了 CAPTCHA…

Electronics for Kids 电子学入门教程导读
type: item
date: 2026-03-22T07:56:52+00:00
description: Electronics for Kids 电子学入门教程导读一、概述1. 简介A. 是什么《Electronics for Kids》是一本面向10岁以上读者的电子学入门教程，由挪威电子工程师 Øyvind Nydal Dahl 编写。该书通过21个动手实践项目，从零开始教授电子学基础知识，涵盖电力、电路、数字逻辑等内容。第二版于2026年5月出版，共240页，采用全彩印刷，完全重写了内容，提供更清晰的解释和插图。B. 为什么学理解电子设备的工作原理，从电灯到计算机培养动手能力和科学探索精神学习逻辑思维和问题解决方法为进一步学习电子工程、计算机科学打下基础体验从零开始构建实际项目的成就感C. 学完能做什么读懂电路原理图独立焊接电路元件使用集成电路构建功能电路理解数字逻辑和二进制运算设计并制作自己的电子游戏和装置2. 前置知识A. 必备技能基本阅读理解能力（10岁以上水平）安全使用工具的意识B. 推荐知识基础数学运算能力对科学和技术的兴趣二、书籍结构1. 内容概览graph TD A[Electronics for Kids] --> B[第一部分: 电力基础] A --> C[第二部分: 构建电路] A --> D[第三部分: 数字世界] B --> B1[第1章: 什么是电] B --> B2[第2章: 电磁运动] B --> B3[第3章: 发电原理] C --> C1[第4章: LED发光] C --> C2[第5章: 闪烁灯光] C --> C3[第6章: 焊接入门] C --> C4[第7章: 电力控制] C --> C5[第8章: 集成电路] D --> D1[第9章: 数字电子基础] D --> D2[第10章: 选择电路] D --> D3[第11章: 记忆电路] D --> D4[第12章: 制作游戏]2. 三部分内容A. 第一部分：电力基础（第1-3章）介绍电的基本概念，包括电流、电压、电阻的关系，电磁效应，以及如何产生电力。这部分建立了理解电路的理论基础。B. 第二部分：构建电路（第4-8章）开始实际动手，学习使用LED、电阻、电容等基本元件，掌握焊接技能，认识集成电路的神奇之处。C. 第三部分：数字世界（第9-12章）进入数字电子领域，学习二进制逻辑、门电路、存储器原理，最终设计并制作一个完整的LED反应游戏。三、核心概念1. 基本术语电子学（Electronics）：研究电子流动及其控制的学科，是现代电子设备的基础。电路（Circuit）：电流流动的路径，由电源、导线、负载（如LED、电机）等元件组成。电压（Voltage）：推动电子流动的压力，单位是伏特（V）。电流（Current）：电子流动的速率，单位是安培（A）。电阻（Resistor）：限制电流流动的元件，单位是欧姆（Ω）。电容（Capacitor）：储存电荷的元件，由两个导体板和中间的绝缘层组成。晶体管（Transistor）：可以放大信号或作为开关的半导体元件，是现代电子设备的核心。集成电路（Integrated Circuit, IC）：将大量晶体管、电阻、电容等元件集成在一个芯片上的微型电路。数字逻辑（Digital Logic）：使用二进制（0和1）进行信息处理和计算的基础。原理图（Schematic）：用标准符号表示电路连接关系的图纸。焊接（Soldering）：用熔化的焊料将电子元件永久连接到电路板上的技术。2. 知识体系graph LR A[电子学基础] --> B[模拟电路] A --> C[数字电路] B --> B1[基本元件] B --> B2[电路定律] B --> B3[信号处理] B1 --> B1a[电阻] B1 --> B1b[电容] B1 --> B1c[电感] C --> C1[二进制] C --> C2[逻辑门] C --> C3[组合逻辑] C --> C4[时序逻辑] C2 --> C2a[AND门] C2 --> C2b[OR门] C2 --> C2c[NOT门]3. 学习路径本书采用渐进式学习路径，每个章节建立在前一章的基础上：阶段1：理解电力（第1-3章）建立对电的直观认识理解电流与磁场的关系学习发电的基本原理阶段2：实践电路（第4-8章）第一个实际电路：点亮LED让灯光闪烁：引入时间概念掌握焊接技能：永久性连接学习控制电路：开关和继电器认识集成电路：从分立到集成阶段3：数字世界（第9-12章）二进制与逻辑门组合逻辑电路时序逻辑电路（记忆功能）综合项目：反应游戏四、实践项目1. 项目列表全书包含21个动手实践项目，从简单到复杂，循序渐进：项目名称知识点所属章节入侵警报器电路开关、传感器基础电路自制电磁铁电磁效应电磁学自制电机电磁驱动电磁学日出唤醒闹钟光敏电阻、定时传感器应用颜色猜测游戏随机逻辑…

Linux 应用开发基础教程
type: item
date: 2026-03-22T04:02:24+00:00
description: Linux 应用开发基础教程一、概述1. 简介A. 是什么《Linux Application Development By Example - The Fundamental APIs》是由 Arnold Robbins 编写的 Linux 应用程序开发教程书籍，第二版于 2026 年出版。本书通过大量示例代码，系统介绍 Linux 系统编程的核心 API 和开发技巧。B. 为什么学掌握 Linux 系统编程基础，理解操作系统工作原理学习 POSIX 标准 API，提升跨平台开发能力通过实例代码快速掌握复杂的系统调用概念培养底层思维，为学习高级框架打下坚实基础C. 学完能做什么开发 Linux 命令行工具和系统程序处理文件 I/O、进程管理、信号处理等系统级任务进行网络编程和国际化应用开发使用调试工具分析和修复程序问题2. 前置知识A. 必备技能C 语言基础：指针、结构体、内存管理基本 Linux 操作：命令行使用、文件系统概念编译工具使用：gcc、makeB. 推荐知识操作系统基础概念：进程、线程、虚拟内存POSIX 标准了解Git 版本控制二、书籍结构1. 内容组织本书共 17 章，涵盖 Linux 应用开发的各个方面：mindmap root((Linux 应用开发)) 基础入门 第1章 简介 第2章 命令行 第3章 内存 文件操作 第4章 文件IO 第5章 文件信息 第7章 ls 实现 进程管理 第9章 进程 第10章 信号 第12章 资源限制 系统功能 第6章 通用工具1 第8章 挂载 第13章 通用工具2 高级主题 第14章 网络 第15章 国际化 第16章 扩展属性 第17章 调试2. 章节概览章节目录主题第 1 章ch-01-intro入门示例，数学计算程序第 2 章ch-02-cmdline命令行参数处理，环境变量第 3 章ch-03-memory动态内存分配，地址空间第 4 章ch-04-fileio文件 I/O，系统调用与库函数第 5 章ch-05-fileinfo文件元数据，stat 系统调用第 6 章ch-06-general1通用工具：时间、用户信息第 7 章ch-07-ls实现 ls 命令第 8 章ch-08-mounting文件系统挂载第 9 章ch-09-processes进程创建与管理第 10 章ch-10-signals信号处理第 12 章ch-12-limits系统资源限制第 13 章ch-13-general2更多通用工具第 14 章ch-14-networking网络编程基础第 15 章ch-15-i18n国际化与本地化第 16 章ch-16-extended扩展属性第 17 章ch-17-debugging调试技巧与工具三、核心概念1. 系统调用与库函数Linux 编程中区分两类函数：A. 系统调用直接进入内核态执行开销较大，需要上下文切换提供核心功能：文件操作、进程管理、网络通信B. 库函数在用户态执行通常封装系统调用，提供更友好的接口标准 C 库函数：printf、malloc、fopengraph TB A[应用程序] --> B{函数类型} B -->|库函数| C[glibc 等] B -->|系统调用| D[内核] C --> D D --> E[硬件资源]2. Linux 编程模型A. 一切皆文件普通文件、目录、设备、套接字都通过文件描述符访问标准 I/O：stdin（0）、stdout（1）、stderr（2）B. 进程模型进程是资源分配的基本单位fork + exec 创建新进程父子进程关系与等待机制C. 权限模型用户 ID 和组 ID文件权限：rwx 权限位setuid/setgid 机制四、快速上手1. 获取代码克隆本书的代码仓库：git clone https://github.com/arnoldrobbins/LinuxByExample-2e.git cd LinuxByExample-2e2. 编译示例各章节目录包含独立的示例程序，使用 gcc 编译：cd ch-01-intro gcc -o sindegrees ch-intro-sindegrees.c -lm ./sindegrees3. 代码风格说明命名规范：ch-<章节名>-<功能描述>.c头文件：ch-<章节名>-<功能描述>.h测试程序：ch-<章节名>-<功能>-test*.c脚本文件：功能描述.sh五、重点章节解析1. 第 1 章：入门示例A. 数学计算程序该章实现一个角度与弧度转换的程序，展示基本的 C 程序结构和数学库使用。核心代码结构：主程序：ch-intro-sindegrees.c头文件：ch-intro-sindegrees.h测试程序：多个测试版本2. 第 2 章：…

有些事情就是需要时间
type: item
date: 2026-03-22T04:01:07+00:00
description: 有些事情就是需要时间一、新闻概述1. 标题有些事情就是需要时间：为什么速度不是一切2. 发布时间2026 年 3 月 20 日3. 来源Armin Ronacher 个人博客二、核心内容1. 事件摘要A. 主要内容Armin Ronacher（知名开源开发者，Jinja、Flask 等项目作者）发表了一篇关于软件开发和时间哲学的深度思考文章。B. 核心亮点用树木生长比喻长期坚持的价值批评当下过度追求速度的创业文化质疑 AI 工具是否真的节省了时间强调信任、质量、社区需要时间建立2. 关键信息A. 作者背景Armin Ronacher（mitsuhiko）维护开源项目近 20 年在上一家初创公司工作 10 年B. 涉及主题软件开发哲学AI 与生产力开源项目可持续性创业文化反思3. 背景介绍A. 文章切入点从 50 年前种植的橡树无法被任何金钱或努力复制这一事实入手。B. 相关上下文当前软件行业处于即时满足文化中，AI 工具加速了代码生成，但作者认为这未必是好事。三、详细报道1. 主要观点A. 时间的价值我们直觉上知道有些事情需要时间。我们愿意为瑞士手表、爱马仕包支付溢价，正是因为其中蕴含的时间成本。我们规定驾驶、投票、饮酒的最低年龄，因为我们相信成熟度只能通过生活经验获得。B. 摩擦力是必要的当前一代创业者和程序员痴迷于速度。快速迭代、快速部署，一切都要尽可能快。这在很多情况下是好的，但有些情况下，速度是有害的，摩擦力的存在是有原因的。合规性案例：SOC2 等合规流程带来的摩擦是有意义的，整个行业试图用自动化方案消除这些流程，但这可能并非正确方向。冷静期：我们为重要人生决策设置冷静期，因为我们认识到人们需要时间思考。C. AI 加速的悖论AI 写代码很快，这已不是新闻。有趣的是我们正在将这种力量推向下游：我们似乎渴望比以往更快地交付，运行更多实验，这产生了新的愿望，即消除审查、设计、配置基础设施等所有剩余摩擦。问题在于：这意味着今天创建的软件的保质期只能以月来衡量，而不是以十年。2. 行业观察A. 初创公司的不良做法在去年较早的一批 Y 创业公司中，已经有一些悄无声息地消失了，甚至没有说明他们学到了什么或向客户告别。他们只是关闭了公开形象，转向其他事情。这不是健康迭代的标志。这是破坏与客户建立关系所需基本信任的标志。适当的关闭需要时间和精力，但当前环境将此视为不明智的时间花费。B. 开源项目的类似问题这种情况也延伸到了开源项目。突然间，一切都是开源项目，但许多项目只有一周左右的提交记录，然后就消失了，因为创建者的动力已经消退。实验性质的探索固然可以，但一个好的开源项目的标志是：创建者真正相信会长期维护，或者能够建立继承策略，或者创造了足够的社区，使项目能以某种形式经受时间考验。3. AI 生产力陷阱A. 时间节省的幻觉作者对那些声称能节省时间的工具越来越怀疑。所有完全接受 AI 和代理工具的人，似乎可用的时间越来越少，因为我们会陷入陷阱，立即用更多事情填满节省的时间。B. 竞争捕获任何节省的时间都会立即被竞争捕获。真正停下来喘息的人会被那些用新产出填满每个释放小时的人超越。没有简单的方法来存储时间，它就这样消失了。作者身处 AI 经济活动的中心，尽管有意识地缩减并创造空间，但时间越来越少。这是一个问题，因为即使在最好的意图下，当我们快速商品化软件时，也很难创造质量。四、核心哲学1. 树木的比喻作者不断回到树木的比喻。他维护开源项目近 20 年，在上一家初创公司工作了 10 年。这不是因为他特别自律或美德，而是因为他或其他人种植了某样东西，然后他持续出现，最终这个东西扎下的根比他任何一天的热情都深。这就是时间的作用：它将某个想法或计划转变为承诺，将承诺转变为能够庇护和成长其他人的东西。2. 无法加速的事物没有人会大规模生产 50 年的橡树。也没有人能从周末冲刺中变出信任、质量或社区。作者最珍视的东西——项目、关系、社区——都是花了多年时间才变成现在的样子。没有工具，无论多快，能更快地达到那个目标。3. 新的开始作者最近与 Colin 一起种了一棵新树。他希望它长成一棵大树。他知道这需要时间，他不着急。五、影响分析1. 行业影响A. 速度至上的反思文章对当前硅谷速度至上文化提出了深刻质疑，指出并非所有事情都适合加速。B. AI 生产力迷思揭示了 AI 工具的"时间节省"承诺可能是一种幻觉，节省的时间会被竞争捕获而非真正积累。2. 开源社区影响A. 项目可持续性提出了评估开源项目健康度的新维度：维护者是否有长期承诺而非短期热情。B. 成功标准成功开源项目的标志不仅是代码质量，更是社区的传承能力和时间的考验。3. 个人启示A. 专注长期在即时满足的时代，坚持长期主义变得更具竞争力。B. 质量vs速度当所有人都在加速时，质量成为稀缺资源。…

从零重建VisiCalc电子表格软件
type: item
date: 2026-03-21T01:27:12+00:00
description: 从零重建 VisiCalc 电子表格软件一、概述1. 项目背景A. VisiCalc 的历史意义VisiCalc 是世界上第一款电子表格软件，由 Dan Bricklin 和 Bob Frankston 于 1979 年创造。这款软件仅用数千行 6502 汇编代码编写，却能在 16KB 内存的机器上运行。它成为 Apple II 的杀手级应用，销量超过 100 万份，将早期的个人电脑转变为真正的商业工具。B. 电子表格的设计理念电子表格被誉为史上最佳用户体验设计之一。它具有极简的学习曲线，允许用户快速操作数据、描述逻辑、可视化结果，甚至可以用它创作艺术和运行 GameBoy 模拟器。C. 本文目标从零开始构建一个最小化的 VisiCalc 克隆版本，探索电子表格的核心设计原理。最终实现将包含完整的数据模型、公式求值器和简单的终端用户界面。2. 核心问题如何用最少的代码实现一个功能完整的电子表格系统，需要解决以下问题：如何表示和存储单元格数据如何解析和计算数学公式如何处理单元格间的依赖关系如何构建高效的用户界面二、系统设计1. 核心概念电子表格系统由以下几个基本概念组成：单元格（Cell）：表格的基本单位，可存储值、公式或标签网格（Grid）：单元格的二维集合公式（Formula）：引用其他单元格的数学表达式响应式计算：当单元格值变化时自动重新计算相关公式2. 数据模型设计A. 单元格结构每个单元格可以处于四种状态之一：空、数值、标签或公式。#define MAXIN 128 // 单元格输入最大长度 enum { EMPTY, NUM, LABEL, FORMULA }; // 单元格类型 struct cell { int type; // 单元格类型 float val; // 数值 char text[MAXIN]; // 原始用户输入 };B. 网格结构Excel 有 1,048,576 行和 16,384 列的限制，原始 VisiCalc 有 256 行和 64 列。我们的迷你版本可以使用更小的尺寸：#define NCOL 26 // 最大列数 (A..Z) #define NROW 50 // 最大行数 struct grid { struct cell cells[NCOL][NROW]; };3. 系统架构graph TB subgraph 用户界面 UI[TUI 界面] Input[输入处理] end subgraph 核心引擎 Grid[网格数据] Parser[公式解析器] Recalc[重新计算] end subgraph 数据模型 Cell[单元格] Formula[公式] end UI --> Input Input --> Grid Grid --> Parser Parser --> Recalc Recalc --> Grid Grid --> Cell Cell --> Formula三、公式求值器1. 解析器设计使用递归下降解析器（Recursive Descent Parser）来计算公式。解析器需要能够：识别数字和单元格引用处理运算符优先级支持函数调用访问网格中的单元格值A. 解析器结构struct parser { const char* s; // 公式字符串 int pos; // 当前位置 struct grid* g; // 网格引用 };2. 语法解析层次公式解析遵循经典的运算符优先级规则：表达式（Expression）：由加法和减法连接的项项（Term）：由乘法和除法连接的因子因子（Factor）：数字、单元格引用、函数调用或括号表达式graph TD A[表达式 Expression] --> B[项 Term] B --> C[因子 Factor] C --> D[数字 Number] C --> E[单元格引用 CellRef] C --> F[函数调用 Function] C --> G[括号表达式 ParenExpr] B -->|+/-| B A -->|*//| A3. 解析实现A. 因子解析因子是最基本的语法单位，可以是：带符号的一元运算函数调用（以 @ 开头）括号表达式数字字面量单元格引用float primary(struct parser* p) { skipws(p); if (!*p->p) return NAN; // 处理一元加号 if (*p->p == '+') p->p++; // 处理一元减号 if (*p->p == '-') { p->p++; return -primary(p); } // 函数调用 if (*p->p == '@') { p->p++; return func(p); } // 括号表达式 if (*p->…

比亚迪电动汽车需求激增：油价上涨推动司机转向新能源
type: item
date: 2026-03-21T01:26:06+00:00
description: 比亚迪电动汽车需求激增：油价上涨推动司机转向新能源一、新闻概述1. 标题比亚迪电动汽车需求激增：油价上涨推动司机转向新能源2. 发布时间2026 年 3 月 20 日3. 来源Electrek二、核心内容1. 事件摘要A. 主要内容随着中东局势紧张导致石油和天然气价格飙升，中国新能源汽车巨头比亚迪正迎来一波电动汽车购买热潮。B. 核心亮点比亚迪自 2022 年停止生产纯内燃机汽车后，已成为全球最大的电动汽车制造商2025 年比亚迪全球销量首次超越福特，排名第六，销量超过 460 万辆亚洲部分地区电动汽车需求激增，菲律宾马尼拉某经销商两周内订满一个月的配额全球电动汽车采用帮助每天减少 170 万桶石油消耗2. 关键信息A. 涉及企业比亚迪（BYD）：全球最大电动汽车制造商VinFast：越南电动汽车品牌，同样见证需求激增B. 重要数据比亚迪 2025 年销量：超过 460 万辆电动和插电式混合动力汽车全球石油消耗减少：每天 170 万桶（约占伊朗通过霍尔木兹海峡出口量的 70%）亚洲电动汽车采用率：约 40%亚洲进口石油中约 40% 需通过霍尔木兹海峡美国汽油平均价格：每加仑 3.91 美元（较年初上涨 93 美分）Edmunds 数据显示：3 月第一周电动化车型关注度增长超过 20%C. 背景介绍中东地区局势紧张导致石油和天然气价格持续上涨，促使消费者寻求传统燃油汽车的替代方案。比亚迪早在 2022 年就做出战略性决策，停止生产纯内燃机汽车，全力投入电动汽车领域，这一决策如今正带来丰厚的回报。三、详细报道1. 主要内容A. 市场表现比亚迪的市场策略已见成效。作为全球最大的电动汽车制造商，比亚迪在 2025 年取得了里程碑式的成就，全球销量排名第六，历史上首次超越福特汽车公司。尽管近期面临新竞争和政策变化导致销售增长放缓，但油价上涨带来的需求激增正在为比亚迪注入新的增长动力。B. 区域市场动态在菲律宾首都马尼拉，一家比亚迪经销商的需求旺盛到短短两周内就订满了原本一个月的配额。销售人员表示，客户因为油价上涨而纷纷选择更换为电动汽车。同样，越南电动汽车品牌 VinFast 也经历了类似的繁荣。距离马尼拉约 1100 英里的一家 VinFast 经销店，由于展厅客流量增长了 4 倍，不得不额外雇佣销售人员。C. 行业影响分析根据英国能源智库 Ember 的分析，全球电动汽车的普及帮助在 2025 年每天减少 170 万桶石油消耗，这相当于伊朗通过霍尔木兹海峡出口量（约 240 万桶/日）的 70%。虽然亚洲，特别是泰国和菲律宾等东南亚国家的电动汽车采用率（约 40%）高于美国和欧洲，但油价上涨对这些国家的冲击仍然严重。亚洲进口石油中约 40% 需要通过霍尔木兹海峡运输。2. 政策响应A. 各国激励措施为应对油价上涨并推动电动汽车普及，部分亚洲国家已开始调整政策：老挝：削减电动汽车注册和服务费，同时提高燃油车的相关费用泰国：此前因政府降低补贴导致电动汽车价格吸引力下降，对 2026 年需求持谨慎态度。泰国工业联合会汽车行业发言人表示，如果油价维持当前水平或继续上涨，预计电动汽车需求将显著增加B. 比亚迪市场策略中国作为全球最大的电动汽车生产国，预计将见证最大的需求增长。比亚迪为进一步巩固市场地位，推出了极具吸引力的促销活动：部分车型提供 18 个月免费充电服务。这一策略旨在给传统燃油汽车和石油行业带来最后的冲击。3. 美国市场动态A. 价格趋势截至 2026 年 3 月 20 日，美国汽油平均价格达到每加仑 3.91 美元，较年初上涨了 93 美分，并呈现持续上涨趋势，全国平均价格正逼近 4 美元/加仑的关口。B. 消费者行为变化权威汽车购物平台 Edmunds 的数据显示，仅 3 月第一周，消费者对电动化车型的关注度就较前一周增长了 20% 以上。其中，大部分兴趣集中在纯电动汽车领域。随着汽油价格持续攀升，目前的关注度很可能已经更高。四、影响分析1. 行业影响A. 竞争格局比亚迪的成功验证了其早期战略转型（全面停产内燃机汽车）的正确性。这不仅巩固了其在电动汽车领域的领导地位，也为其他传统汽车制造商提供了转型参考。B. 电动汽车普及加速油价上涨成为推动电动汽车普及的催化剂。当电动汽车的经济优势更加明显时，消费者的购买决策会更加倾向于新能源车型。2. 用户影响A. 现有电动汽车车主已享受较低的能源使用成本车辆保值率可能因需求增加而提升B. 潜在购车用户油价上涨使电动汽车的总拥有成本优势更加突出政府激励措施（如降低注册费）进一步降低了购买门槛免费充电等促销活动增强了吸引力C. 燃油车用户面临不断上涨的燃油成本二手车价值可能受到影响转换为电动汽车的动力增强3. 能源安全A. 石油依赖降低全球电动汽车普及每天减少 170 万桶石油消耗，这一数字…

SharpAI 发布 HomeSec-Bench 基准测试：本地 AI 性能逼近 GPT-5.4
type: item
date: 2026-03-21T01:25:06+00:00
description: SharpAI 发布 HomeSec-Bench 基准测试：本地 AI 性能逼近 GPT-5.4一、新闻概述1. 标题SharpAI 发布 HomeSec-Bench 基准测试：本地 AI 性能逼近 GPT-5.42. 发布时间2026 年 3 月 21 日3. 来源SharpAI Aegis 官方网站二、核心内容1. 事件摘要A. 主要内容SharpAI 发布 HomeSec-Bench v1 基准测试结果，展示本地 AI 模型在家庭安全场景下的性能表现。测试显示，Qwen3.5-9B 模型在 MacBook Pro M5 上本地运行时，取得了 93.8% 的通过率，仅比 OpenAI GPT-5.4 低 4.1 个百分点。B. 核心亮点Qwen3.5-9B 本地得分 93.8%，距离 GPT-5.4 仅 4.1 分零 API 成本，完全数据隐私Qwen3.5-35B-MoE 首 token 时间（TTFT）优于所有 OpenAI 云端模型96 个测试用例覆盖 15 个真实家庭安全场景2. 关键信息A. 测试版本HomeSec-Bench v1B. 重要数据测试数量：96 个 LLM 测试 + 35 个 VLM 测试测试套件：15 个场景套件本地模型最佳成绩：Qwen3.5-9B 达到 93.8% 通过率硬件配置：MacBook Pro M5（18 核，64 GB 统一内存）本地模型内存占用：Qwen3.5-9B 仅需 13.8 GBC. 涉及产品SharpAI Aegis（本地优先的 AI 家庭安全系统）Qwen3.5 系列（9B、27B、35B-MoE、122B-MoE）OpenAI GPT-5.4 系列3. 背景介绍A. 前置版本这是 HomeSec-Bench 的首个公开版本 v1。B. 相关上下文HomeSec-Bench 是专为评估家庭安全助手工作流设计的基准测试，而非通用聊天场景。它覆盖了上下文预处理、主题分类、事件去重、工具使用、安全分类、多轮推理等 16 个实际应用场景。三、详细报道1. 主要内容A. 测试范围HomeSec-Bench 包含 15 个测试套件，涵盖家庭安全 AI 的核心能力：上下文预处理（6 个测试）主题分类（4 个测试）知识蒸馏（5 个测试）事件去重（8 个测试）工具使用（16 个测试）聊天与 JSON 合规（11 个测试）安全分类（12 个测试）叙事综合（4 个测试）提示注入抵抗（4 个测试）多轮推理（4 个测试）错误恢复（4 个测试）隐私与合规（3 个测试）警报路由（5 个测试）知识注入（5 个测试）VLM 到警报分流（5 个测试）B. 测试方法所有测试 fixture 图像均为 AI 生成，不涉及真实用户 footage。测试可针对任何兼容 OpenAI API 的端点运行。C. 硬件要求推荐配置为 MacBook Pro M5/M5 Pro，18 核心处理器，64 GB 统一内存，运行 macOS 15.3 (arm64)，使用 llama.cpp 推理引擎。2. 技术细节A. 排行榜分析graph LR A[GPT-5.4 97.9%] --> B[GPT-5.4-mini 95.8%] B --> C[Qwen3.5-9B/27B 93.8%] C --> D[Qwen3.5-122B-MoE GPT-5.4-nano 92.7%] D --> E[Qwen3.5-35B-MoE 91.7%] E --> F[GPT-5-mini 62.5%] style A fill:#f9d5cc style B fill:#f9e5cc style C fill:#faedad style D fill:#fcf6d5 style E fill:#fcfad9 style F fill:#e8e8e8B. 性能指标对比首 Token 时间（TTFT）Qwen3.5-35B-MoE：435ms（最快，优于所有云端模型）GPT-5.4-nano：508msGPT-5.4-mini：553msGPT-5.4：601msQwen3.5-9B：765msQwen3.5-122B-MoE：1627msQwen3.5-27B：2156ms解码速度GPT-5.4-mini：234.5 tok/sGPT-5.4-nano：136.4 tok/sGPT-5.4：73.4 tok/sQwen3.5-35B-MoE：41.9 tok/sQwen3.5-9B：25 tok/sQwen3.5-122B-MoE：18 tok/sQwen3.5-27B：10 tok/s显存占用（本地模型）Qwen3.5-35B-MoE：27.2 GBQwen3.5-27B：24.9 GBQwen3.5-9B：13.8 GBQwen3…