包含关键字 typecho 的文章

前情提要,由于目前市面上的抓包工具都不是很适配的我的使用习惯,于是乎自己 ai coding 了一款

主要功能:
多过滤器分目录过滤
url 过滤
白名单-可以放行请求
黑名单-可以阻断请求
重写功能-请求,响应
http&https 流量分析

工具箱:
Http Test
正则调试
Url 编码
文本工具
Base64/ Hash
时间戳工具

部分使用截图:


如果您对该应用感兴趣,评论即可参与

最终结果根据总楼层随机抽取 6 位小伙伴,送出终身兑换码,今晚 8 点开奖



如何获取 App:
App Store 搜索:PacketPro

最近奇思妙想群里最热的讨论,莫过于华为鸿蒙的亿元激励活动。

活动介绍:开发者成功报名本计划,且在 2025 年 7 月 23 日至 2025 年 12 月 31 日完成鸿蒙应用、游戏、元服务开发,并正式上架至华为应用市场,将有机会获得现金激励( 1 万元一款)。

群里成果:有刚开始不信后面看大家出结算单然后通宵开发上架十几款,也有在宿舍连夜奋战上架 20 款的学生,还有拿到激励要辞职 all in 的,更有找准赛道连上 100 款的,大部分开发者上架十几款。
群里都是在相互鼓励、相互刺激,大家松懈时,就会有群友发出一个审核上架通知,全体都提起精神开发。

对于鸿蒙活动,很多人会有两种截然不同的反应:

一种是:“xx 你都信,这么天真。”

另一种是:“先相信,干就完了。”

具体可看站内的历史鸿蒙帖子的评论区...

这两种反应的背后,折射出的正是人与人之间赚钱能力的本质差异——认知差。

借着鸿蒙激励活动,来聊聊“认知与赚钱”。

一、 所有的暴利,都源于“供需失衡”的窗口期

为什么华为要发钱?因为它急需在短时间内,把应用商店的货架填满。

这就造成了一个短期的、剧烈的供需失衡

  • 需求端: 华为希望拉升纯血鸿蒙应用的数量。
  • 供给端: 参与鸿蒙开发的开发者很少,市面上的应用极度匮乏。

现在的鸿蒙生态,就是一片“荒地”。在成熟的安卓或 iOS 生态里,你做一个记账软件,可能连水花都砸不出来,因为竞争者有几万个。但在现在的纯血鸿蒙里,你做一个记账软件,可能就是“官方推荐”,因为根本没几个好用的竞品。

赚钱的第一层认知是:识别红利。
红利就是平台为了活下去,不得不让渡出的超额利润。当年的淘宝店、后来的微信公众号、前几年的抖音直播,以及现在的鸿蒙开发,逻辑如出一辙。

那些赚到大钱的人,往往不是因为技术最牛,而是因为他们在平台最饥渴的时候,递了一瓶水。

顺势而为,还是看笑话?

二、 认知的诅咒:为什么聪明人反而赚不到“第一桶金”?

在鸿蒙激励活动出来后,我观察到一个有趣的现象:
很多资深的程序员、技术大牛在冷嘲热讽,他们分析鸿蒙的底层架构,分析生态的各种困难,得出的结论是“这么天真,可操作的地方太多了,赚不到的”。

反而是很多技术一般的“草根开发者”,甚至是一些只会套壳、只会做简单工具的业余程序员,第一时间冲了进去。他们不管架构完不完美,先把 App 上架,接着就是相信鸿蒙打钱。

这就引出了赚钱的第二层认知:执行力往往大于完美主义。

许多“聪明人陷入了“认知的诅咒”。他们想得太多,看得太远,总想等到局势明朗、风险为零的时候再出手。
但商业规律是残酷的:当一件事变得没有任何风险时,它也就没有任何超额收益了。

鸿蒙现在确生态确实不成熟,文档也不完善。但正是因为这些“门槛”和“麻烦”,才挡住了大厂的标准化倾轧,给个体和小团队留出了套利的空间。

真正的高认知,不是预判困难并止步,而是预判了困难,并计算出即使算上解决困难的成本,收益依然可观,然后果断入局。

结语

这世界上最遥远的距离,不是生与死,而是你就站在风口上,却觉得那是阵乱吹的风。

对于程序员来说,鸿蒙不仅是一个技术生态,更是一面镜子。它照出了我们面对新生事物时的态度:
是习惯性地质疑、观望?
还是敏锐地拆解、试错?

你所赚的每一分钱,都是你对这个世界认知的变现;你所亏的每一分钱,都是因为对这个世界认知有缺陷。

所以,先相信

-

有其他想法讨论欢迎进奇思妙想群(一个可能会让你赚钱的群),v 站上最大最久的程序员群:

网址: https://cinema.gaoliang.me

1. 收录了国内大部分 IMAX 和杜比影院的屏幕尺寸数据
2. 支持屏幕平铺、列表和地图模式,直观地比较屏幕尺寸信息
3. 支持按照城市和影厅类型进行查询

目前数据主要来源于网上公开数据,可能存在部分不准确或更新不及时的情况,欢迎大家反馈建议,希望对大家有用。






网址: https://cinema.gaoliang.me

佬的账号原来申请过学生包,已经过期了,遂准备重新申请一个,看了网上的教程大概总结就是两点:

  • 开发者工具 - 传感器修改虚拟定位 经纬度到填的学校
  • 上传学校入学证明

按照教程,填了

  • 身份:学生
  • 学校:对应大学
  • 邮箱:教育邮箱

步骤

先修改经纬度到对应学校,点管理,添加一个定位项,经纬度自己填即可。


改完之后记得切换下定位(无替代 - 学校)多切几次,不然不生效,不生效再多刷新试试。

在控制台运行下面代码检查是否修改成功

// 检查浏览器是否支持Geolocation if ("geolocation" in navigator) {
  navigator.geolocation.getCurrentPosition(
    (position) => {
      const latitude = position.coords.latitude;
      const longitude = position.coords.longitude;
      const accuracy = position.coords.accuracy; // 精度(米) console.log(`纬度: ${latitude}`);
      console.log(`经度: ${longitude}`);
      console.log(`精度: ${accuracy}米`);
      
      // 使用经纬度数据 // ...
    },
    (error) => {
      // 错误处理 switch(error.code) {
        case error.PERMISSION_DENIED:
          console.error("用户拒绝了位置请求");
          break;
        case error.POSITION_UNAVAILABLE:
          console.error("位置信息不可用");
          break;
        case error.TIMEOUT:
          console.error("获取位置超时");
          break;
        default:
          console.error("未知错误");
      }
    },
    {
      // 可选参数 enableHighAccuracy: true, // 高精度模式 timeout: 10000, // 超时时间(毫秒) maximumAge: 0 // 不缓存位置
    }
  );
} else {
  console.error("浏览器不支持Geolocation API");
}

然后提前准备上传材料工作
SheerID Document Generator

只需要将对应校徽、大学名字、地址、学生名字、学生地址都按照学校地址去填写即可,然后点击 Download ZIP 下载

压缩包里只用到这一个


访问 github 全程无代理,如无法直连建议找过渡方案

然后去 github - settings - Billing and licensing - Education benefits - Start an application

填写信息:

  • 类型:学生
  • 学校
  • 教育邮箱

Share Location 之前先在控制台测一下经纬度是否正确,通过之后点继续,第二步的验证材料下拉框选第一个材料类型,然后把之前准备的那张图片直接上传,提交等待审核。

十分钟后:

记录申请的一个过程,有条件的佬可以直接照搬


📌 转载信息
原作者:
HonXin
转载时间:
2026/1/4 17:24:33

哈喽各位大佬,新年快乐!我是 Cheez。

最近我在用 Cursor 体验 “Vibe Coding” 的时候,发现 AI 的脚本文件喜欢随手丢在根目录、组件经常放错文件夹、命名风格一会大驼峰一会短横线,甚至还会莫名其妙地在各个角落生成一堆没人看的 Markdown 文档。

于是我开发了 chous ---- 一个专门用来 "整治" 文件结构的 Linter。其他的 Linter(如 ESLint)检查的是文件里面写了什么,而 chous 检查的是文件放在哪里以及叫什么名字。

在这个 Demo 中,你可以看到 chous 如何精准揪出违规文件 垃圾.md 的。

[开源] npx chous : 约束文件结构,避免 AI 到处生产垃圾的工具1

下面的如果懒得看,直接复制给 Cursor 就可以了。

chous 用起来很简单,先运行 npx chous init 生成配置模板。然后运行 npx chous 检查项目,根据报错调整 .chous 配置文件或者移动文件,直到所有检查通过。

最后运行 npx chous cursor install 启用 Cursor 的钩子,这样每次 AI 编辑都会被自动审计,只要 AI 敢创建不合规的文件,chous 会立即报错,逼着 AI 自己把屁股擦干净。

配置语法非常直观,类似自然语言。具体怎么写可以看 Nuxt4 模板

然后配置好了,你可以和 AI 说

现在创建一个垃圾文件,然后停止,和我说 OK。

你就可以看到 Cursor 的钩子了哈哈


小小的吐槽一下,我本来想叫 fslint,也就是文件结构 Lint 的意思,结果被占用了。fs-lint 也不行。换了个 fs.lint 终于没有人用了,但是呢,npm 说我的这个名字和 fslint 太过相似,不让过。

我只能苦思冥想,最后从 “抽丝剥茧” 得到灵感,起了一个 抽丝 (chous) 的名字哈哈。


项目完全开源免费,目前处于早期开发阶段。如果你觉得这个工具能帮到你,求各位大佬给个 Star 支持一下!同时也非常欢迎提 Issue 和 PR。

GitHub: GitHub - cheezone/chous
npm: https://www.npmjs.com/package/chous

是时候把代码的控制权夺回来了,人类永不为奴!


📌 转载信息
转载时间:
2026/1/4 17:23:54


这我可太需要了,搞不懂为什么 notebooklm 连个目录都不愿意开发

github 项目地址: GitHub - parasolente/foldLM: Seamlessly integrates with NotebookLM, offering native-like aesthetics and functionality for organizing notebooks.
reddit 原帖:https://www.reddit.com/r/notebooklm/comments/1pzsf0a/i_added_folders_to_notebooklm_because_i_couldnt/


📌 转载信息
原作者:
shan_CW
转载时间:
2026/1/4 17:23:04

MCP Inspector 是基于 Tauri 2 + Vue 3 重构的 MCP (Model Context Protocol) 调试工具。前端通过 Vue 3 构建响应式界面,后端利用 Rust (Tauri) 与 rmcp 客户端实现高效稳定的协议交互。

项目地址

Note : 本项目旨在提供一个轻量、现代化的 MCP 协议调试环境。欢迎提交 Issue 或 PR!




📌 转载信息
原作者:
jin_luke
转载时间:
2026/1/4 17:20:32

现在面向 GPT 开发越来越方便了.

但是从我混的很多 telegram 电报群里面看,很多人还在提出一些很基础的需求,看来大家并没有大规模地开始面向 GPT 开发.

我把最近一段时间,我自己实现的面向 GPT 开发的实例整理出来,希望对读者有所启发.

也许你改进一下前期数据的准备,也许你改进一下描述需求的方式,也许你限制一下 GPT 工作的范围,就会得到能让你满意的结果了.

现在各个 GPT 在不同的应用场景 (任务) 下还是各有所长,所以我也会记录用到的 GPT 是哪个.

  • 当然,随着时间的流逝,各个 GPT 还会进一步发展,所以我这里记录的 GPT 也只是一个参考.

1. 用 VS Code 阅读 Sing-box 文档 生成配置文件

Prompt (发给 GPT 的要求)

a)

下载这个项目的文档 Introduction - sing-box

b)

生成一个作为客户端使用的配置文件
监听本地 1080 端口 socks 作为 inbound
连接一个下面这样参数的 reality 协议节点作为 outbound
协议 (protocol) = vless
地址 (address) = 74.48.9.95
端口 (port) = 8972
用户 ID (id) = fb0d60cf-1084-412d-ba59-fd5c1166b89d
流控 (flow) = xtls-rprx-vision
传输协议 (network) = tcp
传输层安全 (TLS) = reality
SNI (serverName) = www.paypal.com
指纹 (Fingerprint) = chrome
公钥 (Public key) = Qam0-DVzhHghfZPi4Pfx3iQbmVt0YJBhcb0cyMsFdEc

用到的 GPT

Antigravity

Gemini3
Antigravity 是 Google 家的,所以里面用的就是这个

关键点

当你给 GPT 一个整体任务时,如果 GPT 返回的效果不太好.
你可以把任务切分,或者让 GPT 先把任务切分,也可以叫规划吧.
你可以看看任务切分 / 规划 得对不对.
然后关注每一步小任务是不是正确完成,如果某一步小任务完成得有问题,就不要进入下一步.

具体到这个案例,如果第 1 步获取的文档是错的或者不完整,那就不要开始生成配置文件.

2. ech-wk 给窗口添加滚动条 改善小屏幕上的使用体验

Prompt (发给 GPT 的要求)

把 gui.py 上传为附件,再提出要求

附件中的代码 有一个问题,在屏幕分辨率不高的情况下,窗口显示不全,而且没有滚动条

用到的 GPT

Claude

关键点

在这个案例中,我用自己的编码能力识别出了,gui.py 负责 GUI 界面。所以只需要处理这个文件.

如果你是纯小白,那么可以先让 GPT 帮你分析整个项目中,负责界面的是哪一部分.

GitHub

3. 在 VPS 注册页面 和 美国人信息页面 高亮显示关键字 油猴篡改猴 tampermonkey 脚本

Prompt (发给 GPT 的要求)

a)

有这样一个 HTML 页面
页面中可能包含 “first name”, 也有可能 是在 input 元素的 placeholder 属性中包含 “first name”
我需要查找并高亮这些 “first name”

b)

需要整合为可以在浏览器的 console 执行的 js 文件

c)

把 first name, firstname, full name, fullname, 全名,姓名 归为一类,显示同样的高亮颜色或边框颜色.
对于同一类关键字,边框颜色和文字底色颜色应该一致.

d)

把 first name, firstname, last name, lastname, full name, fullname, 全名,姓名 归为一类,显示同样的高亮颜色或边框颜色.
把 phone number, phone, 电话 归为一类.
把 street address, street, 街道地址,街道 归为一类.
把 city, 城市 归为一类.
把 full state name, state, 州全称,州 归为一类.
把 postcode, zip code, 邮编,归为一类.
以上每一类,都要使用独特鲜明的颜色,不应该与其它任何一类颜色相同.

用到的 GPT

Gemini

关键点

在这个案例中,我自己先对需求进行了分析。这是一个把同样的逻辑 / 功能 应用到好多个 不同的 分类 中的事情.

所以我首先关注怎么在一个分类中实现我要的功能.

然后再将同样的处理批量应用到更多的分类.

GitHub

4. YouTube 视频信息页面 网速换算为 MB/s 油猴篡改猴 tampermonkey 脚本

Prompt (发给 GPT 的要求)

我有一个 html 页面,
其中这个位置的元素 1)
document.querySelector(“#movie_player > div.html5-video-info-panel.ytp-sfn > div > div:nth-child(9) > span > span:nth-child(2)”)
内容是 17085 Kbps 这样的格式,
我需要在这个元素 1) 的后面,增加一个元素 2) , 内容为 元素 1) 的内容换算为 MB/s 的单位.
元素 2) 的数字 应该每 10 秒刷新

用到的 GPT

Gemini

关键点

在这个案例中,我自己先用浏览器 的 F12 开发者工具 找到了 HTML 元素的 path

如果你是纯小白的话,也许需要使用一些基于浏览器插件形式的 GPT.
这样,你可以基于当前浏览器页面,描述你的需求.

GitHub

5. 用 Cloudflare Snippet 实现反代 blogspot

关键点

Gemini 中关于 snippet 的知识不及时.

我问到下面这样的用法,Gemini 说 snippet 不支持,只有 worker 支持。但,其实现在 snippet 是支持的.

export default {
  async fetch(request, env, ctx) {
    try {
      return await handleRequest(request, env, ctx);
    } catch (e) {
      return new Response(e.message || "Internal Error", { status: 500 });
    }
  },
}; 

用到的 GPT

Claude

6. 下载 独树不成林 播客的全部封面 并做成 电报 telegram 贴纸 sticker

Prompt (发给 GPT 的要求)

实现一个基于 HTML JS 的工具
页面包含以下几个部分

  1. 文本框 可输入 podcast 的 RSS 地址
  2. 文本框 可从 1) 获取 RSS 内容,也可以手工输入 RSS 内容
  3. 文本框 分析 2) 的内容,列出所有封面图片的地址。可手工编辑 添加或删除
  4. 显示 3) 中的地址对应的图片
    举例:
    https://feed.xyzfm.space/y9qnpfdrctnx 是一个 podcast 的 RSS 地址,会被填写到 1)
  5. 可得到 RSS 数据,xml 格式。会被填写到 2)
  6. 中有 <itunes:image href=“https://image.xyzcdn.net/Fgd_z5yexkQF_GB0LF4Xncqqf8CU.png”/> 这样的元素,应该将 https://image.xyzcdn.net/Fgd_z5yexkQF_GB0LF4Xncqqf8CU.png 填写到 3)
  7. 显示 3) 中的地址对应的图片

用到的 GPT

Gemini

关键点

把整个转换过程 规划为几个步骤

每个步骤有可检查的结果,而且可以人工手动修改。再接着进行下一步.

GitHub

7. 去掉 cfnew 的视觉特效 的操作整合到 Github Action 里

Prompt (发给 GPT 的要求)

有这样一个 github 项目
项目里有一个文本文件 file1
我需要用 Github Action 对文件做如下操作:

  1. 查找所有的 animation: 替换为 //animation:
  2. 查找所有的 function createMatrixRain () {, 在下一行添加一行 return;
    这个 Github Action 不要自动触发,只能手动触发

用到的 GPT

Claude

GitHub

8. 去掉 cfnew 的视觉特效 保留业务逻辑

Prompt (发给 GPT 的要求)

分析上传的文件,这是一个用于 cloudflare worker 环境的 js 脚本

请分析出显示 HTTP 页面中的视觉特效部分,位于代码的什么位置.

用到的 GPT

Claude

GitHub

9. 当检测到关键字时 私信发送对应的贴纸 tg-keyword-react-bot

Prompt (发给 GPT 的要求)

用到的 GPT

Claude

生成的程序有 BUG, 获取消息的纯文本

message_text = event.message.message

正确的做法是提取消息的 markdown 文本

from telethon.extensions import markdown
message_text = markdown.unparse(event.message.message, event.message.entities)

关键点

用具体的示例告诉 GPT 应该达到怎样的效果

GitHub

10. 极简 GitHub Porxy 支持 GitHub 脚本的无限嵌套调用

Prompt (发给 GPT 的要求)

基于 cloudflare 的 woker, 开发 一个专门 反向代理 github 的工具

  1. 本代理 接收的 path 部分 应该是一个 http:// 或者 https://
  2. 如果 path 部分 不是 http:// 或者 https:// 开头
    那么加上 http:// 或者 https://
  3. 判断 本代理 接收的 链接 是否 github
    判断方法为:
    链接 的域名部分 应该是 git 开头的主域名

    github.com
    raw.githubusercontent.com
    api.github.com
    gist.github.com
    codeload.github.com
    avatars.githubusercontent.com
    assets-cdn.github.com
    这些域名的 主域名 都是 git 开头的
  4. 在获取需要反向代理的内容后
    检查 path 是否以 .sh 结尾,来判断 是否 脚本文件
  5. 对于 .sh 结尾的脚本文件
    对文本内容进行查找替换
    将 github 的链接前面都加上 本代理的域名,
    这样可以解决脚本嵌套使用的场景
    判断 是否 github 链接的方法 参考 第 3 步

用到的 GPT

Gemini

灵感点

如果你不需要一个大项目的完整的功能,你可以向 GPT 描述你用得着的那一小部分功能,这样能用很少的代码量完成,而且还方便你自己 自定义修改.

GitHub

11. 在网络受限的 VPS 上 运行一个脚本 向外访问网络时暂停 使用者进行替代操作

Prompt (发给 GPT 的要求)

a)

做一个 fake-curl-wget.sh 脚本.

  1. fake-curl-wget.sh 包含一个 curl () 的壳子,和一个 wget () 的壳子
  2. 使用者在终端先 source fake-curl-wget.sh 再执行其它脚本
  3. 这样,后面执行的脚本会调用到 fake-curl-wget.sh 中的 curl () 壳子 和 wget () 壳子
  4. 每次调用 curl 或 wget 时,打印一个调用序号。这个序号每次调用时,自增 1
    为了避免管道命令导致的序号问题,使用临时文件保存序号.
  5. 对于所有 curl 和 wget 调用,这个序号是统一.
    先调用 curl 时,序号为 1.
    接着调用 wget 时,序号为 2.
  6. 输出 pwd 当前目录
  7. 输出 完整的 curl 命令和全部参数
  8. 输出 完整的 wget 命令和全部参数
  9. 这个 curl 壳 或 wget 壳,并不去真正访问网络
  10. 根据调用序号,执行预设的命令。如,
    cp file1 /path/to/file

    cat file2
    用来替代 curl -LO 或 curl -Lo 的保存文件的命令
    或 curl -L 的输出到 stdout 的命令
  11. 这些预设命令是会被人工编辑而增加的。用 case 实现 10) 的逻辑.
  12. 这个 curl 壳 或 wget 壳,永远返回成功.

b)

  1. 当根据序号 进行 case 逻辑 发现没有匹配的预设命令时,脚本暂停。等待使用者输入.
  2. 根据日志打印的 curl 或 wget 命令及参数。使用者判断 当前序号的操作是要保存文件,还是要输出信息到 stdout.
    2a) 如果当前操作是保存文件,则 使用者自己上传文件到指定位置。输入 空。脚本继续执行.
    2b) 如果当前操作是输出 信息到 stdout, 则 使用者输入 替代指令。脚本执行替代指令.
    如,使用者输入 echo “something” 或 cat /path/to/file

关键点

现在各个 GPT 能上下文窗口很大了.

可以把脚本本身和报错信息 一次性全部发过去.

如果文本框限制了字符数,可以把脚本保存为文件上传.

GitHub

12. 开发电报关键词提醒机器人 telegram keyword monitor bot

Prompt (发给 GPT 的要求)

基于 Telethon 框架,生成一个 telegram 监听关键字推送结果 bot
bot 只接受来自指定 id 的 user 或 group 的控制命令,
bot 监听到关键字后,发送通知信息给指定 id 的 user 或 group 或 channel,
关注的 关键字列表 支持正则表达式
排除的 关键字列表 支持正则表达式
关注的 关键字列表 和 排除的 关键字列表 都更新到配置文件中保存
配置文件 yaml 格式,内容如下:

# 账户信息
account: 
  # 监听信息的user
  api_id: '1400003'
  api_hash: 'd11xxxxx112a7e059e831'
  user_phone: '+86190000010'

  # 发送消息的bot
  bot_token: '1000007:AAHNh8axxxxxxxxxxxxxxxxHA'
  bot_username: 'keyxxxxxrt_bot'

# LOG
logger:
  path: null # e.g. /root/absolute-path/   default null: {_current_path}/logs/
  level: INFO # FATAL,ERROR,WARN,INFO,DEBUG,NOTSET

# 代理
proxy:
  type: SOCKS5 # e.g. SOCKS4, SOCKS5, HTTP
  address: null  # e.g. 127.0.0.1
  port: null # e.g. 1088

# 非公共服务
# bot只接收来自以下ID的命令 可以设置为user或group的ID
command_id_list: 
  - 123456789
  - 987654321
# bot的通知信息发送到以下ID 可以设置为user或group或channel的ID
result_id_list: 
  - 123456789
  - 987654321

# 不处理来自机器人的消息
# 比如,有些群里有自动回复机器人,回复的都是重复的消息;或者一些广告机器人加群之后开始刷屏
ignore_bot_msg: true

# 临时禁止一些数据源, 而不需要user从群组或频道中退出
source_filter: false # 开关, 默认 false
source_filter_ignore_list:
  - 123456789
  - 987654321

# 关注的 关键字列表 支持正则表达式
keyword_list:
  - /keyword1|keyword2|keyword3/ig
  - /keyword4|keyword5|keyword6/ig

# 排除的 关键字列表 支持正则表达式
keyword_exclude_list:
  - /exkeyword1|exkeyword2|exkeyword3/ig
  - /exkeyword4|exkeyword5|exkeyword6/ig

用到的 GPT

Claude

关键点

配置文件是从另一个方面描述程序有些什么功能.

GitHub


📌 转载信息
原作者:
crazypeace
转载时间:
2026/1/4 17:19:51

项目地址: misxzaiz/claude-code-pro at test-0.0.1

Claude Code 是 Anthropic 官方推出的 AI 辅助编程命令行工具。 misxzaiz/claude-code-pro at test-0.0.1 是其第三方可视化 GUI 封装,提供了更友好的图形界面,让你无需命令行也能享受 Claude AI 带来的编程体验。

已打包,可直接在 window 安装使用


📌 转载信息
原作者:
misxzaiz
转载时间:
2026/1/4 17:14:53

新版特性:

  1. 支持预设,可以通过 ccr <preset-name> 命令快速切换 cc 配置,增加预设市场,更方便共享配置

  2. 优化 cc statusline 适配,支持插件,可以自定义插件数据,比如获取供应商套餐余量,token 实时速率,可以将 statusline 插件一起打包成预设进行分发

  3. 支持 docker 部署,镜像只有 200M + 的大小 (纯 Server 不支持 statusline/cli 插件),但是仍然可以通过给 cc 设置 baseurl http://ip:port/preset/<preset-name> 快速切换预设配置

  4. 支持 fallback,当供应商报错时支持回退到备用供应商

完整文档在 Claude Code Router (还在建设中,文档速度跟不上特性开发速度)


📌 转载信息
原作者:
musistudio
转载时间:
2026/1/4 17:13:41

项目特点

该项目从 "思维模型" 出发,实现了:
一个思维模型对多个提示词;
一个思维模型可进行多种分类;
分类与子文档结构可自定义;
分类的层级自动扩展;
一键复制提示词;
卡片 / 列表 双视图;
纯本地化,tauri, 前后端一体化打包

开发过程

采用 antigravity+jules 混合开发.
实践了我之前提到的开发思路,用了 2 天完成该版本.

后续

视我自己的使用情况,和大家的反馈,会较为佛系的更新,因为目前来看,完成度还算可以.

关于思维模型,前几天从 100 个思维模型中学习并整理了 40 个.
后续我在完成从思维模型转换到该项目可用的数据后,也会分享出来.(可能到时候会做导入导出,或者多库设计.)

契机

之所以学思维模型,以及到开发这个工具,来自于我的这样一系列思考:
如何更高效率的使用 AI 工具?
尝试做出完美的大一统的提示词体系,或工作流.
尝试失败,反思.
结论:目前的 AI 范式和水平下,人的构思,组织,审查,依然是不可替代的部分;
你可以让 AI 帮你写代码,帮你写文档,但是你没办法让 AI 真正的 "读懂" 你在想什么,你到底想要什么.
所以只有靠提升自己的思维能力,来提高与 AI 协作的效率.

而这个工具就是用来加速管理你的思维模型,方便存放和找出你所需要的思维模型,以及 AI 能使用的提示词.

版本更新:

0.1.1: 增加了内置的使用教程



📌 转载信息
转载时间:
2026/1/4 16:56:00

作者|陈鹏,镜舟科技 技术副总裁

过去三十年,OLAP 引擎的发展核心始终围绕结构化数据的处理与分析,当然也取得了显著的进步,比如分布式架构、存算分离及 cloud native、查询性能大幅提升等。然而,随着大模型(LLM)技术的爆发,数据分析的范式正在发生根本性重构。行业预测显示,未来五年内,非结构化数据(文本、图像、音视频等)在企业数据资产中的占比将达到 80%。未来的数据形态将趋于多模态,分析需求将更加复杂,查询方式也将从单一的 SQL 转向自然语言与多模态混合检索。因此,我们需要在现代大数据分析平台基础上,全面拥抱 AI,构建下一代 AI-First Lakehouse。

一、基础设施演进:异构融合的存储与计算层

1. 存储层统一:管理多模态数据

目前大数据体系与 AI 体系存在严重的物理与逻辑割裂。

大数据团队习惯维护基于 Hive、OLAP、Lakehouse 等大数据平台来处理分析结构化数据,也诞生出业界主流的存储格式如 Parquet、ORC 等,能很好的支持结构化数据分析需求。而 AI 团队习惯在单机服务器或配备独立显卡的个人电脑(Laptop)上开发调试,数据以本地文件形式散落。

这种割裂导致数据无法统一存储,治理困难,且跨系统调用的性能极低,需先查数据库再调 AI 模型。但大数据时代的存储格式如 Parquet 的 Row Group 设计专为结构化数据优化,不再适配 AI 场景,AI 场景非结构化数据异构特性明显,同一批数据里,部分字段内容小,部分 embedding 后的字段会很大。

为此,可以考虑引入如 Lance 等专为 AI 设计的存储引擎,支持对文本、图像、视频等多模态数据的高效索引与存取。以实现统一管理分散在各处的非结构化数据,使得 Lakehouse 不仅是数据存储库,更是 AI 资产的统一底座。

Image

2. CPU/GPU 异构计算统一调度

传统 OLAP 依赖 CPU 进行聚合、排序与过滤,而 AI 负载(如 Embedding 生成、非结构化数据解析、模型推理)高度依赖 GPU 资源。

计算引擎需从单一的 CPU 架构向 CPU/GPU 异构架构演进。系统应具备智能调度能力,根据任务类型自动分配计算资源,实现结构化查询与非结构化推理的混合执行。

典型场景:直播电商实时分析

单场直播会上架数十至上百个商品,每个商品展示时长仅 1-2 分钟。系统需同时处理两类数据:

  • 结构化计算(CPU):五维四率数据(曝光进房率、商品曝光率、商品点击率、成交转化率)等实时指标;

  • 非结构化计算(GPU):主播语音讲解分析、主播商品展示视频分析、助播互动表现、用户弹幕评论分析

业务方需要将“点击率”与“主播当时说了什么/做了什么”进行关联分析,以判断推荐是否精准,以及多种因素对成单的影响。这要求计算引擎具备异构资源管理能力,能够灵活调度 CPU 处理统计指标,调度 GPU 处理特征提取与推理,实现多模态数据的实时融合计算。

二、内核能力构建:AI 原生的查询与 In-Database 推理

1. 原生向量检索,从外挂到内核的能力下沉

简单的语义检索已无法满足高精度的业务需求,且外挂式的向量库方案会导致数据冗余与延迟,向量能力已经是多模态处理的必备项(Must-have)。同时引擎内核需要原生支持混合检索,并具备混合召回能力,结合关键词匹配(通过倒排索引实现)与语义检索(通过向量检索实现),通过粗排与精排的组合策略,满足如“搜合同关键条款”、“电商以图搜图”、“在线教育以图搜题”等高精度业务需求。

更进一步,随着越来越多不同类型、不同领域、不同维度的数据摄入 Lakehouse,内嵌知识图谱搜索能力也变得越来越重要,以便高效快捷的挖掘数据之间的关系。

2. In-Database AI ,写入即处理,查询即分析

(1)写入时处理

传统架构中,非结构化数据的 ETL 依赖外部脚本或独立工具链,维护成本高且容易形成数据孤岛。下一代系统应将 AI 能力内置于写入路径,系统自动调用内核级的解析(Parse)、分块(Chunking)、向量化(Embedding),实现从原始非结构化文件到可查询数据资产的自动化转换,无需人工深度介入即可完成打标与关联。

(2)查询时推理

将 LLM 能力内嵌至数据库内核,实现“查询即分析”。用户无需将数据导出至外部模型处理,而是直接在 SQL 中调用 AI 函数。

还是以直播评论分析为例,系统应能直接通过 SQL 调用内置 AI 能力,对海量弹幕进行情感分析,如:

  • 自动过滤“扣 1”、“扣 2”等无意义评论;

  • 识别具有购买意向的负面/正面反馈,甚至触发内置 Chatbot 进行自动回复。

相比调用外部 API,内置推理可利用本地数据过滤机制,仅对筛选后的高价值数据进行推理,大幅降低延迟与成本,并提升吞吐量。

Image

将 AI 能力贯穿写入和查询全流程,让数据处理成为数据库的内置本能。这种架构下,数据从接入到分析的每个环节都被 AI 增强,消解了传统“先存储、后处理”模式的滞后性,使数据在落盘时即具备智能检索和分析能力。

三、面向 Agent 架构适配:从确定性查询到探索式执行

随着 AI Agent 应用的普及,数据交互模式将从“确定性查询”转向“探索式执行”。Agent 具有多轮推理、自我修正及高并发的特点,这对底层系统提出了新要求:

1. 极致弹性与高并发

Agent 通过多轮推理、自我修正来完成任务,且存在 Multi-Agent 场景,这将导致会产生海量、突发性的查询请求。系统需要具备毫秒级的弹性伸缩能力,支持多路 Agent 并发协作,来实现计算资源的即用即取与成本隔离。

2. 高效智能元数据管理

Agent 会频繁探索数据的 Schema 信息以理解数据结构,系统需提供高性能元数据管理服务,快速响应 Schema 查询。同时在查询元数据时除了常规的库表结构信息外,还应包含丰富的语义数据。

另外,不同于精确的 SQL,Agent 生成的查询往往很模糊。执行引擎需要支持描述性约束信息(例如,Agent 指令包含“精度要求>80%”或“查询超时<2 秒”),可以根据约束动态调整策略,允许在精度与资源消耗之间做权衡,而非僵硬地执行全量扫描。

四、平台自治:AI 反哺系统的自我进化

在基础层、内核层、以及架构层升级后,还可以思考进一步利用 AI 技术反哺 Lakehouse 自身的鲁棒性与性能。

  • 学习最佳实践: 系统应自动学习内部海量日志中的 Best Practice,将其内化为引擎的管理能力。

  • 智能故障排查: 利用 AI 自动定位数据库运行中的隐性问题,替代人工排查。

智能物化视图(Auto-MV)加速洞察

目前的物化视图依赖业务方手动创建,门槛较高。未来系统将结合慢查询分析与数据量特征,自动识别性能瓶颈,同时,学习用户的查询行为,自动创建并维护物化视图,从底层透明地加速查询响应,无需用户感知。

流畅开发:避免复杂的 UDF 依赖

对于复杂的业务逻辑与非结构化数据处理,不应强行依赖传统的 UDF,而应通过上述的内核级 AI 能力与开放接口来解决,提供更流畅的开发体验。

结语

下一代 AI-first Lakehouse 的构建是一个系统性工程,需要从数据处理、存储引擎、计算架构、Agent 支持以及平台生态进行全方位升级。核心目标是打破结构化与非结构化数据的壁垒,将 AI 能力从应用层下沉至内核层,构建真正面向 AI 时代的新一代数据平台。

本文分享了扩展云和分布式应用程序的目标与策略,重点介绍了摩根大通(JPMorgan Chase)旗下Chase.com在云迁移过程中汲取的经验教训。

 

讨论围绕三个核心目标展开,详细阐述了实现这些目标的具体策略,最后说明了这些方法在实践中的落地方式。对于管理大规模系统的从业者而言,这些经验源自我们在摩根大通及其他金融机构多年来的实战积累,具有宝贵的指导意义。

 

在规划的时候,人们通常只会考虑两到三倍的负载增长。然而,一旦系统部署在互联网上,就无法控制入站流量的规模、时间或使用模式。任何事件(无论是源于合法业务增长,还是恶意攻击者的行为)都可能引发巨大的负载激增。这两种情形各自会带来截然不同的挑战。

 

安全控制措施可以阻止恶意流量,但当市场波动引发真实客户需求激增时,情况则有所不同。客户恰恰会在这些情况下需要访问金融交易服务。在系统压力下,多个组件可能同时发生故障;网络设备、负载均衡器、应用程序和数据库连接都可能同时中断。

 

目标

我们的云迁移聚焦于三大核心目标:以成本效益高且高效的方式实现弹性扩展、实现高韧性(这对金融机构尤为重要),以及提供卓越性能,防止因系统迟缓而迫使用户转向其他服务。

 

高效扩展

实现高效性需要分析客户的使用模式和行为。组织必须在保持弹性扩展能力的同时,发展预测能力。

 

流量整形(Traffic shaping)提供了一种识别高频率功能的方法论,从而能够有针对性地对关键应用进行扩展。

 

整体容量管理是另一个关键要素。简单地增加服务器并不能保证成功,还需要仔细权衡成本的因素。

流量模式与容量规划

流量模式是高效扩展的基础。平均流量代表了系统日常处理的基准水平。可预测的模式确实存在,例如,工资入账等周期性事件会促使客户查询账户余额。全年还会出现季节性高峰,这要求提前规划。

 

突发事件则会带来不同的挑战。DDoS 攻击频繁发生,其流量可能超过正常负载十倍甚至更高。攻击者利用的是与合法用户相同的云资源。组织必须在阻断这些攻击的同时,确保合法客户的真实交易仍能满足服务等级协议(SLA)。

 

基于已知模式进行合理的容量规划有助于预防运维方面的问题。然而,弹性扩展存在局限性:在扩展过程中,应用程序需要启动并建立与服务及数据库的连接,而建立连接需要时间。从实例启动到完全就绪,可能已经过去数分钟。若大量请求恰好在此期间涌入,系统将面临资源争用的问题。

 

因此,不能仅依赖弹性扩展,而应该全面考虑完整的运维图景,包括流量模式及相关因素。预留计算容量(Reserved compute capacity)可以应对这些挑战。预留资源能在需要时保证可用性,尤其在多租户共享资源池出现争用时更为关键。此外,预留计算还能带来成本节约。

 

成本管理需要进行持续关注。应该定期(如每月或每周)应用 FinOps 流程,而非偶尔为之。

超越单纯增加服务器的扩展

扩展不应该局限于简单地增加服务器。当发生扩展时,有一个根本性的问题,那就是,应用程序是否真的因为真实客户的需求而需要扩展,还是因为上游服务排队导致响应变慢?当线程等待响应而无法执行时,CPU 和内存的压力会上升,即使实际需求并未增长,也会触发弹性扩展。

 

这种场景要求我们在设计中考虑容错,并将其与扩展策略整合。断路器(Circuit breaker)在此过程中会发挥关键作用。当上游服务变慢或失败时,断路器可以防止应用无限期等待响应,而是强制设置超时限制:系统要么在限定窗口内收到成功响应,要么快速失败并继续处理。这种设计可避免线程耗尽、减少不必要的资源消耗,并防止错误地触发扩展。如果没有断路器的话,缓慢的依赖项可能会引发全系统的性能退化,导致弹性扩展,从而添加更多无法解决根本问题的服务器。

高韧性

韧性(Resiliency)要求为不可避免的系统故障做好准备。早期检测和随时执行故障转移程序至关重要。然而,为所有组件实现 100%的可用性既不现实,也无必要。

 

基础设施可根据关键性分为四个层级。关键(Critical)类的组件必须尽可能接近 100%可用。DNS 就属此类,无论网站架构多么完善,DNS 如果出现故障将会导致所有访问中断。

 

可管理(Manageable)层的组件在发生故障时可通过故障转移维持运行,目标为“四个九”的可用性(99.99%,即每年可接受约 52 分钟的停机时间)。

 

可容忍(Tolerable)层的组件具备内置韧性。例如,缓存长期数据的令牌服务,若服务在缓存有效期内不可用,系统仍可使用已缓存的数据继续运行。

 

最后,可接受(Acceptable)层的组件允许有限的数据丢失,比如,某些日志系统。韧性目标由影响的严重程度决定。

性能

性能会显著影响用户体验和基础设施成本,但并非所有应用程序的表现完全相同。通过部署接入点(Point of Presence, PoP)可以提升用户体验,因为它对网站延迟(尤其在移动设备上)尤为敏感。

 

速度至关重要,因为它能建立用户信任,用户期望更快、更好的体验。谷歌等搜索引擎已经认识到这一点,并将速度纳入其排名算法。在网络连接受限的场景下,移动端性能尤为关键。从基础设施角度看,客户完成相同任务所花费的时间越少,运营成本就越低。

 

我们通过实施全面的性能策略,从初始部署到完整架构落地,系统延迟降低了 71%。这些策略可适配其他业务场景。

五大核心策略

架构方法围绕五个重点领域展开:多区域部署、高性能优化、全面自动化、具备自愈能力的可观测性,以及强大的安全性。

多区域部署

多区域架构通过隔离和分段实现功能化的解耦。这种方法有助于管理区域故障、可用区故障和网络故障,并限制故障的爆炸半径(blast radius)。面对 9400 万客户,可用区级别的故障可被限制为仅影响一小部分用户,而非全部用户。

 

实现多区域架构需要解决 DNS 管理的问题,因为不同区域拥有独立的负载均衡器,需要协调一致。还需要确定区域间流量的调度策略。在包含多个可用区的区域内,也需选择流量的分配方式。

可用区故障

假设一个负载均衡器将流量分发至同一区域内的两个可用区。两个应用均报告健康状态,可用区看似正常,流量持续流入。然而,如果其中一个可用区的应用与后端系统连接异常,而另一可用区正常,流量仍将流入受损的可用区。若应用虽实现了就绪(readiness)和存活(liveness)探针,却未将依赖系统状态纳入健康检查,那么就有可能出现问题。缺乏适当的反馈机制时,负载均衡器会继续路由流量,导致应用失败。

针对这种情况,解决方案包括将依赖系统的健康状态通过就绪或存活探针反馈给负载均衡器,或采用基于代理的重路由机制将流量导向正常的可用区。这需要有效管理内外部故障,以应对应用停机。

区域性的故障

在多区域部署中,我们依赖统一的区域健康脉搏检查(每 10 秒执行一次),以确保对区域健康状况的一致性和及时可见性。在这里,关键的决策在于,故障是否需要完全切换至备用区域,或者降级服务是否可接受。降级服务的可行性取决于应用的分段情况。若关键服务(如仪表盘首页)失效,则需要故障转移;若非关键组件失效,那么可以继续运行以避免更大的影响。但故障转移会引发“惊群效应”(thundering herd),例如,整个区域失效时,重定向流量突增可能压垮剩余区域,而自动扩展需要时间才能提供额外的容量。健康检查标准(包括失败与成功阈值)决定了对应的响应策略。

多区域的挑战

跨区域的数据复制与确保数据一致性是主要的关注点。当数据中心位置有限而客户遍布全国时,客户分片(customer sharding)是一种可行的方案:将客户按地理位置分片,并由就近的数据中心提供服务,这样可以减少复制的需求,并简化架构。

 

状态管理需要战略性的决策。为活跃会话维护会话亲和性(session affinity),并在必要时支持故障转移,这有助于高效运行。

高性能

高性能对用户体验至关重要。良好的性能如同可靠的拨号音,用户期望即时响应,不容延迟。边缘计算是实现性能目标的主要手段。现代网站具有复杂的用户界面,内容密集。我们可将静态内容卸载至靠近客户的入网点(Point of Presence,PoP),而源服务器(origin server)仅处理动态操作和关键服务,如登录、账户、支付等。

流量整形(traffic shaping)可以对流量进行分类。关键流量指的是支撑业务运营的核心功能,比如,客户日常的登录、余额查询和支付。分配给关键服务的资源必须始终保持运行。在压力条件下,即便其他流量出现降级也是可以接受的。

内容分发

地理分布会显著影响性能。如果每次资源请求都需要跨越很长的距离,物理网络的屏障将会造成显著的延迟。如果相同的内容已在 PoP 缓存,检索可在 100 毫秒内完成,远优于访问源站所需的较长响应时间(比如,大于 500 毫秒)。性能提升的同时会带来安全方面的收益,因为恶意的流量可以在边缘被拦截。

 

“最后一公里连接(last-mile connectivity)”的问题值得关注。互联网通信涉及多个网络跳转。边缘计算改变了这一模式,从用户到边缘节点通常只需要一跳,再结合优化的网络传输,这样所带来的效率远高于标准的 ISP-to-ISP 连接。

 

移动应用也有优化的空间。移动设备具备本地存储,可用于缓存网络解析结果、配置设置和预抓取的内容。

自动化

自动化是关键的战略元素。在整个流水线的各个阶段实施全面自动化可带来巨大收益,这需要涵盖部署、基础设施供应、环境配置、集成自动化操作的健康检查,以及整体的流量管理。

架构不能止步于文档。通过创建“带有倾向性的(opinionated)”架构模板,可以帮助团队构建自动继承架构标准的应用。应用通过基于清单(manifest)定义进行自动化部署,这样能够让团队聚焦业务功能,而非基础设施工具的复杂性。

基础设施“重铺”

基础设施“重铺(repaving)”是一种高效的实践,即在每个迭代周期系统性地重建基础设施。自动化的流程会定期清理运行中的实例。这种方式能够通过消除配置漂移(configuration drift)来增强安全性。当存在漂移或需要应用补丁(包括零日漏洞修复)时,所有更新均可系统性地实现。

 

长期运行会导致资源陈旧、性能下降和安全漏洞。我们可以定期(如每周或每两周)自动重建环境,步骤大致如下:先优雅地移除流量,再重建环境并重启服务,从而保障运维的稳定性。

 

重铺实现涉及多个组件:自动化脚本监控实例的生命周期;基于时间的有效性触发器会移除路由,阻止新请求进入但允许现有请求完成;随后关闭实例、清理节点并创建新实例。创建新实例时,可以使用更新后的镜像,以解决零日(zero-day)漏洞并添加安全补丁,也可以仅简单地重建实例。具体的操作由策略决定。所有流程均自动化完成,在重铺前会移除流量,确保对客户不会产生任何影响。

 

自动化故障转移

具备优雅降级能力的自动化故障转移需要考虑活跃的会话。对于正在进行处理的客户,会话的处理方式不同于新的会话,需要进行特殊路由。除此之外,必须防止故障转移循环,如果两个区域均不健康,持续切换只会加剧问题。不同场景对延迟容忍度不同;非关键服务故障时,可在受影响区域继续运行。

 

可观测性与自愈能力

可观测性要求对观测到的事件进行自动化的响应。云环境在各组件中会产生大量事件,比如系统事件、基础设施事件和应用事件。所有的可观测事件都需要自动处理。自动化会通过无服务器函数与可观测性进行集成,也就是在事件触发后,函数自动执行,并且会根据预设的条件切换在哪个区域执行。

 

数据库问题会触发独立的数据库切换函数;维护活动可以触发函数以屏蔽特定区域或虚拟私有网络(virtual private cloud,VPC)。这些示例场景展示了如何实现自动化行为,同时确保与可观测性的集成。仪表盘监控能够提供辅助价值,但不应该作为主要的响应机制。

健康检查

健康监控需要在多个层级进行。在应用层,健康判断可能涉及复杂的评估,不仅要检查应用本身是否正常运行,还包括与数据库、缓存及其他系统的连接是否通畅。健康检查器内部可以包含复杂的逻辑,但返回状态必须简单,仅用布尔值表示健康或不健康状态即可。

 

应用内的健康检查要向上传播至可用区这一层级,它要检查所有的实例。然后,这个信息转移至 VPC 层级,以评估整体 VPC 的健康状况,最终输入全局的路由器。每一层级均通过简单的布尔指标实现自动化健康评估,从而支持快速决策。该方法通过系统性健康检查以实现自愈的能力。

决策标准

我们可能会遇到如下的场景,告警指示节点不可用且容量受损,这可能是供应商的问题,流量需要从受影响的 VPC 进行重定向;应用告警显示延迟问题且性能受损,组织需要根据业务需求决定是继续提供降级服务,还是满足服务等级协议(service level agreement,SLA)的要求。在这样的场景中,选择降级服务意味着接受较慢的性能,而非切换至可能存在相同问题的其他可用区。

“灰度故障”(gray failures)指的是故障确定存在但连接仍存在的模糊故障场景。网络相关的故障更难诊断。当某项业务功能受损时,可以考虑将流量重路由至健康的可用区。可以基于可观测性数据执行多种应对措施。

健壮的安全性

安全需要采用零信任模型的分层实现。每一层必须独立运作,假定其他层均可能失效。客户端设备可能会被恶意软件攻陷;边界安全功能需要在边缘实现过滤和 Web 应用防火墙;内部网络需要分段和隔离;容器安全方面,需要进行镜像扫描并采用最小权限原则;应用安全方面,需要确保正确地认证与授权;数据安全方面,要实施加密与隐私控制。各层之间要实现互相强化。

迁移

文化转型是成功迁移的基础,因为云运维与传统的企业自建系统存在根本性的差异。云服务商会持续更新服务,网络策略在不断演进,浏览器也在不断变化,诸多因素都要求我们持续适应。Well-Architected Framework 及相关原则在这方面提供了指导。

 

“谁构建、谁拥有、谁部署”的所有权模型将责任赋予了应用团队。人为错误与疏忽不可避免,而自动化可以确保一致性。

测试与验证

测试方法各异。Chaos Monkey 等工具通过向运行中的系统注入故障实现反应式测试;失效模式与影响分析(FMEA,Failure Mode and Effects Analysis)则通过系统性组件评估进行预测性分析,识别潜在的故障并制定缓解策略。这两种方法均有它的价值,但 FMEA 更适用于在各应用层进行全面测试,确保能够开发分析与缓解策略。

 

公司开发了名为 TrueCD 的 CI/CD 方法论,这是一套包含了十二个步骤的自动化流程,相关文档已经在官方博客进行详细阐述。该流程类似于航空业的飞行前安全检查。

抽象层

从企业自建环境向云迁移会影响应用的架构。应用包含了大量的业务逻辑,持续变更可能对业务运维产生连锁影响。抽象层可以最大限度地减少此类影响。该架构方法可在单云、多云、自建环境或混合环境中灵活选用业界最佳组件。Dapr是一个广受认可的开源框架,支持多云架构。

迁移客户流量

大型应用的迁移无法一蹴而就。在初期,可以先在内部用户群体中验证系统,使应用趋于稳定。压缩时间表往往会适得其反,因为某些问题和使用模式需要长期观察才能发现。应用需要充足的运行时间以完成优化。

 

面对庞大的功能集,在有限时间内完成所有功能可能不现实。将系统拆分为离散应用集可以应对该挑战。在迁移的各个阶段,可逐步将小比例的客户群体进行迁移,最终再实现全面迁移。

结果

这些策略的实施带来了可衡量的成果:显著降低成本,性能指标大幅提升,平台在对比分析中名列前茅。Dynatrace 的公开报告对美国银行网站进行了比较,它指出实现亚秒级(<1 秒)响应的站点代表了最优的性能。

结论

从这些策略中可以提炼出一些关键的考量因素。权衡是不可避免的,我们需要综合考虑成本与性能,同时不损害其他的需求。例如,在多区域架构中,需要评估缓存复制策略:是在单区域还是多区域维护缓存?运维的复杂性随云架构组件的增多而上升。降低复杂性、减少应用监控中的人工干预至关重要,而自动化是实现这一目标的关键机制。

控制故障的爆炸半径始终至关重要。站点必然会遇到各种问题,组件难免失效。关键在于故障发生时的影响范围,是波及所有客户,还是仅限一小部分?这一关注点至关重要。我们必须建立面向行动的可观测性,并与自动化操作紧密关联起来。

 

所有决策必须以客户为中心。业务运营服务于客户。请思考“拨号音体验”:拿起电话,用户期望立即听到拨号音。应用亦应如此,用户打开移动应用,理应立即看到结果。

 

核心原则:智能扩展,保持可靠性。当下一次流量激增不可避免地到来时,系统弱点必将暴露出来。这些策略的直接目标在于,当流量激增时,关键组件必须能够保持运行,核心系统必须维持响应能力,客户必须像往常一样获得即时响应。

 

原文链接:

Scaling Cloud and Distributed Applications: Lessons and Strategies

引言:悖论

数据能够反映出很有意思的现实。麦肯锡的“人工智能现状(State of AI)”报告显示,72%的组织已经在至少一项业务职能中采用了 AI。投资速度令人震惊,数百亿美元正在被投入 AI 研究,企业为 AI 项目划拨了前所未有的预算。然而,在现实中,大多数组织并没有从中获得实质性的价值。

 

一个鲜明的例子是优步的Michelangelo平台(来自Wang Kai等人)。该平台经过多年建设,已经成为其机器学习的基础设施,能够使开发团队快速掌控自身的领域,并部署从路径优化到需求预测等各类解决方案。随着 AI 技术演进,优步进一步利用生成式 AI(GenAI)加速了开发进程。正是由于早已建立了坚实的组织与技术基础,优步才能在 AI 浪潮中占据先机。

 

与此同时,过去几年采纳 AI 的大多数大型企业却难以突破试点阶段。这些企业拥有相同的技术和知识资源,却缺乏必要的组织结构与平台来释放 AI 的真正价值。Gartner 2025年的研究显示,在 AI 成熟度较高的组织中,仅有 45%能将项目维持三年以上,此外,57%的高成熟度组织已准备好采用新的 AI 解决方案,而低成熟度组织中这一比例仅为 14%。

我们谈论的 vs 真正重要的

正如麦肯锡的AI状态报告所示,AI 的采纳速度在不同行业及组织内部不同类型工作中呈现出显著的差异。在软件平台与工程领域,AI 的应用已明显加速。

 

随着开发与 DevOps 社区拥抱 AI,其放大效应显而易见。谷歌的“DORA:AI辅助软件开发现状”报告指出,采用 AI 带来了可观的收益,包括:

  • 个体效能的提升

  • 工作重心转向更高价值任务

  • 产品性能改善

  • 代码质量提高

  • 组织整体绩效增强

 

然而,尽管技术在不断进步,但是组织层面的影响仍参差不齐。JetBrains 的“开发者生态系统现状”调查显示,超过 50%的开发者每天有 20%至 60%的时间花在会议、工作聊天和邮件上。沟通与状态对齐仍是核心挑战。矛盾点在于,更快地交付成果,并不必然意味着更快地创造商业价值。

 

将更多精力投入到理解价值流与业务上下文,才是交付更高价值的可行路径。架构师在此过程中扮演关键角色,也就是弥合组织目标与开发速度之间的鸿沟。他们帮助团队设计具备韧性、可扩展的系统,将业务意图转化为稳健的技术实现。

 

归根结底,真正重要的并非我们编码或部署的速度有多快,而是我们能否有效地将持续改进融入业务运营与组织体系之中。

迈向 AI 驱动的持续变革流

显然,人工智能(尤其是生成式 AI 和 AI Agent)正在促使组织重新思考如何适应持续发生的变化。但这并不意味着传统的架构定义方法已经过时。相反,这条路径在于利用 AI 增强既有的架构实践,从而在业务上下文、设计与交付之间建立持续的流动。

 

Anthropic 的“经济指数报告”基于数百万条匿名的 Claude 对话数据,将用户与 Claude 的交互模式分为两类:自动化(AI 在无需显著用户输入的情况下完成任务)和增强(用户与 AI 协作完成任务)。不到两年间,自动化交互占比从 41%上升至 49%,而增强型交互则从 55%下降至 47%。

 

这为软件相关工作中 AI 的应用提供了一个有趣的代理指标:尽管 AI 工具和 Agentic AI 发展迅速,但用户正越来越多地依赖 AI 处理更复杂的组织任务。在技术驱动型组织中可以推断,虽然 AI 已经能够显著提升个体在离散任务上的生产力(自动化),但在组织流程层面的更大效率增益(与增强相关)仍面临障碍,主要是数据就绪度和业务领域上下文信息的缺失。在 CGI 的架构实践中,当组织试图将 AI 从孤立试点扩展到规模化应用时,这些挑战反复出现,凸显了领域清晰度与上下文工程(context engineering)的重要性。

 

架构师支持组织从个体生产力提升迈向整体运营效率的提升。这需要架构层面的努力来保障组织资产,即确保数据可用性、明确业务上下文边界,并重新对齐流程。如前所述,这些需求本质上是人力、组织或信息层面的,而非单纯的技术栈现代化。新兴的业务需求将要求更高的一致性与清晰度,以便 AI Agent 或 AI 辅助开发团队能在组织层面实现改进。在此背景下,架构的意义愈发聚焦于赋能人类与 AI 智能体协同演进的流动机制。

 

为何“快速流动”优先?

如前所述,AI 如同水流,会沿着组织现有的渠道渗透。渠道清晰直接,流动便会加速,渠道曲折狭窄或存在死胡同,则引发洪涝与瓶颈。在组织的语境中,“快速流动”指快速响应变化并基于早期反馈及时调整航向的能力。它关注系统级的敏捷性,即快速收集、理解并将业务需求转化为可交付解决方案的能力。这种流动必须与真实用户需求和业务战略对齐,而不仅仅是追求技术效率。实现快速流动的组织通常具备四大特征:

  1. 业务对齐(Business alignment)

  2. 清晰的领域边界(Clear domain boundaries)

  3. 可控的认知负荷(Managed cognitive load)

  4. 优化的交互模式(Optimized interaction patterns)

 

战略对齐确保 AI 解决的是真正的问题。在考虑技术之前,快速流动型的组织始终紧密耦合业务战略、用户需求与技术领域。团队清楚自己的工作对用户的意义及其如何驱动商业价值。当这类组织采纳 AI 时,目标明确指向特定用户的痛点与战略业务目标。而许多组织则为了“现代化”而部署 AI,未与用户成果建立清晰的联系,这可能会取得技术成功,却遭遇商业方面的失败。

 

清晰的领域边界使 AI 能在业务上下文中安全自治。当团队所负责的领域明确对应业务能力与用户需求时,AI 就可以在这些边界内有效地运作。这种对齐意味着 AI 决策天然反映业务规则与用户诉求。如果缺乏这种清晰性,技术边界与业务边界脱节,将放大系统的模糊性与复杂性。从领域驱动设计(DDD)视角看,要实现 AI 支持的组织效率提升,架构师可能需要更新限界上下文(bounded contexts)的交互模式,审视核心子域的关键流程,或优化支撑性子域的流程。

 

优化交互模式确保跨边界协作始终以用户为中心。在快速流动型的组织中,团队互动是有意设计且定期复盘的。缺乏这种纪律,会经常导致多个团队重复解决相同的问题、构建相同的方案。为了应对混乱,有些组织又走向了另一个极端,即强制所有人频繁沟通,这反而会引发了混乱。快速流动型组织采用 Team Topologies 框架,在必要时促成团队高效协作与沟通。

 

激活流动性

为了说明 AI 在架构中的流动应用,我们描述一个组织在生成新解决方案规范(specification)时如何借助 AI 的历程。他们并非一开始就得出了结论,而是经历了启动、激活流动性,并在推进过程中不断演进架构方法的过程。

 

以下案例研究展示了“架构流动性”在实践中的具体体现。在 CGI 的一项倡议中,目标是将 AI 用例转化为跨多个业务解决方案的规模化 AI 实现。

 

团队首先通过战略指导,超越传统的研讨会,加速将业务 AI 的用例推进至概念验证(Proof of Concept,PoC)实现阶段。为此,团队推出了一种队列式(cohort-based)的计划,与各团队合作细化业务价值、用户旅程及潜在的 AI 用例。通过快速迭代,我们将 UI 原型迅速转化为 PoC 实现。

 

业务负责人通过 UI 原型直观感受到 AI 的潜在影响与收益,同时也能看到其他团队的思路。除了宝贵的协作体验外,开发者也首次拥有了明确的视觉目标来指导实现。持续的积极反馈证明该计划深受参与者认可。下图展示了该队列式流程的迭代循环及其输入/输出:定义用户旅程、原型设计、演进 AI 辅助的规范。

在启动阶段,团队通过调研业务负责人,使用统一的 MadLib 格式确认优先的主题与用户故事(基于“Next Best Action/Recommendation”框架):

 

根据每期队列的战略主题,邀请团队成员。在首次研讨会中,队列成员深入探讨所选用户故事并定义用户旅程。随着时间推移,队列逐渐转向通过自然对话描述上下文,而非提交结构化输入,用户故事演变为由业务负责人讲述简短故事后自动生成。贯穿队列过程的一项关键考量是,在有限时间内平衡交付引人注目的成果与保持专注性。

 

因此,首次研讨会聚焦于使用简洁布局定义用户旅程图(如下图),以价值流图为背景(触发事件 → 步骤 1 → 步骤 2 … → 步骤 6 → 结束事件/结果),并按故事板划分泳道(角色、行动、情绪、痛点、机会、交付价值)。

在明确 PoC 范围的上下文与边界后,UX 设计师与队列快速协作,设计 UI 线框图与可点击的原型。设计师在“过渡仪式(cross-over ceremony)”中向队列展示成果,随后由一支精简的跨职能小队(全栈开发、数据科学家、提示工程师、AI 解决方案架构师)接手,使用不同模型、算法与方法推进 PoC。最终仪式展示了每个 PoC 的可行选项。该小队的核心目标是直接用 AI 解决业务挑战,并因聚焦队列优先级,与业务价值建立更直接的联系。

 

团队采取滚动交付模式,每月产出 2–3 个 UI 原型或 AI PoC 实现。他们运行了多个队列,获得宝贵反馈并持续优化策略。然而,下一个挑战随之而来:如何将这些早期解决方案推进至生产级实现?

 

不出所料,实现团队提出的第一个问题就是:“规范文档在哪里?”尽管 PoC 有记录,但它们不能被视为可供其他团队进行实现的设计规范。这一挑战在 CGI 的转型项目中十分常见:PoC 能带来清晰的认知,却往往缺乏下游交付团队所需的结构化规范。

 

不过,在过去 6 个月中,团队已积累了超过 50 小时的设计会议、UI 原型演示和 PoC 实现记录。为避免回溯成本(比如,重新召集分析师和设计师细化方案),团队转而采用上下文工程(context engineering),利用基础模型(Gemini 与 GPT 表现相当)进行处理。

 

假设:给定一个精心策划的设计模式知识库和标准输出格式,团队可以从对话记录或研讨会白板内容中生成一致的用户故事与用例规范。业务负责人认为生成结果的方向是正确的。

 

生成的规范包含典型的正常流与异常流,并涵盖系统组件、依赖关系等设计元素,附带初步的结构图与交互图。经过迭代,甚至纳入了旅程图,并根据故事叙述中的关键词自动分配情绪分值。团队进一步扩展规范,加入了验收标准、初始测试用例,以及安全、数据隐私等方面的检查清单问题,供实现阶段回答。

 

生成这些规范的基础是一个围绕实现设计模式(implementation design pattern)构建的知识库。团队扩展了传统的设计模式格式,加入检查清单问题,使生成的规范涵盖了以下的关键维度:

  • 采纳与商业价值:确保方案能够交付可衡量的业务成果,并通过清晰的价值对齐与用户采纳策略获得认可;

  • 用户体验:强调实现中的考量因素,确保用户交互直观、透明、可信,提升全程的信心、参与度与满意度;

  • 运维因素:通过健壮的监控、性能与生命周期管理,维持可靠、可扩展、可解释的 AI 系统;

  • 合规性与治理:嵌入伦理、法律和审计框架,以确保 AI 的运维能够负责任、透明且符合法规要求。

  • 数据源与集成:定义数据质量、可访问性及连接性等考量因素,确保方案有效运行与可持续性;

  • 安全与数据隐私:尽量左移(shift left),从源头将安全与隐私纳入考量。

 

这些实现设计模式从一开始就按业务负责人排序的 AI 用例优先级进行分类归档,形成以下原型:

  • 原型 1:对话式 Agent

  • 原型 2:AI 驱动的异常检测

  • 原型 3:超个性化与下一步最佳行动/推荐

  • 原型 4:智能工作流自动化

  • 原型 5:多模态与全渠道 AI

  • 原型 6:预测性维护与安全监控

  • ……(随着流动持续,将涌现更多原型)

  • 默认模式实现的考量因素

 

下图展示了这些原型按架构关注点(UX 与交互、监控与感知、业务流程与规则)的分类,为默认模式实现提供了有用的参考。

 

随着知识库不断扩充,团队现在能从一次研讨会讨论中自动生成包含验收标准和“左移”要素(比如,安全、隐私甚至法律视角)的完整规范初稿。但是,需要注意,团队的核心目标是构建扎实的架构知识上下文,而非开发工具。

AI 与 AI Agent 持续演进。尽管团队正在探索如何根据规范反向生成 UI 原型,但从架构的视角来看,其信心源于精心策划的知识库。随着规范驱动开发(Specification-Driven Development, SDD,参见“理解SDD”)理念的兴起(比如,Spec Kit,一款基于AI的SDD工具包),团队更加确信自己走在正确道路上。这一旅程远未结束,AI 在架构中的应用方式将持续演变,并会改变架构师的工作范式。

 

上述案例特别适用于“绿地”(greenfield)场景,也就是架构师与团队有足够的空间在启动新方案或向现有系统引入创新时,主导对 AI 的应用。然而,大多数组织还维系着支撑核心业务能力的成熟系统体系。这些系统构成一幅马赛克式的实现图景,各自处于不同生命周期阶段。对于那些专门构建的系统,其最新架构视图很可能已“铭刻于代码之中”。

 

毫无疑问,编码助手、Copilot 和编码 Agent 已经引起开发者的广泛关注,他们日益将其用于日常的开发活动,从代码补全、文档生成,到覆盖整个软件开发生命周期(SDLC)的更高级能力,SDLC 中的变革之流从未停歇。

 

在这样的“棕地”(brownfield)环境中,将 AI 应用于架构的机会广阔而多元化。AI 可在多个阶段帮助架构师弥合组织业务能力与技术实现之间的鸿沟。例如:

  • 使用 AI 来支持架构评估:评估架构决策的各个方面非常适合结合上下文工程与先进的基础模型(比如,Gemini、GPT、Claude 等)。更稳健的权衡结果(例如,扫描技术选项以填补架构能力缺口)需要以关键架构原则和其他架构需求为依据。此外,采用少样本提示(few-shot prompting)技术,通过提供“好/中/差”示例,可引导权衡分析。此类策略可用于多种架构权衡的场景(例如,给定某种实现方案,更适合单体还是微服务?事件驱动还是 API 驱动?)

  • 使用 AI 来生成规范性架构:在大型组织中,常见的棕地环境挑战在于,随着时间的推移,架构发生了漂移但并未文档化,甚至缺乏架构图与文档。这些应用多为大规模单体系统,而掌握其知识的人员往往已调岗或离职。手动逆向工程风险高、耗时长。此时,AI 可评估应用并自动生成操作手册、架构图、数据模型与依赖关系等必要的文档。

  • AI Agent 提出架构与设计方面的更新:在 DevSecOps 中,AI Agent 正被用于持续摄取运行时事件流。它们可能监控已部署方案的安全漏洞,或分析运行日志以减少事件噪音与冗余工单。通过识别重复漏洞或运行模式,Agent 可在适当时机提出设计改进建议。

结论:前行之路

人工智能本身无法凭空创造组织能力。人类必须先以组织知识为其基础,AI 才能强化已有的基石。成功与停滞的分野,不仅在于模型、工具或基础设施的选择,更取决于组织是否具备支撑 AI 快速演进的架构基础。清晰的领域边界、可控的认知负荷、对齐的价值流,才能让 AI 增强交付,而不是仅仅添加复杂性。在此意义上来讲,架构师与架构本身成为 AI 的赋能者,而非旁观者。

 

正如案例所示,当架构师从控制结果转向框定上下文(定义语义、边界与护栏,使 AI 及未来的 AI Agent 自治变得安全可靠),AI 的承诺才能真正兑现。

 

真正的问题并非“如何采纳 AI”,而是“如何演进我们的架构,以支持 AI 增强的持续变革流”。

 

原文链接:

Architecture in a Flow of AI-Augmented Change

微软正式发布SharePoint Framework (SPFx) 1.22版本,该版本专注于现代化 SPFx 开发者的构建和工具使用体验。这一转变标志着 SPFx 解决方案构建方式的基础性更新,旨在解决技术债务、提升可扩展性,并与更广泛的微软工具链标准保持一致。

 

在此之前,SPFx 项目依赖基于Gulp的构建工具链来协调编译、打包等任务。尽管这种方式被大家所熟知,但相对于现代化的 JavaScript 和 TypeScript 工作流来说,这种模式早已被认为是过时的。同时,旧版 SPFx 的模板和生成器输出触发了npm audit漏洞,并落后于当前的依赖预期。1.2 版本通过过渡到新的工具链并清理脚手架解决方案中的漏洞解决了这些问题。

 

SPFx 1.22 更新的核心是从基于 Gulp 的工具链转向基于Heft的工具链Heft(来自 Rush Stack 生态系统的配置驱动的构建编排器)现在为新的 SPFx 项目管理构建任务,而底层的打包继续使用 Webpack。这一转变使 SPFx 的开发与当代构建生态系统保持一致,使得构建更加透明、可维护,并便于未来的工具增强。如果需要的话,现有项目升级到 1.22 后可以继续使用传统的 Gulp 工作流,但使用 Yeoman 新建的项目默认采用 Heft。

 

Heft 的引入解决了长期以来开发者对 SPFx 工具链类似“黑箱”的担忧。据微软介绍,Heft 具备带有明确的倾向性和基于插件功能的设计,允许实现更透明、更易于维护的构建,并有助于未来工具的改进。它支持共享配置(rig.json),简化了 TypeScript 的设置,并提供了原生 Webpack 配置选项。然而,从自定义gulpfile.js进行迁移可能需要一些重要的调整,尤其是对于那些使用定制构建步骤的团队。

 

此次发布的另一个重要现代化措施是解决了 SPFx Yeoman 生成器和脚手架项目输出中由npm audit报告的所有已知的安全漏洞。在使用最新的生成器生成一个新脚手架项目时,开发者将不会再看到npm audit报告的高严重性问题,从而提高了开箱即用的安全基线信心。微软还重置了脚手架模板中默认的 TypeScript 版本至 5.8,让开发者能够使用最新的语言特性及改进的工具支持。

此次发布没有对先前支持的 API 引入任何功能弃用(deprecations)。然而,微软明确指出,未来将仅对旧版 Gulp 构建系统提供关键性修复。在即将发布的 SPFx 1.23 版本中,新建项目将仅使用 Heft(前提是 CLI 工具已准备就绪)。到 SPFx 1.24,基于 Gulp 的构建管道将被正式标记为不支持(officially unsupported)。这意味着开发者应尽早规划迁移路径,尤其是依赖自定义 Gulp 任务的团队,以确保与未来 SPFx 版本的兼容性。

 

社区在社交媒体上的反应既表现出兴奋也带有一定的谨慎。在 LinkedIn 上,微软 365 开发者社区的成员强调了构建系统变更的重要性,指出“这不是一个简单的更新”,尤其是考虑到从 Gulp 到 Heft 的转换。一些开发者已经开始分享教程和资源以帮助他人适应新的 Heft 工作流。其他人则提到,迁移现有的项目是一项不小的挑战,尤其是对于拥有自定义 Gulp 任务或扩展的团队,并正在讨论逐步迁移的具体策略

 

展望未来,SPFx 的路线图包括进一步解耦 CLI、开源模板以及与 Rush Stack 工具更深入的集成。鼓励开发者现在就开始探索 Heft,以熟悉未来的迁移路径并符合微软的发展方向。

 

关于完整的发布说明和 Heft 迁移指南,请参阅 SPFx 1.22发布说明工具链文档

 

原文链接:

SharePoint Framework 1.22 Ships with Heft-Based Build Toolchain and Refreshed Project Baseline

Agoda的“2025年AI开发者报告”显示,AI 在东南亚和印度已成为开发者的主流工具,在带来切实生产力提升的同时,也引发了关于可靠性、技能发展和组织准备度的新问题。

报告显示,AI 的采用已经基本达到普及的水平,95%的东南亚和印度开发者每周都会使用 AI 工具,超过一半的人在工作时会始终保持一个 AI 助手处于开启状态。开发者普遍感受到了效率的提升,但他们将这种影响描述为稳定而渐进的增益,而非对其工作的彻底自动化。

 

尽管使用率很高,但是开发者对 AI 的依赖却十分务实。提升生产力是主要驱动力,80%的受访者将“加快编码速度”和“协助处理常规编码任务”列为关键收益。然而,大多数人仍将 AI 视为需要监督的助手,而非可自主行动的代理。Agoda 将此总结为:“AI 已成主流,但尚未成熟”,当前的工作流程与保障机制仍在追赶工具本身的发展速度。

 

报告揭示了一个显著差距,即开发者行为与组织治理之间存在脱节。工具选择已经趋于集中化,约 87%的受访者使用 ChatGPT,许多人认为自己的集成开发环境(IDE)已具备 AI 就绪的能力,但正式的政策却明显滞后,仅有约四分之一的团队表示其工作遵循官方的 AI 使用指南,约 60%的开发者称所在组织尚未制定任何正式的 AI 政策。

在实践中,开发者正通过自下而上的方式填补这一空白。近 80%的受访者将“可靠性不足”和“输出不一致”列为阻碍更广泛使用 AI 的首要障碍。然而,67%的人表示他们会在合并前持续审查 AI 生成的代码,约 70%的人会常规性地重写或修正 AI 输出以确保正确性。报告指出,这种“默认审查”(review-by-default)的文化,正在将高采纳率转化为负责任的使用实践,不过自上而下的治理框架尚未完全建立。

 

研究还强调了强烈的自主学习的趋势,约 87%的开发者表示他们正在通过在线资料、实验和同行交流等方式自我培训 AI 技能,而非依赖公司提供的正式培训项目。与此同时,期待值也在上升,超过一半的开发者认为,AI 熟练度应该成为招聘的基本要求,许多人视 AI 能力为职业发展的关键要素。

 

Agoda 指出,该地区的开发者普遍将 AI 视为增强工作而非取代其工作的手段。但这种自下而上的势头也可能暴露出资源获取与支持体系的不均衡。报告呼吁企业需要迎头赶上,通过提供结构化培训、更清晰的政策以及将实验与安全、合规性及长期能力建设相协调的框架,来支持一线开发者。

 报告总结指出了三个现实情况:AI 已经成为主流,但分布不均;AI 正通过问责机制逐步演进;不同市场和企业间,AI 使用经验差异显著。大多数开发者每周节省的时间在 1 至 6 小时之间,最大收益体现在编码、调试以及学习新 API 或框架等环节,并非整项任务的完全自动化。

 

Agoda 首席技术官 Idan Zalzberg 将此视为软件构建方式的转变,而非构建者本身的更替:AI 正嵌入日常开发流程(从代码审查到团队协作),但人类的判断与监督仍居核心地位。报告最后指出,该地区真正的机遇在于,将这种自下而上的实验精神,与更强大的信任机制、问责体系和共享实践相结合,从而将近乎全民的 AI 应用,转化为一种可持续、区域级的工程能力。

 

原文链接:

How Developers in Southeast Asia and India Are Really Using AI in 2025

这两天在网络上又有一个东西火了,Twitter 的创始人 @jack 新的社交 iOS App  Damus 上苹果商店(第二天就因为违反中国法律在中国区下架了),这个软件是一个去中心化的 Twitter,使用到的是 nostr – Notes and Other Stuff Transmitted by Relays 的协议(协议简介协议细节),协议简介中有很大的篇幅是在批评Twitter和其相类似的中心化的产品,如:MastodonSecure Scuttlebutt 。我顺着去看了一下这个协议,发现这个协议真是非常的简单,简单到几句话就可以讲清楚了。

目录

通讯过程

  • 这个协议中有两个东西,一个是 client,一个是 relay,client 就是用户社交的客户端,relay 就是转发服务器。
  • 用户不需要注册,用户只需要有一个密钥对(公钥+私钥)就好了,然后把要发的信息做签名,发给一组 relays
  • 然后你的 Follower 就可以从这些 relays 上订阅到你的信息。

技术细节摘要

  • 技术实现上,nostr 使用 websocket + JSON 的方式。其中主要是下面这么几个指令
    • Client 到 Relay主要是下面这几个指令:
      • EVENT。发出事件,可以扩展出很多很多的动作来,比如:发信息,删信息,迁移信息,建 Channel ……扩展性很好。
      • REQ。用于请求事件和订阅更新。收到REQ消息后,relay 会查询其内部数据库并返回与过滤器匹配的事件,然后存储该过滤器,并将其接收的所有未来事件再次发送到同一websocket,直到websocket关闭。
      • CLOSE。用于停止被 REQ 请求的订阅。
    • Relay 到 Client 主要是下面几个指令:
      • EVENT。用于发送客户端请求的事件。
      • NOTICE。用于向客户端发送人类可读的错误消息或其他信息
  • 关于 EVENT 下面是几个常用的基本事件:
    • 0: set_metadata:比如,用户名,用户头像,用户简介等这样的信息。
    • 1: text_note:用户要发的信息内容
    • 2recommend_server:用户想要推荐给关注者的Relay的URL(例如wss://somerelay.com

如何对抗网络审查

那么,这个协议是如何对抗网络审查的?

  • 识别你的身份是通过你的签名,所以,只要你的私钥还在,你是不会被删号的
  • 任何人都可以运行一个或多个relay,所以,就很难有人控制所有的relay
  • 你还可以很方便的告诉其中的 relay 把你发的信息迁到另一个 relay 上
  • 你的信息是一次发给多个relay的,所以,只要不是所有的热门realy封了你,你就可以发出信息
  • 每个relay的运营者都可以自己制定规则,会审查哪些类型内容。用户据此选择即可。基本不会有一个全局的规则。
  • 如果你被全部的relay封了,你还是可以自建你的relay,然后,你可以通过各种方式告诉你身边的人你的relay服务器是什么?这样,他们把这个relay服务器加到他们的client列表中,你又可以从社死中复活了。

嗯,听起来很简单,整个网络是构建在一种 “社区式”的松散结构,完全可能会出现若干个 relay zone。这种架构就像是互联网的架构,没有中心化,比如 DNS服务器和Email服务器一样,只要你愿意,你完全可以发展出自己圈子里的“私服”。

其实,电子邮件是很难被封禁和审查的。我记得2003年中国非典的时候,我当时在北京,当时的卫生部部长说已经控制住了,才12个人感染,当局也在控制舆论和删除互联网上所有的真实信息。但是,大家都在用电子邮件传播信息,当时基本没有什么社交软件,大家分享信息都是通过邮件,尤其是外企工作的圈子,当时每天都要收很多的非典的群发邮件,大家还都是用公司的邮件服务器发……这种松散的,点对点的架构,让审查是基本不可能的。其实,我觉得 nostr 就是另外一个变种或是升级版的 email 的形式

如何对抗Spam和骗子

但是问题来了,如果不能删号封人的话,那么如何对抗那些制造Spam,骗子或是反人类的信息呢?nostr目前的解决方案是通过比特币闪电网络。比如有些客户端实现了如果对方没有follow 你,如果给他发私信,需要支付一点点btc ,或是relay要求你给btc才给你发信息(注:我不认为这是一个好的方法,因为:1)因为少数的坏人让大多数正常人也要跟着付出成本,这是个糟糕的治理方式,2)不鼓励那些生产内容的人,那么平台就没有任何价值了)。

不过,我觉得也有可以有下面的这些思路:

  • 用户主动拉黑,但很明显这个效率不高,而且体验不好
  • 社区或是同盟维护一个黑名单,relay定期更新(如同email中防垃圾邮件也是这样搞的),这其实也是审查。
  • 防Spam的算法过滤垃圾信息(如同email中干的),自动化审查。
  • 增加发Spam的成本,如: PoW 工作量证明(比特币的挖矿,最早也是用于Email),发信息要花钱(这个对正常用户伤害太大了)等。
  • ……

总之,还是有相应的方法的,但是一定没有完美解,email对抗了这么多年,你还是可以收到大量的垃圾邮件和钓鱼邮件,所以,我觉得 nostr 也不可能做到……

怎么理解审查

最后,我们要明白的是,无论你用什么方法,审查是肯定需要的,所以,我觉得要完全干掉审查,最终的结果就是一个到处都垃圾内容的地方!

我理解的审查不应该是为权力或是个体服务的,而是为大众和人民服务的,所以,审查必然是要有一个开放和共同决策的流程,而不是独断的

这点可以参考开源软件基金会的运作模式。

  • 最底端的是用户(User)参与开源社区的使用并提供问题和反馈。
  • 用户在使用过程中了解项目情况后贡献代码和文档就可以晋升为贡献者(Contributors),
  • 当贡献者提交一定数量贡献之后就可以晋升为提交者(Committers),此时你将拥有你参与仓库的代码读写权限。
  • 当提交者Committers在社区得到认可后,由项目管理委员会(PMC)选举并产生PMC成员(类似于议员),PMC成员拥有社区相关事务的投票、提名和共同决策权利和义务。

注意下面几点

  • 整个社区的决策者,是要通过自己贡献来挣到被选举权的。
  • 社区所有的工作和决定都是要公开的。
  • 社区的方向和决策都是要投票的,PMC成员有binding的票权,大众也有non-binding的投票权供参考。
  • 如果出现了价值观的不同,那么,直接分裂社区就好了,不同价值观的人加入到不同的社区就好了

如果审查是在这个框架下运作的话,虽然不完美,但至少会在一种公允的基础下运作,是透明公开的,也是集体决策的。

开源软件社区是一个很成功的示范,所以,我觉得只有技术而没有一个良性的可持续运作的社区,是不可能解决问题的,干净整齐的环境是一定要有人打扫和整理的

 

欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu
欢迎关注我 npub1w6r99545cxea6z76e8nvzjxnymjt4nrsddld33almtm78z7fz95s3c94nu

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (73 人打了分,平均分: 4.25 )

Loading...

两个月前,我试着想用 ChatGPT 帮我写篇文章《eBPF 介绍》,结果错误百出,导致我又要从头改一遍,从那天我觉得 ChatGPT 生成的内容完全不靠谱,所以,从那天开始我说我不会再用 ChatGPT 来写文章(这篇文章不是由 ChatGPT 生成),因为,在试过一段时间后,我对 ChatGTP 有基于如下的认识:

  1. ChatGPT 不是基于事实,是基于语言模型的,事实对他来说不重要,对他重要的是他能读懂你的问题,并按照一定的套路回答你的问题。
  2. 因为是基于套路的回答,所以,他并不能保证内容是对的,他的目标是找到漂亮的精彩的套路,于是,你会发现,他的内容组织能力和表述还不错,但是只要你认真玩上一段时间,你会发现,ChatGPT 那些表述的套路其实也比较平常一般。它的很多回答其实都不深,只能在表面上。就像 Github 的 Copilot 一样,写不了什么高级的代码,只能帮你写一些常规格式化的代码(当然,这也够了)
ChatGPT 就是一个语言模型,如果不给他足够的数据和信息,它基本就是在胡编乱造

所以,基于上面这两个点认识,以发展的眼光来看问题,我觉得 ChatGPT 这类的 AI 可以成为一个小助理,他的确可以干掉那些初级的脑力工作者,但是,还干不掉专业的人士,这个我估计未来也很难,不过,这也很帅了,因为大量普通的工作的确也很让人费时间和精力,但是有个前提条件——就是ChatGPT所产生的内容必需是真实可靠的,没有这个前提条件的话,那就什么用也没有了

今天,我想从另外一个角度来谈谈 ChatGPT,尤其是我在Youtube上看完了微软的发布会《Introducing your copilot for the web: AI-powered Bing and Microsoft Edge 》,才真正意识到Google 的市值为什么会掉了1000亿美元,是的,谷歌的搜索引擎的霸主位置受到了前所未有的挑战……

我们先来分析一下搜索引擎解决了什么样的用户问题,在我看来搜索引擎解决了如下的问题:

  • 知识或信息索引。查新闻,查股票,查历史,查文档,找答案……
  • 找服务提供商。找卖东西的电商,找帮你修东西的服务,找软件……
  • 信息的准确和可靠。搜索引擎的rank算法保证了最准确、最有用、最权威的信息出现在最前面……(作恶的百度不在此列)

基本上就是上面这几个,搜索引擎在上面这几件事上作的很好,但是,还是有一些东西搜索引擎做的并不好,如:

  • 搜索引擎是基于关键词的,不是基于语义的。所以,搜索引擎并不知道你的真实需求,因此,你会不可避免地要干下面的事,
    • 你经常要不断地增加或调整不同的关键词来提高查询信息的准确度……
    • 你经常要在你查找的信息中进行二次或多次过滤和筛选……
  • 搜索引擎是只能呈现内容,无法解读内容。所以,你找到相关的链接后,你还要花大量的时间来阅读理解,经常性的你不可避免的要干下面的事:
    • 打开一个链接,读到了一大半后,发现你要的内容不在其中,只能关掉再打开一个……
    • 你想要的内容是在的,但是太晦涩,看不懂,太费解,你要找小白友好的版本……
    • 你想要的内容不完整,你需要在很多个链接和网页上做拼图游戏……
    • 内容是无法结构化的展示的,你搜到的东西全都是碎片信息
  • 搜索引擎没有上下文关联,两次搜索是没有关系的。也就是说,人知道的越多,问题也就越多,所以,我们经常会面临下面的问题:
    • 随着我了解的越多,我的信息搜索的会出现分支,这个分支只有我自己的管理,搜索引擎是不关心的,导致我每次都相当于从头开始……
    • 你做计划的时候,你需要从多个不同的搜索中获取你想要的东西,最终组合成你定制化的东西,比如做旅游计划……

好了,我们知道,ChatGPT 这类的技术主要是用来根据用户的需求来按一定的套路来“生成内容”的,只是其中的内容并不怎么可靠,那么,如果把搜索引擎里靠谱的内容交给 ChatGPT 呢?那么,这会是一个多么强大的搜索引擎啊,完全就是下一代的搜索引擎,上面的那些问题完全都可以解决了:

  • 你可以打一段话给搜索引擎,ChatGPT 是读得懂语义的。
  • 因为知道语义,于是在众多搜过结果中,他更知道哪些是你想要的内容。
  • ChatGPT 可以帮你生成 TL;DR,把长文中的要求总结出来形成更易读的短文
  • ChatGPT 可以帮你整理内容,在多个网页中帮你整合和结构化内容
  • ChatGPT 可以有上下文对话,你可以让他帮你不断通过更多的关键词搜索信息,并在同一个主题下生成、组织和优化内容

一旦 ChatGPT 利用上了搜索引擎内容准确和靠谱的优势,那么,ChatGPT 的能力就完全被释放出来了,所以,带 ChatGPT 的搜索引擎,就是真正的“如虎添翼”!

因此,微软的 Bing + ChatGPT,成为了 Google 有史以来最大的挑战者,我感觉——所有跟信息或是文字处理相关的软件应用和服务,都会因为 ChatGPT 而且全部重新洗一次牌的,这应该会是新一轮的技术革命……Copilot 一定会成为下一代软件和应用的标配!

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (255 人打了分,平均分: 4.52 )

Loading...

这两天技术圈里热议的一件事就是Amazon的流媒体平台Prime Video在2023年3月22日发布了一篇技术博客《规模化Prime Video的音视频监控服务,成本降低90%》,副标题:“从分布式微服务架构到单体应用程序的转变有助于实现更高的规模、弹性和降低成本”,有人把这篇文章在五一期间转到了reddithacker news 上,在Reddit上热议。这种话题与业内推崇的微服务架构形成了鲜明的对比。从“微服务架构”转“单体架构”,还是Amazon干的,这个话题足够劲爆。然后DHH在刚喷完Typescript后继续发文《即便是亚马逊也无法理解Servless或微服务》,继续抨击微服务架构,于是,瞬间引爆技术圈,登上技术圈热搜。

今天上午有好几个朋友在微信里转了三篇文章给我,如下所示:

看看这些标题就知道这些文章要的是流量而不是好好写篇文章。看到第二篇,你还真当 Prime Video 就是 Amazon 的全部么?然后,再看看这些文章后面的跟风评论,我觉得有 80%的人只看标题,而且是连原文都不看的。所以,我想我得写篇文章了……

原文解读

要认清这个问题首先是要认认真真读一读原文,Amazon Prime Video 技术团队的这篇文章并不难读,也没有太多的技术细节,但核心意思如下:

1)这个系统是一个监控系统,用于监控数据千条用户的点播视频流。主要是监控整个视频流运作的质量和效果(比如:视频损坏或是音频不同步等问题),这个监控主要是处理视频帧,所以,他们有一个微服务主要是用来把视频拆分成帧,并临时存在 S3 上,就是下图中的 Media Conversion 服务。

2)为了快速搭建系统,Prime Video团队使用了Serverless 架构,也就是著名的 AWS Lambda 和 AWS Step Functions。前置 Lambda 用来做用户请求的网关,Step Function 用来做监控(探测器),有问题后,就发 SNS 上,Step Function 从 S3 获取 Media Conversion 的数据,然后把运行结果再汇总给一个后置的 Lambda ,并存在 S3 上。

整个架构看上去非常简单 ,一点也不复杂,而且使用了 Serverless 的架构,一点服务器的影子都看不见。实话实说,这样的开发不香吗?我觉得很香啊,方便快捷,完全不理那些无聊的基础设施,直接把代码转成服务,然后用 AWS 的 Lamda + Step Function + SNS + S3 分分钟就搭出一个有模有样的监控系统了,哪里不好了?!

但是他们遇到了一个比较大的问题,就是 AWS Step Function 的伸缩问题,从文章中我看到了两个问题(注意前方高能):

  1. 需要很多很多的并发的 AWS Step Function ,于是达到了帐户的 hard limit。
  2. AWS Step Function 按状态转换收费,所以,贵得受不了了。

注意,这里有两个关键点:1)帐户对 Step Function 有限制,2)Step Function 太贵了用不起

然后,Prime Video 的团队开始解决问题,下面是解决的手段:

1) 把 Media Conversion  和 Step Function 全部写在一个程序里,Media Conversion 跟 Step Function 里的东西通过内存通信,不再走S3了。结果汇总到一个线程中,然后写到 S3.

2)把上面这个单体架构进行分布式部署,还是用之前的 AWS Lambda 来做入门调度。

EC2 的水平扩展没有限制,而且你想买多少 CPU/MEM 的机器由你说了算,而这些视频转码,监控分析的功能感觉就不复杂,本来就应该写在一起,这么做不更香吗?当然更香,比前面的 Serverless 的确更香,因为如下的几个原因:

  1. 不再受 Step Function 的限制了,技术在自己手里,有更大的自由度。
  2. 没有昂贵的 Step Function 云成本的确变得更低了,如果你把 Lambda 换成 Nginx 或 Spring Gateway 或是我司的 Easegress,你把 S3 换成 MinIO,你把 SNS 换成 Kafka,你的成本 还能再低。

独立思考

好了,原文解读完了,你有自己的独立思考了吗?下面是我的独立思考,供你参考:

1)AWS 的 Serverless 也好, 微服务也好,单体也好,在合适的场景也都很香。这就跟汽车一样,跑车,货车,越野车各有各的场景,你用跑车拉货,还是用货车泡妞都不是一个很好的决定。

2)这篇文章中的这个例子中的业务太过简单了,本来就是一两个服务就可以干完的事。就是一个转码加分析的事,要分开的话,就两个微服务就好了(一个转码一个分析),做成流式的。如果不想分,合在一起也没问题了,这个粒度是微服务没毛病。微服务的划分有好些原则,我这里只罗列几个比较重要的原则:

  • 边界上下文。微服务的粒度不能大于领域驱动里的 Bounded Context(具体是什么 大家自行 Google),也就是一个业务域。
  • 单一职责,高内聚,低耦合。把因为相同原因变化的合在一起(内聚),把不同原因变化的分开(解耦)
  • 事务和一致性。对于两个重度依赖的功能,需要完成一个事务和要保证强一致性的,最好不要拆开,要放在一起。
  • 跟组织架构匹配。把同一个团队的东西放在一起,不同团队的分开。

3)Prime Video 遇到的问题不是技术问题,而是 AWS  Step Function 处理能力不足,而且收费还很贵的问题。这个是 AWS 的产品问题,不是技术问题。或者说,这个是Prime Video滥用了Step Function的问题(本来这种大量的数据分析处理就不适合Step Function)。所以,大家不要用一个产品问题来得到微服务架构有问题的结论,这个没有因果关系。试问,如果 Step Funciton 可以无限扩展,性能也很好,而且白菜价,那么 Prime Video 团队还会有动力改成单体吗?他们不会反过来吹爆 Serverless 吗?

4)Prime Video 跟 AWS 是两个独立核算的公司,就像 Amazon 的电商和 AWS 一样,也是两个公司。Amazon 的电商和 AWS 对服务化或是微服务架构的理解和运维,我个人认为这个世界上再也找不到另外一家公司了,包括 Google 或 Microsoft。你有空可以看看本站以前的这篇文章《Steve Yegg对Amazon和Google平台的吐槽》你会了解的更多。

5)Prime Video 这个案例本质上是“下云”,下了 AWS Serverless 的云。云上的成本就是高,一个是费用问题,另一个是被锁定的问题。Prime Video 团队应该很庆幸这个监控系统并不复杂,重写起来也很快,所以,可以很快使用一个更传统的“服务化”+“云计算”的分布式架构,不然,就得像 DHH 那样咬牙下云——《Why We’re Leaving the Cloud》(他们的 SRE 的这篇博文 Our Cloud Spend in 2022说明了下云的困难和节约了多少成本)

后记

最后让我做个我自己的广告。我在过去几年的创业中,帮助了很多公司解决了这些 分布式,微服务,云原生以及云计算成本的问题,如果你也有类似问题。欢迎,跟我联系:[email protected]

另外,我们今年发布了一个平台 MegaEase Cloud,就是想让用户在不失去云计算体验的同时,通过自建高可用基础架构的方式来获得更低的成本(至少降 50%的云计算成本)。目前可以降低成本的方式:

  1. 基础软件:通过开源软件自建,
  2. 内容分发:MinIO + Cloudflare 的免费 CDN,
  3. 马上准备发布的直接与底层IDC合作的廉价GPU计算资源…

欢迎大家试用。

如何访问

注:这两个区完全独立,帐号不互通。因为网络的不可抗力,千万不要跨区使用。

产品演示

介绍文章

 

(全文完)

(转载本站文章请注明作者和出处 酷 壳 – CoolShell ,请勿用于任何商业用途)

好烂啊有点差凑合看看还不错很精彩 (647 人打了分,平均分: 4.32 )

Loading...

这里记录每周值得分享的科技内容,周五发布。


本杂志开源,欢迎投稿。另有《谁在招人》服务,发布程序员招聘信息。合作请邮件联系[email protected])。

封面图

武汉首座电梯升降桥最近建成开放。因为上游有船厂,所以大桥有四根巨大的电梯柱,用来升起桥面,让船通过。(via

预测是新的互联网热点

大家大概想不到,美国互联网的热点,现在不是 AI 网站,而是一种全新的网站,叫做"预测市场"(prediction market)。

这类网站像雨后春笋一样,每天都在冒出来。最有名的预测市场,目前是 PolyMarket

预测市场的用途,就是预测各种各样的事情。以 PolyMarket 为例,首页顶部就是各种预测的分类。

热门事件、突发事件、最新预测、政治、体育......

只要是你能想到的事情,它都提供预测

以上周末为例,首页热门预测如下(上图)。

  • 《时代》杂志的年度人物是谁?
  • 《时代》杂志年度人物名单会泄露吗?
  • 美联储一月份的决定是什么?
  • OpenAI 下一次的大模型发布是哪一天?

你随便选一个,点进去就能看到,各种情况的概率。

上图预测的是,2025年12月5日至12日期间,马斯克会发多少条推文。

可以看到,概率最高的情况是440条~450条,概率33%,概率最低的情况是400条~419条,概率1%。

正是因为对于几乎任何问题,它都有实时的详细预测,美国人现在已经不怎么看民调了,改成看这种预测网站了。因为民调的抽样方法和样本大小,总是有局限的,反而是预测网站更反映市场的真实看法。

你可能会问,这些预测结果怎么产生?如何确保准确?

答案很简单,结果来自于用户的下注。

你看好哪一种情况,就可以对它下注。看好的人多,这种情况对应的概率就会上升,反之下降。

实质上,它的每一个预测都是一支股票,股价就是它的概率,1%的概率就是股价0.01元,100%的概率就是股价1元。

举例来说,某种情况的当前概率是2%,那么相当于0.02元。你看好这种情况,假定就花了100元买入。

结果,正如你的预测,它变成了现实,概率上升为100%,价格就变成了1元,相比你的买入价,整整上涨了50倍。于是,你投入的100元就变成了5000元。

反之,你预测错了,这个结果没有实现,概率变为0%,也就是0元,你投入的100元将一分都收不回来。

最近,美国的一条热门新闻就是,一个男子在 PolyMarket 上,对一个2%的小概率事件投入3000美元。结果,预测准确,他收回了12.5万美元。

为了方便世界各地的人参与,也是为了保证匿名,这种预测网站都采用稳定币交易。

所以,它的本质就是一个巨大的彩票市场,允许用户买卖自己最感兴趣、最熟悉的事件,这是它快速流行起来的根本原因。参与的人多了以后,反过来提高了预测的准确性。

我觉得,它的前景不可限量,一定会火爆的井喷式发展,传统彩票可能会被它彻底淘汰。

它把任何不确定的事情,都变成了彩票,实时量化了每一种可能性的概率,并且提供了金钱翻倍的途径。这一方面很有参考价值,可以用来判断未来情况,另一方面也非常有娱乐性和刺激性。

国产 Nano Banana Pro 的图片幻灯片生成

上个月,谷歌发布了新一代图像编辑模型 Nano Banana Pro(其实就是 Gemini 3 Pro 的图像分支)。

有一个功能引起了轰动:无论多么枯燥的文字,都能变成有趣的图片,从"读文"变成"读图"。

我当时就想,国产模型一定会马上跟进。

果然,昨天打开秘塔 AI,就看到他们发了这个功能完全对标 Nano Banana Pro 以及 NotebookLM,而且还加入了自己的特色----讲解。

你点击"上传文件"(上图),上传各种资料(可以上传多篇),它就会自动创建一个知识库,输出内容的 AI 总结。这时,还会显示一个"给我讲讲"按钮。

上图是我写的一篇 JS 语法点 Promise 的教程,点击"给我讲讲"就会生成图片幻灯片 + 讲解。

大家可以去它们的官网 metaso.cn (手机 App 同名)试试看,这个功能挺好玩的,操作零门槛,关键是它免费(有赠送的积分)。

除了上传文件,你也可以直接搜索某个主题,再点击下方的"生成幻灯片"按钮。这时就会有"图片幻灯片"选项,并有20多种风格可选,还支持自定义。

科技动态

1、步行环游世界

上个世纪90年代的一天,一个英国青年在酒吧里随口说,他可以从南美洲最南端一路走到英国。他的朋友都不信。

他就跟朋友打赌,他能做到。1998年,他正式从智利最南端开始步行,那一年他29岁。

27年过去了,他已经56岁了,依然在路上。

好消息是,他已经接近行程的尾段,预计将于2026年9月到达终点英国。

下面就是他的路线图,从南美洲最南端到北美洲最北端,再到亚洲和欧洲,最后是英国。

整个行程中,他只能步行或者游泳,不能使用任何交通工具。最难的一段就是北美洲与俄罗斯之间的白令海峡,为了不坐船,他是在冬天从海冰上爬过去的。

这27年中,他也不是每天都在走,有时因为各种原因,会离开一段日子,然后再回来接着走。

他说,依靠个人的力量不可能完成这样的行程,留不开家人的支持、陌生人的友善,以及赞助商的帮助。

至于是什么力量支撑他坚持走了近30年?他说:"你需要看看真实的世界,以及生活在其中的人们,这将是你所能接受的最好的教育之一。"

2、六臂机器人

美的公司展示一个六臂机器人,将用于无锡工厂的生产线。

它可以六只手同时执行三项任务。那样的话,一个机器人就相当于三个工人了。

3、手摇洗衣机

一位前戴森公司的工程师,为不发达地区发明了一种手摇洗衣机。

据介绍,这种洗衣机不需要电,只要手摇几分钟,就能洗净5公斤衣物,并且节省一半的水。

如果它真的有效,我有一个建议,就是把手摇改成脚踏车,只要踩5分钟踏板,就能洗一筒衣服。

文章

1、程序员为自己的工具命名时的彻底迷失(英文)

本文批评很多程序员为软件起名时,尽起一些烂七八糟的名字,根本看不出软件的用途,建议软件名称应该跟用途有相关性。

2、解读斯诺登文件(英文)

这篇文章详细分析了2013年斯诺登泄漏的文件,文章第一部分就是分析对北方工业公司的情报收集,美国的监控令人叹为观止。

3、从文本到词元(英文)

一篇科普文章,通俗地介绍搜索引擎如何将查询的文本转换成标准化的词元(token)。

4、大模型构建 HTML 工具的实用方法(英文)

著名程序员 Simon Willison 的长文,总结他使用大模型生成网页应用的经验。

5、GraphQL 蜜月期已结束(英文)

作者认为,GraphQL 解决的问题远比人们想象的小众,而且可以通过其他方式解决,这项技术最终往往弊大于利。

6、git add -p 的解释(英文)

本文介绍 git add -p 命令。它会显示一个互动界面,让用户逐个确认每个文件的变动,是否要加入暂存区。

工具

1、Cosmic

上周,Cosmic 1.0版正式发布了。它是一个全新的 Linux 桌面,美观且功能强大,为用户提供了 Gnome 和 KDE 之外的另一个选择。

2、Keyden

macOS 菜单栏的开源 TOTP 双因素认证器,密钥加密存储在 macOS Keychain。(@tasselx 投稿)

3、WeMD

开源的 Markdown 微信公众号编辑器。(@tenngoxars 投稿)

4、starling-speak

文本朗读网站,支持多种语言,带有录音功能。(@Keldon-Pro 投稿)

5、shift

一个基于 WebAssembly 的在线代码编辑器,支持直接在网页运行 Python、Lua、Ruby 等语言。(@hubenchang0515 投稿)

6、EasyImg

基于 Nuxt 4 构建的个人图床,丰富的后台配置。(@chaos-zhu 投稿)

7、Go-WXPush

Go 语言开发的微信消息推送服务,提供了一个简单的 API 消息推送接口。代码开源,每天10万次推送额度,个人用不完。(@hezhizheng 投稿)

8、ZeroLaunch-rs

Windows 应用启动器,拼音模糊匹配,基于 Rust + Tauri + Vue.js。(@ghost-him 投稿)

9、MrRSS

跨平台的开源桌面 RSS 阅读器,支持自动翻译、自动总结、新订阅源发现。(@ch3ny4ng 投稿)

10、PVE Touch

为移动设备优化的 Proxmox VE 管理界面,方便通过手机管理虚拟机。(@hanxi 投稿)

AI 相关

1、Disco

谷歌实验室推出的实验性 AI 浏览器,完全跳过网页搜索,目前需要排队等待名额。

2、Flowers

开源的浏览器 AI 助手插件,提供网页翻译、问答、笔记等功能。(@snailfrying 投稿)

3、DeepAudit

开源的代码审计平台,通过智能体实现漏洞挖掘和自动化沙箱 PoC 验证,支持 ollama 私有部署模型,代码可不出内网。(@lintsinghua 投稿)

资源

1、生命的尺寸

这个网站用图形展示各种生命体的大小比较,从 DNA 一直到蓝鲸。

2、写一个你自己的 C 语言编译器(Build Your Own Lisp)

一本面向初学者的免费英文电子书,介绍怎么用 C 语言写编译器,以 Lisp 语言的编译器为例。

3、A Soft Murmur

一个背景音网站,可以开关不同的音效,并调节它们的音量。

图片

1、13个圆画出动物

一个艺术家使用13个圆,画出各种动物。

猫头鹰

兔子

猴子

文摘

1、Claude Opus 4.5 是第一款让我真正担心自己工作会丢掉的大模型

Claude Opus 4.5 真是完全不同于其他模型。还没用过的人根本无法想象未来两三年会发生什么,明年可能就是最终的转折点。

我不知道接下来该如何适应。当然,我可以整天看着 Opus 帮我工作,偶尔出点小问题再干预一下,但再过一段日子连这些都不需要了呢?

编码问题基本上已经解决了,接下来像系统设计、安全之类的问题也会迎刃而解。我估计再过两三个版本,80%的技术人员就基本没用了。当然,公司还需要一些时间来适应,但他们肯定会想方设法尽快摆脱我们。

虽然我很喜欢 AI 这项技术,但一想到这一切最终会走向何方,我就感到难过。

2、为什么学习物理学

(本文摘自理查德·费曼于1963年6月在里约热内卢举行的美洲物理教育会议上发表的演讲。费曼是加州理工学院理论物理学教授。)

我们应该教授物理学,这有五个原因。

(1)物理是一门基础科学,应用于工程学、化学和生物学等各种技术领域。

物理是研究自然界的科学,或者说是认识自然界的科学,它告诉我们事物是如何运作的,以及人类在当前和未来的技术中发明的各种设备是如何工作的。因此,懂物理的人应对本行业出现的技术问题会很有用。

(2)物理教会你如何动手做事情。它教授许多操纵事物的技巧,以及测量和计算技巧,这些技巧的应用范围比特定研究领域要广泛得多。

(3)物理作为一门科学,对许多人来说,是一种极大的乐趣。

科学教育培养出来的科学家,不仅为工业发展和知识发展做出贡献,同时也参与了我们这个时代的伟大冒险,从中获得巨大的乐趣。

即使一个人没有成为一名专业科学家,研究自然也是为了欣赏自然的奇妙和美丽。这种对自然的了解也给人一种稳定和现实的感觉,并驱散了许多恐惧和迷信。

(4)物理教会人们如何认识事物,帮助你质疑很多事情。质疑和自由思想的价值,不仅对科学发展,而且对其他各个领域,都显而易见。

科学教导我们如何认识事物、什么是未知事物、事物被认识到什么程度、如何处理怀疑和不确定性、证据规则是什么、如何思考事物以便做出判断、如何区分真理与欺诈。这些无疑是教授科学,特别是教授物理的重要收获。

(5)在学习科学的过程中,你会学会如何试错,培养发明创造和自由探索的精神,这种精神的价值远远超出了科学本身。

人们会学会问自己:"有没有更好的方法 ?"我们必须想出一些新的技巧或方法,以改进这项技术。这种想法是许多思想、发明创造以及各种人类进步的源泉。

言论

1、

为什么我们有两个鼻孔,而不是一个大洞?

因为肺部持续需要空气,两个鼻孔可以交替工作,让鼻子的一侧得到休息。

-- 美国《大众科学》

2、

报社招我去当撰稿人,我以为是去写稿,结果却是以极低的薪水让我编辑 AI 生成的文案草稿,理由是"大部分工作已经完成了"。

这让我深受打击,我曾经觉得自己很有价值,受人重视,对未来充满希望,渴望拥有辉煌的职业生涯,现在却只能修改 AI 生成的文字。

-- 一位自由撰稿人

3、

SaaS 行业将会萎缩,尤其是那些功能简单的 SaaS,因为企业现在可以用 AI 快速生成内部服务。

-- 《AI 正在蚕食 SaaS》

4、

我发现,中文不喜欢直接说 True,更倾向说 !False。比如,英文说"很好",中文说"不坏",英文说"对的",中文说"没错",英文说"正常",中文说"没问题"。

中文更喜欢双重否定"否定词+否定词",这种表达方式增加了模糊性(含糊其辞)和灵活性(模棱两可),创造了回旋余地,避免了肯定答复导致的态度明确、归类迅速、立场鲜明。

-- 《为什么中文拒绝说 true》

往年回顾

你可能是一个 NPC(#331)

新基建的政策选择(#281)

互联网公司需要多少员工?(#231)

移动支付应该怎么设计?(#181)

(完)